Vana SDK - v2.2.2
    Preparing search index...

    Class ProtocolController

    Provides low-level access to Vana protocol smart contracts.

    Advanced API for direct contract interaction. Most developers should use higher-level controllers (DataController, PermissionsController) instead. This controller serves as an escape hatch when high-level APIs lack needed functionality.

    Architecture: Automatically detects current chain and provides only deployed contracts. Full TypeScript type safety through contract ABIs and const assertions.

    Method Selection:

    • getContract() - Retrieve address and ABI for manual interaction
    • createContract() - Get typed contract instance with read/write methods
    • getAvailableContracts() - List all contracts on current chain
    • isContractAvailable() - Check contract deployment status
    • getChainId()/getChainName() - Current network information

    When to Use:

    • Custom contract interactions not covered by high-level APIs
    • Direct contract event listening
    • Advanced protocol operations

    Type Safety: Always use as const with contract names for full type inference.

    // Get contract info with typed ABI
    const registry = vana.protocol.getContract("DataRegistry" as const);
    console.log(`Contract at ${registry.address}`);

    // Create typed contract instance
    const contract = vana.protocol.createContract("DataRegistry" as const);
    const count = await contract.read.filesCount(); // Returns: bigint

    // Write operations with full typing
    const hash = await contract.write.addFile(["ipfs://..."]);

    For contract specifications, visit https://docs.vana.org/docs/protocol-contracts

    Hierarchy

    • BaseController
      • ProtocolController
    Index

    Methods

    • Retrieves the address and ABI for a specific Vana protocol contract.

      Type Parameters

      • T extends
            | "ComputeEngine"
            | "ComputeInstructionRegistry"
            | "DAT"
            | "DATFactory"
            | "DATPausable"
            | "DATVotes"
            | "DLPPerformance"
            | "DLPRegistry"
            | "DLPRegistryTreasury"
            | "DLPRewardDeployer"
            | "DLPRewardDeployerTreasury"
            | "DLPRewardSwap"
            | "DataPortabilityGrantees"
            | "DataPortabilityPermissions"
            | "DataPortabilityServers"
            | "DataRefinerRegistry"
            | "DataRegistry"
            | "QueryEngine"
            | "SwapHelper"
            | "TeePool"
            | "TeePoolDedicatedGpu"
            | "TeePoolDedicatedStandard"
            | "TeePoolEphemeralStandard"
            | "TeePoolPersistentGpu"
            | "TeePoolPersistentStandard"
            | "TeePoolPhala"
            | "VanaEpoch"
            | "VanaPoolEntity"
            | "VanaPoolStaking"
            | "VanaPoolTreasury"
            | "DLPRegistryTreasuryImplementation"
            | "VanaTreasury"
            | "DataLiquidityPool"
            | "DLPRoot"

      Parameters

      • contractName: T

        The name of the Vana contract to retrieve (use const assertion for full typing)

      Returns ContractInfo<
          {
              DataPortabilityPermissions: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "target"; type: "address" },
                      ];
                      name: "AddressEmptyCode";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ECDSAInvalidSignature"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "length"; type: "uint256" },
                      ];
                      name: "ECDSAInvalidSignatureLength";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "s"; type: "bytes32" },
                      ];
                      name: "ECDSAInvalidSignatureS";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "implementation"; type: "address" },
                      ];
                      name: "ERC1967InvalidImplementation";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC1967NonPayable"; type: "error" },
                  { inputs: readonly []; name: "EmptyGrant"; type: "error" },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "FailedInnerCall"; type: "error" },
                  { inputs: readonly []; name: "GranteeNotFound"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "permissionId"; type: "uint256" },
                      ];
                      name: "InactivePermission";
                      type: "error";
                  },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "expectedNonce"; type: "uint256" },
                          { internalType: "uint256"; name: "providedNonce"; type: "uint256" },
                      ];
                      name: "InvalidNonce";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "filesLength"; type: "uint256" },
                          { internalType: "uint256"; name: "permissionsLength"; type: "uint256" },
                      ];
                      name: "InvalidPermissionsLength";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "filesLength"; type: "uint256" },
                          { internalType: "uint256"; name: "schemaIdsLength"; type: "uint256" },
                      ];
                      name: "InvalidSchemaIdsLength";
                      type: "error";
                  },
                  { inputs: readonly []; name: "InvalidSignature"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "fileOwner"; type: "address" },
                          { internalType: "address"; name: "requestor"; type: "address" },
                      ];
                      name: "NotFileOwner";
                      type: "error";
                  },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "permissionOwner";
                              type: "address";
                          },
                          { internalType: "address"; name: "requestor"; type: "address" },
                      ];
                      name: "NotPermissionGrantor";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "UUPSUnauthorizedCallContext";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "slot"; type: "bytes32" },
                      ];
                      name: "UUPSUnsupportedProxiableUUID";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ZeroAddress"; type: "error" },
                  {
                      anonymous: false;
                      inputs: readonly [];
                      name: "EIP712DomainChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "permissionId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "user";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "granteeId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "grant";
                              type: "string";
                          },
                          {
                              indexed: false;
                              internalType: "uint256[]";
                              name: "fileIds";
                              type: "uint256[]";
                          },
                      ];
                      name: "PermissionAdded";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "permissionId";
                              type: "uint256";
                          },
                      ];
                      name: "PermissionRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "implementation";
                              type: "address";
                          },
                      ];
                      name: "Upgraded";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MAINTAINER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "UPGRADE_INTERFACE_VERSION";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                  { internalType: "uint256"; name: "granteeId"; type: "uint256" },
                                  { internalType: "string"; name: "grant"; type: "string" },
                                  { internalType: "uint256[]"; name: "fileIds"; type: "uint256[]" },
                              ];
                              internalType: "struct IDataPortabilityPermissions.PermissionInput";
                              name: "permissionInput";
                              type: "tuple";
                          },
                          { internalType: "bytes"; name: "signature"; type: "bytes" },
                      ];
                      name: "addPermission";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                  { internalType: "uint256"; name: "granteeId"; type: "uint256" },
                                  { internalType: "string"; name: "grant"; type: "string" },
                                  { internalType: "string[]"; name: "fileUrls"; type: "string[]" },
                                  { internalType: "uint256[]"; name: "schemaIds"; type: "uint256[]" },
                                  { internalType: "address"; name: "serverAddress"; type: "address" },
                                  { internalType: "string"; name: "serverUrl"; type: "string" },
                                  { internalType: "string"; name: "serverPublicKey"; type: "string" },
                                  {
                                      components: readonly [
                                          { internalType: ...; name: ...; type: ... },
                                          { internalType: ...; name: ...; type: ... },
                                      ];
                                      internalType: "struct IDataRegistry.Permission[][]";
                                      name: "filePermissions";
                                      type: "tuple[][]";
                                  },
                              ];
                              internalType: "struct IDataPortabilityPermissions.ServerFilesAndPermissionInput";
                              name: "serverFilesAndPermissionInput";
                              type: "tuple";
                          },
                          { internalType: "bytes"; name: "signature"; type: "bytes" },
                      ];
                      name: "addServerFilesAndPermissions";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "dataPortabilityGrantees";
                      outputs: readonly [
                          {
                              internalType: "contract IDataPortabilityGrantees";
                              name: "";
                              type: "address";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "dataPortabilityServers";
                      outputs: readonly [
                          {
                              internalType: "contract IDataPortabilityServers";
                              name: "";
                              type: "address";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "dataRegistry";
                      outputs: readonly [
                          {
                              internalType: "contract IDataRegistry";
                              name: "";
                              type: "address";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "eip712Domain";
                      outputs: readonly [
                          { internalType: "bytes1"; name: "fields"; type: "bytes1" },
                          { internalType: "string"; name: "name"; type: "string" },
                          { internalType: "string"; name: "version"; type: "string" },
                          { internalType: "uint256"; name: "chainId"; type: "uint256" },
                          { internalType: "address"; name: "verifyingContract"; type: "address" },
                          { internalType: "bytes32"; name: "salt"; type: "bytes32" },
                          { internalType: "uint256[]"; name: "extensions"; type: "uint256[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "fileId"; type: "uint256" },
                      ];
                      name: "filePermissionIds";
                      outputs: readonly [
                          { internalType: "uint256[]"; name: ""; type: "uint256[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "fileId"; type: "uint256" },
                      ];
                      name: "filePermissions";
                      outputs: readonly [
                          { internalType: "uint256[]"; name: ""; type: "uint256[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "trustedForwarderAddress";
                              type: "address";
                          },
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          {
                              internalType: "contract IDataRegistry";
                              name: "dataRegistryAddress";
                              type: "address";
                          },
                          {
                              internalType: "contract IDataPortabilityServers";
                              name: "serversContractAddr";
                              type: "address";
                          },
                          {
                              internalType: "contract IDataPortabilityGrantees";
                              name: "granteesContractAddr";
                              type: "address";
                          },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "forwarder"; type: "address" },
                      ];
                      name: "isTrustedForwarder";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "permissionId"; type: "uint256" },
                      ];
                      name: "permissionFileIds";
                      outputs: readonly [
                          { internalType: "uint256[]"; name: ""; type: "uint256[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "permissionId"; type: "uint256" },
                      ];
                      name: "permissions";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "id"; type: "uint256" },
                                  { internalType: "address"; name: "grantor"; type: "address" },
                                  { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                  { internalType: "uint256"; name: "granteeId"; type: "uint256" },
                                  { internalType: "string"; name: "grant"; type: "string" },
                                  { internalType: "uint256"; name: "startBlock"; type: "uint256" },
                                  { internalType: "uint256"; name: "endBlock"; type: "uint256" },
                                  { internalType: "uint256[]"; name: "fileIds"; type: "uint256[]" },
                              ];
                              internalType: "struct IDataPortabilityPermissions.PermissionInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "permissionsCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "proxiableUUID";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "permissionId"; type: "uint256" },
                      ];
                      name: "revokePermission";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                  { internalType: "uint256"; name: "permissionId"; type: "uint256" },
                              ];
                              internalType: "struct IDataPortabilityPermissions.RevokePermissionInput";
                              name: "revokePermissionInput";
                              type: "tuple";
                          },
                          { internalType: "bytes"; name: "signature"; type: "bytes" },
                      ];
                      name: "revokePermissionWithSignature";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "bytes32"; name: "adminRole"; type: "bytes32" },
                      ];
                      name: "setRoleAdmin";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "trustedForwarder";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "contract IDataRegistry";
                              name: "newDataRegistry";
                              type: "address";
                          },
                      ];
                      name: "updateDataRegistry";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "contract IDataPortabilityGrantees";
                              name: "newGranteesContract";
                              type: "address";
                          },
                      ];
                      name: "updateGranteesContract";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "contract IDataPortabilityServers";
                              name: "newServersContract";
                              type: "address";
                          },
                      ];
                      name: "updateServersContract";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "trustedForwarderAddress";
                              type: "address";
                          },
                      ];
                      name: "updateTrustedForwarder";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newImplementation";
                              type: "address";
                          },
                          { internalType: "bytes"; name: "data"; type: "bytes" },
                      ];
                      name: "upgradeToAndCall";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "userAddress"; type: "address" },
                      ];
                      name: "userNonce";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "userAddress"; type: "address" },
                          { internalType: "uint256"; name: "permissionIndex"; type: "uint256" },
                      ];
                      name: "userPermissionIdsAt";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "userAddress"; type: "address" },
                      ];
                      name: "userPermissionIdsLength";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "userAddress"; type: "address" },
                      ];
                      name: "userPermissionIdsValues";
                      outputs: readonly [
                          { internalType: "uint256[]"; name: ""; type: "uint256[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "userAddress"; type: "address" },
                      ];
                      name: "users";
                      outputs: readonly [
                          { internalType: "uint256"; name: "nonce"; type: "uint256" },
                          { internalType: "uint256[]"; name: "permissionIds"; type: "uint256[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "version";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "pure";
                      type: "function";
                  },
              ];
              DataPortabilityServers: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "target"; type: "address" },
                      ];
                      name: "AddressEmptyCode";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ECDSAInvalidSignature"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "length"; type: "uint256" },
                      ];
                      name: "ECDSAInvalidSignatureLength";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "s"; type: "bytes32" },
                      ];
                      name: "ECDSAInvalidSignatureS";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "implementation"; type: "address" },
                      ];
                      name: "ERC1967InvalidImplementation";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC1967NonPayable"; type: "error" },
                  { inputs: readonly []; name: "EmptyPublicKey"; type: "error" },
                  { inputs: readonly []; name: "EmptyUrl"; type: "error" },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "FailedInnerCall"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "expectedNonce"; type: "uint256" },
                          { internalType: "uint256"; name: "providedNonce"; type: "uint256" },
                      ];
                      name: "InvalidNonce";
                      type: "error";
                  },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "serverOwner"; type: "address" },
                          { internalType: "address"; name: "requestor"; type: "address" },
                      ];
                      name: "NotServerOwner";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ServerAlreadyRegistered"; type: "error" },
                  { inputs: readonly []; name: "ServerAlreadyTrusted"; type: "error" },
                  { inputs: readonly []; name: "ServerAlreadyUntrusted"; type: "error" },
                  { inputs: readonly []; name: "ServerNotFound"; type: "error" },
                  { inputs: readonly []; name: "ServerNotTrusted"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "string"; name: "existingUrl"; type: "string" },
                          { internalType: "string"; name: "providedUrl"; type: "string" },
                      ];
                      name: "ServerUrlMismatch";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "UUPSUnauthorizedCallContext";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "slot"; type: "bytes32" },
                      ];
                      name: "UUPSUnsupportedProxiableUUID";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ZeroAddress"; type: "error" },
                  {
                      anonymous: false;
                      inputs: readonly [];
                      name: "EIP712DomainChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "serverId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "owner";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "serverAddress";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "publicKey";
                              type: "string";
                          },
                          { indexed: false; internalType: "string"; name: "url"; type: "string" },
                      ];
                      name: "ServerRegistered";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "user";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "serverId";
                              type: "uint256";
                          },
                      ];
                      name: "ServerTrusted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "user";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "serverId";
                              type: "uint256";
                          },
                      ];
                      name: "ServerUntrusted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "serverId";
                              type: "uint256";
                          },
                          { indexed: false; internalType: "string"; name: "url"; type: "string" },
                      ];
                      name: "ServerUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "implementation";
                              type: "address";
                          },
                      ];
                      name: "Upgraded";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MAINTAINER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "PERMISSION_MANAGER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "UPGRADE_INTERFACE_VERSION";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          {
                              components: readonly [
                                  {
                                      internalType: "address";
                                      name: "serverAddress";
                                      type: "address";
                                  },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                                  { internalType: "string"; name: "serverUrl"; type: "string" },
                              ];
                              internalType: "struct IDataPortabilityServers.AddServerInput";
                              name: "addServerInput";
                              type: "tuple";
                          },
                      ];
                      name: "addAndTrustServerByManager";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                  { internalType: "address"; name: "serverAddress"; type: "address" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                                  { internalType: "string"; name: "serverUrl"; type: "string" },
                              ];
                              internalType: "struct IDataPortabilityServers.AddServerWithSignatureInput";
                              name: "addServerInput";
                              type: "tuple";
                          },
                          { internalType: "bytes"; name: "signature"; type: "bytes" },
                      ];
                      name: "addAndTrustServerWithSignature";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                  { internalType: "address"; name: "serverAddress"; type: "address" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                                  { internalType: "string"; name: "serverUrl"; type: "string" },
                              ];
                              internalType: "struct IDataPortabilityServers.AddServerWithSignatureInput";
                              name: "addServerInput";
                              type: "tuple";
                          },
                          { internalType: "bytes"; name: "signature"; type: "bytes" },
                      ];
                      name: "addServerWithSignature";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "eip712Domain";
                      outputs: readonly [
                          { internalType: "bytes1"; name: "fields"; type: "bytes1" },
                          { internalType: "string"; name: "name"; type: "string" },
                          { internalType: "string"; name: "version"; type: "string" },
                          { internalType: "uint256"; name: "chainId"; type: "uint256" },
                          { internalType: "address"; name: "verifyingContract"; type: "address" },
                          { internalType: "bytes32"; name: "salt"; type: "bytes32" },
                          { internalType: "uint256[]"; name: "extensions"; type: "uint256[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "trustedForwarderAddress";
                              type: "address";
                          },
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "forwarder"; type: "address" },
                      ];
                      name: "isTrustedForwarder";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "proxiableUUID";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "serverAddress"; type: "address" },
                      ];
                      name: "serverAddressToId";
                      outputs: readonly [
                          { internalType: "uint256"; name: "serverId"; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "serverAddress"; type: "address" },
                      ];
                      name: "serverByAddress";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "id"; type: "uint256" },
                                  { internalType: "address"; name: "owner"; type: "address" },
                                  { internalType: "address"; name: "serverAddress"; type: "address" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                                  { internalType: "string"; name: "url"; type: "string" },
                              ];
                              internalType: "struct IDataPortabilityServers.ServerInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "serverId"; type: "uint256" },
                      ];
                      name: "servers";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "id"; type: "uint256" },
                                  { internalType: "address"; name: "owner"; type: "address" },
                                  { internalType: "address"; name: "serverAddress"; type: "address" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                                  { internalType: "string"; name: "url"; type: "string" },
                              ];
                              internalType: "struct IDataPortabilityServers.ServerInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "serversCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "bytes32"; name: "adminRole"; type: "bytes32" },
                      ];
                      name: "setRoleAdmin";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "userAddress"; type: "address" },
                          { internalType: "uint256"; name: "nonce"; type: "uint256" },
                      ];
                      name: "setUserNonce";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "serverId"; type: "uint256" },
                      ];
                      name: "trustServer";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "userAddress"; type: "address" },
                          { internalType: "uint256"; name: "serverId"; type: "uint256" },
                      ];
                      name: "trustServerByManager";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                  { internalType: "uint256"; name: "serverId"; type: "uint256" },
                              ];
                              internalType: "struct IDataPortabilityServers.TrustServerInput";
                              name: "trustServerInput";
                              type: "tuple";
                          },
                          { internalType: "bytes"; name: "signature"; type: "bytes" },
                      ];
                      name: "trustServerWithSignature";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "trustedForwarder";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "serverId"; type: "uint256" },
                      ];
                      name: "untrustServer";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                  { internalType: "uint256"; name: "serverId"; type: "uint256" },
                              ];
                              internalType: "struct IDataPortabilityServers.UntrustServerInput";
                              name: "untrustServerInput";
                              type: "tuple";
                          },
                          { internalType: "bytes"; name: "signature"; type: "bytes" },
                      ];
                      name: "untrustServerWithSignature";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "serverId"; type: "uint256" },
                          { internalType: "string"; name: "url"; type: "string" },
                      ];
                      name: "updateServer";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "trustedForwarderAddress";
                              type: "address";
                          },
                      ];
                      name: "updateTrustedForwarder";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newImplementation";
                              type: "address";
                          },
                          { internalType: "bytes"; name: "data"; type: "bytes" },
                      ];
                      name: "upgradeToAndCall";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "userAddress"; type: "address" },
                      ];
                      name: "userNonce";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "userAddress"; type: "address" },
                          { internalType: "uint256"; name: "serverIndex"; type: "uint256" },
                      ];
                      name: "userServerIdsAt";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "userAddress"; type: "address" },
                      ];
                      name: "userServerIdsLength";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "userAddress"; type: "address" },
                      ];
                      name: "userServerIdsValues";
                      outputs: readonly [
                          { internalType: "uint256[]"; name: ""; type: "uint256[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "userAddress"; type: "address" },
                      ];
                      name: "userServerValues";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "id"; type: "uint256" },
                                  { internalType: "address"; name: "owner"; type: "address" },
                                  { internalType: "address"; name: "serverAddress"; type: "address" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                                  { internalType: "string"; name: "url"; type: "string" },
                                  { internalType: "uint256"; name: "startBlock"; type: "uint256" },
                                  { internalType: "uint256"; name: "endBlock"; type: "uint256" },
                              ];
                              internalType: "struct IDataPortabilityServers.TrustedServerInfo[]";
                              name: "serversInfo";
                              type: "tuple[]";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "userAddress"; type: "address" },
                          { internalType: "uint256"; name: "serverId"; type: "uint256" },
                      ];
                      name: "userServers";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "id"; type: "uint256" },
                                  { internalType: "address"; name: "owner"; type: "address" },
                                  { internalType: "address"; name: "serverAddress"; type: "address" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                                  { internalType: "string"; name: "url"; type: "string" },
                                  { internalType: "uint256"; name: "startBlock"; type: "uint256" },
                                  { internalType: "uint256"; name: "endBlock"; type: "uint256" },
                              ];
                              internalType: "struct IDataPortabilityServers.TrustedServerInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "userAddress"; type: "address" },
                      ];
                      name: "users";
                      outputs: readonly [
                          { internalType: "uint256"; name: "nonce"; type: "uint256" },
                          {
                              internalType: "uint256[]";
                              name: "trustedServerIds";
                              type: "uint256[]";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
              ];
              DataPortabilityGrantees: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "target"; type: "address" },
                      ];
                      name: "AddressEmptyCode";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "implementation"; type: "address" },
                      ];
                      name: "ERC1967InvalidImplementation";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC1967NonPayable"; type: "error" },
                  { inputs: readonly []; name: "EmptyPublicKey"; type: "error" },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "FailedInnerCall"; type: "error" },
                  { inputs: readonly []; name: "GranteeAlreadyRegistered"; type: "error" },
                  { inputs: readonly []; name: "GranteeNotFound"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "UUPSUnauthorizedCallContext";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "slot"; type: "bytes32" },
                      ];
                      name: "UUPSUnsupportedProxiableUUID";
                      type: "error";
                  },
                  { inputs: readonly []; name: "UnauthorizedRegistration"; type: "error" },
                  { inputs: readonly []; name: "ZeroAddress"; type: "error" },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "granteeId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "owner";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "granteeAddress";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "publicKey";
                              type: "string";
                          },
                      ];
                      name: "GranteeRegistered";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "implementation";
                              type: "address";
                          },
                      ];
                      name: "Upgraded";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MAINTAINER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "PERMISSION_MANAGER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "UPGRADE_INTERFACE_VERSION";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "granteeId"; type: "uint256" },
                          { internalType: "uint256"; name: "permissionId"; type: "uint256" },
                      ];
                      name: "addPermissionToGrantee";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "granteeAddress"; type: "address" },
                      ];
                      name: "granteeAddressToId";
                      outputs: readonly [
                          { internalType: "uint256"; name: "granteeId"; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "granteeAddress"; type: "address" },
                      ];
                      name: "granteeByAddress";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "owner"; type: "address" },
                                  { internalType: "address"; name: "granteeAddress"; type: "address" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                                  {
                                      internalType: "uint256[]";
                                      name: "permissionIds";
                                      type: "uint256[]";
                                  },
                              ];
                              internalType: "struct IDataPortabilityGrantees.GranteeInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "granteeAddress"; type: "address" },
                      ];
                      name: "granteeByAddressV2";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "owner"; type: "address" },
                                  { internalType: "address"; name: "granteeAddress"; type: "address" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                                  {
                                      internalType: "uint256";
                                      name: "permissionsCount";
                                      type: "uint256";
                                  },
                              ];
                              internalType: "struct IDataPortabilityGrantees.GranteeInfoV2";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "granteeId"; type: "uint256" },
                      ];
                      name: "granteeInfo";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "owner"; type: "address" },
                                  { internalType: "address"; name: "granteeAddress"; type: "address" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                                  {
                                      internalType: "uint256[]";
                                      name: "permissionIds";
                                      type: "uint256[]";
                                  },
                              ];
                              internalType: "struct IDataPortabilityGrantees.GranteeInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "granteeId"; type: "uint256" },
                      ];
                      name: "granteeInfoV2";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "owner"; type: "address" },
                                  { internalType: "address"; name: "granteeAddress"; type: "address" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                                  {
                                      internalType: "uint256";
                                      name: "permissionsCount";
                                      type: "uint256";
                                  },
                              ];
                              internalType: "struct IDataPortabilityGrantees.GranteeInfoV2";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "granteeId"; type: "uint256" },
                      ];
                      name: "granteePermissionIds";
                      outputs: readonly [
                          { internalType: "uint256[]"; name: ""; type: "uint256[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "granteeId"; type: "uint256" },
                      ];
                      name: "granteePermissions";
                      outputs: readonly [
                          { internalType: "uint256[]"; name: ""; type: "uint256[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "granteeId"; type: "uint256" },
                          { internalType: "uint256"; name: "offset"; type: "uint256" },
                          { internalType: "uint256"; name: "limit"; type: "uint256" },
                      ];
                      name: "granteePermissionsPaginated";
                      outputs: readonly [
                          {
                              internalType: "uint256[]";
                              name: "permissionIds";
                              type: "uint256[]";
                          },
                          { internalType: "uint256"; name: "totalCount"; type: "uint256" },
                          { internalType: "bool"; name: "hasMore"; type: "bool" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "granteeId"; type: "uint256" },
                      ];
                      name: "grantees";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "owner"; type: "address" },
                                  { internalType: "address"; name: "granteeAddress"; type: "address" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                                  {
                                      internalType: "uint256[]";
                                      name: "permissionIds";
                                      type: "uint256[]";
                                  },
                              ];
                              internalType: "struct IDataPortabilityGrantees.GranteeInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "granteesCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "granteeId"; type: "uint256" },
                      ];
                      name: "granteesV2";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "owner"; type: "address" },
                                  { internalType: "address"; name: "granteeAddress"; type: "address" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                                  {
                                      internalType: "uint256";
                                      name: "permissionsCount";
                                      type: "uint256";
                                  },
                              ];
                              internalType: "struct IDataPortabilityGrantees.GranteeInfoV2";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "trustedForwarderAddress";
                              type: "address";
                          },
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "forwarder"; type: "address" },
                      ];
                      name: "isTrustedForwarder";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "proxiableUUID";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "owner"; type: "address" },
                          { internalType: "address"; name: "granteeAddress"; type: "address" },
                          { internalType: "string"; name: "publicKey"; type: "string" },
                      ];
                      name: "registerGrantee";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "granteeId"; type: "uint256" },
                          { internalType: "uint256"; name: "permissionId"; type: "uint256" },
                      ];
                      name: "removePermissionFromGrantee";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "bytes32"; name: "adminRole"; type: "bytes32" },
                      ];
                      name: "setRoleAdmin";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "trustedForwarder";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "trustedForwarderAddress";
                              type: "address";
                          },
                      ];
                      name: "updateTrustedForwarder";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newImplementation";
                              type: "address";
                          },
                          { internalType: "bytes"; name: "data"; type: "bytes" },
                      ];
                      name: "upgradeToAndCall";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
              ];
              DataRegistry: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "target"; type: "address" },
                      ];
                      name: "AddressEmptyCode";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "implementation"; type: "address" },
                      ];
                      name: "ERC1967InvalidImplementation";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC1967NonPayable"; type: "error" },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "FailedInnerCall"; type: "error" },
                  { inputs: readonly []; name: "FileNotFound"; type: "error" },
                  { inputs: readonly []; name: "FileUrlAlreadyUsed"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "schemaId"; type: "uint256" },
                      ];
                      name: "InvalidSchemaId";
                      type: "error";
                  },
                  { inputs: readonly []; name: "InvalidUrl"; type: "error" },
                  { inputs: readonly []; name: "NoPermission"; type: "error" },
                  { inputs: readonly []; name: "NotFileOwner"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "UUPSUnauthorizedCallContext";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "slot"; type: "bytes32" },
                      ];
                      name: "UUPSUnsupportedProxiableUUID";
                      type: "error";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "fileId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "ownerAddress";
                              type: "address";
                          },
                          { indexed: false; internalType: "string"; name: "url"; type: "string" },
                      ];
                      name: "FileAdded";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "fileId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "ownerAddress";
                              type: "address";
                          },
                          { indexed: false; internalType: "string"; name: "url"; type: "string" },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "schemaId";
                              type: "uint256";
                          },
                      ];
                      name: "FileAddedV2";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "fileId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "PermissionGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "fileId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "ownerAddress";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "proofIndex";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "dlpId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "score";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "proofUrl";
                              type: "string";
                          },
                      ];
                      name: "ProofAdded";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "fileId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "refinerId";
                              type: "uint256";
                          },
                          { indexed: false; internalType: "string"; name: "url"; type: "string" },
                      ];
                      name: "RefinementAdded";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "fileId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "refinerId";
                              type: "uint256";
                          },
                          { indexed: false; internalType: "string"; name: "url"; type: "string" },
                      ];
                      name: "RefinementUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "implementation";
                              type: "address";
                          },
                      ];
                      name: "Upgraded";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "DATA_PORTABILITY_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MAINTAINER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "REFINEMENT_SERVICE_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "UPGRADE_INTERFACE_VERSION";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "string"; name: "url"; type: "string" },
                      ];
                      name: "addFile";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "fileId"; type: "uint256" },
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "string"; name: "key"; type: "string" },
                      ];
                      name: "addFilePermission";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "fileId"; type: "uint256" },
                          {
                              components: readonly [
                                  { internalType: "address"; name: "account"; type: "address" },
                                  { internalType: "string"; name: "key"; type: "string" },
                              ];
                              internalType: "struct IDataRegistry.Permission[]";
                              name: "permissions";
                              type: "tuple[]";
                          },
                          { internalType: "uint256"; name: "schemaId"; type: "uint256" },
                      ];
                      name: "addFilePermissionsAndSchema";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "string"; name: "url"; type: "string" },
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          {
                              components: readonly [
                                  { internalType: "address"; name: "account"; type: "address" },
                                  { internalType: "string"; name: "key"; type: "string" },
                              ];
                              internalType: "struct IDataRegistry.Permission[]";
                              name: "permissions";
                              type: "tuple[]";
                          },
                      ];
                      name: "addFileWithPermissions";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "string"; name: "url"; type: "string" },
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          {
                              components: readonly [
                                  { internalType: "address"; name: "account"; type: "address" },
                                  { internalType: "string"; name: "key"; type: "string" },
                              ];
                              internalType: "struct IDataRegistry.Permission[]";
                              name: "permissions";
                              type: "tuple[]";
                          },
                          { internalType: "uint256"; name: "schemaId"; type: "uint256" },
                      ];
                      name: "addFileWithPermissionsAndSchema";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "string"; name: "url"; type: "string" },
                          { internalType: "uint256"; name: "schemaId"; type: "uint256" },
                      ];
                      name: "addFileWithSchema";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "fileId"; type: "uint256" },
                          {
                              components: readonly [
                                  { internalType: "bytes"; name: "signature"; type: "bytes" },
                                  {
                                      components: readonly [
                                          { internalType: ...; name: ...; type: ... },
                                          { internalType: ...; name: ...; type: ... },
                                          { internalType: ...; name: ...; type: ... },
                                          { internalType: ...; name: ...; type: ... },
                                          { internalType: ...; name: ...; type: ... },
                                      ];
                                      internalType: "struct IDataRegistry.ProofData";
                                      name: "data";
                                      type: "tuple";
                                  },
                              ];
                              internalType: "struct IDataRegistry.Proof";
                              name: "proof";
                              type: "tuple";
                          },
                      ];
                      name: "addProof";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "fileId"; type: "uint256" },
                          { internalType: "uint256"; name: "refinerId"; type: "uint256" },
                          { internalType: "string"; name: "url"; type: "string" },
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "string"; name: "key"; type: "string" },
                      ];
                      name: "addRefinementWithPermission";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "dataRefinerRegistry";
                      outputs: readonly [
                          {
                              internalType: "contract IDataRefinerRegistry";
                              name: "";
                              type: "address";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "emitLegacyEvents";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "string"; name: "url"; type: "string" },
                      ];
                      name: "fileIdByUrl";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "fileId"; type: "uint256" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "filePermissions";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "fileId"; type: "uint256" },
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                      ];
                      name: "fileProofs";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "bytes"; name: "signature"; type: "bytes" },
                                  {
                                      components: readonly [
                                          { internalType: ...; name: ...; type: ... },
                                          { internalType: ...; name: ...; type: ... },
                                          { internalType: ...; name: ...; type: ... },
                                          { internalType: ...; name: ...; type: ... },
                                          { internalType: ...; name: ...; type: ... },
                                      ];
                                      internalType: "struct IDataRegistry.ProofData";
                                      name: "data";
                                      type: "tuple";
                                  },
                              ];
                              internalType: "struct IDataRegistry.Proof";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "fileId"; type: "uint256" },
                          { internalType: "uint256"; name: "refinerId"; type: "uint256" },
                      ];
                      name: "fileRefinements";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "fileId"; type: "uint256" },
                      ];
                      name: "files";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "id"; type: "uint256" },
                                  { internalType: "address"; name: "ownerAddress"; type: "address" },
                                  { internalType: "string"; name: "url"; type: "string" },
                                  { internalType: "uint256"; name: "schemaId"; type: "uint256" },
                                  { internalType: "uint256"; name: "addedAtBlock"; type: "uint256" },
                              ];
                              internalType: "struct IDataRegistry.FileResponse";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "filesCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "trustedForwarderAddress";
                              type: "address";
                          },
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "forwarder"; type: "address" },
                      ];
                      name: "isTrustedForwarder";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                      ];
                      name: "multicall";
                      outputs: readonly [
                          { internalType: "bytes[]"; name: "results"; type: "bytes[]" },
                      ];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "proxiableUUID";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "bytes32"; name: "adminRole"; type: "bytes32" },
                      ];
                      name: "setRoleAdmin";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "trustedForwarder";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "contract IDataRefinerRegistry";
                              name: "newDataRefinerRegistry";
                              type: "address";
                          },
                      ];
                      name: "updateDataRefinerRegistry";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bool"; name: "newEmitLegacyEvents"; type: "bool" },
                      ];
                      name: "updateEmitLegacyEvents";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "trustedForwarderAddress";
                              type: "address";
                          },
                      ];
                      name: "updateTrustedForwarder";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newImplementation";
                              type: "address";
                          },
                          { internalType: "bytes"; name: "data"; type: "bytes" },
                      ];
                      name: "upgradeToAndCall";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "version";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "pure";
                      type: "function";
                  },
              ];
              TeePoolPhala: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "target"; type: "address" },
                      ];
                      name: "AddressEmptyCode";
                      type: "error";
                  },
                  { inputs: readonly []; name: "CancelDelayNotPassed"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "implementation"; type: "address" },
                      ];
                      name: "ERC1967InvalidImplementation";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC1967NonPayable"; type: "error" },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "FailedInnerCall"; type: "error" },
                  { inputs: readonly []; name: "InsufficientFee"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "InvalidJobStatus"; type: "error" },
                  { inputs: readonly []; name: "InvalidJobTee"; type: "error" },
                  { inputs: readonly []; name: "JobCompleted"; type: "error" },
                  { inputs: readonly []; name: "NoActiveTee"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  { inputs: readonly []; name: "NotJobOwner"; type: "error" },
                  { inputs: readonly []; name: "NothingToClaim"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "ReentrancyGuardReentrantCall";
                      type: "error";
                  },
                  { inputs: readonly []; name: "TeeAlreadyAdded"; type: "error" },
                  { inputs: readonly []; name: "TeeNotActive"; type: "error" },
                  { inputs: readonly []; name: "TransferFailed"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "UUPSUnauthorizedCallContext";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "slot"; type: "bytes32" },
                      ];
                      name: "UUPSUnsupportedProxiableUUID";
                      type: "error";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "teeAddress";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "amount";
                              type: "uint256";
                          },
                      ];
                      name: "Claimed";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "jobId";
                              type: "uint256";
                          },
                      ];
                      name: "JobCanceled";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "jobId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "fileId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "address";
                              name: "teeAddress";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "bidAmount";
                              type: "uint256";
                          },
                      ];
                      name: "JobSubmitted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "attestator";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "jobId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "fileId";
                              type: "uint256";
                          },
                      ];
                      name: "ProofAdded";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "teeAddress";
                              type: "address";
                          },
                      ];
                      name: "TeeAdded";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "teeAddress";
                              type: "address";
                          },
                      ];
                      name: "TeeRemoved";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "implementation";
                              type: "address";
                          },
                      ];
                      name: "Upgraded";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MAINTAINER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "UPGRADE_INTERFACE_VERSION";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "activeTeeList";
                      outputs: readonly [
                          { internalType: "address[]"; name: ""; type: "address[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                      ];
                      name: "activeTeeListAt";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "teeAddress"; type: "address" },
                                  { internalType: "string"; name: "url"; type: "string" },
                                  {
                                      internalType: "enum ITeePool.TeeStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "uint256"; name: "amount"; type: "uint256" },
                                  { internalType: "uint256"; name: "withdrawnAmount"; type: "uint256" },
                                  { internalType: "uint256"; name: "jobsCount"; type: "uint256" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                              ];
                              internalType: "struct ITeePool.TeeInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "activeTeesCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "jobId"; type: "uint256" },
                          {
                              components: readonly [
                                  { internalType: "bytes"; name: "signature"; type: "bytes" },
                                  {
                                      components: readonly [
                                          { internalType: ...; name: ...; type: ... },
                                          { internalType: ...; name: ...; type: ... },
                                          { internalType: ...; name: ...; type: ... },
                                          { internalType: ...; name: ...; type: ... },
                                          { internalType: ...; name: ...; type: ... },
                                      ];
                                      internalType: "struct IDataRegistry.ProofData";
                                      name: "data";
                                      type: "tuple";
                                  },
                              ];
                              internalType: "struct IDataRegistry.Proof";
                              name: "proof";
                              type: "tuple";
                          },
                      ];
                      name: "addProof";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                          { internalType: "string"; name: "url"; type: "string" },
                          { internalType: "string"; name: "publicKey"; type: "string" },
                      ];
                      name: "addTee";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "cancelDelay";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "jobId"; type: "uint256" },
                      ];
                      name: "cancelJob";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "claim";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "dataRegistry";
                      outputs: readonly [
                          {
                              internalType: "contract IDataRegistry";
                              name: "";
                              type: "address";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "fileId"; type: "uint256" },
                      ];
                      name: "fileJobIds";
                      outputs: readonly [
                          { internalType: "uint256[]"; name: ""; type: "uint256[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "trustedForwarderAddress";
                              type: "address";
                          },
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          {
                              internalType: "address";
                              name: "dataRegistryAddress";
                              type: "address";
                          },
                          {
                              internalType: "uint256";
                              name: "initialCancelDelay";
                              type: "uint256";
                          },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "isTee";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "forwarder"; type: "address" },
                      ];
                      name: "isTrustedForwarder";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "jobId"; type: "uint256" },
                      ];
                      name: "jobs";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "fileId"; type: "uint256" },
                                  { internalType: "uint256"; name: "bidAmount"; type: "uint256" },
                                  {
                                      internalType: "enum ITeePool.JobStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "uint256"; name: "addedTimestamp"; type: "uint256" },
                                  { internalType: "address"; name: "ownerAddress"; type: "address" },
                                  { internalType: "address"; name: "teeAddress"; type: "address" },
                              ];
                              internalType: "struct ITeePool.Job";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "jobsCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                      ];
                      name: "multicall";
                      outputs: readonly [
                          { internalType: "bytes[]"; name: "results"; type: "bytes[]" },
                      ];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "proxiableUUID";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "removeTee";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "fileId"; type: "uint256" },
                      ];
                      name: "requestContributionProof";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "fileId"; type: "uint256" },
                      ];
                      name: "submitJob";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teeFee";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                          { internalType: "uint256"; name: "start"; type: "uint256" },
                          { internalType: "uint256"; name: "limit"; type: "uint256" },
                      ];
                      name: "teeJobIdsPaginated";
                      outputs: readonly [
                          { internalType: "uint256[]"; name: ""; type: "uint256[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teeList";
                      outputs: readonly [
                          { internalType: "address[]"; name: ""; type: "address[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                      ];
                      name: "teeListAt";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "teeAddress"; type: "address" },
                                  { internalType: "string"; name: "url"; type: "string" },
                                  {
                                      internalType: "enum ITeePool.TeeStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "uint256"; name: "amount"; type: "uint256" },
                                  { internalType: "uint256"; name: "withdrawnAmount"; type: "uint256" },
                                  { internalType: "uint256"; name: "jobsCount"; type: "uint256" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                              ];
                              internalType: "struct ITeePool.TeeInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "tees";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "teeAddress"; type: "address" },
                                  { internalType: "string"; name: "url"; type: "string" },
                                  {
                                      internalType: "enum ITeePool.TeeStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "uint256"; name: "amount"; type: "uint256" },
                                  { internalType: "uint256"; name: "withdrawnAmount"; type: "uint256" },
                                  { internalType: "uint256"; name: "jobsCount"; type: "uint256" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                              ];
                              internalType: "struct ITeePool.TeeInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teesCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "trustedForwarder";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "newCancelDelay"; type: "uint256" },
                      ];
                      name: "updateCancelDelay";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "contract IDataRegistry";
                              name: "newDataRegistry";
                              type: "address";
                          },
                      ];
                      name: "updateDataRegistry";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "newTeeFee"; type: "uint256" },
                      ];
                      name: "updateTeeFee";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "trustedForwarderAddress";
                              type: "address";
                          },
                      ];
                      name: "updateTrustedForwarder";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newImplementation";
                              type: "address";
                          },
                          { internalType: "bytes"; name: "data"; type: "bytes" },
                      ];
                      name: "upgradeToAndCall";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "version";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "pure";
                      type: "function";
                  },
              ];
              ComputeEngine: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "target"; type: "address" },
                      ];
                      name: "AddressEmptyCode";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "AddressInsufficientBalance";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "implementation"; type: "address" },
                      ];
                      name: "ERC1967InvalidImplementation";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC1967NonPayable"; type: "error" },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "FailedInnerCall"; type: "error" },
                  { inputs: readonly []; name: "FailedToAssignTee"; type: "error" },
                  {
                      inputs: readonly [
                          {
                              internalType: "uint256";
                              name: "computeInstructionId";
                              type: "uint256";
                          },
                      ];
                      name: "InstructionNotFound";
                      type: "error";
                  },
                  { inputs: readonly []; name: "InsufficientBalance"; type: "error" },
                  { inputs: readonly []; name: "InvalidAmount"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  {
                      inputs: readonly [
                          {
                              internalType: "enum IComputeEngine.JobStatus";
                              name: "currentStatus";
                              type: "uint8";
                          },
                          {
                              internalType: "enum IComputeEngine.JobStatus";
                              name: "newStatus";
                              type: "uint8";
                          },
                      ];
                      name: "InvalidStatusTransition";
                      type: "error";
                  },
                  { inputs: readonly []; name: "InvalidVanaAmount"; type: "error" },
                  { inputs: readonly []; name: "JobAlreadyDone"; type: "error" },
                  { inputs: readonly []; name: "JobLifeCycleEnded"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "jobId"; type: "uint256" },
                      ];
                      name: "JobNotFound";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "jobId"; type: "uint256" },
                      ];
                      name: "JobNotSubmitted";
                      type: "error";
                  },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  { inputs: readonly []; name: "NotJobOwner"; type: "error" },
                  { inputs: readonly []; name: "NotLongRunningJob"; type: "error" },
                  { inputs: readonly []; name: "NotQueryEngine"; type: "error" },
                  { inputs: readonly []; name: "NotTee"; type: "error" },
                  { inputs: readonly []; name: "OnlyRegisteredJobStatus"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "ReentrancyGuardReentrantCall";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "token"; type: "address" },
                      ];
                      name: "SafeERC20FailedOperation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "jobId"; type: "uint256" },
                      ];
                      name: "TeeAlreadyAssigned";
                      type: "error";
                  },
                  { inputs: readonly []; name: "TeePoolNotFound"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "UUPSUnauthorizedCallContext";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "slot"; type: "bytes32" },
                      ];
                      name: "UUPSUnsupportedProxiableUUID";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "UnauthorizedPaymentRequestor";
                      type: "error";
                  },
                  { inputs: readonly []; name: "UnexpectedVanaDeposit"; type: "error" },
                  { inputs: readonly []; name: "ZeroAddress"; type: "error" },
                  { inputs: readonly []; name: "ZeroTeeAddress"; type: "error" },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "token";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "amount";
                              type: "uint256";
                          },
                      ];
                      name: "Deposit";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "jobId";
                              type: "uint256";
                          },
                      ];
                      name: "JobCanceled";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "jobId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "ownerAddress";
                              type: "address";
                          },
                      ];
                      name: "JobRegistered";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "jobId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "enum IComputeEngine.JobStatus";
                              name: "status";
                              type: "uint8";
                          },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "statusMessage";
                              type: "string";
                          },
                      ];
                      name: "JobStatusUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "jobId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "token";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "amount";
                              type: "uint256";
                          },
                      ];
                      name: "PaymentExecuted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "jobId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "bytes";
                              name: "reason";
                              type: "bytes";
                          },
                      ];
                      name: "TeeAssignmentFailed";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "jobId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "teePoolAddress";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "address";
                              name: "teeAddress";
                              type: "address";
                          },
                      ];
                      name: "TeeAssignmentSucceeded";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "implementation";
                              type: "address";
                          },
                      ];
                      name: "Upgraded";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "token";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "amount";
                              type: "uint256";
                          },
                      ];
                      name: "Withdraw";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "DEDICATED_TIMEOUT";
                      outputs: readonly [{ internalType: "uint80"; name: ""; type: "uint80" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MAINTAINER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "UPGRADE_INTERFACE_VERSION";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "VANA";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "address"; name: "token"; type: "address" },
                      ];
                      name: "balanceOf";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "jobId"; type: "uint256" },
                      ];
                      name: "cancelJob";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "computeEngineTreasury";
                      outputs: readonly [
                          {
                              internalType: "contract IDataAccessTreasury";
                              name: "";
                              type: "address";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "token"; type: "address" },
                          { internalType: "uint256"; name: "amount"; type: "uint256" },
                      ];
                      name: "deposit";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "token"; type: "address" },
                          { internalType: "uint256"; name: "amount"; type: "uint256" },
                          { internalType: "bytes"; name: "metadata"; type: "bytes" },
                      ];
                      name: "executePaymentRequest";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          { internalType: "address"; name: "initQueryEngine"; type: "address" },
                          {
                              internalType: "contract IComputeEngineTeePoolFactory";
                              name: "initTeePoolFactory";
                              type: "address";
                          },
                          {
                              internalType: "contract DataAccessTreasuryProxyFactory";
                              name: "initDataAccessTreasuryFactory";
                              type: "address";
                          },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "instructionRegistry";
                      outputs: readonly [
                          {
                              internalType: "contract IComputeInstructionRegistry";
                              name: "";
                              type: "address";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "jobId"; type: "uint256" },
                      ];
                      name: "jobs";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "ownerAddress"; type: "address" },
                                  { internalType: "uint80"; name: "maxTimeout"; type: "uint80" },
                                  { internalType: "bool"; name: "gpuRequired"; type: "bool" },
                                  {
                                      internalType: "enum IComputeEngine.JobStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "address"; name: "teeAddress"; type: "address" },
                                  {
                                      internalType: "uint32";
                                      name: "computeInstructionId";
                                      type: "uint32";
                                  },
                                  { internalType: "uint48"; name: "addedTimestamp"; type: "uint48" },
                                  { internalType: "string"; name: "statusMessage"; type: "string" },
                                  { internalType: "address"; name: "teePoolAddress"; type: "address" },
                              ];
                              internalType: "struct IComputeEngine.Job";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "jobsCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "jobId"; type: "uint256" },
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                          { internalType: "address"; name: "token"; type: "address" },
                      ];
                      name: "paymentInfo";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "proxiableUUID";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "queryEngine";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "jobId"; type: "uint256" },
                      ];
                      name: "resubmitJob";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "jobId"; type: "uint256" },
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "resubmitJobWithTee";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint80"; name: "maxTimeout"; type: "uint80" },
                          { internalType: "bool"; name: "gpuRequired"; type: "bool" },
                          {
                              internalType: "uint256";
                              name: "computeInstructionId";
                              type: "uint256";
                          },
                      ];
                      name: "submitJob";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint80"; name: "maxTimeout"; type: "uint80" },
                          { internalType: "bool"; name: "gpuRequired"; type: "bool" },
                          {
                              internalType: "uint256";
                              name: "computeInstructionId";
                              type: "uint256";
                          },
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "submitJobWithTee";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teePoolFactory";
                      outputs: readonly [
                          {
                              internalType: "contract IComputeEngineTeePoolFactory";
                              name: "";
                              type: "address";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "contract IDataAccessTreasury";
                              name: "newComputeEngineTreasuryAddress";
                              type: "address";
                          },
                      ];
                      name: "updateComputeEngineTreasury";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "contract IComputeInstructionRegistry";
                              name: "newInstructionRegistry";
                              type: "address";
                          },
                      ];
                      name: "updateInstructionRegistry";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "jobId"; type: "uint256" },
                          {
                              internalType: "enum IComputeEngine.JobStatus";
                              name: "status";
                              type: "uint8";
                          },
                          { internalType: "string"; name: "statusMessage"; type: "string" },
                      ];
                      name: "updateJobStatus";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newQueryEngineAddress";
                              type: "address";
                          },
                      ];
                      name: "updateQueryEngine";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "contract IComputeEngineTeePoolFactory";
                              name: "newTeePoolFactory";
                              type: "address";
                          },
                      ];
                      name: "updateTeePoolFactory";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newImplementation";
                              type: "address";
                          },
                          { internalType: "bytes"; name: "data"; type: "bytes" },
                      ];
                      name: "upgradeToAndCall";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "jobId"; type: "uint256" },
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                      ];
                      name: "vanaPaymentInfo";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "version";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "pure";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "token"; type: "address" },
                          { internalType: "uint256"; name: "amount"; type: "uint256" },
                      ];
                      name: "withdraw";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
              ];
              DataRefinerRegistry: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "target"; type: "address" },
                      ];
                      name: "AddressEmptyCode";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "implementation"; type: "address" },
                      ];
                      name: "ERC1967InvalidImplementation";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC1967NonPayable"; type: "error" },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "FailedInnerCall"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "schemaId"; type: "uint256" },
                      ];
                      name: "InvalidSchemaId";
                      type: "error";
                  },
                  { inputs: readonly []; name: "NotDlpOwner"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "UUPSUnauthorizedCallContext";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "slot"; type: "bytes32" },
                      ];
                      name: "UUPSUnsupportedProxiableUUID";
                      type: "error";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "refinerId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "dlpId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "name";
                              type: "string";
                          },
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "schemaId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "schemaDefinitionUrl";
                              type: "string";
                          },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "refinementInstructionUrl";
                              type: "string";
                          },
                      ];
                      name: "RefinerAdded";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "schemaId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "name";
                              type: "string";
                          },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "dialect";
                              type: "string";
                          },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "definitionUrl";
                              type: "string";
                          },
                      ];
                      name: "SchemaAdded";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "implementation";
                              type: "address";
                          },
                      ];
                      name: "Upgraded";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MAINTAINER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "UPGRADE_INTERFACE_VERSION";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                          { internalType: "address"; name: "refinementService"; type: "address" },
                      ];
                      name: "addRefinementService";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                          { internalType: "string"; name: "name"; type: "string" },
                          { internalType: "string"; name: "schemaDefinitionUrl"; type: "string" },
                          {
                              internalType: "string";
                              name: "refinementInstructionUrl";
                              type: "string";
                          },
                      ];
                      name: "addRefiner";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                          { internalType: "string"; name: "name"; type: "string" },
                          { internalType: "uint256"; name: "schemaId"; type: "uint256" },
                          {
                              internalType: "string";
                              name: "refinementInstructionUrl";
                              type: "string";
                          },
                      ];
                      name: "addRefinerWithSchemaId";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "string"; name: "name"; type: "string" },
                          { internalType: "string"; name: "dialect"; type: "string" },
                          { internalType: "string"; name: "definitionUrl"; type: "string" },
                      ];
                      name: "addSchema";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                      ];
                      name: "dlpRefinementServices";
                      outputs: readonly [
                          { internalType: "address[]"; name: ""; type: "address[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                      ];
                      name: "dlpRefiners";
                      outputs: readonly [
                          { internalType: "uint256[]"; name: ""; type: "uint256[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "dlpRegistry";
                      outputs: readonly [
                          { internalType: "contract IDLPRegistry"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          {
                              internalType: "address";
                              name: "initDlpRegistryAddress";
                              type: "address";
                          },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "refinerId"; type: "uint256" },
                          { internalType: "address"; name: "refinementService"; type: "address" },
                      ];
                      name: "isRefinementService";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "schemaId"; type: "uint256" },
                      ];
                      name: "isValidSchemaId";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "proxiableUUID";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "refinerId"; type: "uint256" },
                      ];
                      name: "refiners";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                                  { internalType: "address"; name: "owner"; type: "address" },
                                  { internalType: "string"; name: "name"; type: "string" },
                                  {
                                      internalType: "string";
                                      name: "schemaDefinitionUrl";
                                      type: "string";
                                  },
                                  {
                                      internalType: "string";
                                      name: "refinementInstructionUrl";
                                      type: "string";
                                  },
                                  { internalType: "uint256"; name: "schemaId"; type: "uint256" },
                              ];
                              internalType: "struct IDataRefinerRegistry.RefinerInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "refinersCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                          { internalType: "address"; name: "refinementService"; type: "address" },
                      ];
                      name: "removeRefinementService";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "schemaId"; type: "uint256" },
                      ];
                      name: "schemas";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "string"; name: "name"; type: "string" },
                                  { internalType: "string"; name: "dialect"; type: "string" },
                                  { internalType: "string"; name: "definitionUrl"; type: "string" },
                              ];
                              internalType: "struct IDataRefinerRegistry.Schema";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "schemasCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                      ];
                      name: "updateDlpRefinersOwner";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newDlpRegistryAddress";
                              type: "address";
                          },
                      ];
                      name: "updateDlpRegistry";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "refinerId"; type: "uint256" },
                      ];
                      name: "updateRefinerOwner";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "refinerId"; type: "uint256" },
                          { internalType: "uint256"; name: "newSchemaId"; type: "uint256" },
                      ];
                      name: "updateSchemaId";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newImplementation";
                              type: "address";
                          },
                          { internalType: "bytes"; name: "data"; type: "bytes" },
                      ];
                      name: "upgradeToAndCall";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "version";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "pure";
                      type: "function";
                  },
              ];
              QueryEngine: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "target"; type: "address" },
                      ];
                      name: "AddressEmptyCode";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "AddressInsufficientBalance";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ColumnNameUnexpected"; type: "error" },
                  { inputs: readonly []; name: "DlpNotFound"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "implementation"; type: "address" },
                      ];
                      name: "ERC1967InvalidImplementation";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC1967NonPayable"; type: "error" },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "FailedInnerCall"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "InvalidDlpPaymentPercentage";
                      type: "error";
                  },
                  { inputs: readonly []; name: "InvalidDlpTreasuryAddress"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "token"; type: "address" },
                      ];
                      name: "InvalidPaymentToken";
                      type: "error";
                  },
                  { inputs: readonly []; name: "NotDlpOwner"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  { inputs: readonly []; name: "NotRefinerOwner"; type: "error" },
                  { inputs: readonly []; name: "PaymentNotReceived"; type: "error" },
                  { inputs: readonly []; name: "PermissionNotFound"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "ReentrancyGuardReentrantCall";
                      type: "error";
                  },
                  { inputs: readonly []; name: "RefinerNotFound"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "token"; type: "address" },
                      ];
                      name: "SafeERC20FailedOperation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "token"; type: "address" },
                      ];
                      name: "TokenAlreadyWhitelisted";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "UUPSUnauthorizedCallContext";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "slot"; type: "bytes32" },
                      ];
                      name: "UUPSUnsupportedProxiableUUID";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ZeroAddress"; type: "error" },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "dlpId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "dlpTreasuryAddress";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "token";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "amount";
                              type: "uint256";
                          },
                      ];
                      name: "DlpPaymentClaimed";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "token";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "amount";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "jobId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "refinerId";
                              type: "uint256";
                          },
                      ];
                      name: "PaymentReceived";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "permissionId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "grantee";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "refinerId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "tableName";
                              type: "string";
                          },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "columnName";
                              type: "string";
                          },
                          {
                              indexed: false;
                              internalType: "address";
                              name: "tokenAddress";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "price";
                              type: "uint256";
                          },
                      ];
                      name: "PermissionAdded";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "permissionId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "bool";
                              name: "approved";
                              type: "bool";
                          },
                      ];
                      name: "PermissionApprovalUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "implementation";
                              type: "address";
                          },
                      ];
                      name: "Upgraded";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MAINTAINER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "ONE_HUNDRED_PERCENT";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "QUERY_ENGINE_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "UPGRADE_INTERFACE_VERSION";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "VANA";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "refinerId"; type: "uint256" },
                          { internalType: "string"; name: "tableName"; type: "string" },
                          { internalType: "string"; name: "columnName"; type: "string" },
                          { internalType: "address"; name: "tokenAddress"; type: "address" },
                          { internalType: "uint256"; name: "price"; type: "uint256" },
                      ];
                      name: "addGenericPermission";
                      outputs: readonly [
                          { internalType: "uint256"; name: "permissionId"; type: "uint256" },
                      ];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "token"; type: "address" },
                      ];
                      name: "addPaymentToken";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "grantee"; type: "address" },
                          { internalType: "uint256"; name: "refinerId"; type: "uint256" },
                          { internalType: "string"; name: "tableName"; type: "string" },
                          { internalType: "string"; name: "columnName"; type: "string" },
                          { internalType: "address"; name: "tokenAddress"; type: "address" },
                          { internalType: "uint256"; name: "price"; type: "uint256" },
                      ];
                      name: "addPermission";
                      outputs: readonly [
                          { internalType: "uint256"; name: "permissionId"; type: "uint256" },
                      ];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                          { internalType: "address"; name: "token"; type: "address" },
                      ];
                      name: "balanceOf";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                          { internalType: "address"; name: "token"; type: "address" },
                      ];
                      name: "claimDlpPayment";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "computeEngine";
                      outputs: readonly [
                          {
                              internalType: "contract IComputeEngine";
                              name: "";
                              type: "address";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "dlpPaymentPercentage";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                      ];
                      name: "dlpPubKeys";
                      outputs: readonly [
                          { internalType: "string"; name: "pubKey"; type: "string" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "refinerId"; type: "uint256" },
                          { internalType: "address"; name: "grantee"; type: "address" },
                      ];
                      name: "getPermissions";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "permissionId"; type: "uint256" },
                                  { internalType: "address"; name: "grantee"; type: "address" },
                                  { internalType: "bool"; name: "approved"; type: "bool" },
                                  { internalType: "uint256"; name: "refinerId"; type: "uint256" },
                                  { internalType: "string"; name: "tableName"; type: "string" },
                                  { internalType: "string"; name: "columnName"; type: "string" },
                                  { internalType: "uint256"; name: "price"; type: "uint256" },
                                  { internalType: "address"; name: "tokenAddress"; type: "address" },
                              ];
                              internalType: "struct IQueryEngine.PermissionInfo[]";
                              name: "";
                              type: "tuple[]";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          {
                              internalType: "address";
                              name: "initRefinerRegistryAddress";
                              type: "address";
                          },
                          {
                              internalType: "contract DataAccessTreasuryProxyFactory";
                              name: "initDataAccessTreasuryFactory";
                              type: "address";
                          },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "permissionId"; type: "uint256" },
                      ];
                      name: "permissions";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "grantee"; type: "address" },
                                  { internalType: "bool"; name: "approved"; type: "bool" },
                                  { internalType: "uint256"; name: "refinerId"; type: "uint256" },
                                  { internalType: "string"; name: "tableName"; type: "string" },
                                  { internalType: "string"; name: "columnName"; type: "string" },
                                  { internalType: "uint256"; name: "price"; type: "uint256" },
                                  { internalType: "address"; name: "tokenAddress"; type: "address" },
                              ];
                              internalType: "struct IQueryEngine.Permission";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "permissionsCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "proxiableUUID";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "queryEngineTreasury";
                      outputs: readonly [
                          {
                              internalType: "contract IDataAccessTreasury";
                              name: "";
                              type: "address";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "refinerRegistry";
                      outputs: readonly [
                          {
                              internalType: "contract IDataRefinerRegistry";
                              name: "";
                              type: "address";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "token"; type: "address" },
                      ];
                      name: "removePaymentToken";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "token"; type: "address" },
                          { internalType: "uint256"; name: "amount"; type: "uint256" },
                          { internalType: "bytes"; name: "metadata"; type: "bytes" },
                      ];
                      name: "requestPayment";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "token"; type: "address" },
                          { internalType: "uint256"; name: "amount"; type: "uint256" },
                          { internalType: "uint256"; name: "jobId"; type: "uint256" },
                          { internalType: "uint256"; name: "refinerId"; type: "uint256" },
                      ];
                      name: "requestPaymentInToken";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "amount"; type: "uint256" },
                          { internalType: "uint256"; name: "jobId"; type: "uint256" },
                          { internalType: "uint256"; name: "refinerId"; type: "uint256" },
                      ];
                      name: "requestPaymentInVana";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newComputeEngineAddress";
                              type: "address";
                          },
                      ];
                      name: "updateComputeEngine";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "uint256";
                              name: "newDlpPaymentPercentage";
                              type: "uint256";
                          },
                      ];
                      name: "updateDlpPaymentPercentage";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                          { internalType: "string"; name: "pubKey"; type: "string" },
                      ];
                      name: "updateDlpPubKey";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "permissionId"; type: "uint256" },
                          { internalType: "bool"; name: "approved"; type: "bool" },
                      ];
                      name: "updatePermissionApproval";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "contract IDataAccessTreasury";
                              name: "newQueryEngineTreasury";
                              type: "address";
                          },
                      ];
                      name: "updateQueryEngineTreasury";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newRefinerRegistryAddress";
                              type: "address";
                          },
                      ];
                      name: "updateRefinerRegistry";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newVanaTreasury";
                              type: "address";
                          },
                      ];
                      name: "updateVanaTreasury";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newImplementation";
                              type: "address";
                          },
                          { internalType: "bytes"; name: "data"; type: "bytes" },
                      ];
                      name: "upgradeToAndCall";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "vanaTreasury";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "version";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "pure";
                      type: "function";
                  },
                  { stateMutability: "payable"; type: "receive" },
              ];
              ComputeInstructionRegistry: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "target"; type: "address" },
                      ];
                      name: "AddressEmptyCode";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "instructionId"; type: "uint256" },
                      ];
                      name: "ComputeInstructionNotFound";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "implementation"; type: "address" },
                      ];
                      name: "ERC1967InvalidImplementation";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC1967NonPayable"; type: "error" },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "FailedInnerCall"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "NotDlpOwner"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "UUPSUnauthorizedCallContext";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "slot"; type: "bytes32" },
                      ];
                      name: "UUPSUnsupportedProxiableUUID";
                      type: "error";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "computeInstructionId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "owner";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "computeInstructionUrl";
                              type: "string";
                          },
                          {
                              indexed: false;
                              internalType: "bytes32";
                              name: "computeInstructionHash";
                              type: "bytes32";
                          },
                      ];
                      name: "ComputeInstructionAdded";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "computeInstructionId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "dlpId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "bool";
                              name: "approved";
                              type: "bool";
                          },
                      ];
                      name: "ComputeInstructionUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "implementation";
                              type: "address";
                          },
                      ];
                      name: "Upgraded";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MAINTAINER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "UPGRADE_INTERFACE_VERSION";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "hash"; type: "bytes32" },
                          { internalType: "string"; name: "url"; type: "string" },
                      ];
                      name: "addComputeInstruction";
                      outputs: readonly [
                          {
                              internalType: "uint256";
                              name: "computeInstructionId";
                              type: "uint256";
                          },
                      ];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "dlpRegistry";
                      outputs: readonly [
                          { internalType: "contract IDLPRegistry"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          {
                              internalType: "address";
                              name: "initDlpRegistryAddress";
                              type: "address";
                          },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "instructionId"; type: "uint256" },
                      ];
                      name: "instructions";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "bytes32"; name: "hash"; type: "bytes32" },
                                  { internalType: "address"; name: "owner"; type: "address" },
                                  { internalType: "string"; name: "url"; type: "string" },
                              ];
                              internalType: "struct IComputeInstructionRegistry.ComputeInstructionInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "instructionsCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "instructionId"; type: "uint256" },
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                      ];
                      name: "isApproved";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "instructionId"; type: "uint256" },
                      ];
                      name: "isValidInstructionId";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "proxiableUUID";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "instructionId"; type: "uint256" },
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                          { internalType: "bool"; name: "approved"; type: "bool" },
                      ];
                      name: "updateComputeInstruction";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newDlpRegistryAddress";
                              type: "address";
                          },
                      ];
                      name: "updateDlpRegistry";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newImplementation";
                              type: "address";
                          },
                          { internalType: "bytes"; name: "data"; type: "bytes" },
                      ];
                      name: "upgradeToAndCall";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "version";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "pure";
                      type: "function";
                  },
              ];
              TeePoolEphemeralStandard: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "HWRequirementNotMet"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "MaxTimeoutExceeded"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teePoolAddress"; type: "address" },
                      ];
                      name: "NoActiveTee";
                      type: "error";
                  },
                  { inputs: readonly []; name: "NotComputeEngine"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  { inputs: readonly []; name: "NotTeePoolFactory"; type: "error" },
                  { inputs: readonly []; name: "TeeAlreadyAdded"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "TeeNotActive";
                      type: "error";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "enum IComputeEngineTeePool.HardwareType";
                              name: "newHardwareType";
                              type: "uint8";
                          },
                      ];
                      name: "HardwareTypeUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "jobId";
                              type: "uint256";
                          },
                      ];
                      name: "JobRemoved";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "jobId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "address";
                              name: "teeAddress";
                              type: "address";
                          },
                      ];
                      name: "JobSubmitted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "teeAddress";
                              type: "address";
                          },
                          { indexed: false; internalType: "string"; name: "url"; type: "string" },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "publicKey";
                              type: "string";
                          },
                      ];
                      name: "TeeAdded";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "enum IComputeEngineTeePool.TeePoolType";
                              name: "newTeePoolType";
                              type: "uint8";
                          },
                      ];
                      name: "TeePoolTypeUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "teeAddress";
                              type: "address";
                          },
                      ];
                      name: "TeeRemoved";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MAINTAINER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "activeTeeList";
                      outputs: readonly [
                          { internalType: "address[]"; name: ""; type: "address[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                      ];
                      name: "activeTeeListAt";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "teeAddress"; type: "address" },
                                  { internalType: "string"; name: "url"; type: "string" },
                                  {
                                      internalType: "enum IComputeEngineTeePool.TeeStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "uint256"; name: "jobsCount"; type: "uint256" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                              ];
                              internalType: "struct IComputeEngineTeePool.TeeInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "activeTeesCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                          { internalType: "bytes"; name: "params"; type: "bytes" },
                      ];
                      name: "addTee";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "computeEngine";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "hardwareType";
                      outputs: readonly [
                          {
                              internalType: "enum IComputeEngineTeePool.HardwareType";
                              name: "";
                              type: "uint8";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          { internalType: "address"; name: "initComputeEngine"; type: "address" },
                          {
                              internalType: "address";
                              name: "initTeePoolFactory";
                              type: "address";
                          },
                          {
                              internalType: "enum IComputeEngineTeePool.TeePoolType";
                              name: "initTeePoolType";
                              type: "uint8";
                          },
                          {
                              internalType: "enum IComputeEngineTeePool.HardwareType";
                              name: "initHardwareType";
                              type: "uint8";
                          },
                          { internalType: "uint80"; name: "initMaxTimeout"; type: "uint80" },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "isTee";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "maxTimeout";
                      outputs: readonly [{ internalType: "uint80"; name: ""; type: "uint80" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "jobId"; type: "uint256" },
                      ];
                      name: "removeJob";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "removeTee";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes"; name: "params"; type: "bytes" },
                      ];
                      name: "submitJob";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                          { internalType: "bytes"; name: ""; type: "bytes" },
                      ];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teeList";
                      outputs: readonly [
                          { internalType: "address[]"; name: ""; type: "address[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                      ];
                      name: "teeListAt";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "teeAddress"; type: "address" },
                                  { internalType: "string"; name: "url"; type: "string" },
                                  {
                                      internalType: "enum IComputeEngineTeePool.TeeStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "uint256"; name: "jobsCount"; type: "uint256" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                              ];
                              internalType: "struct IComputeEngineTeePool.TeeInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teePoolFactory";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teePoolType";
                      outputs: readonly [
                          {
                              internalType: "enum IComputeEngineTeePool.TeePoolType";
                              name: "";
                              type: "uint8";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "tees";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "teeAddress"; type: "address" },
                                  { internalType: "string"; name: "url"; type: "string" },
                                  {
                                      internalType: "enum IComputeEngineTeePool.TeeStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "uint256"; name: "jobsCount"; type: "uint256" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                              ];
                              internalType: "struct IComputeEngineTeePool.TeeInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teesCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newComputeEngine";
                              type: "address";
                          },
                      ];
                      name: "updateComputeEngine";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint80"; name: "newMaxTimeout"; type: "uint80" },
                      ];
                      name: "updateMaxTimeout";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newTeePoolFactory";
                              type: "address";
                          },
                      ];
                      name: "updateTeePoolFactory";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "version";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "pure";
                      type: "function";
                  },
              ];
              TeePoolPersistentStandard: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "HWRequirementNotMet"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "MaxTimeoutExceeded"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teePoolAddress"; type: "address" },
                      ];
                      name: "NoActiveTee";
                      type: "error";
                  },
                  { inputs: readonly []; name: "NotComputeEngine"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  { inputs: readonly []; name: "NotTeePoolFactory"; type: "error" },
                  { inputs: readonly []; name: "TeeAlreadyAdded"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "TeeNotActive";
                      type: "error";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "enum IComputeEngineTeePool.HardwareType";
                              name: "newHardwareType";
                              type: "uint8";
                          },
                      ];
                      name: "HardwareTypeUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "jobId";
                              type: "uint256";
                          },
                      ];
                      name: "JobRemoved";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "jobId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "address";
                              name: "teeAddress";
                              type: "address";
                          },
                      ];
                      name: "JobSubmitted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "teeAddress";
                              type: "address";
                          },
                          { indexed: false; internalType: "string"; name: "url"; type: "string" },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "publicKey";
                              type: "string";
                          },
                      ];
                      name: "TeeAdded";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "enum IComputeEngineTeePool.TeePoolType";
                              name: "newTeePoolType";
                              type: "uint8";
                          },
                      ];
                      name: "TeePoolTypeUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "teeAddress";
                              type: "address";
                          },
                      ];
                      name: "TeeRemoved";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MAINTAINER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "activeTeeList";
                      outputs: readonly [
                          { internalType: "address[]"; name: ""; type: "address[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                      ];
                      name: "activeTeeListAt";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "teeAddress"; type: "address" },
                                  { internalType: "string"; name: "url"; type: "string" },
                                  {
                                      internalType: "enum IComputeEngineTeePool.TeeStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "uint256"; name: "jobsCount"; type: "uint256" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                              ];
                              internalType: "struct IComputeEngineTeePool.TeeInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "activeTeesCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                          { internalType: "bytes"; name: "params"; type: "bytes" },
                      ];
                      name: "addTee";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "computeEngine";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "hardwareType";
                      outputs: readonly [
                          {
                              internalType: "enum IComputeEngineTeePool.HardwareType";
                              name: "";
                              type: "uint8";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          { internalType: "address"; name: "initComputeEngine"; type: "address" },
                          {
                              internalType: "address";
                              name: "initTeePoolFactory";
                              type: "address";
                          },
                          {
                              internalType: "enum IComputeEngineTeePool.TeePoolType";
                              name: "initTeePoolType";
                              type: "uint8";
                          },
                          {
                              internalType: "enum IComputeEngineTeePool.HardwareType";
                              name: "initHardwareType";
                              type: "uint8";
                          },
                          { internalType: "uint80"; name: "initMaxTimeout"; type: "uint80" },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "isTee";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "maxTimeout";
                      outputs: readonly [{ internalType: "uint80"; name: ""; type: "uint80" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "jobId"; type: "uint256" },
                      ];
                      name: "removeJob";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "removeTee";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes"; name: "params"; type: "bytes" },
                      ];
                      name: "submitJob";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                          { internalType: "bytes"; name: ""; type: "bytes" },
                      ];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teeList";
                      outputs: readonly [
                          { internalType: "address[]"; name: ""; type: "address[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                      ];
                      name: "teeListAt";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "teeAddress"; type: "address" },
                                  { internalType: "string"; name: "url"; type: "string" },
                                  {
                                      internalType: "enum IComputeEngineTeePool.TeeStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "uint256"; name: "jobsCount"; type: "uint256" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                              ];
                              internalType: "struct IComputeEngineTeePool.TeeInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teePoolFactory";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teePoolType";
                      outputs: readonly [
                          {
                              internalType: "enum IComputeEngineTeePool.TeePoolType";
                              name: "";
                              type: "uint8";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "tees";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "teeAddress"; type: "address" },
                                  { internalType: "string"; name: "url"; type: "string" },
                                  {
                                      internalType: "enum IComputeEngineTeePool.TeeStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "uint256"; name: "jobsCount"; type: "uint256" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                              ];
                              internalType: "struct IComputeEngineTeePool.TeeInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teesCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newComputeEngine";
                              type: "address";
                          },
                      ];
                      name: "updateComputeEngine";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint80"; name: "newMaxTimeout"; type: "uint80" },
                      ];
                      name: "updateMaxTimeout";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newTeePoolFactory";
                              type: "address";
                          },
                      ];
                      name: "updateTeePoolFactory";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "version";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "pure";
                      type: "function";
                  },
              ];
              TeePoolPersistentGpu: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "HWRequirementNotMet"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "MaxTimeoutExceeded"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teePoolAddress"; type: "address" },
                      ];
                      name: "NoActiveTee";
                      type: "error";
                  },
                  { inputs: readonly []; name: "NotComputeEngine"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  { inputs: readonly []; name: "NotTeePoolFactory"; type: "error" },
                  { inputs: readonly []; name: "TeeAlreadyAdded"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "TeeNotActive";
                      type: "error";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "enum IComputeEngineTeePool.HardwareType";
                              name: "newHardwareType";
                              type: "uint8";
                          },
                      ];
                      name: "HardwareTypeUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "jobId";
                              type: "uint256";
                          },
                      ];
                      name: "JobRemoved";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "jobId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "address";
                              name: "teeAddress";
                              type: "address";
                          },
                      ];
                      name: "JobSubmitted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "teeAddress";
                              type: "address";
                          },
                          { indexed: false; internalType: "string"; name: "url"; type: "string" },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "publicKey";
                              type: "string";
                          },
                      ];
                      name: "TeeAdded";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "enum IComputeEngineTeePool.TeePoolType";
                              name: "newTeePoolType";
                              type: "uint8";
                          },
                      ];
                      name: "TeePoolTypeUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "teeAddress";
                              type: "address";
                          },
                      ];
                      name: "TeeRemoved";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MAINTAINER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "activeTeeList";
                      outputs: readonly [
                          { internalType: "address[]"; name: ""; type: "address[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                      ];
                      name: "activeTeeListAt";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "teeAddress"; type: "address" },
                                  { internalType: "string"; name: "url"; type: "string" },
                                  {
                                      internalType: "enum IComputeEngineTeePool.TeeStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "uint256"; name: "jobsCount"; type: "uint256" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                              ];
                              internalType: "struct IComputeEngineTeePool.TeeInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "activeTeesCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                          { internalType: "bytes"; name: "params"; type: "bytes" },
                      ];
                      name: "addTee";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "computeEngine";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "hardwareType";
                      outputs: readonly [
                          {
                              internalType: "enum IComputeEngineTeePool.HardwareType";
                              name: "";
                              type: "uint8";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          { internalType: "address"; name: "initComputeEngine"; type: "address" },
                          {
                              internalType: "address";
                              name: "initTeePoolFactory";
                              type: "address";
                          },
                          {
                              internalType: "enum IComputeEngineTeePool.TeePoolType";
                              name: "initTeePoolType";
                              type: "uint8";
                          },
                          {
                              internalType: "enum IComputeEngineTeePool.HardwareType";
                              name: "initHardwareType";
                              type: "uint8";
                          },
                          { internalType: "uint80"; name: "initMaxTimeout"; type: "uint80" },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "isTee";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "maxTimeout";
                      outputs: readonly [{ internalType: "uint80"; name: ""; type: "uint80" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "jobId"; type: "uint256" },
                      ];
                      name: "removeJob";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "removeTee";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes"; name: "params"; type: "bytes" },
                      ];
                      name: "submitJob";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                          { internalType: "bytes"; name: ""; type: "bytes" },
                      ];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teeList";
                      outputs: readonly [
                          { internalType: "address[]"; name: ""; type: "address[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                      ];
                      name: "teeListAt";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "teeAddress"; type: "address" },
                                  { internalType: "string"; name: "url"; type: "string" },
                                  {
                                      internalType: "enum IComputeEngineTeePool.TeeStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "uint256"; name: "jobsCount"; type: "uint256" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                              ];
                              internalType: "struct IComputeEngineTeePool.TeeInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teePoolFactory";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teePoolType";
                      outputs: readonly [
                          {
                              internalType: "enum IComputeEngineTeePool.TeePoolType";
                              name: "";
                              type: "uint8";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "tees";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "teeAddress"; type: "address" },
                                  { internalType: "string"; name: "url"; type: "string" },
                                  {
                                      internalType: "enum IComputeEngineTeePool.TeeStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "uint256"; name: "jobsCount"; type: "uint256" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                              ];
                              internalType: "struct IComputeEngineTeePool.TeeInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teesCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newComputeEngine";
                              type: "address";
                          },
                      ];
                      name: "updateComputeEngine";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint80"; name: "newMaxTimeout"; type: "uint80" },
                      ];
                      name: "updateMaxTimeout";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newTeePoolFactory";
                              type: "address";
                          },
                      ];
                      name: "updateTeePoolFactory";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "version";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "pure";
                      type: "function";
                  },
              ];
              TeePoolDedicatedStandard: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "HWRequirementNotMet"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "MaxTimeoutExceeded"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teePoolAddress"; type: "address" },
                      ];
                      name: "NoActiveTee";
                      type: "error";
                  },
                  { inputs: readonly []; name: "NotComputeEngine"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  { inputs: readonly []; name: "NotTeePoolFactory"; type: "error" },
                  { inputs: readonly []; name: "TeeAlreadyAdded"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "TeeNotActive";
                      type: "error";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "enum IComputeEngineTeePool.HardwareType";
                              name: "newHardwareType";
                              type: "uint8";
                          },
                      ];
                      name: "HardwareTypeUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "jobId";
                              type: "uint256";
                          },
                      ];
                      name: "JobRemoved";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "jobId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "address";
                              name: "teeAddress";
                              type: "address";
                          },
                      ];
                      name: "JobSubmitted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "teeAddress";
                              type: "address";
                          },
                          { indexed: false; internalType: "string"; name: "url"; type: "string" },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "publicKey";
                              type: "string";
                          },
                      ];
                      name: "TeeAdded";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "enum IComputeEngineTeePool.TeePoolType";
                              name: "newTeePoolType";
                              type: "uint8";
                          },
                      ];
                      name: "TeePoolTypeUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "teeAddress";
                              type: "address";
                          },
                      ];
                      name: "TeeRemoved";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MAINTAINER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "activeTeeList";
                      outputs: readonly [
                          { internalType: "address[]"; name: ""; type: "address[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                      ];
                      name: "activeTeeListAt";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "teeAddress"; type: "address" },
                                  { internalType: "string"; name: "url"; type: "string" },
                                  {
                                      internalType: "enum IComputeEngineTeePool.TeeStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "uint256"; name: "jobsCount"; type: "uint256" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                              ];
                              internalType: "struct IComputeEngineTeePool.TeeInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "activeTeesCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                          { internalType: "bytes"; name: "params"; type: "bytes" },
                      ];
                      name: "addTee";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "computeEngine";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "hardwareType";
                      outputs: readonly [
                          {
                              internalType: "enum IComputeEngineTeePool.HardwareType";
                              name: "";
                              type: "uint8";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          { internalType: "address"; name: "initComputeEngine"; type: "address" },
                          {
                              internalType: "address";
                              name: "initTeePoolFactory";
                              type: "address";
                          },
                          {
                              internalType: "enum IComputeEngineTeePool.TeePoolType";
                              name: "initTeePoolType";
                              type: "uint8";
                          },
                          {
                              internalType: "enum IComputeEngineTeePool.HardwareType";
                              name: "initHardwareType";
                              type: "uint8";
                          },
                          { internalType: "uint80"; name: "initMaxTimeout"; type: "uint80" },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "isTee";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "maxTimeout";
                      outputs: readonly [{ internalType: "uint80"; name: ""; type: "uint80" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "jobId"; type: "uint256" },
                      ];
                      name: "removeJob";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "removeTee";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes"; name: "params"; type: "bytes" },
                      ];
                      name: "submitJob";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                          { internalType: "bytes"; name: ""; type: "bytes" },
                      ];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teeList";
                      outputs: readonly [
                          { internalType: "address[]"; name: ""; type: "address[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                      ];
                      name: "teeListAt";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "teeAddress"; type: "address" },
                                  { internalType: "string"; name: "url"; type: "string" },
                                  {
                                      internalType: "enum IComputeEngineTeePool.TeeStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "uint256"; name: "jobsCount"; type: "uint256" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                              ];
                              internalType: "struct IComputeEngineTeePool.TeeInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teePoolFactory";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teePoolType";
                      outputs: readonly [
                          {
                              internalType: "enum IComputeEngineTeePool.TeePoolType";
                              name: "";
                              type: "uint8";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "tees";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "teeAddress"; type: "address" },
                                  { internalType: "string"; name: "url"; type: "string" },
                                  {
                                      internalType: "enum IComputeEngineTeePool.TeeStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "uint256"; name: "jobsCount"; type: "uint256" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                              ];
                              internalType: "struct IComputeEngineTeePool.TeeInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teesCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newComputeEngine";
                              type: "address";
                          },
                      ];
                      name: "updateComputeEngine";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint80"; name: "newMaxTimeout"; type: "uint80" },
                      ];
                      name: "updateMaxTimeout";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newTeePoolFactory";
                              type: "address";
                          },
                      ];
                      name: "updateTeePoolFactory";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "version";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "pure";
                      type: "function";
                  },
              ];
              TeePoolDedicatedGpu: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "HWRequirementNotMet"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "MaxTimeoutExceeded"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teePoolAddress"; type: "address" },
                      ];
                      name: "NoActiveTee";
                      type: "error";
                  },
                  { inputs: readonly []; name: "NotComputeEngine"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  { inputs: readonly []; name: "NotTeePoolFactory"; type: "error" },
                  { inputs: readonly []; name: "TeeAlreadyAdded"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "TeeNotActive";
                      type: "error";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "enum IComputeEngineTeePool.HardwareType";
                              name: "newHardwareType";
                              type: "uint8";
                          },
                      ];
                      name: "HardwareTypeUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "jobId";
                              type: "uint256";
                          },
                      ];
                      name: "JobRemoved";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "jobId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "address";
                              name: "teeAddress";
                              type: "address";
                          },
                      ];
                      name: "JobSubmitted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "teeAddress";
                              type: "address";
                          },
                          { indexed: false; internalType: "string"; name: "url"; type: "string" },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "publicKey";
                              type: "string";
                          },
                      ];
                      name: "TeeAdded";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "enum IComputeEngineTeePool.TeePoolType";
                              name: "newTeePoolType";
                              type: "uint8";
                          },
                      ];
                      name: "TeePoolTypeUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "teeAddress";
                              type: "address";
                          },
                      ];
                      name: "TeeRemoved";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MAINTAINER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "activeTeeList";
                      outputs: readonly [
                          { internalType: "address[]"; name: ""; type: "address[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                      ];
                      name: "activeTeeListAt";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "teeAddress"; type: "address" },
                                  { internalType: "string"; name: "url"; type: "string" },
                                  {
                                      internalType: "enum IComputeEngineTeePool.TeeStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "uint256"; name: "jobsCount"; type: "uint256" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                              ];
                              internalType: "struct IComputeEngineTeePool.TeeInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "activeTeesCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                          { internalType: "bytes"; name: "params"; type: "bytes" },
                      ];
                      name: "addTee";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "computeEngine";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "hardwareType";
                      outputs: readonly [
                          {
                              internalType: "enum IComputeEngineTeePool.HardwareType";
                              name: "";
                              type: "uint8";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          { internalType: "address"; name: "initComputeEngine"; type: "address" },
                          {
                              internalType: "address";
                              name: "initTeePoolFactory";
                              type: "address";
                          },
                          {
                              internalType: "enum IComputeEngineTeePool.TeePoolType";
                              name: "initTeePoolType";
                              type: "uint8";
                          },
                          {
                              internalType: "enum IComputeEngineTeePool.HardwareType";
                              name: "initHardwareType";
                              type: "uint8";
                          },
                          { internalType: "uint80"; name: "initMaxTimeout"; type: "uint80" },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "isTee";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "maxTimeout";
                      outputs: readonly [{ internalType: "uint80"; name: ""; type: "uint80" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "jobId"; type: "uint256" },
                      ];
                      name: "removeJob";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "removeTee";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes"; name: "params"; type: "bytes" },
                      ];
                      name: "submitJob";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                          { internalType: "bytes"; name: ""; type: "bytes" },
                      ];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teeList";
                      outputs: readonly [
                          { internalType: "address[]"; name: ""; type: "address[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                      ];
                      name: "teeListAt";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "teeAddress"; type: "address" },
                                  { internalType: "string"; name: "url"; type: "string" },
                                  {
                                      internalType: "enum IComputeEngineTeePool.TeeStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "uint256"; name: "jobsCount"; type: "uint256" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                              ];
                              internalType: "struct IComputeEngineTeePool.TeeInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teePoolFactory";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teePoolType";
                      outputs: readonly [
                          {
                              internalType: "enum IComputeEngineTeePool.TeePoolType";
                              name: "";
                              type: "uint8";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "tees";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "teeAddress"; type: "address" },
                                  { internalType: "string"; name: "url"; type: "string" },
                                  {
                                      internalType: "enum IComputeEngineTeePool.TeeStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "uint256"; name: "jobsCount"; type: "uint256" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                              ];
                              internalType: "struct IComputeEngineTeePool.TeeInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teesCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newComputeEngine";
                              type: "address";
                          },
                      ];
                      name: "updateComputeEngine";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint80"; name: "newMaxTimeout"; type: "uint80" },
                      ];
                      name: "updateMaxTimeout";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newTeePoolFactory";
                              type: "address";
                          },
                      ];
                      name: "updateTeePoolFactory";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "version";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "pure";
                      type: "function";
                  },
              ];
              VanaEpoch: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "target"; type: "address" },
                      ];
                      name: "AddressEmptyCode";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "implementation"; type: "address" },
                      ];
                      name: "ERC1967InvalidImplementation";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC1967NonPayable"; type: "error" },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "EpochAlreadyFinalized"; type: "error" },
                  { inputs: readonly []; name: "EpochNotEnded"; type: "error" },
                  { inputs: readonly []; name: "EpochNotFinalized"; type: "error" },
                  {
                      inputs: readonly [
                          {
                              internalType: "uint256";
                              name: "totalRewardAmount";
                              type: "uint256";
                          },
                          { internalType: "uint256"; name: "epochRewardAmount"; type: "uint256" },
                      ];
                      name: "EpochRewardExceeded";
                      type: "error";
                  },
                  { inputs: readonly []; name: "EpochRewardNotDistributed"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "FailedInnerCall"; type: "error" },
                  { inputs: readonly []; name: "InvalidEpoch"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "LastEpochAlreadySet"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "lastEpoch"; type: "uint256" },
                      ];
                      name: "LastEpochExceeded";
                      type: "error";
                  },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "ReentrancyGuardReentrantCall";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "a"; type: "uint256" },
                          { internalType: "uint256"; name: "b"; type: "uint256" },
                      ];
                      name: "Test";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "UUPSUnauthorizedCallContext";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "slot"; type: "bytes32" },
                      ];
                      name: "UUPSUnsupportedProxiableUUID";
                      type: "error";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "epochId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "startBlock";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "endBlock";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "rewardAmount";
                              type: "uint256";
                          },
                      ];
                      name: "EpochCreated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "newDaySize";
                              type: "uint256";
                          },
                      ];
                      name: "EpochDayUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "epochId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "dlpId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "oldBonusAmount";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "newBonusAmount";
                              type: "uint256";
                          },
                      ];
                      name: "EpochDlpBonusUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "epochId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "dlpId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "rewardAmount";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "penaltyAmount";
                              type: "uint256";
                          },
                      ];
                      name: "EpochDlpRewardAdded";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "epochId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "dlpId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "rewardAmount";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "penaltyAmount";
                              type: "uint256";
                          },
                      ];
                      name: "EpochDlpRewardOverridden";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "epochId";
                              type: "uint256";
                          },
                      ];
                      name: "EpochFinalized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "newEpochRewardAmount";
                              type: "uint256";
                          },
                      ];
                      name: "EpochRewardAmountUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "newEpochSize";
                              type: "uint256";
                          },
                      ];
                      name: "EpochSizeUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "epochId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "startBlock";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "endBlock";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "rewardAmount";
                              type: "uint256";
                          },
                      ];
                      name: "EpochUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "lastEpoch";
                              type: "uint256";
                          },
                      ];
                      name: "LastEpochSet";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "implementation";
                              type: "address";
                          },
                      ];
                      name: "Upgraded";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "DLP_PERFORMANCE_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "DLP_REWARD_DEPLOYER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MAINTAINER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "UPGRADE_INTERFACE_VERSION";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "epochId"; type: "uint256" },
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                          { internalType: "uint256"; name: "amount"; type: "uint256" },
                      ];
                      name: "addEpochDlpBonusAmount";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "createEpochs";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "blockNumber"; type: "uint256" },
                      ];
                      name: "createEpochsUntilBlockNumber";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "daySize";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "dlpPerformance";
                      outputs: readonly [
                          {
                              internalType: "contract IDLPPerformance";
                              name: "";
                              type: "address";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "dlpRegistry";
                      outputs: readonly [
                          { internalType: "contract IDLPRegistry"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "dlpRewardDeployer";
                      outputs: readonly [
                          {
                              internalType: "contract IDLPRewardDeployer";
                              name: "";
                              type: "address";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "epochId"; type: "uint256" },
                      ];
                      name: "epochDlpIds";
                      outputs: readonly [
                          { internalType: "uint256[]"; name: ""; type: "uint256[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "epochId"; type: "uint256" },
                      ];
                      name: "epochDlpIdsWithBonus";
                      outputs: readonly [
                          { internalType: "uint256[]"; name: ""; type: "uint256[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "epochId"; type: "uint256" },
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                      ];
                      name: "epochDlps";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "bool"; name: "isTopDlp"; type: "bool" },
                                  { internalType: "uint256"; name: "rewardAmount"; type: "uint256" },
                                  { internalType: "uint256"; name: "penaltyAmount"; type: "uint256" },
                                  { internalType: "uint256"; name: "bonusAmount"; type: "uint256" },
                                  {
                                      internalType: "uint256";
                                      name: "distributedAmount";
                                      type: "uint256";
                                  },
                                  {
                                      internalType: "uint256";
                                      name: "distributedPenaltyAmount";
                                      type: "uint256";
                                  },
                              ];
                              internalType: "struct IVanaEpoch.EpochDlpInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "epochRewardAmount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "epochSize";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "epochId"; type: "uint256" },
                      ];
                      name: "epochs";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "startBlock"; type: "uint256" },
                                  { internalType: "uint256"; name: "endBlock"; type: "uint256" },
                                  { internalType: "uint256"; name: "rewardAmount"; type: "uint256" },
                                  { internalType: "bool"; name: "isFinalized"; type: "bool" },
                              ];
                              internalType: "struct IVanaEpoch.EpochInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "epochsCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "epochId"; type: "uint256" },
                      ];
                      name: "forceFinalizedEpoch";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "ownerAddress"; type: "address" },
                                  {
                                      internalType: "address";
                                      name: "dlpRegistryAddress";
                                      type: "address";
                                  },
                                  { internalType: "uint256"; name: "daySize"; type: "uint256" },
                                  { internalType: "uint256"; name: "epochSize"; type: "uint256" },
                                  {
                                      internalType: "uint256";
                                      name: "epochRewardAmount";
                                      type: "uint256";
                                  },
                              ];
                              internalType: "struct VanaEpochImplementation.InitializeParams";
                              name: "params";
                              type: "tuple";
                          },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "lastEpoch";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "epochId"; type: "uint256" },
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                          { internalType: "uint256"; name: "amount"; type: "uint256" },
                      ];
                      name: "overrideEpochDlpBonusAmount";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "epochId"; type: "uint256" },
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                          { internalType: "uint256"; name: "rewardAmount"; type: "uint256" },
                          { internalType: "uint256"; name: "penaltyAmount"; type: "uint256" },
                      ];
                      name: "overrideEpochDlpReward";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "proxiableUUID";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "epochId"; type: "uint256" },
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                                  { internalType: "uint256"; name: "rewardAmount"; type: "uint256" },
                                  { internalType: "uint256"; name: "penaltyAmount"; type: "uint256" },
                              ];
                              internalType: "struct IVanaEpoch.Rewards[]";
                              name: "dlpRewards";
                              type: "tuple[]";
                          },
                      ];
                      name: "saveEpochDlpRewards";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "_lastEpoch"; type: "uint256" },
                      ];
                      name: "setLastEpoch";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "newDaySize"; type: "uint256" },
                      ];
                      name: "updateDaySize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "dlpPerformanceAddress";
                              type: "address";
                          },
                      ];
                      name: "updateDlpPerformance";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "dlpRegistryAddress";
                              type: "address";
                          },
                      ];
                      name: "updateDlpRegistry";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "dlpRewardDeployerAddress";
                              type: "address";
                          },
                      ];
                      name: "updateDlpRewardDeployer";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "epochId"; type: "uint256" },
                          { internalType: "uint256"; name: "startBlock"; type: "uint256" },
                          { internalType: "uint256"; name: "endBlock"; type: "uint256" },
                          { internalType: "uint256"; name: "rewardAmount"; type: "uint256" },
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                                  { internalType: "uint256"; name: "rewardAmount"; type: "uint256" },
                                  { internalType: "uint256"; name: "penaltyAmount"; type: "uint256" },
                              ];
                              internalType: "struct IVanaEpoch.Rewards[]";
                              name: "dlpRewards";
                              type: "tuple[]";
                          },
                          { internalType: "bool"; name: "isFinalized"; type: "bool" },
                      ];
                      name: "updateEpoch";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "uint256";
                              name: "newEpochRewardAmount";
                              type: "uint256";
                          },
                      ];
                      name: "updateEpochRewardAmount";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "uint256";
                              name: "newEpochSizeInDays";
                              type: "uint256";
                          },
                      ];
                      name: "updateEpochSize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "newEpochsCount"; type: "uint256" },
                      ];
                      name: "updateEpochsCount";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newImplementation";
                              type: "address";
                          },
                          { internalType: "bytes"; name: "data"; type: "bytes" },
                      ];
                      name: "upgradeToAndCall";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "version";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "pure";
                      type: "function";
                  },
              ];
              DLPRegistry: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "target"; type: "address" },
                      ];
                      name: "AddressEmptyCode";
                      type: "error";
                  },
                  { inputs: readonly []; name: "DlpAddressCannotBeChanged"; type: "error" },
                  { inputs: readonly []; name: "DlpLpTokenIdNotSet"; type: "error" },
                  { inputs: readonly []; name: "DlpTokenNotSet"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "implementation"; type: "address" },
                      ];
                      name: "ERC1967InvalidImplementation";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC1967NonPayable"; type: "error" },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "FailedInnerCall"; type: "error" },
                  { inputs: readonly []; name: "InvalidAddress"; type: "error" },
                  { inputs: readonly []; name: "InvalidDepositAmount"; type: "error" },
                  { inputs: readonly []; name: "InvalidDlpId"; type: "error" },
                  { inputs: readonly []; name: "InvalidDlpStatus"; type: "error" },
                  { inputs: readonly []; name: "InvalidDlpVerification"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "InvalidLpTokenId"; type: "error" },
                  { inputs: readonly []; name: "InvalidName"; type: "error" },
                  { inputs: readonly []; name: "InvalidTokenAddress"; type: "error" },
                  { inputs: readonly []; name: "NotDlpOwner"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "ReentrancyGuardReentrantCall";
                      type: "error";
                  },
                  { inputs: readonly []; name: "TransferFailed"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "UUPSUnauthorizedCallContext";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "slot"; type: "bytes32" },
                      ];
                      name: "UUPSUnsupportedProxiableUUID";
                      type: "error";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "dlpId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "lpTokenId";
                              type: "uint256";
                          },
                      ];
                      name: "DlpLpTokenIdUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "dlpId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "dlpAddress";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "address";
                              name: "ownerAddress";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "address";
                              name: "treasuryAddress";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "name";
                              type: "string";
                          },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "iconUrl";
                              type: "string";
                          },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "website";
                              type: "string";
                          },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "metadata";
                              type: "string";
                          },
                      ];
                      name: "DlpRegistered";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "newDlpRegistrationDepositAmount";
                              type: "uint256";
                          },
                      ];
                      name: "DlpRegistrationDepositAmountUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "dlpId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "enum IDLPRegistry.DlpStatus";
                              name: "newStatus";
                              type: "uint8";
                          },
                      ];
                      name: "DlpStatusUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "dlpId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "address";
                              name: "tokenAddress";
                              type: "address";
                          },
                      ];
                      name: "DlpTokenUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "dlpId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "dlpAddress";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "address";
                              name: "ownerAddress";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "address";
                              name: "treasuryAddress";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "name";
                              type: "string";
                          },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "iconUrl";
                              type: "string";
                          },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "website";
                              type: "string";
                          },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "metadata";
                              type: "string";
                          },
                      ];
                      name: "DlpUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "dlpId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "verificationBlockNumber";
                              type: "uint256";
                          },
                      ];
                      name: "DlpVerificationBlockUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "dlpId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "bool";
                              name: "verified";
                              type: "bool";
                          },
                      ];
                      name: "DlpVerificationUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "implementation";
                              type: "address";
                          },
                      ];
                      name: "Upgraded";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MAINTAINER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "UPGRADE_INTERFACE_VERSION";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                      ];
                      name: "deregisterDlp";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "dlpAddress"; type: "address" },
                      ];
                      name: "dlpIds";
                      outputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "string"; name: "dlpName"; type: "string" },
                      ];
                      name: "dlpNameToId";
                      outputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "dlpRegistrationDepositAmount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                      ];
                      name: "dlps";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "id"; type: "uint256" },
                                  { internalType: "address"; name: "dlpAddress"; type: "address" },
                                  { internalType: "address"; name: "ownerAddress"; type: "address" },
                                  { internalType: "address"; name: "tokenAddress"; type: "address" },
                                  { internalType: "address"; name: "treasuryAddress"; type: "address" },
                                  { internalType: "string"; name: "name"; type: "string" },
                                  { internalType: "string"; name: "iconUrl"; type: "string" },
                                  { internalType: "string"; name: "website"; type: "string" },
                                  { internalType: "string"; name: "metadata"; type: "string" },
                                  {
                                      internalType: "uint256";
                                      name: "registrationBlockNumber";
                                      type: "uint256";
                                  },
                                  { internalType: "uint256"; name: "depositAmount"; type: "uint256" },
                                  {
                                      internalType: "enum IDLPRegistry.DlpStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "uint256"; name: "lpTokenId"; type: "uint256" },
                                  {
                                      internalType: "uint256";
                                      name: "verificationBlockNumber";
                                      type: "uint256";
                                  },
                              ];
                              internalType: "struct IDLPRegistry.DlpInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "dlpAddress"; type: "address" },
                      ];
                      name: "dlpsByAddress";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "id"; type: "uint256" },
                                  { internalType: "address"; name: "dlpAddress"; type: "address" },
                                  { internalType: "address"; name: "ownerAddress"; type: "address" },
                                  { internalType: "address"; name: "tokenAddress"; type: "address" },
                                  { internalType: "address"; name: "treasuryAddress"; type: "address" },
                                  { internalType: "string"; name: "name"; type: "string" },
                                  { internalType: "string"; name: "iconUrl"; type: "string" },
                                  { internalType: "string"; name: "website"; type: "string" },
                                  { internalType: "string"; name: "metadata"; type: "string" },
                                  {
                                      internalType: "uint256";
                                      name: "registrationBlockNumber";
                                      type: "uint256";
                                  },
                                  { internalType: "uint256"; name: "depositAmount"; type: "uint256" },
                                  {
                                      internalType: "enum IDLPRegistry.DlpStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "uint256"; name: "lpTokenId"; type: "uint256" },
                                  {
                                      internalType: "uint256";
                                      name: "verificationBlockNumber";
                                      type: "uint256";
                                  },
                              ];
                              internalType: "struct IDLPRegistry.DlpInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "string"; name: "dlpName"; type: "string" },
                      ];
                      name: "dlpsByName";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "id"; type: "uint256" },
                                  { internalType: "address"; name: "dlpAddress"; type: "address" },
                                  { internalType: "address"; name: "ownerAddress"; type: "address" },
                                  { internalType: "address"; name: "tokenAddress"; type: "address" },
                                  { internalType: "address"; name: "treasuryAddress"; type: "address" },
                                  { internalType: "string"; name: "name"; type: "string" },
                                  { internalType: "string"; name: "iconUrl"; type: "string" },
                                  { internalType: "string"; name: "website"; type: "string" },
                                  { internalType: "string"; name: "metadata"; type: "string" },
                                  {
                                      internalType: "uint256";
                                      name: "registrationBlockNumber";
                                      type: "uint256";
                                  },
                                  { internalType: "uint256"; name: "depositAmount"; type: "uint256" },
                                  {
                                      internalType: "enum IDLPRegistry.DlpStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "uint256"; name: "lpTokenId"; type: "uint256" },
                                  {
                                      internalType: "uint256";
                                      name: "verificationBlockNumber";
                                      type: "uint256";
                                  },
                              ];
                              internalType: "struct IDLPRegistry.DlpInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "dlpsCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                      ];
                      name: "eligibleDlpsListAt";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "eligibleDlpsListCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "eligibleDlpsListValues";
                      outputs: readonly [
                          { internalType: "uint256[]"; name: ""; type: "uint256[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                      ];
                      name: "isEligibleDlp";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "dlpRootCoreAddress";
                              type: "address";
                          },
                          { internalType: "uint256"; name: "startDlpId"; type: "uint256" },
                          { internalType: "uint256"; name: "endDlpId"; type: "uint256" },
                      ];
                      name: "migrateDlpData";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "proxiableUUID";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "dlpAddress"; type: "address" },
                                  { internalType: "address"; name: "ownerAddress"; type: "address" },
                                  {
                                      internalType: "address payable";
                                      name: "treasuryAddress";
                                      type: "address";
                                  },
                                  { internalType: "string"; name: "name"; type: "string" },
                                  { internalType: "string"; name: "iconUrl"; type: "string" },
                                  { internalType: "string"; name: "website"; type: "string" },
                                  { internalType: "string"; name: "metadata"; type: "string" },
                              ];
                              internalType: "struct IDLPRegistry.DlpRegistration";
                              name: "registrationInfo";
                              type: "tuple";
                          },
                      ];
                      name: "registerDlp";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "treasury";
                      outputs: readonly [
                          { internalType: "contract ITreasury"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                      ];
                      name: "unverifyDlp";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                          {
                              components: readonly [
                                  { internalType: "address"; name: "dlpAddress"; type: "address" },
                                  { internalType: "address"; name: "ownerAddress"; type: "address" },
                                  {
                                      internalType: "address payable";
                                      name: "treasuryAddress";
                                      type: "address";
                                  },
                                  { internalType: "string"; name: "name"; type: "string" },
                                  { internalType: "string"; name: "iconUrl"; type: "string" },
                                  { internalType: "string"; name: "website"; type: "string" },
                                  { internalType: "string"; name: "metadata"; type: "string" },
                              ];
                              internalType: "struct IDLPRegistry.DlpRegistration";
                              name: "dlpUpdateInfo";
                              type: "tuple";
                          },
                      ];
                      name: "updateDlp";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "uint256";
                              name: "newDlpRegistrationDepositAmount";
                              type: "uint256";
                          },
                      ];
                      name: "updateDlpRegistrationDepositAmount";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                          { internalType: "address"; name: "tokenAddress"; type: "address" },
                          { internalType: "uint256"; name: "lpTokenId"; type: "uint256" },
                      ];
                      name: "updateDlpToken";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                          { internalType: "address"; name: "tokenAddress"; type: "address" },
                          { internalType: "uint256"; name: "lpTokenId"; type: "uint256" },
                          {
                              internalType: "uint256";
                              name: "verificationBlockNumber";
                              type: "uint256";
                          },
                      ];
                      name: "updateDlpTokenAndVerification";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                          {
                              internalType: "uint256";
                              name: "verificationBlockNumber";
                              type: "uint256";
                          },
                      ];
                      name: "updateDlpVerificationBlock";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "treasuryAddress";
                              type: "address";
                          },
                      ];
                      name: "updateTreasury";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "vanaEpochAddress";
                              type: "address";
                          },
                      ];
                      name: "updateVanaEpoch";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newImplementation";
                              type: "address";
                          },
                          { internalType: "bytes"; name: "data"; type: "bytes" },
                      ];
                      name: "upgradeToAndCall";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "vanaEpoch";
                      outputs: readonly [
                          { internalType: "contract IVanaEpoch"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "version";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "pure";
                      type: "function";
                  },
              ];
              DLPRegistryTreasury: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "target"; type: "address" },
                      ];
                      name: "AddressEmptyCode";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "AddressInsufficientBalance";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "implementation"; type: "address" },
                      ];
                      name: "ERC1967InvalidImplementation";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC1967NonPayable"; type: "error" },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "FailedInnerCall"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "ReentrancyGuardReentrantCall";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "token"; type: "address" },
                      ];
                      name: "SafeERC20FailedOperation";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "UUPSUnauthorizedCallContext";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "slot"; type: "bytes32" },
                      ];
                      name: "UUPSUnsupportedProxiableUUID";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ZeroAddress"; type: "error" },
                  { inputs: readonly []; name: "ZeroAmount"; type: "error" },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "to";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "token";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "amount";
                              type: "uint256";
                          },
                      ];
                      name: "Transfer";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "implementation";
                              type: "address";
                          },
                      ];
                      name: "Upgraded";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "CUSTODIAN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "UPGRADE_INTERFACE_VERSION";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "VANA";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "custodian";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          { internalType: "address"; name: "initCustodian"; type: "address" },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "proxiableUUID";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "to"; type: "address" },
                          { internalType: "address"; name: "token"; type: "address" },
                          { internalType: "uint256"; name: "amount"; type: "uint256" },
                      ];
                      name: "transfer";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "newCustodian"; type: "address" },
                      ];
                      name: "updateCustodian";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newImplementation";
                              type: "address";
                          },
                          { internalType: "bytes"; name: "data"; type: "bytes" },
                      ];
                      name: "upgradeToAndCall";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  { stateMutability: "payable"; type: "receive" },
              ];
              DLPRewardDeployerTreasury: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "target"; type: "address" },
                      ];
                      name: "AddressEmptyCode";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "AddressInsufficientBalance";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "implementation"; type: "address" },
                      ];
                      name: "ERC1967InvalidImplementation";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC1967NonPayable"; type: "error" },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "FailedInnerCall"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "ReentrancyGuardReentrantCall";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "token"; type: "address" },
                      ];
                      name: "SafeERC20FailedOperation";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "UUPSUnauthorizedCallContext";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "slot"; type: "bytes32" },
                      ];
                      name: "UUPSUnsupportedProxiableUUID";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ZeroAddress"; type: "error" },
                  { inputs: readonly []; name: "ZeroAmount"; type: "error" },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "to";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "token";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "amount";
                              type: "uint256";
                          },
                      ];
                      name: "Transfer";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "implementation";
                              type: "address";
                          },
                      ];
                      name: "Upgraded";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "CUSTODIAN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "UPGRADE_INTERFACE_VERSION";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "VANA";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "custodian";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          { internalType: "address"; name: "initCustodian"; type: "address" },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "proxiableUUID";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "to"; type: "address" },
                          { internalType: "address"; name: "token"; type: "address" },
                          { internalType: "uint256"; name: "amount"; type: "uint256" },
                      ];
                      name: "transfer";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "newCustodian"; type: "address" },
                      ];
                      name: "updateCustodian";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newImplementation";
                              type: "address";
                          },
                          { internalType: "bytes"; name: "data"; type: "bytes" },
                      ];
                      name: "upgradeToAndCall";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  { stateMutability: "payable"; type: "receive" },
              ];
              DLPRegistryTreasuryImplementation: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "target"; type: "address" },
                      ];
                      name: "AddressEmptyCode";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "AddressInsufficientBalance";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "implementation"; type: "address" },
                      ];
                      name: "ERC1967InvalidImplementation";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC1967NonPayable"; type: "error" },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "FailedInnerCall"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "ReentrancyGuardReentrantCall";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "token"; type: "address" },
                      ];
                      name: "SafeERC20FailedOperation";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "UUPSUnauthorizedCallContext";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "slot"; type: "bytes32" },
                      ];
                      name: "UUPSUnsupportedProxiableUUID";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ZeroAddress"; type: "error" },
                  { inputs: readonly []; name: "ZeroAmount"; type: "error" },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "to";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "token";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "amount";
                              type: "uint256";
                          },
                      ];
                      name: "Transfer";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "implementation";
                              type: "address";
                          },
                      ];
                      name: "Upgraded";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "CUSTODIAN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "UPGRADE_INTERFACE_VERSION";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "VANA";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "custodian";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          { internalType: "address"; name: "initCustodian"; type: "address" },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "proxiableUUID";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "to"; type: "address" },
                          { internalType: "address"; name: "token"; type: "address" },
                          { internalType: "uint256"; name: "amount"; type: "uint256" },
                      ];
                      name: "transfer";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "newCustodian"; type: "address" },
                      ];
                      name: "updateCustodian";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newImplementation";
                              type: "address";
                          },
                          { internalType: "bytes"; name: "data"; type: "bytes" },
                      ];
                      name: "upgradeToAndCall";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  { stateMutability: "payable"; type: "receive" },
              ];
              DLPPerformance: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "target"; type: "address" },
                      ];
                      name: "AddressEmptyCode";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                      ];
                      name: "DlpNotEligible";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                      ];
                      name: "DuplicateDlpId";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "implementation"; type: "address" },
                      ];
                      name: "ERC1967InvalidImplementation";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC1967NonPayable"; type: "error" },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "EpochAlreadyFinalized"; type: "error" },
                  { inputs: readonly []; name: "EpochNotEnded"; type: "error" },
                  { inputs: readonly []; name: "EpochNotFinalized"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "FailedInnerCall"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "InvalidDataAccessFeesScore";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "InvalidEpochDlpPerformancesCount";
                      type: "error";
                  },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "InvalidMetricWeights"; type: "error" },
                  { inputs: readonly []; name: "InvalidPenaltyScores"; type: "error" },
                  { inputs: readonly []; name: "InvalidTradingVolumeScore"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "InvalidUniqueContributorsScore";
                      type: "error";
                  },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "epochId"; type: "uint256" },
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                          { internalType: "uint256"; name: "penaltyAmount"; type: "uint256" },
                          {
                              internalType: "uint256";
                              name: "distributedPenaltyAmount";
                              type: "uint256";
                          },
                      ];
                      name: "PenaltyAmountLessThanPenaltyDistributed";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "UUPSUnauthorizedCallContext";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "slot"; type: "bytes32" },
                      ];
                      name: "UUPSUnsupportedProxiableUUID";
                      type: "error";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "epochId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "dlpId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "tradingVolumeScorePenalty";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "uniqueContributorsScorePenalty";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "dataAccessFeesScorePenalty";
                              type: "uint256";
                          },
                      ];
                      name: "EpochDlpPenaltyUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "epochId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "dlpId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "tradingVolume";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "uniqueContributors";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "dataAccessFees";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "tradingVolumeScore";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "uniqueContributorsScore";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "dataAccessFeesScore";
                              type: "uint256";
                          },
                      ];
                      name: "EpochDlpPerformancesOverridden";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "epochId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "dlpId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "tradingVolume";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "uniqueContributors";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "dataAccessFees";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "tradingVolumeScore";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "uniqueContributorsScore";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "dataAccessFeesScore";
                              type: "uint256";
                          },
                      ];
                      name: "EpochDlpPerformancesSaved";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "tradingVolume";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "uniqueContributors";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "dataAccessFees";
                              type: "uint256";
                          },
                      ];
                      name: "MetricWeightsUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "implementation";
                              type: "address";
                          },
                      ];
                      name: "Upgraded";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MAINTAINER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MANAGER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "UPGRADE_INTERFACE_VERSION";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "epochId"; type: "uint256" },
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                      ];
                      name: "calculateEpochDlpRewards";
                      outputs: readonly [
                          { internalType: "uint256"; name: "rewardAmount"; type: "uint256" },
                          { internalType: "uint256"; name: "penaltyAmount"; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "epochId"; type: "uint256" },
                      ];
                      name: "confirmEpochFinalScores";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "dlpRegistry";
                      outputs: readonly [
                          { internalType: "contract IDLPRegistry"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "epochId"; type: "uint256" },
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                      ];
                      name: "epochDlpPerformances";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "totalScore"; type: "uint256" },
                                  { internalType: "uint256"; name: "tradingVolume"; type: "uint256" },
                                  {
                                      internalType: "uint256";
                                      name: "uniqueContributors";
                                      type: "uint256";
                                  },
                                  { internalType: "uint256"; name: "dataAccessFees"; type: "uint256" },
                                  {
                                      internalType: "uint256";
                                      name: "tradingVolumeScore";
                                      type: "uint256";
                                  },
                                  {
                                      internalType: "uint256";
                                      name: "uniqueContributorsScore";
                                      type: "uint256";
                                  },
                                  {
                                      internalType: "uint256";
                                      name: "dataAccessFeesScore";
                                      type: "uint256";
                                  },
                                  {
                                      internalType: "uint256";
                                      name: "tradingVolumeScorePenalty";
                                      type: "uint256";
                                  },
                                  {
                                      internalType: "uint256";
                                      name: "uniqueContributorsScorePenalty";
                                      type: "uint256";
                                  },
                                  {
                                      internalType: "uint256";
                                      name: "dataAccessFeesScorePenalty";
                                      type: "uint256";
                                  },
                              ];
                              internalType: "struct IDLPPerformance.EpochDlpPerformanceInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "epochId"; type: "uint256" },
                      ];
                      name: "epochMetricWeights";
                      outputs: readonly [
                          {
                              components: readonly [
                                  {
                                      internalType: "uint256";
                                      name: "tradingVolume";
                                      type: "uint256";
                                  },
                                  {
                                      internalType: "uint256";
                                      name: "uniqueContributors";
                                      type: "uint256";
                                  },
                                  { internalType: "uint256"; name: "dataAccessFees"; type: "uint256" },
                              ];
                              internalType: "struct IDLPPerformance.MetricWeights";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          {
                              internalType: "address";
                              name: "dlpRegistryAddress";
                              type: "address";
                          },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "metricWeights";
                      outputs: readonly [
                          {
                              components: readonly [
                                  {
                                      internalType: "uint256";
                                      name: "tradingVolume";
                                      type: "uint256";
                                  },
                                  {
                                      internalType: "uint256";
                                      name: "uniqueContributors";
                                      type: "uint256";
                                  },
                                  { internalType: "uint256"; name: "dataAccessFees"; type: "uint256" },
                              ];
                              internalType: "struct IDLPPerformance.MetricWeights";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "epochId"; type: "uint256" },
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                          {
                              internalType: "uint256";
                              name: "tradingVolumeScorePenalty";
                              type: "uint256";
                          },
                          {
                              internalType: "uint256";
                              name: "uniqueContributorsScorePenalty";
                              type: "uint256";
                          },
                          {
                              internalType: "uint256";
                              name: "dataAccessFeesScorePenalty";
                              type: "uint256";
                          },
                      ];
                      name: "overrideEpochDlpPenalty";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "epochId"; type: "uint256" },
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                      ];
                      name: "overrideEpochDlpReward";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "epochId"; type: "uint256" },
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                                  { internalType: "uint256"; name: "tradingVolume"; type: "uint256" },
                                  {
                                      internalType: "uint256";
                                      name: "uniqueContributors";
                                      type: "uint256";
                                  },
                                  { internalType: "uint256"; name: "dataAccessFees"; type: "uint256" },
                                  {
                                      internalType: "uint256";
                                      name: "tradingVolumeScore";
                                      type: "uint256";
                                  },
                                  {
                                      internalType: "uint256";
                                      name: "uniqueContributorsScore";
                                      type: "uint256";
                                  },
                                  {
                                      internalType: "uint256";
                                      name: "dataAccessFeesScore";
                                      type: "uint256";
                                  },
                              ];
                              internalType: "struct IDLPPerformance.EpochDlpPerformanceInput[]";
                              name: "newEpochDlpPerformances";
                              type: "tuple[]";
                          },
                      ];
                      name: "overrideEpochPerformances";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "proxiableUUID";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "epochId"; type: "uint256" },
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                                  { internalType: "uint256"; name: "tradingVolume"; type: "uint256" },
                                  {
                                      internalType: "uint256";
                                      name: "uniqueContributors";
                                      type: "uint256";
                                  },
                                  { internalType: "uint256"; name: "dataAccessFees"; type: "uint256" },
                                  {
                                      internalType: "uint256";
                                      name: "tradingVolumeScore";
                                      type: "uint256";
                                  },
                                  {
                                      internalType: "uint256";
                                      name: "uniqueContributorsScore";
                                      type: "uint256";
                                  },
                                  {
                                      internalType: "uint256";
                                      name: "dataAccessFeesScore";
                                      type: "uint256";
                                  },
                              ];
                              internalType: "struct IDLPPerformance.EpochDlpPerformanceInput[]";
                              name: "newEpochDlpPerformances";
                              type: "tuple[]";
                          },
                      ];
                      name: "saveEpochPerformances";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "dlpRegistryAddress";
                              type: "address";
                          },
                      ];
                      name: "updateDlpRegistry";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              components: readonly [
                                  {
                                      internalType: "uint256";
                                      name: "tradingVolume";
                                      type: "uint256";
                                  },
                                  {
                                      internalType: "uint256";
                                      name: "uniqueContributors";
                                      type: "uint256";
                                  },
                                  { internalType: "uint256"; name: "dataAccessFees"; type: "uint256" },
                              ];
                              internalType: "struct IDLPPerformance.MetricWeights";
                              name: "newMetricWeights";
                              type: "tuple";
                          },
                      ];
                      name: "updateMetricWeights";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "vanaEpochAddress";
                              type: "address";
                          },
                      ];
                      name: "updateVanaEpoch";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newImplementation";
                              type: "address";
                          },
                          { internalType: "bytes"; name: "data"; type: "bytes" },
                      ];
                      name: "upgradeToAndCall";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "vanaEpoch";
                      outputs: readonly [
                          { internalType: "contract IVanaEpoch"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "version";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "pure";
                      type: "function";
                  },
              ];
              DLPRewardDeployer: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "target"; type: "address" },
                      ];
                      name: "AddressEmptyCode";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "implementation"; type: "address" },
                      ];
                      name: "ERC1967InvalidImplementation";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC1967NonPayable"; type: "error" },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "EpochNotFinalized"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "EpochRewardsNotInitialized";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "FailedInnerCall"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                      ];
                      name: "NothingToDistribute";
                      type: "error";
                  },
                  { inputs: readonly []; name: "NothingToWithdraw"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                          { internalType: "uint256"; name: "trancheCount"; type: "uint256" },
                          {
                              internalType: "uint256";
                              name: "nextTrancheMinBlock";
                              type: "uint256";
                          },
                      ];
                      name: "NumberOfBlocksBetweenTranchesNotPassed";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "ReentrancyGuardReentrantCall";
                      type: "error";
                  },
                  { inputs: readonly []; name: "RolloverNotPossible"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                          { internalType: "uint256"; name: "trancheCount"; type: "uint256" },
                          { internalType: "uint256"; name: "trancheMinBlock"; type: "uint256" },
                      ];
                      name: "TrancheIntervalNotStarted";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "UUPSUnauthorizedCallContext";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "slot"; type: "bytes32" },
                      ];
                      name: "UUPSUnsupportedProxiableUUID";
                      type: "error";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "epochId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "dlpId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "distributedAmount";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "totalPenaltyAmount";
                              type: "uint256";
                          },
                      ];
                      name: "EpochDlpPenaltyDistributed";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "epochId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "dlpId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "trancheId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "trancheAmount";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "tokenRewardAmount";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "spareToken";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "spareVana";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "usedVanaAmount";
                              type: "uint256";
                          },
                      ];
                      name: "EpochDlpRewardDistributed";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "epochId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "numberOfTranches";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "remediationWindow";
                              type: "uint256";
                          },
                      ];
                      name: "EpochRewardsInitialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "implementation";
                              type: "address";
                          },
                      ];
                      name: "Upgraded";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MAINTAINER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "REWARD_DEPLOYER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "UPGRADE_INTERFACE_VERSION";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "epochId"; type: "uint256" },
                          { internalType: "uint256[]"; name: "dlpIds"; type: "uint256[]" },
                      ];
                      name: "distributeRewards";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "dlpRegistry";
                      outputs: readonly [
                          { internalType: "contract IDLPRegistry"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "dlpRewardSwap";
                      outputs: readonly [
                          {
                              internalType: "contract IDLPRewardSwap";
                              name: "";
                              type: "address";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "epochId"; type: "uint256" },
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                      ];
                      name: "epochDlpDistributedRewards";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "amount"; type: "uint256" },
                                  { internalType: "uint256"; name: "blockNumber"; type: "uint256" },
                                  {
                                      internalType: "uint256";
                                      name: "tokenRewardAmount";
                                      type: "uint256";
                                  },
                                  { internalType: "uint256"; name: "spareToken"; type: "uint256" },
                                  { internalType: "uint256"; name: "spareVana"; type: "uint256" },
                                  { internalType: "uint256"; name: "usedVanaAmount"; type: "uint256" },
                              ];
                              internalType: "struct IDLPRewardDeployer.DistributedReward[]";
                              name: "";
                              type: "tuple[]";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "epochId"; type: "uint256" },
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                      ];
                      name: "epochDlpRewards";
                      outputs: readonly [
                          {
                              components: readonly [
                                  {
                                      internalType: "uint256";
                                      name: "totalDistributedAmount";
                                      type: "uint256";
                                  },
                                  {
                                      internalType: "uint256";
                                      name: "distributedPenaltyAmount";
                                      type: "uint256";
                                  },
                                  { internalType: "uint256"; name: "tranchesCount"; type: "uint256" },
                              ];
                              internalType: "struct IDLPRewardDeployer.EpochDlpRewardInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "epochId"; type: "uint256" },
                      ];
                      name: "epochRewards";
                      outputs: readonly [
                          {
                              components: readonly [
                                  {
                                      internalType: "uint256";
                                      name: "distributionInterval";
                                      type: "uint256";
                                  },
                                  {
                                      internalType: "uint256";
                                      name: "numberOfTranches";
                                      type: "uint256";
                                  },
                                  {
                                      internalType: "uint256";
                                      name: "remediationWindow";
                                      type: "uint256";
                                  },
                              ];
                              internalType: "struct IDLPRewardDeployer.EpochRewardInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          {
                              internalType: "address";
                              name: "dlpRegistryAddress";
                              type: "address";
                          },
                          { internalType: "address"; name: "vanaEpochAddress"; type: "address" },
                          {
                              internalType: "address";
                              name: "dlpRewardSwapAddress";
                              type: "address";
                          },
                          {
                              internalType: "uint256";
                              name: "newNumberOfBlocksBetweenTranches";
                              type: "uint256";
                          },
                          {
                              internalType: "uint256";
                              name: "newRewardPercentage";
                              type: "uint256";
                          },
                          {
                              internalType: "uint256";
                              name: "newMaximumSlippagePercentage";
                              type: "uint256";
                          },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "epochId"; type: "uint256" },
                          {
                              internalType: "uint256";
                              name: "distributionInterval";
                              type: "uint256";
                          },
                          { internalType: "uint256"; name: "numberOfTranches"; type: "uint256" },
                          { internalType: "uint256"; name: "remediationWindow"; type: "uint256" },
                      ];
                      name: "initializeEpochRewards";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "maximumSlippagePercentage";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "numberOfBlocksBetweenTranches";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "proxiableUUID";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "rewardPercentage";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "treasury";
                      outputs: readonly [
                          { internalType: "contract ITreasury"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "dlpRegistryAddress";
                              type: "address";
                          },
                      ];
                      name: "updateDlpRegistry";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "dlpRewardSwapAddress";
                              type: "address";
                          },
                      ];
                      name: "updateDlpRewardSwap";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "uint256";
                              name: "newMaximumSlippagePercentage";
                              type: "uint256";
                          },
                      ];
                      name: "updateMaximumSlippagePercentage";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "uint256";
                              name: "newNumberOfBlocksBetweenTranches";
                              type: "uint256";
                          },
                      ];
                      name: "updateNumberOfBlocksBetweenTranches";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "uint256";
                              name: "newRewardPercentage";
                              type: "uint256";
                          },
                      ];
                      name: "updateRewardPercentage";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "treasuryAddress";
                              type: "address";
                          },
                      ];
                      name: "updateTreasury";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "vanaEpochAddress";
                              type: "address";
                          },
                      ];
                      name: "updateVanaEpoch";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newImplementation";
                              type: "address";
                          },
                          { internalType: "bytes"; name: "data"; type: "bytes" },
                      ];
                      name: "upgradeToAndCall";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "vanaEpoch";
                      outputs: readonly [
                          { internalType: "contract IVanaEpoch"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "version";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "pure";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "epochId"; type: "uint256" },
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                          { internalType: "address"; name: "recipientAddress"; type: "address" },
                      ];
                      name: "withdrawEpochDlpPenaltyAmount";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  { stateMutability: "payable"; type: "receive" },
              ];
              DLPRewardSwap: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "target"; type: "address" },
                      ];
                      name: "AddressEmptyCode";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "AddressInsufficientBalance";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                          { internalType: "uint256"; name: "used"; type: "uint256" },
                          { internalType: "uint256"; name: "spareVana"; type: "uint256" },
                          { internalType: "uint256"; name: "unusedVana"; type: "uint256" },
                      ];
                      name: "DLPRewardSwap__AmountMismatch";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "token"; type: "address" },
                          { internalType: "uint256"; name: "expected"; type: "uint256" },
                          { internalType: "uint256"; name: "actual"; type: "uint256" },
                      ];
                      name: "DLPRewardSwap__InsufficientAmount";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "DLPRewardSwap__InvalidLpTokenId";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "DLPRewardSwap__InvalidRange";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "DLPRewardSwap__InvalidRewardPercentage";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "DLPRewardSwap__InvalidSlippagePercentage";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "DLPRewardSwap__LPAmountMismatch";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint128"; name: "expected"; type: "uint128" },
                          { internalType: "uint128"; name: "actual"; type: "uint128" },
                      ];
                      name: "DLPRewardSwap__LiquidityMismatch";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "token"; type: "address" },
                          { internalType: "uint256"; name: "expected"; type: "uint256" },
                          { internalType: "uint256"; name: "actual"; type: "uint256" },
                      ];
                      name: "DLPRewardSwap__SpareAmountMismatch";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "expected"; type: "uint256" },
                          { internalType: "uint256"; name: "actual"; type: "uint256" },
                      ];
                      name: "DLPRewardSwap__VanaInMismatch";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "DLPRewardSwap__ZeroAddress";
                      type: "error";
                  },
                  { inputs: readonly []; name: "DLPRewardSwap__ZeroAmount"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "DLPRewardSwap__ZeroAmountSwapIn";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "DLPRewardSwap__ZeroLiquidity";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "implementation"; type: "address" },
                      ];
                      name: "ERC1967InvalidImplementation";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC1967NonPayable"; type: "error" },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "FailedInnerCall"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "ReentrancyGuardReentrantCall";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "token"; type: "address" },
                      ];
                      name: "SafeERC20FailedOperation";
                      type: "error";
                  },
                  { inputs: readonly []; name: "T"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "UUPSUnauthorizedCallContext";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "slot"; type: "bytes32" },
                      ];
                      name: "UUPSUnsupportedProxiableUUID";
                      type: "error";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "recipient";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "token";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "usedVanaForReward";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "tokenRewardAmount";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "usedVanaForLp";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "liquidityDelta";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "spareVana";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "spareToken";
                              type: "uint256";
                          },
                      ];
                      name: "Reward";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "implementation";
                              type: "address";
                          },
                      ];
                      name: "Upgraded";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MAINTAINER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "ONE_HUNDRED_PERCENT";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "UPGRADE_INTERFACE_VERSION";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "VANA";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          {
                              internalType: "contract ISwapHelper";
                              name: "initSwapHelper";
                              type: "address";
                          },
                          {
                              internalType: "contract INonfungiblePositionManager";
                              name: "initPositionManager";
                              type: "address";
                          },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "positionManager";
                      outputs: readonly [
                          {
                              internalType: "contract INonfungiblePositionManager";
                              name: "";
                              type: "address";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "proxiableUUID";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                  { internalType: "uint256"; name: "lpTokenId"; type: "uint256" },
                                  {
                                      internalType: "uint256";
                                      name: "rewardPercentage";
                                      type: "uint256";
                                  },
                                  {
                                      internalType: "uint256";
                                      name: "maximumSlippagePercentage";
                                      type: "uint256";
                                  },
                              ];
                              internalType: "struct IDLPRewardSwap.QuoteSplitRewardSwapParams";
                              name: "params";
                              type: "tuple";
                          },
                      ];
                      name: "quoteSplitRewardSwap";
                      outputs: readonly [
                          {
                              internalType: "uint256";
                              name: "tokenRewardAmount";
                              type: "uint256";
                          },
                          { internalType: "uint256"; name: "spareToken"; type: "uint256" },
                          { internalType: "uint256"; name: "spareVana"; type: "uint256" },
                          { internalType: "uint256"; name: "usedVanaAmount"; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "lpTokenId"; type: "uint256" },
                                  {
                                      internalType: "uint256";
                                      name: "rewardPercentage";
                                      type: "uint256";
                                  },
                                  {
                                      internalType: "uint256";
                                      name: "maximumSlippagePercentage";
                                      type: "uint256";
                                  },
                                  { internalType: "address"; name: "rewardRecipient"; type: "address" },
                                  { internalType: "address"; name: "spareRecipient"; type: "address" },
                              ];
                              internalType: "struct IDLPRewardSwap.SplitRewardSwapParams";
                              name: "params";
                              type: "tuple";
                          },
                      ];
                      name: "splitRewardSwap";
                      outputs: readonly [
                          {
                              internalType: "uint256";
                              name: "tokenRewardAmount";
                              type: "uint256";
                          },
                          { internalType: "uint256"; name: "spareToken"; type: "uint256" },
                          { internalType: "uint256"; name: "spareVana"; type: "uint256" },
                          { internalType: "uint256"; name: "usedVanaAmount"; type: "uint256" },
                      ];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "swapHelper";
                      outputs: readonly [
                          { internalType: "contract ISwapHelper"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "contract INonfungiblePositionManager";
                              name: "newPositionManager";
                              type: "address";
                          },
                      ];
                      name: "updatePositionManager";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "contract ISwapHelper";
                              name: "newSwapHelper";
                              type: "address";
                          },
                      ];
                      name: "updateSwapHelper";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newImplementation";
                              type: "address";
                          },
                          { internalType: "bytes"; name: "data"; type: "bytes" },
                      ];
                      name: "upgradeToAndCall";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "version";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "pure";
                      type: "function";
                  },
                  { stateMutability: "payable"; type: "receive" },
              ];
              SwapHelper: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "target"; type: "address" },
                      ];
                      name: "AddressEmptyCode";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "AddressInsufficientBalance";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "implementation"; type: "address" },
                      ];
                      name: "ERC1967InvalidImplementation";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC1967NonPayable"; type: "error" },
                  { inputs: readonly []; name: "FailedInnerCall"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "MathOverflowedMulDiv"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  { inputs: readonly []; name: "R"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "uint8"; name: "bits"; type: "uint8" },
                          { internalType: "uint256"; name: "value"; type: "uint256" },
                      ];
                      name: "SafeCastOverflowedUintDowncast";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "value"; type: "uint256" },
                      ];
                      name: "SafeCastOverflowedUintToInt";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "token"; type: "address" },
                      ];
                      name: "SafeERC20FailedOperation";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "SwapHelper__InvalidAmountIn";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "SwapHelper__InvalidSlippagePercentage";
                      type: "error";
                  },
                  { inputs: readonly []; name: "SwapHelper__ZeroAddress"; type: "error" },
                  { inputs: readonly []; name: "T"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "UUPSUnauthorizedCallContext";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "slot"; type: "bytes32" },
                      ];
                      name: "UUPSUnsupportedProxiableUUID";
                      type: "error";
                  },
                  { inputs: readonly []; name: "Uniswap__AS"; type: "error" },
                  { inputs: readonly []; name: "Uniswap__SPL"; type: "error" },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "implementation";
                              type: "address";
                          },
                      ];
                      name: "Upgraded";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MAINTAINER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "ONE_HUNDRED_PERCENT";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "UPGRADE_INTERFACE_VERSION";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "VANA";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "WVANA";
                      outputs: readonly [
                          { internalType: "contract IWVANA"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "tokenIn"; type: "address" },
                                  { internalType: "address"; name: "tokenOut"; type: "address" },
                                  { internalType: "uint24"; name: "fee"; type: "uint24" },
                                  { internalType: "address"; name: "recipient"; type: "address" },
                                  { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                  {
                                      internalType: "uint256";
                                      name: "amountOutMinimum";
                                      type: "uint256";
                                  },
                              ];
                              internalType: "struct ISwapHelper.ExactInputSingleParams";
                              name: "params";
                              type: "tuple";
                          },
                      ];
                      name: "exactInputSingle";
                      outputs: readonly [
                          { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                      ];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "tokenA"; type: "address" },
                          { internalType: "address"; name: "tokenB"; type: "address" },
                          { internalType: "uint24"; name: "fee"; type: "uint24" },
                      ];
                      name: "getPool";
                      outputs: readonly [
                          {
                              internalType: "contract IUniswapV3Pool";
                              name: "";
                              type: "address";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          {
                              internalType: "address";
                              name: "initUniswapV3Router";
                              type: "address";
                          },
                          {
                              internalType: "contract IQuoterV2";
                              name: "initUniswapV3Quoter";
                              type: "address";
                          },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "proxiableUUID";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "tokenIn"; type: "address" },
                                  { internalType: "address"; name: "tokenOut"; type: "address" },
                                  { internalType: "uint24"; name: "fee"; type: "uint24" },
                                  { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                              ];
                              internalType: "struct ISwapHelper.QuoteExactInputSingleParams";
                              name: "params";
                              type: "tuple";
                          },
                      ];
                      name: "quoteExactInputSingle";
                      outputs: readonly [
                          { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                      ];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "tokenIn"; type: "address" },
                                  { internalType: "address"; name: "tokenOut"; type: "address" },
                                  { internalType: "uint24"; name: "fee"; type: "uint24" },
                                  { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                  { internalType: "uint160"; name: "sqrtPriceX96"; type: "uint160" },
                                  { internalType: "uint128"; name: "liquidity"; type: "uint128" },
                                  {
                                      internalType: "uint256";
                                      name: "maximumSlippagePercentage";
                                      type: "uint256";
                                  },
                              ];
                              internalType: "struct ISwapHelper.QuoteSlippageExactInputSingleParams";
                              name: "params";
                              type: "tuple";
                          },
                      ];
                      name: "quoteSlippageExactInputSingle";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "int256"; name: "amount0Delta"; type: "int256" },
                                  { internalType: "int256"; name: "amount1Delta"; type: "int256" },
                                  { internalType: "uint256"; name: "amountToPay"; type: "uint256" },
                                  { internalType: "uint256"; name: "amountReceived"; type: "uint256" },
                                  {
                                      internalType: "uint160";
                                      name: "sqrtPriceX96After";
                                      type: "uint160";
                                  },
                                  {
                                      internalType: "uint160";
                                      name: "sqrtPriceLimitX96";
                                      type: "uint160";
                                  },
                              ];
                              internalType: "struct ISwapHelper.Quote";
                              name: "quote";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "contract IUniswapV3Pool";
                              name: "pool";
                              type: "address";
                          },
                          { internalType: "bool"; name: "zeroForOne"; type: "bool" },
                          { internalType: "int256"; name: "amountSpecified"; type: "int256" },
                          { internalType: "uint160"; name: "sqrtPriceLimitX96"; type: "uint160" },
                          {
                              components: readonly [
                                  { internalType: "uint160"; name: "sqrtPriceX96"; type: "uint160" },
                                  { internalType: "int24"; name: "tick"; type: "int24" },
                                  { internalType: "uint128"; name: "liquidity"; type: "uint128" },
                              ];
                              internalType: "struct SwapHelperImplementation.Slot0";
                              name: "slot0Start";
                              type: "tuple";
                          },
                      ];
                      name: "simulateSwap";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "int256"; name: "amount0Delta"; type: "int256" },
                                  { internalType: "int256"; name: "amount1Delta"; type: "int256" },
                                  { internalType: "uint256"; name: "amountToPay"; type: "uint256" },
                                  { internalType: "uint256"; name: "amountReceived"; type: "uint256" },
                                  {
                                      internalType: "uint160";
                                      name: "sqrtPriceX96After";
                                      type: "uint160";
                                  },
                                  {
                                      internalType: "uint160";
                                      name: "sqrtPriceLimitX96";
                                      type: "uint160";
                                  },
                              ];
                              internalType: "struct ISwapHelper.Quote";
                              name: "quote";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "tokenIn"; type: "address" },
                                  { internalType: "address"; name: "tokenOut"; type: "address" },
                                  { internalType: "uint24"; name: "fee"; type: "uint24" },
                                  { internalType: "address"; name: "recipient"; type: "address" },
                                  { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                  {
                                      internalType: "uint256";
                                      name: "maximumSlippagePercentage";
                                      type: "uint256";
                                  },
                              ];
                              internalType: "struct ISwapHelper.SlippageSwapParams";
                              name: "params";
                              type: "tuple";
                          },
                      ];
                      name: "slippageExactInputSingle";
                      outputs: readonly [
                          { internalType: "uint256"; name: "amountInUsed"; type: "uint256" },
                          { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                      ];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "uniswapV3Quoter";
                      outputs: readonly [
                          { internalType: "contract IQuoterV2"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "uniswapV3Router";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "contract IQuoterV2";
                              name: "newUniswapV3Quoter";
                              type: "address";
                          },
                      ];
                      name: "updateUniswapV3Quoter";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newUniswapV3Router";
                              type: "address";
                          },
                      ];
                      name: "updateUniswapV3Router";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newImplementation";
                              type: "address";
                          },
                          { internalType: "bytes"; name: "data"; type: "bytes" },
                      ];
                      name: "upgradeToAndCall";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "version";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "pure";
                      type: "function";
                  },
                  { stateMutability: "payable"; type: "receive" },
              ];
              VanaTreasury: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "target"; type: "address" },
                      ];
                      name: "AddressEmptyCode";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "AddressInsufficientBalance";
                      type: "error";
                  },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "FailedInnerCall"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "ReentrancyGuardReentrantCall";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "token"; type: "address" },
                      ];
                      name: "SafeERC20FailedOperation";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ZeroAddress"; type: "error" },
                  { inputs: readonly []; name: "ZeroAmount"; type: "error" },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "to";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "token";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "amount";
                              type: "uint256";
                          },
                      ];
                      name: "Transfer";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "CUSTODIAN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "VANA";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "custodian";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          { internalType: "address"; name: "initCustodian"; type: "address" },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "to"; type: "address" },
                          { internalType: "address"; name: "token"; type: "address" },
                          { internalType: "uint256"; name: "amount"; type: "uint256" },
                      ];
                      name: "transfer";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "newCustodian"; type: "address" },
                      ];
                      name: "updateCustodian";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "version";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "pure";
                      type: "function";
                  },
                  { stateMutability: "payable"; type: "receive" },
              ];
              DataLiquidityPool: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "target"; type: "address" },
                      ];
                      name: "AddressEmptyCode";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "AddressInsufficientBalance";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ECDSAInvalidSignature"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "length"; type: "uint256" },
                      ];
                      name: "ECDSAInvalidSignatureLength";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "s"; type: "bytes32" },
                      ];
                      name: "ECDSAInvalidSignatureS";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "implementation"; type: "address" },
                      ];
                      name: "ERC1967InvalidImplementation";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC1967NonPayable"; type: "error" },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "FailedInnerCall"; type: "error" },
                  { inputs: readonly []; name: "FileAlreadyAdded"; type: "error" },
                  { inputs: readonly []; name: "InvalidAttestator"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "InvalidProof"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "owner"; type: "address" },
                      ];
                      name: "OwnableInvalidOwner";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "OwnableUnauthorizedAccount";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "ReentrancyGuardReentrantCall";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "token"; type: "address" },
                      ];
                      name: "SafeERC20FailedOperation";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "UUPSUnauthorizedCallContext";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "slot"; type: "bytes32" },
                      ];
                      name: "UUPSUnsupportedProxiableUUID";
                      type: "error";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "fileId";
                              type: "uint256";
                          },
                      ];
                      name: "FileInvalidated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "newFileRewardFactor";
                              type: "uint256";
                          },
                      ];
                      name: "FileRewardFactorUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "fileId";
                              type: "uint256";
                          },
                      ];
                      name: "FileValidated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "previousOwner";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "newOwner";
                              type: "address";
                          },
                      ];
                      name: "OwnershipTransferStarted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "previousOwner";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "newOwner";
                              type: "address";
                          },
                      ];
                      name: "OwnershipTransferred";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "string";
                              name: "newProofInstruction";
                              type: "string";
                          },
                      ];
                      name: "ProofInstructionUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "string";
                              name: "newPublicKey";
                              type: "string";
                          },
                      ];
                      name: "PublicKeyUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "contributorAddress";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "fileId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "proofIndex";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "rewardAmount";
                              type: "uint256";
                          },
                      ];
                      name: "RewardRequested";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "newTeePool";
                              type: "address";
                          },
                      ];
                      name: "TeePoolUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "implementation";
                              type: "address";
                          },
                      ];
                      name: "Upgraded";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "UPGRADE_INTERFACE_VERSION";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "acceptOwnership";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "uint256";
                              name: "contributorsRewardAmount";
                              type: "uint256";
                          },
                      ];
                      name: "addRewardsForContributors";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "contributorAddress";
                              type: "address";
                          },
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                      ];
                      name: "contributorFiles";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "fileId"; type: "uint256" },
                                  { internalType: "uint256"; name: "timestamp"; type: "uint256" },
                                  { internalType: "uint256"; name: "proofIndex"; type: "uint256" },
                                  { internalType: "uint256"; name: "rewardAmount"; type: "uint256" },
                              ];
                              internalType: "struct IDataLiquidityPool.FileResponse";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "contributorAddress";
                              type: "address";
                          },
                      ];
                      name: "contributorInfo";
                      outputs: readonly [
                          {
                              components: readonly [
                                  {
                                      internalType: "address";
                                      name: "contributorAddress";
                                      type: "address";
                                  },
                                  { internalType: "uint256"; name: "filesListCount"; type: "uint256" },
                              ];
                              internalType: "struct IDataLiquidityPool.ContributorInfoResponse";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                      ];
                      name: "contributors";
                      outputs: readonly [
                          {
                              components: readonly [
                                  {
                                      internalType: "address";
                                      name: "contributorAddress";
                                      type: "address";
                                  },
                                  { internalType: "uint256"; name: "filesListCount"; type: "uint256" },
                              ];
                              internalType: "struct IDataLiquidityPool.ContributorInfoResponse";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "contributorsCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "dataRegistry";
                      outputs: readonly [
                          {
                              internalType: "contract IDataRegistry";
                              name: "";
                              type: "address";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "fileRewardFactor";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "fileId"; type: "uint256" },
                      ];
                      name: "files";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "fileId"; type: "uint256" },
                                  { internalType: "uint256"; name: "timestamp"; type: "uint256" },
                                  { internalType: "uint256"; name: "proofIndex"; type: "uint256" },
                                  { internalType: "uint256"; name: "rewardAmount"; type: "uint256" },
                              ];
                              internalType: "struct IDataLiquidityPool.FileResponse";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                      ];
                      name: "filesListAt";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "filesListCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "ownerAddress"; type: "address" },
                                  { internalType: "address"; name: "tokenAddress"; type: "address" },
                                  {
                                      internalType: "address";
                                      name: "dataRegistryAddress";
                                      type: "address";
                                  },
                                  { internalType: "address"; name: "teePoolAddress"; type: "address" },
                                  { internalType: "string"; name: "name"; type: "string" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                                  { internalType: "string"; name: "proofInstruction"; type: "string" },
                                  {
                                      internalType: "uint256";
                                      name: "fileRewardFactor";
                                      type: "uint256";
                                  },
                              ];
                              internalType: "struct DataLiquidityPoolImplementation.InitParams";
                              name: "params";
                              type: "tuple";
                          },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                      ];
                      name: "multicall";
                      outputs: readonly [
                          { internalType: "bytes[]"; name: "results"; type: "bytes[]" },
                      ];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "name";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "owner";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pendingOwner";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "proofInstruction";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "proxiableUUID";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "publicKey";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "renounceOwnership";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "fileId"; type: "uint256" },
                          { internalType: "uint256"; name: "proofIndex"; type: "uint256" },
                      ];
                      name: "requestReward";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teePool";
                      outputs: readonly [
                          { internalType: "contract ITeePool"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "token";
                      outputs: readonly [
                          { internalType: "contract IERC20"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "totalContributorsRewardAmount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "newOwner"; type: "address" },
                      ];
                      name: "transferOwnership";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "uint256";
                              name: "newFileRewardFactor";
                              type: "uint256";
                          },
                      ];
                      name: "updateFileRewardFactor";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "string";
                              name: "newProofInstruction";
                              type: "string";
                          },
                      ];
                      name: "updateProofInstruction";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "string"; name: "newPublicKey"; type: "string" },
                      ];
                      name: "updatePublicKey";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "newTeePool"; type: "address" },
                      ];
                      name: "updateTeePool";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newImplementation";
                              type: "address";
                          },
                          { internalType: "bytes"; name: "data"; type: "bytes" },
                      ];
                      name: "upgradeToAndCall";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "version";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "pure";
                      type: "function";
                  },
              ];
              VanaPoolStaking: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "target"; type: "address" },
                      ];
                      name: "AddressEmptyCode";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "CannotRemoveRegistrationStake";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "implementation"; type: "address" },
                      ];
                      name: "ERC1967InvalidImplementation";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC1967NonPayable"; type: "error" },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "EntityNotActive"; type: "error" },
                  { inputs: readonly []; name: "EntityNotFound"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "FailedInnerCall"; type: "error" },
                  { inputs: readonly []; name: "InsufficientShares"; type: "error" },
                  { inputs: readonly []; name: "InsufficientStakeAmount"; type: "error" },
                  { inputs: readonly []; name: "InvalidAddress"; type: "error" },
                  { inputs: readonly []; name: "InvalidAmount"; type: "error" },
                  { inputs: readonly []; name: "InvalidEntity"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "InvalidRecipient"; type: "error" },
                  { inputs: readonly []; name: "InvalidSlippage"; type: "error" },
                  { inputs: readonly []; name: "NotAuthorized"; type: "error" },
                  { inputs: readonly []; name: "NotEntityOwner"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "ReentrancyGuardReentrantCall";
                      type: "error";
                  },
                  { inputs: readonly []; name: "TransferFailed"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "UUPSUnauthorizedCallContext";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "slot"; type: "bytes32" },
                      ];
                      name: "UUPSUnsupportedProxiableUUID";
                      type: "error";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "entityId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "ownerAddress";
                              type: "address";
                          },
                      ];
                      name: "EntityStakeRegistered";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "newMinStake";
                              type: "uint256";
                          },
                      ];
                      name: "MinStakeUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "entityId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "staker";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "amount";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "sharesIssued";
                              type: "uint256";
                          },
                      ];
                      name: "Staked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "entityId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "staker";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "amount";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "sharesBurned";
                              type: "uint256";
                          },
                      ];
                      name: "Unstaked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "implementation";
                              type: "address";
                          },
                      ];
                      name: "Upgraded";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MAINTAINER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "UPGRADE_INTERFACE_VERSION";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "VANA_POOL_ENTITY_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                      ];
                      name: "activeStakersListAt";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "activeStakersListCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "from"; type: "uint256" },
                          { internalType: "uint256"; name: "to"; type: "uint256" },
                      ];
                      name: "activeStakersListValues";
                      outputs: readonly [
                          { internalType: "address[]"; name: ""; type: "address[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                      ];
                      name: "inactiveStakersListAt";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "inactiveStakersListCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "from"; type: "uint256" },
                          { internalType: "uint256"; name: "to"; type: "uint256" },
                      ];
                      name: "inactiveStakersListValues";
                      outputs: readonly [
                          { internalType: "address[]"; name: ""; type: "address[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "trustedForwarderAddress";
                              type: "address";
                          },
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          { internalType: "uint256"; name: "initialMinStake"; type: "uint256" },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "forwarder"; type: "address" },
                      ];
                      name: "isTrustedForwarder";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "minStakeAmount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                      ];
                      name: "multicall";
                      outputs: readonly [
                          { internalType: "bytes[]"; name: "results"; type: "bytes[]" },
                      ];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "proxiableUUID";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "entityId"; type: "uint256" },
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          { internalType: "uint256"; name: "registrationStake"; type: "uint256" },
                      ];
                      name: "registerEntityStake";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "entityId"; type: "uint256" },
                          { internalType: "address"; name: "recipient"; type: "address" },
                          { internalType: "uint256"; name: "shareAmountMin"; type: "uint256" },
                      ];
                      name: "stake";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "staker"; type: "address" },
                          { internalType: "uint256"; name: "entityId"; type: "uint256" },
                      ];
                      name: "stakerEntities";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "shares"; type: "uint256" },
                              ];
                              internalType: "struct IVanaPoolStaking.StakerEntity";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "trustedForwarder";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "entityId"; type: "uint256" },
                          { internalType: "uint256"; name: "shareAmount"; type: "uint256" },
                          { internalType: "uint256"; name: "vanaAmountMin"; type: "uint256" },
                      ];
                      name: "unstake";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "newMinStake"; type: "uint256" },
                      ];
                      name: "updateMinStakeAmount";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "trustedForwarderAddress";
                              type: "address";
                          },
                      ];
                      name: "updateTrustedForwarder";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newVanaPoolEntityAddress";
                              type: "address";
                          },
                      ];
                      name: "updateVanaPoolEntity";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newVanaPoolTreasuryAddress";
                              type: "address";
                          },
                      ];
                      name: "updateVanaPoolTreasury";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newImplementation";
                              type: "address";
                          },
                          { internalType: "bytes"; name: "data"; type: "bytes" },
                      ];
                      name: "upgradeToAndCall";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "vanaPoolEntity";
                      outputs: readonly [
                          {
                              internalType: "contract IVanaPoolEntity";
                              name: "";
                              type: "address";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "vanaPoolTreasury";
                      outputs: readonly [
                          {
                              internalType: "contract IVanaPoolTreasury";
                              name: "";
                              type: "address";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "version";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "pure";
                      type: "function";
                  },
              ];
              VanaPoolEntity: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "target"; type: "address" },
                      ];
                      name: "AddressEmptyCode";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "implementation"; type: "address" },
                      ];
                      name: "ERC1967InvalidImplementation";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC1967NonPayable"; type: "error" },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "EntityNameAlreadyExists"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "FailedInnerCall"; type: "error" },
                  { inputs: readonly []; name: "InvalidAddress"; type: "error" },
                  { inputs: readonly []; name: "InvalidEntityId"; type: "error" },
                  { inputs: readonly []; name: "InvalidEntityStatus"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "InvalidName"; type: "error" },
                  { inputs: readonly []; name: "InvalidParam"; type: "error" },
                  { inputs: readonly []; name: "InvalidRegistrationStake"; type: "error" },
                  { inputs: readonly []; name: "NameTooShort"; type: "error" },
                  { inputs: readonly []; name: "NotAuthorized"; type: "error" },
                  { inputs: readonly []; name: "NotEntityOwner"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "ReentrancyGuardReentrantCall";
                      type: "error";
                  },
                  { inputs: readonly []; name: "StakersStillPresent"; type: "error" },
                  { inputs: readonly []; name: "TransferFailed"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "UUPSUnauthorizedCallContext";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "slot"; type: "bytes32" },
                      ];
                      name: "UUPSUnsupportedProxiableUUID";
                      type: "error";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "entityId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "address";
                              name: "ownerAddress";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "name";
                              type: "string";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "maxAPY";
                              type: "uint256";
                          },
                      ];
                      name: "EntityCreated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "entityId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "newMaxAPY";
                              type: "uint256";
                          },
                      ];
                      name: "EntityMaxAPYUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "entityId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "enum IVanaPoolEntity.EntityStatus";
                              name: "newStatus";
                              type: "uint8";
                          },
                      ];
                      name: "EntityStatusUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "entityId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "address";
                              name: "ownerAddress";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "name";
                              type: "string";
                          },
                      ];
                      name: "EntityUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "entityId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "amount";
                              type: "uint256";
                          },
                      ];
                      name: "RewardsAdded";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "entityId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "distributedAmount";
                              type: "uint256";
                          },
                      ];
                      name: "RewardsProcessed";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "implementation";
                              type: "address";
                          },
                      ];
                      name: "Upgraded";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MAINTAINER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "UPGRADE_INTERFACE_VERSION";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "VANA_POOL_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "activeEntitiesValues";
                      outputs: readonly [
                          { internalType: "uint256[]"; name: ""; type: "uint256[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "entityId"; type: "uint256" },
                      ];
                      name: "addRewards";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "entityId"; type: "uint256" },
                      ];
                      name: "calculateContinuousAPYByEntity";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "exponent"; type: "uint256" },
                      ];
                      name: "calculateExponential";
                      outputs: readonly [
                          { internalType: "uint256"; name: "r"; type: "uint256" },
                      ];
                      stateMutability: "pure";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "principal"; type: "uint256" },
                          { internalType: "uint256"; name: "apy"; type: "uint256" },
                          { internalType: "uint256"; name: "time"; type: "uint256" },
                      ];
                      name: "calculateYield";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "pure";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "ownerAddress"; type: "address" },
                                  { internalType: "string"; name: "name"; type: "string" },
                              ];
                              internalType: "struct IVanaPoolEntity.EntityRegistrationInfo";
                              name: "entityRegistrationInfo";
                              type: "tuple";
                          },
                      ];
                      name: "createEntity";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "entityId"; type: "uint256" },
                      ];
                      name: "entities";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "entityId"; type: "uint256" },
                                  { internalType: "address"; name: "ownerAddress"; type: "address" },
                                  {
                                      internalType: "enum IVanaPoolEntity.EntityStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "string"; name: "name"; type: "string" },
                                  { internalType: "uint256"; name: "maxAPY"; type: "uint256" },
                                  {
                                      internalType: "uint256";
                                      name: "lockedRewardPool";
                                      type: "uint256";
                                  },
                                  {
                                      internalType: "uint256";
                                      name: "activeRewardPool";
                                      type: "uint256";
                                  },
                                  { internalType: "uint256"; name: "totalShares"; type: "uint256" },
                                  {
                                      internalType: "uint256";
                                      name: "lastUpdateTimestamp";
                                      type: "uint256";
                                  },
                              ];
                              internalType: "struct IVanaPoolEntity.EntityInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "entitiesCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "string"; name: "entityName"; type: "string" },
                      ];
                      name: "entityByName";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "entityId"; type: "uint256" },
                                  { internalType: "address"; name: "ownerAddress"; type: "address" },
                                  {
                                      internalType: "enum IVanaPoolEntity.EntityStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "string"; name: "name"; type: "string" },
                                  { internalType: "uint256"; name: "maxAPY"; type: "uint256" },
                                  {
                                      internalType: "uint256";
                                      name: "lockedRewardPool";
                                      type: "uint256";
                                  },
                                  {
                                      internalType: "uint256";
                                      name: "activeRewardPool";
                                      type: "uint256";
                                  },
                                  { internalType: "uint256"; name: "totalShares"; type: "uint256" },
                                  {
                                      internalType: "uint256";
                                      name: "lastUpdateTimestamp";
                                      type: "uint256";
                                  },
                              ];
                              internalType: "struct IVanaPoolEntity.EntityInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "string"; name: "entityName"; type: "string" },
                      ];
                      name: "entityNameToId";
                      outputs: readonly [
                          { internalType: "uint256"; name: "entityId"; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "entityId"; type: "uint256" },
                      ];
                      name: "entityShareToVana";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          {
                              internalType: "address";
                              name: "vanaPoolStakingAddress";
                              type: "address";
                          },
                          {
                              internalType: "uint256";
                              name: "initialMinRegistrationStake";
                              type: "uint256";
                          },
                          {
                              internalType: "uint256";
                              name: "initialMaxAPYDefault";
                              type: "uint256";
                          },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "maxAPYDefault";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "minRegistrationStake";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "entityId"; type: "uint256" },
                      ];
                      name: "processRewards";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "proxiableUUID";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "entityId"; type: "uint256" },
                          {
                              components: readonly [
                                  { internalType: "address"; name: "ownerAddress"; type: "address" },
                                  { internalType: "string"; name: "name"; type: "string" },
                              ];
                              internalType: "struct IVanaPoolEntity.EntityRegistrationInfo";
                              name: "entityRegistrationInfo";
                              type: "tuple";
                          },
                      ];
                      name: "updateEntity";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "entityId"; type: "uint256" },
                          { internalType: "uint256"; name: "newMaxAPY"; type: "uint256" },
                      ];
                      name: "updateEntityMaxAPY";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "entityId"; type: "uint256" },
                          { internalType: "uint256"; name: "shares"; type: "uint256" },
                          { internalType: "uint256"; name: "amount"; type: "uint256" },
                          { internalType: "bool"; name: "isStake"; type: "bool" },
                      ];
                      name: "updateEntityPool";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "uint256";
                              name: "newMinRegistrationStake";
                              type: "uint256";
                          },
                      ];
                      name: "updateMinRegistrationStake";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newVanaPoolStakingAddress";
                              type: "address";
                          },
                      ];
                      name: "updateVanaPool";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newImplementation";
                              type: "address";
                          },
                          { internalType: "bytes"; name: "data"; type: "bytes" },
                      ];
                      name: "upgradeToAndCall";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "vanaPoolStaking";
                      outputs: readonly [
                          {
                              internalType: "contract IVanaPoolStaking";
                              name: "";
                              type: "address";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "entityId"; type: "uint256" },
                      ];
                      name: "vanaToEntityShare";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "version";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "pure";
                      type: "function";
                  },
              ];
              VanaPoolTreasury: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "target"; type: "address" },
                      ];
                      name: "AddressEmptyCode";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "implementation"; type: "address" },
                      ];
                      name: "ERC1967InvalidImplementation";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC1967NonPayable"; type: "error" },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "FailedInnerCall"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "UUPSUnauthorizedCallContext";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "slot"; type: "bytes32" },
                      ];
                      name: "UUPSUnsupportedProxiableUUID";
                      type: "error";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "implementation";
                              type: "address";
                          },
                      ];
                      name: "Upgraded";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "UPGRADE_INTERFACE_VERSION";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          { internalType: "address"; name: "vanaPoolAddress"; type: "address" },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "proxiableUUID";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address payable"; name: "to"; type: "address" },
                          { internalType: "uint256"; name: "value"; type: "uint256" },
                      ];
                      name: "transferVana";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "vanaPoolAddress";
                              type: "address";
                          },
                      ];
                      name: "updateVanaPool";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newImplementation";
                              type: "address";
                          },
                          { internalType: "bytes"; name: "data"; type: "bytes" },
                      ];
                      name: "upgradeToAndCall";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "vanaPool";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "version";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "pure";
                      type: "function";
                  },
                  { stateMutability: "payable"; type: "receive" },
              ];
              DAT: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  { inputs: readonly []; name: "AccountBlocked"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "length1"; type: "uint256" },
                          { internalType: "uint256"; name: "length2"; type: "uint256" },
                      ];
                      name: "ArrayLengthMismatch";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "addr"; type: "address" },
                      ];
                      name: "BlockListDoesNotContain";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "addr"; type: "address" },
                          { internalType: "string"; name: "reason"; type: "string" },
                      ];
                      name: "BlockingRejected";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "uint256";
                              name: "increasedSupply";
                              type: "uint256";
                          },
                          { internalType: "uint256"; name: "cap"; type: "uint256" },
                      ];
                      name: "ERC20ExceededCap";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "spender"; type: "address" },
                          { internalType: "uint256"; name: "allowance"; type: "uint256" },
                          { internalType: "uint256"; name: "needed"; type: "uint256" },
                      ];
                      name: "ERC20InsufficientAllowance";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "sender"; type: "address" },
                          { internalType: "uint256"; name: "balance"; type: "uint256" },
                          { internalType: "uint256"; name: "needed"; type: "uint256" },
                      ];
                      name: "ERC20InsufficientBalance";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "approver"; type: "address" },
                      ];
                      name: "ERC20InvalidApprover";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "cap"; type: "uint256" },
                      ];
                      name: "ERC20InvalidCap";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "receiver"; type: "address" },
                      ];
                      name: "ERC20InvalidReceiver";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "sender"; type: "address" },
                      ];
                      name: "ERC20InvalidSender";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "spender"; type: "address" },
                      ];
                      name: "ERC20InvalidSpender";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "string"; name: "paramName"; type: "string" },
                      ];
                      name: "EmptyString";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                          { internalType: "uint256"; name: "length"; type: "uint256" },
                      ];
                      name: "IndexOutOfBounds";
                      type: "error";
                  },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  { inputs: readonly []; name: "ZeroAddress"; type: "error" },
                  { inputs: readonly []; name: "ZeroAmount"; type: "error" },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "";
                              type: "address";
                          },
                      ];
                      name: "AddressBlocked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "";
                              type: "address";
                          },
                      ];
                      name: "AddressUnblocked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "owner";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "spender";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "value";
                              type: "uint256";
                          },
                      ];
                      name: "Approval";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "from";
                              type: "address";
                          },
                          { indexed: true; internalType: "address"; name: "to"; type: "address" },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "value";
                              type: "uint256";
                          },
                      ];
                      name: "Transfer";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MINTER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "owner"; type: "address" },
                          { internalType: "address"; name: "spender"; type: "address" },
                      ];
                      name: "allowance";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "spender"; type: "address" },
                          { internalType: "uint256"; name: "value"; type: "uint256" },
                      ];
                      name: "approve";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "balanceOf";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "addr"; type: "address" },
                      ];
                      name: "blockAddress";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "i"; type: "uint256" },
                      ];
                      name: "blockListAt";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "blockListLength";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "value"; type: "uint256" },
                      ];
                      name: "burn";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "uint256"; name: "value"; type: "uint256" },
                      ];
                      name: "burnFrom";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "cap";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "decimals";
                      outputs: readonly [{ internalType: "uint8"; name: ""; type: "uint8" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "string"; name: "name_"; type: "string" },
                          { internalType: "string"; name: "symbol_"; type: "string" },
                          { internalType: "address"; name: "owner_"; type: "address" },
                          { internalType: "uint256"; name: "cap_"; type: "uint256" },
                          { internalType: "address[]"; name: "receivers"; type: "address[]" },
                          { internalType: "uint256[]"; name: "amounts"; type: "uint256[]" },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "addr"; type: "address" },
                      ];
                      name: "isBlocked";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "to"; type: "address" },
                          { internalType: "uint256"; name: "amount"; type: "uint256" },
                      ];
                      name: "mint";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "name";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "id"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "symbol";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "templateName";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "pure";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "totalSupply";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "to"; type: "address" },
                          { internalType: "uint256"; name: "value"; type: "uint256" },
                      ];
                      name: "transfer";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "from"; type: "address" },
                          { internalType: "address"; name: "to"; type: "address" },
                          { internalType: "uint256"; name: "value"; type: "uint256" },
                      ];
                      name: "transferFrom";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "addr"; type: "address" },
                      ];
                      name: "unblockAddress";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
              ];
              DATFactory: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "target"; type: "address" },
                      ];
                      name: "AddressEmptyCode";
                      type: "error";
                  },
                  { inputs: readonly []; name: "CapTooLow"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "uint64"; name: "duration"; type: "uint64" },
                          { internalType: "uint64"; name: "cliff"; type: "uint64" },
                      ];
                      name: "DurationTooShort";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC1167FailedCreateClone"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "implementation"; type: "address" },
                      ];
                      name: "ERC1967InvalidImplementation";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC1967NonPayable"; type: "error" },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "total"; type: "uint256" },
                          { internalType: "uint256"; name: "cap"; type: "uint256" },
                      ];
                      name: "ExceedsCap";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ExcessiveCap"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "FailedInnerCall"; type: "error" },
                  {
                      inputs: readonly [
                          {
                              internalType: "enum IDATFactory.DATType";
                              name: "datType";
                              type: "uint8";
                          },
                      ];
                      name: "InvalidDATType";
                      type: "error";
                  },
                  { inputs: readonly []; name: "InvalidDefaultCap"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "uint64"; name: "start"; type: "uint64" },
                          { internalType: "uint64"; name: "cliff"; type: "uint64" },
                      ];
                      name: "StartTimeOverflow";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "UUPSUnauthorizedCallContext";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "slot"; type: "bytes32" },
                      ];
                      name: "UUPSUnsupportedProxiableUUID";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ZeroAddress"; type: "error" },
                  { inputs: readonly []; name: "ZeroAmount"; type: "error" },
                  { inputs: readonly []; name: "ZeroDuration"; type: "error" },
                  { inputs: readonly []; name: "ZeroOwner"; type: "error" },
                  { inputs: readonly []; name: "ZeroSalt"; type: "error" },
                  { inputs: readonly []; name: "ZeroStartTime"; type: "error" },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "token";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "salt";
                              type: "bytes32";
                          },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "name";
                              type: "string";
                          },
                          {
                              indexed: false;
                              internalType: "string";
                              name: "symbol";
                              type: "string";
                          },
                          {
                              indexed: false;
                              internalType: "address";
                              name: "owner";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "cap";
                              type: "uint256";
                          },
                      ];
                      name: "DATCreated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "implementation";
                              type: "address";
                          },
                      ];
                      name: "Upgraded";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "wallet";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "beneficiary";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "start";
                              type: "uint64";
                          },
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "cliff";
                              type: "uint64";
                          },
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "duration";
                              type: "uint64";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "amount";
                              type: "uint256";
                          },
                      ];
                      name: "VestingWalletCreated";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MAINTAINER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "UPGRADE_INTERFACE_VERSION";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              components: readonly [
                                  {
                                      internalType: "enum IDATFactory.DATType";
                                      name: "datType";
                                      type: "uint8";
                                  },
                                  { internalType: "string"; name: "name"; type: "string" },
                                  { internalType: "string"; name: "symbol"; type: "string" },
                                  { internalType: "address"; name: "owner"; type: "address" },
                                  { internalType: "uint256"; name: "cap"; type: "uint256" },
                                  {
                                      components: readonly [
                                          { internalType: ...; name: ...; type: ... },
                                          { internalType: ...; name: ...; type: ... },
                                          { internalType: ...; name: ...; type: ... },
                                          { internalType: ...; name: ...; type: ... },
                                          { internalType: ...; name: ...; type: ... },
                                      ];
                                      internalType: "struct IDATFactory.VestingParams[]";
                                      name: "schedules";
                                      type: "tuple[]";
                                  },
                                  { internalType: "bytes32"; name: "salt"; type: "bytes32" },
                              ];
                              internalType: "struct IDATFactory.CreateTokenParams";
                              name: "params";
                              type: "tuple";
                          },
                      ];
                      name: "createToken";
                      outputs: readonly [
                          { internalType: "address"; name: "tokenAddr"; type: "address" },
                      ];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                      ];
                      name: "datListAt";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "datListCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "datListValues";
                      outputs: readonly [
                          { internalType: "address[]"; name: ""; type: "address[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "enum IDATFactory.DATType";
                              name: "datType";
                              type: "uint8";
                          },
                      ];
                      name: "datTemplates";
                      outputs: readonly [
                          {
                              internalType: "address";
                              name: "templateAddress";
                              type: "address";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          { internalType: "uint256"; name: "minCap"; type: "uint256" },
                          { internalType: "uint256"; name: "maxCap"; type: "uint256" },
                          { internalType: "address"; name: "datImplementation"; type: "address" },
                          {
                              internalType: "address";
                              name: "datVotesImplementation";
                              type: "address";
                          },
                          {
                              internalType: "address";
                              name: "datPausableImplementation";
                              type: "address";
                          },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "maxCapDefault";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "minCapDefault";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "enum IDATFactory.DATType";
                              name: "datType";
                              type: "uint8";
                          },
                          { internalType: "bytes32"; name: "salt"; type: "bytes32" },
                      ];
                      name: "predictAddress";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "proxiableUUID";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newImplementation";
                              type: "address";
                          },
                          { internalType: "bytes"; name: "data"; type: "bytes" },
                      ];
                      name: "upgradeToAndCall";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
              ];
              DATPausable: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  { inputs: readonly []; name: "AccountBlocked"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "length1"; type: "uint256" },
                          { internalType: "uint256"; name: "length2"; type: "uint256" },
                      ];
                      name: "ArrayLengthMismatch";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "addr"; type: "address" },
                      ];
                      name: "BlockListDoesNotContain";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "addr"; type: "address" },
                          { internalType: "string"; name: "reason"; type: "string" },
                      ];
                      name: "BlockingRejected";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "CheckpointUnorderedInsertion";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ECDSAInvalidSignature"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "length"; type: "uint256" },
                      ];
                      name: "ECDSAInvalidSignatureLength";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "s"; type: "bytes32" },
                      ];
                      name: "ECDSAInvalidSignatureS";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "uint256";
                              name: "increasedSupply";
                              type: "uint256";
                          },
                          { internalType: "uint256"; name: "cap"; type: "uint256" },
                      ];
                      name: "ERC20ExceededCap";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "uint256";
                              name: "increasedSupply";
                              type: "uint256";
                          },
                          { internalType: "uint256"; name: "cap"; type: "uint256" },
                      ];
                      name: "ERC20ExceededSafeSupply";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "spender"; type: "address" },
                          { internalType: "uint256"; name: "allowance"; type: "uint256" },
                          { internalType: "uint256"; name: "needed"; type: "uint256" },
                      ];
                      name: "ERC20InsufficientAllowance";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "sender"; type: "address" },
                          { internalType: "uint256"; name: "balance"; type: "uint256" },
                          { internalType: "uint256"; name: "needed"; type: "uint256" },
                      ];
                      name: "ERC20InsufficientBalance";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "approver"; type: "address" },
                      ];
                      name: "ERC20InvalidApprover";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "cap"; type: "uint256" },
                      ];
                      name: "ERC20InvalidCap";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "receiver"; type: "address" },
                      ];
                      name: "ERC20InvalidReceiver";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "sender"; type: "address" },
                      ];
                      name: "ERC20InvalidSender";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "spender"; type: "address" },
                      ];
                      name: "ERC20InvalidSpender";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "deadline"; type: "uint256" },
                      ];
                      name: "ERC2612ExpiredSignature";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "signer"; type: "address" },
                          { internalType: "address"; name: "owner"; type: "address" },
                      ];
                      name: "ERC2612InvalidSigner";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "timepoint"; type: "uint256" },
                          { internalType: "uint48"; name: "clock"; type: "uint48" },
                      ];
                      name: "ERC5805FutureLookup";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC6372InconsistentClock"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "string"; name: "paramName"; type: "string" },
                      ];
                      name: "EmptyString";
                      type: "error";
                  },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                          { internalType: "uint256"; name: "length"; type: "uint256" },
                      ];
                      name: "IndexOutOfBounds";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "uint256"; name: "currentNonce"; type: "uint256" },
                      ];
                      name: "InvalidAccountNonce";
                      type: "error";
                  },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "uint8"; name: "bits"; type: "uint8" },
                          { internalType: "uint256"; name: "value"; type: "uint256" },
                      ];
                      name: "SafeCastOverflowedUintDowncast";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "expiry"; type: "uint256" },
                      ];
                      name: "VotesExpiredSignature";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ZeroAddress"; type: "error" },
                  { inputs: readonly []; name: "ZeroAmount"; type: "error" },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "";
                              type: "address";
                          },
                      ];
                      name: "AddressBlocked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "";
                              type: "address";
                          },
                      ];
                      name: "AddressUnblocked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "owner";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "spender";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "value";
                              type: "uint256";
                          },
                      ];
                      name: "Approval";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "delegator";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "fromDelegate";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "toDelegate";
                              type: "address";
                          },
                      ];
                      name: "DelegateChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "delegate";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "previousVotes";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "newVotes";
                              type: "uint256";
                          },
                      ];
                      name: "DelegateVotesChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [];
                      name: "EIP712DomainChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "from";
                              type: "address";
                          },
                          { indexed: true; internalType: "address"; name: "to"; type: "address" },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "value";
                              type: "uint256";
                          },
                      ];
                      name: "Transfer";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "CLOCK_MODE";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "pure";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "DOMAIN_SEPARATOR";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MINTER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "owner"; type: "address" },
                          { internalType: "address"; name: "spender"; type: "address" },
                      ];
                      name: "allowance";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "spender"; type: "address" },
                          { internalType: "uint256"; name: "value"; type: "uint256" },
                      ];
                      name: "approve";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "balanceOf";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "addr"; type: "address" },
                      ];
                      name: "blockAddress";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "i"; type: "uint256" },
                      ];
                      name: "blockListAt";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "blockListLength";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "value"; type: "uint256" },
                      ];
                      name: "burn";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "uint256"; name: "value"; type: "uint256" },
                      ];
                      name: "burnFrom";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "cap";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "uint32"; name: "pos"; type: "uint32" },
                      ];
                      name: "checkpoints";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint48"; name: "_key"; type: "uint48" },
                                  { internalType: "uint208"; name: "_value"; type: "uint208" },
                              ];
                              internalType: "struct Checkpoints.Checkpoint208";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "clock";
                      outputs: readonly [{ internalType: "uint48"; name: ""; type: "uint48" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "decimals";
                      outputs: readonly [{ internalType: "uint8"; name: ""; type: "uint8" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "delegatee"; type: "address" },
                      ];
                      name: "delegate";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "delegatee"; type: "address" },
                          { internalType: "uint256"; name: "nonce"; type: "uint256" },
                          { internalType: "uint256"; name: "expiry"; type: "uint256" },
                          { internalType: "uint8"; name: "v"; type: "uint8" },
                          { internalType: "bytes32"; name: "r"; type: "bytes32" },
                          { internalType: "bytes32"; name: "s"; type: "bytes32" },
                      ];
                      name: "delegateBySig";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "delegates";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "eip712Domain";
                      outputs: readonly [
                          { internalType: "bytes1"; name: "fields"; type: "bytes1" },
                          { internalType: "string"; name: "name"; type: "string" },
                          { internalType: "string"; name: "version"; type: "string" },
                          { internalType: "uint256"; name: "chainId"; type: "uint256" },
                          { internalType: "address"; name: "verifyingContract"; type: "address" },
                          { internalType: "bytes32"; name: "salt"; type: "bytes32" },
                          { internalType: "uint256[]"; name: "extensions"; type: "uint256[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "timepoint"; type: "uint256" },
                      ];
                      name: "getPastTotalSupply";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "uint256"; name: "timepoint"; type: "uint256" },
                      ];
                      name: "getPastVotes";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "getVotes";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "string"; name: "name_"; type: "string" },
                          { internalType: "string"; name: "symbol_"; type: "string" },
                          { internalType: "address"; name: "owner_"; type: "address" },
                          { internalType: "uint256"; name: "cap_"; type: "uint256" },
                          { internalType: "address[]"; name: "receivers"; type: "address[]" },
                          { internalType: "uint256[]"; name: "amounts"; type: "uint256[]" },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "addr"; type: "address" },
                      ];
                      name: "isBlocked";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "to"; type: "address" },
                          { internalType: "uint256"; name: "amount"; type: "uint256" },
                      ];
                      name: "mint";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "name";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "owner"; type: "address" },
                      ];
                      name: "nonces";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "numCheckpoints";
                      outputs: readonly [{ internalType: "uint32"; name: ""; type: "uint32" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "owner"; type: "address" },
                          { internalType: "address"; name: "spender"; type: "address" },
                          { internalType: "uint256"; name: "value"; type: "uint256" },
                          { internalType: "uint256"; name: "deadline"; type: "uint256" },
                          { internalType: "uint8"; name: "v"; type: "uint8" },
                          { internalType: "bytes32"; name: "r"; type: "bytes32" },
                          { internalType: "bytes32"; name: "s"; type: "bytes32" },
                      ];
                      name: "permit";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "id"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "symbol";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "templateName";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "pure";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "totalSupply";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "to"; type: "address" },
                          { internalType: "uint256"; name: "value"; type: "uint256" },
                      ];
                      name: "transfer";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "from"; type: "address" },
                          { internalType: "address"; name: "to"; type: "address" },
                          { internalType: "uint256"; name: "value"; type: "uint256" },
                      ];
                      name: "transferFrom";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "addr"; type: "address" },
                      ];
                      name: "unblockAddress";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
              ];
              DATVotes: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  { inputs: readonly []; name: "AccountBlocked"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "length1"; type: "uint256" },
                          { internalType: "uint256"; name: "length2"; type: "uint256" },
                      ];
                      name: "ArrayLengthMismatch";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "addr"; type: "address" },
                      ];
                      name: "BlockListDoesNotContain";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "addr"; type: "address" },
                          { internalType: "string"; name: "reason"; type: "string" },
                      ];
                      name: "BlockingRejected";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "CheckpointUnorderedInsertion";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ECDSAInvalidSignature"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "length"; type: "uint256" },
                      ];
                      name: "ECDSAInvalidSignatureLength";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "s"; type: "bytes32" },
                      ];
                      name: "ECDSAInvalidSignatureS";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "uint256";
                              name: "increasedSupply";
                              type: "uint256";
                          },
                          { internalType: "uint256"; name: "cap"; type: "uint256" },
                      ];
                      name: "ERC20ExceededCap";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "uint256";
                              name: "increasedSupply";
                              type: "uint256";
                          },
                          { internalType: "uint256"; name: "cap"; type: "uint256" },
                      ];
                      name: "ERC20ExceededSafeSupply";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "spender"; type: "address" },
                          { internalType: "uint256"; name: "allowance"; type: "uint256" },
                          { internalType: "uint256"; name: "needed"; type: "uint256" },
                      ];
                      name: "ERC20InsufficientAllowance";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "sender"; type: "address" },
                          { internalType: "uint256"; name: "balance"; type: "uint256" },
                          { internalType: "uint256"; name: "needed"; type: "uint256" },
                      ];
                      name: "ERC20InsufficientBalance";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "approver"; type: "address" },
                      ];
                      name: "ERC20InvalidApprover";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "cap"; type: "uint256" },
                      ];
                      name: "ERC20InvalidCap";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "receiver"; type: "address" },
                      ];
                      name: "ERC20InvalidReceiver";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "sender"; type: "address" },
                      ];
                      name: "ERC20InvalidSender";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "spender"; type: "address" },
                      ];
                      name: "ERC20InvalidSpender";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "deadline"; type: "uint256" },
                      ];
                      name: "ERC2612ExpiredSignature";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "signer"; type: "address" },
                          { internalType: "address"; name: "owner"; type: "address" },
                      ];
                      name: "ERC2612InvalidSigner";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "timepoint"; type: "uint256" },
                          { internalType: "uint48"; name: "clock"; type: "uint48" },
                      ];
                      name: "ERC5805FutureLookup";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC6372InconsistentClock"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "string"; name: "paramName"; type: "string" },
                      ];
                      name: "EmptyString";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                          { internalType: "uint256"; name: "length"; type: "uint256" },
                      ];
                      name: "IndexOutOfBounds";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "uint256"; name: "currentNonce"; type: "uint256" },
                      ];
                      name: "InvalidAccountNonce";
                      type: "error";
                  },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "uint8"; name: "bits"; type: "uint8" },
                          { internalType: "uint256"; name: "value"; type: "uint256" },
                      ];
                      name: "SafeCastOverflowedUintDowncast";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "expiry"; type: "uint256" },
                      ];
                      name: "VotesExpiredSignature";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ZeroAddress"; type: "error" },
                  { inputs: readonly []; name: "ZeroAmount"; type: "error" },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "";
                              type: "address";
                          },
                      ];
                      name: "AddressBlocked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "";
                              type: "address";
                          },
                      ];
                      name: "AddressUnblocked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "owner";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "spender";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "value";
                              type: "uint256";
                          },
                      ];
                      name: "Approval";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "delegator";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "fromDelegate";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "toDelegate";
                              type: "address";
                          },
                      ];
                      name: "DelegateChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "delegate";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "previousVotes";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "newVotes";
                              type: "uint256";
                          },
                      ];
                      name: "DelegateVotesChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [];
                      name: "EIP712DomainChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "from";
                              type: "address";
                          },
                          { indexed: true; internalType: "address"; name: "to"; type: "address" },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "value";
                              type: "uint256";
                          },
                      ];
                      name: "Transfer";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "CLOCK_MODE";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "pure";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "DOMAIN_SEPARATOR";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MINTER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "owner"; type: "address" },
                          { internalType: "address"; name: "spender"; type: "address" },
                      ];
                      name: "allowance";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "spender"; type: "address" },
                          { internalType: "uint256"; name: "value"; type: "uint256" },
                      ];
                      name: "approve";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "balanceOf";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "addr"; type: "address" },
                      ];
                      name: "blockAddress";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "i"; type: "uint256" },
                      ];
                      name: "blockListAt";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "blockListLength";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "value"; type: "uint256" },
                      ];
                      name: "burn";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "uint256"; name: "value"; type: "uint256" },
                      ];
                      name: "burnFrom";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "cap";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "uint32"; name: "pos"; type: "uint32" },
                      ];
                      name: "checkpoints";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint48"; name: "_key"; type: "uint48" },
                                  { internalType: "uint208"; name: "_value"; type: "uint208" },
                              ];
                              internalType: "struct Checkpoints.Checkpoint208";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "clock";
                      outputs: readonly [{ internalType: "uint48"; name: ""; type: "uint48" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "decimals";
                      outputs: readonly [{ internalType: "uint8"; name: ""; type: "uint8" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "delegatee"; type: "address" },
                      ];
                      name: "delegate";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "delegatee"; type: "address" },
                          { internalType: "uint256"; name: "nonce"; type: "uint256" },
                          { internalType: "uint256"; name: "expiry"; type: "uint256" },
                          { internalType: "uint8"; name: "v"; type: "uint8" },
                          { internalType: "bytes32"; name: "r"; type: "bytes32" },
                          { internalType: "bytes32"; name: "s"; type: "bytes32" },
                      ];
                      name: "delegateBySig";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "delegates";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "eip712Domain";
                      outputs: readonly [
                          { internalType: "bytes1"; name: "fields"; type: "bytes1" },
                          { internalType: "string"; name: "name"; type: "string" },
                          { internalType: "string"; name: "version"; type: "string" },
                          { internalType: "uint256"; name: "chainId"; type: "uint256" },
                          { internalType: "address"; name: "verifyingContract"; type: "address" },
                          { internalType: "bytes32"; name: "salt"; type: "bytes32" },
                          { internalType: "uint256[]"; name: "extensions"; type: "uint256[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "timepoint"; type: "uint256" },
                      ];
                      name: "getPastTotalSupply";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "uint256"; name: "timepoint"; type: "uint256" },
                      ];
                      name: "getPastVotes";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "getVotes";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "string"; name: "name_"; type: "string" },
                          { internalType: "string"; name: "symbol_"; type: "string" },
                          { internalType: "address"; name: "owner_"; type: "address" },
                          { internalType: "uint256"; name: "cap_"; type: "uint256" },
                          { internalType: "address[]"; name: "receivers"; type: "address[]" },
                          { internalType: "uint256[]"; name: "amounts"; type: "uint256[]" },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "addr"; type: "address" },
                      ];
                      name: "isBlocked";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "to"; type: "address" },
                          { internalType: "uint256"; name: "amount"; type: "uint256" },
                      ];
                      name: "mint";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "name";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "owner"; type: "address" },
                      ];
                      name: "nonces";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "numCheckpoints";
                      outputs: readonly [{ internalType: "uint32"; name: ""; type: "uint32" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "owner"; type: "address" },
                          { internalType: "address"; name: "spender"; type: "address" },
                          { internalType: "uint256"; name: "value"; type: "uint256" },
                          { internalType: "uint256"; name: "deadline"; type: "uint256" },
                          { internalType: "uint8"; name: "v"; type: "uint8" },
                          { internalType: "bytes32"; name: "r"; type: "bytes32" },
                          { internalType: "bytes32"; name: "s"; type: "bytes32" },
                      ];
                      name: "permit";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "id"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "symbol";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "templateName";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "pure";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "totalSupply";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "to"; type: "address" },
                          { internalType: "uint256"; name: "value"; type: "uint256" },
                      ];
                      name: "transfer";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "from"; type: "address" },
                          { internalType: "address"; name: "to"; type: "address" },
                          { internalType: "uint256"; name: "value"; type: "uint256" },
                      ];
                      name: "transferFrom";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "addr"; type: "address" },
                      ];
                      name: "unblockAddress";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
              ];
              DLPRoot: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "target"; type: "address" },
                      ];
                      name: "AddressEmptyCode";
                      type: "error";
                  },
                  {
                      inputs: readonly [];
                      name: "CheckpointUnorderedInsertion";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "implementation"; type: "address" },
                      ];
                      name: "ERC1967InvalidImplementation";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC1967NonPayable"; type: "error" },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "EpochNotEnded"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "FailedInnerCall"; type: "error" },
                  { inputs: readonly []; name: "InvalidAddress"; type: "error" },
                  { inputs: readonly []; name: "InvalidDlpId"; type: "error" },
                  { inputs: readonly []; name: "InvalidDlpStatus"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "InvalidParam"; type: "error" },
                  { inputs: readonly []; name: "InvalidStakeAmount"; type: "error" },
                  { inputs: readonly []; name: "InvalidStakersPercentage"; type: "error" },
                  { inputs: readonly []; name: "LastEpochMustBeFinalised"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  { inputs: readonly []; name: "NotStakeOwner"; type: "error" },
                  { inputs: readonly []; name: "NothingToClaim"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "ReentrancyGuardReentrantCall";
                      type: "error";
                  },
                  { inputs: readonly []; name: "StakeActionPaused"; type: "error" },
                  { inputs: readonly []; name: "StakeAlreadyClosed"; type: "error" },
                  { inputs: readonly []; name: "StakeAlreadyWithdrawn"; type: "error" },
                  { inputs: readonly []; name: "StakeNotClosed"; type: "error" },
                  { inputs: readonly []; name: "StakeWithdrawalTooEarly"; type: "error" },
                  { inputs: readonly []; name: "TransferFailed"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "UUPSUnauthorizedCallContext";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "slot"; type: "bytes32" },
                      ];
                      name: "UUPSUnsupportedProxiableUUID";
                      type: "error";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "newMinStakeAmount";
                              type: "uint256";
                          },
                      ];
                      name: "MinStakeAmountUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "newRewardClaimDelay";
                              type: "uint256";
                          },
                      ];
                      name: "RewardClaimDelayUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "stakeId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "amount";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "entityId";
                              type: "uint256";
                          },
                      ];
                      name: "RewardMigratedToVanaPool";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "stakeId";
                              type: "uint256";
                          },
                      ];
                      name: "StakeClosed";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "stakeId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "staker";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "dlpId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "amount";
                              type: "uint256";
                          },
                      ];
                      name: "StakeCreated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "oldStakeId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "newStakeId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "newDlpId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "newAmount";
                              type: "uint256";
                          },
                      ];
                      name: "StakeMigrated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "stakeId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "amount";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "entityId";
                              type: "uint256";
                          },
                      ];
                      name: "StakeMigratedToVanaPool";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "stakeId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "epochId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "amount";
                              type: "uint256";
                          },
                          { indexed: false; internalType: "bool"; name: "isFinal"; type: "bool" },
                      ];
                      name: "StakeRewardClaimed";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "newStakeWithdrawalDelay";
                              type: "uint256";
                          },
                      ];
                      name: "StakeWithdrawalDelayUpdated";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "stakeId";
                              type: "uint256";
                          },
                      ];
                      name: "StakeWithdrawn";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "implementation";
                              type: "address";
                          },
                      ];
                      name: "Upgraded";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MAINTAINER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "NEW_MULTIPLIER_EPOCH";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "UPGRADE_INTERFACE_VERSION";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "stakeId"; type: "uint256" },
                      ];
                      name: "calculateStakeClaimableAmount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "stakeAmount"; type: "uint256" },
                          { internalType: "uint256"; name: "stakeStartBlock"; type: "uint256" },
                          { internalType: "uint256"; name: "blockNumber"; type: "uint256" },
                      ];
                      name: "calculateStakeScore";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "stakeId"; type: "uint256" },
                          { internalType: "uint256"; name: "lastEpochToClaim"; type: "uint256" },
                      ];
                      name: "claimStakeRewardUntilEpoch";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256[]"; name: "stakeIds"; type: "uint256[]" },
                      ];
                      name: "claimStakesReward";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256[]"; name: "stakeIds"; type: "uint256[]" },
                      ];
                      name: "closeStakes";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                      ];
                      name: "createStake";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                          { internalType: "address"; name: "stakeOwner"; type: "address" },
                      ];
                      name: "createStakeOnBehalf";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "dlpRootCore";
                      outputs: readonly [
                          { internalType: "contract IDLPRootCore"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "dlpRootEpoch";
                      outputs: readonly [
                          {
                              internalType: "contract IDLPRootEpoch";
                              name: "";
                              type: "address";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "dlpRootMetrics";
                      outputs: readonly [
                          {
                              internalType: "contract IDLPRootMetrics";
                              name: "";
                              type: "address";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "dlpRootRewardsTreasury";
                      outputs: readonly [
                          {
                              internalType: "contract IDLPRootTreasury";
                              name: "";
                              type: "address";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "dlpRootStakesTreasury";
                      outputs: readonly [
                          {
                              internalType: "contract IDLPRootTreasury";
                              name: "";
                              type: "address";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "forwarder"; type: "address" },
                      ];
                      name: "isTrustedForwarder";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "stakeId"; type: "uint256" },
                          { internalType: "uint256"; name: "entityId"; type: "uint256" },
                      ];
                      name: "migrateRewardToVanaPool";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "stakeId"; type: "uint256" },
                          { internalType: "uint256"; name: "newDlpId"; type: "uint256" },
                          { internalType: "uint256"; name: "newAmount"; type: "uint256" },
                      ];
                      name: "migrateStake";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "stakeId"; type: "uint256" },
                          { internalType: "uint256"; name: "entityId"; type: "uint256" },
                      ];
                      name: "migrateStakeAndRewardToVanaPool";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "stakeId"; type: "uint256" },
                          { internalType: "uint256"; name: "entityId"; type: "uint256" },
                      ];
                      name: "migrateStakeToVanaPool";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "minStakeAmount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "proxiableUUID";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "rewardClaimDelay";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "stakeId"; type: "uint256" },
                          { internalType: "uint256"; name: "epochId"; type: "uint256" },
                      ];
                      name: "stakeClaimedAmounts";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "stakeId"; type: "uint256" },
                          { internalType: "uint256"; name: "epochId"; type: "uint256" },
                      ];
                      name: "stakeEpochReward";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "stakeWithdrawalDelay";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "stakerAddress"; type: "address" },
                          { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                      ];
                      name: "stakerDlpStakeAmount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "staker"; type: "address" },
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                      ];
                      name: "stakerDlpsListAt";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "staker"; type: "address" },
                      ];
                      name: "stakerDlpsListCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "staker"; type: "address" },
                      ];
                      name: "stakerDlpsListValues";
                      outputs: readonly [
                          { internalType: "uint256[]"; name: ""; type: "uint256[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "stakerAddress"; type: "address" },
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                      ];
                      name: "stakerStakesListAt";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "stakerAddress"; type: "address" },
                      ];
                      name: "stakerStakesListCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "stakerAddress"; type: "address" },
                      ];
                      name: "stakerStakesListValues";
                      outputs: readonly [
                          { internalType: "uint256[]"; name: ""; type: "uint256[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "stakerAddress"; type: "address" },
                      ];
                      name: "stakerTotalStakeAmount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                      ];
                      name: "stakersListAt";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "stakersListCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "stakeId"; type: "uint256" },
                      ];
                      name: "stakes";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "id"; type: "uint256" },
                                  { internalType: "address"; name: "stakerAddress"; type: "address" },
                                  { internalType: "uint256"; name: "dlpId"; type: "uint256" },
                                  { internalType: "uint256"; name: "amount"; type: "uint256" },
                                  { internalType: "uint256"; name: "startBlock"; type: "uint256" },
                                  { internalType: "uint256"; name: "endBlock"; type: "uint256" },
                                  { internalType: "bool"; name: "withdrawn"; type: "bool" },
                                  {
                                      internalType: "uint256";
                                      name: "lastClaimedEpochId";
                                      type: "uint256";
                                  },
                              ];
                              internalType: "struct IDLPRoot.StakeInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "stakesCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "stakingLastBlockNumber";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "trustedForwarder";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newDlpRootCoreAddress";
                              type: "address";
                          },
                      ];
                      name: "updateDlpRootCore";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newDlpRootEpochAddress";
                              type: "address";
                          },
                      ];
                      name: "updateDlpRootEpoch";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newDlpRootMetricsAddress";
                              type: "address";
                          },
                      ];
                      name: "updateDlpRootMetrics";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newDlpRootRewardsTreasuryAddress";
                              type: "address";
                          },
                      ];
                      name: "updateDlpRootRewardsTreasury";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newDlpRootStakesTreasuryAddress";
                              type: "address";
                          },
                      ];
                      name: "updateDlpRootStakesTreasury";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "uint256";
                              name: "newMinStakeAmount";
                              type: "uint256";
                          },
                      ];
                      name: "updateMinStakeAmount";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "uint256";
                              name: "newRewardClaimDelay";
                              type: "uint256";
                          },
                      ];
                      name: "updateRewardClaimDelay";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "uint256";
                              name: "newStakingLastBlockNumber";
                              type: "uint256";
                          },
                      ];
                      name: "updateStakeLastBlockNumber";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "uint256";
                              name: "newStakeWithdrawalDelay";
                              type: "uint256";
                          },
                      ];
                      name: "updateStakeWithdrawalDelay";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "trustedForwarderAddress";
                              type: "address";
                          },
                      ];
                      name: "updateTrustedForwarder";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newVanaPoolStakingAddress";
                              type: "address";
                          },
                      ];
                      name: "updateVanaPoolStaking";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newImplementation";
                              type: "address";
                          },
                          { internalType: "bytes"; name: "data"; type: "bytes" },
                      ];
                      name: "upgradeToAndCall";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "vanaPoolStaking";
                      outputs: readonly [
                          {
                              internalType: "contract IVanaPoolStaking";
                              name: "";
                              type: "address";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "version";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "pure";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256[]"; name: "stakeIds"; type: "uint256[]" },
                      ];
                      name: "withdrawStakes";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  { stateMutability: "payable"; type: "receive" },
              ];
              TeePool: readonly [
                  {
                      inputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "constructor";
                  },
                  {
                      inputs: readonly [];
                      name: "AccessControlBadConfirmation";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "account"; type: "address" },
                          { internalType: "bytes32"; name: "neededRole"; type: "bytes32" },
                      ];
                      name: "AccessControlUnauthorizedAccount";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "target"; type: "address" },
                      ];
                      name: "AddressEmptyCode";
                      type: "error";
                  },
                  { inputs: readonly []; name: "CancelDelayNotPassed"; type: "error" },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "implementation"; type: "address" },
                      ];
                      name: "ERC1967InvalidImplementation";
                      type: "error";
                  },
                  { inputs: readonly []; name: "ERC1967NonPayable"; type: "error" },
                  { inputs: readonly []; name: "EnforcedPause"; type: "error" },
                  { inputs: readonly []; name: "ExpectedPause"; type: "error" },
                  { inputs: readonly []; name: "FailedInnerCall"; type: "error" },
                  { inputs: readonly []; name: "InsufficientFee"; type: "error" },
                  { inputs: readonly []; name: "InvalidInitialization"; type: "error" },
                  { inputs: readonly []; name: "InvalidJobStatus"; type: "error" },
                  { inputs: readonly []; name: "InvalidJobTee"; type: "error" },
                  { inputs: readonly []; name: "JobCompleted"; type: "error" },
                  { inputs: readonly []; name: "NoActiveTee"; type: "error" },
                  { inputs: readonly []; name: "NotInitializing"; type: "error" },
                  { inputs: readonly []; name: "NotJobOwner"; type: "error" },
                  { inputs: readonly []; name: "NothingToClaim"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "ReentrancyGuardReentrantCall";
                      type: "error";
                  },
                  { inputs: readonly []; name: "TeeAlreadyAdded"; type: "error" },
                  { inputs: readonly []; name: "TeeNotActive"; type: "error" },
                  { inputs: readonly []; name: "TransferFailed"; type: "error" },
                  {
                      inputs: readonly [];
                      name: "UUPSUnauthorizedCallContext";
                      type: "error";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "slot"; type: "bytes32" },
                      ];
                      name: "UUPSUnsupportedProxiableUUID";
                      type: "error";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "teeAddress";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "amount";
                              type: "uint256";
                          },
                      ];
                      name: "Claimed";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "uint64";
                              name: "version";
                              type: "uint64";
                          },
                      ];
                      name: "Initialized";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "jobId";
                              type: "uint256";
                          },
                      ];
                      name: "JobCanceled";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "jobId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "fileId";
                              type: "uint256";
                          },
                          {
                              indexed: false;
                              internalType: "address";
                              name: "teeAddress";
                              type: "address";
                          },
                          {
                              indexed: false;
                              internalType: "uint256";
                              name: "bidAmount";
                              type: "uint256";
                          },
                      ];
                      name: "JobSubmitted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Paused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "attestator";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "jobId";
                              type: "uint256";
                          },
                          {
                              indexed: true;
                              internalType: "uint256";
                              name: "fileId";
                              type: "uint256";
                          },
                      ];
                      name: "ProofAdded";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "previousAdminRole";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "newAdminRole";
                              type: "bytes32";
                          },
                      ];
                      name: "RoleAdminChanged";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleGranted";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "bytes32";
                              name: "role";
                              type: "bytes32";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                          {
                              indexed: true;
                              internalType: "address";
                              name: "sender";
                              type: "address";
                          },
                      ];
                      name: "RoleRevoked";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "teeAddress";
                              type: "address";
                          },
                      ];
                      name: "TeeAdded";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "teeAddress";
                              type: "address";
                          },
                      ];
                      name: "TeeRemoved";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: false;
                              internalType: "address";
                              name: "account";
                              type: "address";
                          },
                      ];
                      name: "Unpaused";
                      type: "event";
                  },
                  {
                      anonymous: false;
                      inputs: readonly [
                          {
                              indexed: true;
                              internalType: "address";
                              name: "implementation";
                              type: "address";
                          },
                      ];
                      name: "Upgraded";
                      type: "event";
                  },
                  {
                      inputs: readonly [];
                      name: "DEFAULT_ADMIN_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "MAINTAINER_ROLE";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "UPGRADE_INTERFACE_VERSION";
                      outputs: readonly [{ internalType: "string"; name: ""; type: "string" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "activeTeeList";
                      outputs: readonly [
                          { internalType: "address[]"; name: ""; type: "address[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                      ];
                      name: "activeTeeListAt";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "teeAddress"; type: "address" },
                                  { internalType: "string"; name: "url"; type: "string" },
                                  {
                                      internalType: "enum ITeePool.TeeStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "uint256"; name: "amount"; type: "uint256" },
                                  { internalType: "uint256"; name: "withdrawnAmount"; type: "uint256" },
                                  { internalType: "uint256"; name: "jobsCount"; type: "uint256" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                              ];
                              internalType: "struct ITeePool.TeeInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "activeTeesCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "jobId"; type: "uint256" },
                          {
                              components: readonly [
                                  { internalType: "bytes"; name: "signature"; type: "bytes" },
                                  {
                                      components: readonly [
                                          { internalType: ...; name: ...; type: ... },
                                          { internalType: ...; name: ...; type: ... },
                                          { internalType: ...; name: ...; type: ... },
                                          { internalType: ...; name: ...; type: ... },
                                          { internalType: ...; name: ...; type: ... },
                                      ];
                                      internalType: "struct IDataRegistry.ProofData";
                                      name: "data";
                                      type: "tuple";
                                  },
                              ];
                              internalType: "struct IDataRegistry.Proof";
                              name: "proof";
                              type: "tuple";
                          },
                      ];
                      name: "addProof";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                          { internalType: "string"; name: "url"; type: "string" },
                          { internalType: "string"; name: "publicKey"; type: "string" },
                      ];
                      name: "addTee";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "cancelDelay";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "jobId"; type: "uint256" },
                      ];
                      name: "cancelJob";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "claim";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "dataRegistry";
                      outputs: readonly [
                          {
                              internalType: "contract IDataRegistry";
                              name: "";
                              type: "address";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "fileId"; type: "uint256" },
                      ];
                      name: "fileJobIds";
                      outputs: readonly [
                          { internalType: "uint256[]"; name: ""; type: "uint256[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                      ];
                      name: "getRoleAdmin";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "grantRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "hasRole";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "trustedForwarderAddress";
                              type: "address";
                          },
                          { internalType: "address"; name: "ownerAddress"; type: "address" },
                          {
                              internalType: "address";
                              name: "dataRegistryAddress";
                              type: "address";
                          },
                          {
                              internalType: "uint256";
                              name: "initialCancelDelay";
                              type: "uint256";
                          },
                      ];
                      name: "initialize";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "isTee";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "forwarder"; type: "address" },
                      ];
                      name: "isTrustedForwarder";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "jobId"; type: "uint256" },
                      ];
                      name: "jobs";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "uint256"; name: "fileId"; type: "uint256" },
                                  { internalType: "uint256"; name: "bidAmount"; type: "uint256" },
                                  {
                                      internalType: "enum ITeePool.JobStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "uint256"; name: "addedTimestamp"; type: "uint256" },
                                  { internalType: "address"; name: "ownerAddress"; type: "address" },
                                  { internalType: "address"; name: "teeAddress"; type: "address" },
                              ];
                              internalType: "struct ITeePool.Job";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "jobsCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                      ];
                      name: "multicall";
                      outputs: readonly [
                          { internalType: "bytes[]"; name: "results"; type: "bytes[]" },
                      ];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "pause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "paused";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "proxiableUUID";
                      outputs: readonly [
                          { internalType: "bytes32"; name: ""; type: "bytes32" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "removeTee";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          {
                              internalType: "address";
                              name: "callerConfirmation";
                              type: "address";
                          },
                      ];
                      name: "renounceRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "fileId"; type: "uint256" },
                      ];
                      name: "requestContributionProof";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes32"; name: "role"; type: "bytes32" },
                          { internalType: "address"; name: "account"; type: "address" },
                      ];
                      name: "revokeRole";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "fileId"; type: "uint256" },
                      ];
                      name: "submitJob";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "bytes4"; name: "interfaceId"; type: "bytes4" },
                      ];
                      name: "supportsInterface";
                      outputs: readonly [{ internalType: "bool"; name: ""; type: "bool" }];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teeFee";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                          { internalType: "uint256"; name: "start"; type: "uint256" },
                          { internalType: "uint256"; name: "limit"; type: "uint256" },
                      ];
                      name: "teeJobIdsPaginated";
                      outputs: readonly [
                          { internalType: "uint256[]"; name: ""; type: "uint256[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teeList";
                      outputs: readonly [
                          { internalType: "address[]"; name: ""; type: "address[]" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "index"; type: "uint256" },
                      ];
                      name: "teeListAt";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "teeAddress"; type: "address" },
                                  { internalType: "string"; name: "url"; type: "string" },
                                  {
                                      internalType: "enum ITeePool.TeeStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "uint256"; name: "amount"; type: "uint256" },
                                  { internalType: "uint256"; name: "withdrawnAmount"; type: "uint256" },
                                  { internalType: "uint256"; name: "jobsCount"; type: "uint256" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                              ];
                              internalType: "struct ITeePool.TeeInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "address"; name: "teeAddress"; type: "address" },
                      ];
                      name: "tees";
                      outputs: readonly [
                          {
                              components: readonly [
                                  { internalType: "address"; name: "teeAddress"; type: "address" },
                                  { internalType: "string"; name: "url"; type: "string" },
                                  {
                                      internalType: "enum ITeePool.TeeStatus";
                                      name: "status";
                                      type: "uint8";
                                  },
                                  { internalType: "uint256"; name: "amount"; type: "uint256" },
                                  { internalType: "uint256"; name: "withdrawnAmount"; type: "uint256" },
                                  { internalType: "uint256"; name: "jobsCount"; type: "uint256" },
                                  { internalType: "string"; name: "publicKey"; type: "string" },
                              ];
                              internalType: "struct ITeePool.TeeInfo";
                              name: "";
                              type: "tuple";
                          },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "teesCount";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "trustedForwarder";
                      outputs: readonly [
                          { internalType: "address"; name: ""; type: "address" },
                      ];
                      stateMutability: "view";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "unpause";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "newCancelDelay"; type: "uint256" },
                      ];
                      name: "updateCancelDelay";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "contract IDataRegistry";
                              name: "newDataRegistry";
                              type: "address";
                          },
                      ];
                      name: "updateDataRegistry";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          { internalType: "uint256"; name: "newTeeFee"; type: "uint256" },
                      ];
                      name: "updateTeeFee";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "trustedForwarderAddress";
                              type: "address";
                          },
                      ];
                      name: "updateTrustedForwarder";
                      outputs: readonly [];
                      stateMutability: "nonpayable";
                      type: "function";
                  },
                  {
                      inputs: readonly [
                          {
                              internalType: "address";
                              name: "newImplementation";
                              type: "address";
                          },
                          { internalType: "bytes"; name: "data"; type: "bytes" },
                      ];
                      name: "upgradeToAndCall";
                      outputs: readonly [];
                      stateMutability: "payable";
                      type: "function";
                  },
                  {
                      inputs: readonly [];
                      name: "version";
                      outputs: readonly [
                          { internalType: "uint256"; name: ""; type: "uint256" },
                      ];
                      stateMutability: "pure";
                      type: "function";
                  },
              ];
          }[T],
      >

      An object containing the contract's address and fully typed ABI

      This method provides direct access to contract addresses and ABIs for the current chain. It includes full TypeScript type inference when using const assertions, enabling type-safe contract interactions. The method only returns contracts that are actually deployed on the current network.

      When the contract is not deployed on the current chain. Verify contract name spelling and check current network with getChainId().

      // Get contract info with full type inference
      const dataRegistry = vana.protocol.getContract("DataRegistry" as const);

      // Now dataRegistry.abi is fully typed for the DataRegistry contract
      console.log(dataRegistry.address); // "0x123..."
      console.log(dataRegistry.abi.length); // Full ABI array
    • Creates a fully typed contract instance ready for blockchain interaction.

      Type Parameters

      • T extends
            | "ComputeEngine"
            | "ComputeInstructionRegistry"
            | "DAT"
            | "DATFactory"
            | "DATPausable"
            | "DATVotes"
            | "DLPPerformance"
            | "DLPRegistry"
            | "DLPRegistryTreasury"
            | "DLPRewardDeployer"
            | "DLPRewardDeployerTreasury"
            | "DLPRewardSwap"
            | "DataPortabilityGrantees"
            | "DataPortabilityPermissions"
            | "DataPortabilityServers"
            | "DataRefinerRegistry"
            | "DataRegistry"
            | "QueryEngine"
            | "SwapHelper"
            | "TeePool"
            | "TeePoolDedicatedGpu"
            | "TeePoolDedicatedStandard"
            | "TeePoolEphemeralStandard"
            | "TeePoolPersistentGpu"
            | "TeePoolPersistentStandard"
            | "TeePoolPhala"
            | "VanaEpoch"
            | "VanaPoolEntity"
            | "VanaPoolStaking"
            | "VanaPoolTreasury"
            | "DLPRegistryTreasuryImplementation"
            | "VanaTreasury"
            | "DataLiquidityPool"
            | "DLPRoot"

      Parameters

      • contractName: T

        The name of the Vana contract (use const assertion for full typing)

      Returns {}

      A fully typed contract instance with read/write methods and event handling

      This method creates a contract instance with complete type safety for all contract methods including read operations, write operations, and event handling. The instance is pre-configured with the correct address, ABI, and wallet client for immediate use. All method parameters and return types are fully typed based on the contract ABI.

      When the contract is not deployed on the current chain

      // Create typed contract instance
      const dataRegistry = vana.protocol.createContract("DataRegistry" as const);

      // Full type safety for all operations
      const fileCount = await dataRegistry.read.filesCount(); // Type: bigint
      const txHash = await dataRegistry.write.addFile(["ipfs://..."]); // Typed parameters

      // Listen to events with full typing
      const logs = await dataRegistry.getEvents.FileAdded();
    • Gets all available contract names that can be used with getContract(). Returns only contracts that are actually deployed on the current chain.

      Returns (
          | "ComputeEngine"
          | "ComputeInstructionRegistry"
          | "DAT"
          | "DATFactory"
          | "DATPausable"
          | "DATVotes"
          | "DLPPerformance"
          | "DLPRegistry"
          | "DLPRegistryTreasury"
          | "DLPRewardDeployer"
          | "DLPRewardDeployerTreasury"
          | "DLPRewardSwap"
          | "DataPortabilityGrantees"
          | "DataPortabilityPermissions"
          | "DataPortabilityServers"
          | "DataRefinerRegistry"
          | "DataRegistry"
          | "QueryEngine"
          | "SwapHelper"
          | "TeePool"
          | "TeePoolDedicatedGpu"
          | "TeePoolDedicatedStandard"
          | "TeePoolEphemeralStandard"
          | "TeePoolPersistentGpu"
          | "TeePoolPersistentStandard"
          | "TeePoolPhala"
          | "VanaEpoch"
          | "VanaPoolEntity"
          | "VanaPoolStaking"
          | "VanaPoolTreasury"
          | "DLPRegistryTreasuryImplementation"
          | "VanaTreasury"
          | "DataLiquidityPool"
          | "DLPRoot"
      )[]

      Array of all available contract names for the current chain

    • Checks if a specific contract is available on the current chain.

      Parameters

      • contractName:
            | "ComputeEngine"
            | "ComputeInstructionRegistry"
            | "DAT"
            | "DATFactory"
            | "DATPausable"
            | "DATVotes"
            | "DLPPerformance"
            | "DLPRegistry"
            | "DLPRegistryTreasury"
            | "DLPRewardDeployer"
            | "DLPRewardDeployerTreasury"
            | "DLPRewardSwap"
            | "DataPortabilityGrantees"
            | "DataPortabilityPermissions"
            | "DataPortabilityServers"
            | "DataRefinerRegistry"
            | "DataRegistry"
            | "QueryEngine"
            | "SwapHelper"
            | "TeePool"
            | "TeePoolDedicatedGpu"
            | "TeePoolDedicatedStandard"
            | "TeePoolEphemeralStandard"
            | "TeePoolPersistentGpu"
            | "TeePoolPersistentStandard"
            | "TeePoolPhala"
            | "VanaEpoch"
            | "VanaPoolEntity"
            | "VanaPoolStaking"
            | "VanaPoolTreasury"
            | "DLPRegistryTreasuryImplementation"
            | "VanaTreasury"
            | "DataLiquidityPool"
            | "DLPRoot"

        The contract name to check

      Returns boolean

      Whether the contract is deployed on the current chain

    • Gets the contract factory instance for advanced usage. This provides access to additional contract management methods.

      Returns ContractFactory

      The contract factory instance