Skip to content

removeProductCall

removeProductCall(options): object

Defined in: packages/synapse-core/src/sp-registry/remove-product.ts:182

Create a call to the removeProduct function

This function is used to create a call to the removeProduct function for use with sendCalls, sendTransaction, multicall, estimateContractGas, or simulateContract.

ParameterTypeDescription
options{ chain: Chain; contractAddress?: `0x${string}`; productType?: number; }removeProductCall.OptionsType
options.chainChainThe chain to use to make the call.
options.contractAddress?`0x${string}`Service provider registry contract address. If not provided, the default is the registry contract address for the chain.
options.productType?numberThe product type to remove (0 for PDP). Defaults to 0.

object

The call to the removeProduct function removeProductCall.OutputType

abi: readonly [{ inputs: readonly []; stateMutability: "nonpayable"; type: "constructor"; }, { inputs: readonly []; name: "MAX_CAPABILITIES"; outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "MAX_CAPABILITY_KEY_LENGTH"; outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "MAX_CAPABILITY_VALUE_LENGTH"; outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "REGISTRATION_FEE"; 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: "VERSION"; outputs: readonly [{ internalType: "string"; name: ""; type: "string"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "enum ServiceProviderRegistryStorage.ProductType"; name: "productType"; type: "uint8"; }]; name: "activeProductTypeProviderCount"; outputs: readonly [{ internalType: "uint256"; name: "count"; type: "uint256"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "activeProviderCount"; outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "enum ServiceProviderRegistryStorage.ProductType"; name: "productType"; type: "uint8"; }, { internalType: "string[]"; name: "capabilityKeys"; type: "string[]"; }, { internalType: "bytes[]"; name: "capabilityValues"; type: "bytes[]"; }]; name: "addProduct"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "providerAddress"; type: "address"; }]; name: "addressToProviderId"; outputs: readonly [{ internalType: "uint256"; name: "providerId"; type: "uint256"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ components: readonly [{ internalType: "address"; name: "nextImplementation"; type: "address"; }, { internalType: "uint96"; name: "afterEpoch"; type: "uint96"; }]; internalType: "struct ServiceProviderRegistry.PlannedUpgrade"; name: "plannedUpgrade"; type: "tuple"; }]; name: "announcePlannedUpgrade"; 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: "uint256"; name: "offset"; type: "uint256"; }, { internalType: "uint256"; name: "limit"; type: "uint256"; }]; name: "getAllActiveProviders"; outputs: readonly [{ internalType: "uint256[]"; name: "providerIds"; type: "uint256[]"; }, { internalType: "bool"; name: "hasMore"; type: "bool"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "uint256"; name: "providerId"; type: "uint256"; }, { internalType: "enum ServiceProviderRegistryStorage.ProductType"; name: "productType"; type: "uint8"; }]; name: "getAllProductCapabilities"; outputs: readonly [{ internalType: "bool"; name: "isActive"; type: "bool"; }, { internalType: "string[]"; name: "keys"; type: "string[]"; }, { internalType: "bytes[]"; name: "values"; type: "bytes[]"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "getNextProviderId"; outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "uint256"; name: "providerId"; type: "uint256"; }, { internalType: "enum ServiceProviderRegistryStorage.ProductType"; name: "productType"; type: "uint8"; }, { internalType: "string[]"; name: "keys"; type: "string[]"; }]; name: "getProductCapabilities"; outputs: readonly [{ internalType: "bytes[]"; name: "values"; type: "bytes[]"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "uint256"; name: "providerId"; type: "uint256"; }]; name: "getProvider"; outputs: readonly [{ components: readonly [{ internalType: "uint256"; name: "providerId"; type: "uint256"; }, { components: readonly [{ internalType: "address"; name: "serviceProvider"; type: "address"; }, { internalType: "address"; name: "payee"; type: "address"; }, { internalType: "string"; name: "name"; type: "string"; }, { internalType: "string"; name: "description"; type: "string"; }, { internalType: "bool"; name: "isActive"; type: "bool"; }]; internalType: "struct ServiceProviderRegistryStorage.ServiceProviderInfo"; name: "info"; type: "tuple"; }]; internalType: "struct ServiceProviderRegistry.ServiceProviderInfoView"; name: "info"; type: "tuple"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "providerAddress"; type: "address"; }]; name: "getProviderByAddress"; outputs: readonly [{ components: readonly [{ internalType: "uint256"; name: "providerId"; type: "uint256"; }, { components: readonly [{ internalType: "address"; name: "serviceProvider"; type: "address"; }, { internalType: "address"; name: "payee"; type: "address"; }, { internalType: "string"; name: "name"; type: "string"; }, { internalType: "string"; name: "description"; type: "string"; }, { internalType: "bool"; name: "isActive"; type: "bool"; }]; internalType: "struct ServiceProviderRegistryStorage.ServiceProviderInfo"; name: "info"; type: "tuple"; }]; internalType: "struct ServiceProviderRegistry.ServiceProviderInfoView"; name: "info"; type: "tuple"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "getProviderCount"; outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "providerAddress"; type: "address"; }]; name: "getProviderIdByAddress"; outputs: readonly [{ internalType: "uint256"; name: ""; type: "uint256"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "uint256"; name: "providerId"; type: "uint256"; }]; name: "getProviderPayee"; outputs: readonly [{ internalType: "address"; name: "payee"; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "uint256"; name: "providerId"; type: "uint256"; }, { internalType: "enum ServiceProviderRegistryStorage.ProductType"; name: "productType"; type: "uint8"; }]; name: "getProviderWithProduct"; outputs: readonly [{ components: readonly [{ internalType: "uint256"; name: "providerId"; type: "uint256"; }, { components: readonly [{ internalType: "address"; name: "serviceProvider"; type: "address"; }, { internalType: "address"; name: "payee"; type: "address"; }, { internalType: "string"; name: "name"; type: "string"; }, { internalType: "string"; name: "description"; type: "string"; }, { internalType: "bool"; name: "isActive"; type: "bool"; }]; internalType: "struct ServiceProviderRegistryStorage.ServiceProviderInfo"; name: "providerInfo"; type: "tuple"; }, { components: readonly [{ internalType: "enum ServiceProviderRegistryStorage.ProductType"; name: "productType"; type: "uint8"; }, { internalType: "string[]"; name: "capabilityKeys"; type: "string[]"; }, { internalType: "bool"; name: "isActive"; type: "bool"; }]; internalType: "struct ServiceProviderRegistryStorage.ServiceProduct"; name: "product"; type: "tuple"; }, { internalType: "bytes[]"; name: "productCapabilityValues"; type: "bytes[]"; }]; internalType: "struct ServiceProviderRegistryStorage.ProviderWithProduct"; name: ""; type: "tuple"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "uint256[]"; name: "providerIds"; type: "uint256[]"; }]; name: "getProvidersByIds"; outputs: readonly [{ components: readonly [{ internalType: "uint256"; name: "providerId"; type: "uint256"; }, { components: readonly [{ internalType: "address"; name: "serviceProvider"; type: "address"; }, { internalType: "address"; name: "payee"; type: "address"; }, { internalType: "string"; name: "name"; type: "string"; }, { internalType: "string"; name: "description"; type: "string"; }, { internalType: "bool"; name: "isActive"; type: "bool"; }]; internalType: "struct ServiceProviderRegistryStorage.ServiceProviderInfo"; name: "info"; type: "tuple"; }]; internalType: "struct ServiceProviderRegistry.ServiceProviderInfoView[]"; name: "providerInfos"; type: "tuple[]"; }, { internalType: "bool[]"; name: "validIds"; type: "bool[]"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "enum ServiceProviderRegistryStorage.ProductType"; name: "productType"; type: "uint8"; }, { internalType: "bool"; name: "onlyActive"; type: "bool"; }, { internalType: "uint256"; name: "offset"; type: "uint256"; }, { internalType: "uint256"; name: "limit"; type: "uint256"; }]; name: "getProvidersByProductType"; outputs: readonly [{ components: readonly [{ components: readonly [{ internalType: "uint256"; name: "providerId"; type: "uint256"; }, { components: readonly [{ internalType: …; name: …; type: …; }, { internalType: …; name: …; type: …; }, { internalType: …; name: …; type: …; }, { internalType: …; name: …; type: …; }, { internalType: …; name: …; type: …; }]; internalType: "struct ServiceProviderRegistryStorage.ServiceProviderInfo"; name: "providerInfo"; type: "tuple"; }, { components: readonly [{ internalType: …; name: …; type: …; }, { internalType: …; name: …; type: …; }, { internalType: …; name: …; type: …; }]; internalType: "struct ServiceProviderRegistryStorage.ServiceProduct"; name: "product"; type: "tuple"; }, { internalType: "bytes[]"; name: "productCapabilityValues"; type: "bytes[]"; }]; internalType: "struct ServiceProviderRegistryStorage.ProviderWithProduct[]"; name: "providers"; type: "tuple[]"; }, { internalType: "bool"; name: "hasMore"; type: "bool"; }]; internalType: "struct ServiceProviderRegistryStorage.PaginatedProviders"; name: "result"; type: "tuple"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "initialize"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "uint256"; name: "providerId"; type: "uint256"; }]; name: "isProviderActive"; outputs: readonly [{ internalType: "bool"; name: ""; type: "bool"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "provider"; type: "address"; }]; name: "isRegisteredProvider"; outputs: readonly [{ internalType: "bool"; name: ""; type: "bool"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "string"; name: "newVersion"; type: "string"; }]; name: "migrate"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly []; name: "nextUpgrade"; outputs: readonly [{ internalType: "address"; name: "nextImplementation"; type: "address"; }, { internalType: "uint96"; name: "afterEpoch"; type: "uint96"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly []; name: "owner"; outputs: readonly [{ internalType: "address"; name: ""; type: "address"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "uint256"; name: "providerId"; type: "uint256"; }, { internalType: "enum ServiceProviderRegistryStorage.ProductType"; name: "productType"; type: "uint8"; }, { internalType: "string"; name: "key"; type: "string"; }]; name: "productCapabilities"; outputs: readonly [{ internalType: "bytes"; name: "value"; type: "bytes"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "enum ServiceProviderRegistryStorage.ProductType"; name: "productType"; type: "uint8"; }]; name: "productTypeProviderCount"; outputs: readonly [{ internalType: "uint256"; name: "count"; type: "uint256"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "uint256"; name: "providerId"; type: "uint256"; }, { internalType: "enum ServiceProviderRegistryStorage.ProductType"; name: "productType"; type: "uint8"; }]; name: "providerHasProduct"; outputs: readonly [{ internalType: "bool"; name: ""; type: "bool"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "uint256"; name: "providerId"; type: "uint256"; }, { internalType: "enum ServiceProviderRegistryStorage.ProductType"; name: "productType"; type: "uint8"; }]; name: "providerProducts"; outputs: readonly [{ internalType: "enum ServiceProviderRegistryStorage.ProductType"; name: "productType"; type: "uint8"; }, { internalType: "bool"; name: "isActive"; type: "bool"; }]; stateMutability: "view"; type: "function"; }, { inputs: readonly [{ internalType: "uint256"; name: "providerId"; type: "uint256"; }]; name: "providers"; outputs: readonly [{ internalType: "address"; name: "serviceProvider"; type: "address"; }, { internalType: "address"; name: "payee"; type: "address"; }, { internalType: "string"; name: "name"; type: "string"; }, { internalType: "string"; name: "description"; type: "string"; }, { internalType: "bool"; name: "isActive"; 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: "payee"; type: "address"; }, { internalType: "string"; name: "name"; type: "string"; }, { internalType: "string"; name: "description"; type: "string"; }, { internalType: "enum ServiceProviderRegistryStorage.ProductType"; name: "productType"; type: "uint8"; }, { internalType: "string[]"; name: "capabilityKeys"; type: "string[]"; }, { internalType: "bytes[]"; name: "capabilityValues"; type: "bytes[]"; }]; name: "registerProvider"; outputs: readonly [{ internalType: "uint256"; name: "providerId"; type: "uint256"; }]; stateMutability: "payable"; type: "function"; }, { inputs: readonly [{ internalType: "enum ServiceProviderRegistryStorage.ProductType"; name: "productType"; type: "uint8"; }]; name: "removeProduct"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly []; name: "removeProvider"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly []; name: "renounceOwnership"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "address"; name: "newOwner"; type: "address"; }]; name: "transferOwnership"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "enum ServiceProviderRegistryStorage.ProductType"; name: "productType"; type: "uint8"; }, { internalType: "string[]"; name: "capabilityKeys"; type: "string[]"; }, { internalType: "bytes[]"; name: "capabilityValues"; type: "bytes[]"; }]; name: "updateProduct"; outputs: readonly []; stateMutability: "nonpayable"; type: "function"; }, { inputs: readonly [{ internalType: "string"; name: "name"; type: "string"; }, { internalType: "string"; name: "description"; type: "string"; }]; name: "updateProviderInfo"; 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"; }, { anonymous: false; inputs: readonly [{ indexed: false; internalType: "string"; name: "version"; type: "string"; }, { indexed: false; internalType: "address"; name: "implementation"; type: "address"; }]; name: "ContractUpgraded"; 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: "address"; name: "previousOwner"; type: "address"; }, { indexed: true; internalType: "address"; name: "newOwner"; type: "address"; }]; name: "OwnershipTransferred"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "uint256"; name: "providerId"; type: "uint256"; }, { indexed: true; internalType: "enum ServiceProviderRegistryStorage.ProductType"; name: "productType"; type: "uint8"; }, { indexed: false; internalType: "address"; name: "serviceProvider"; type: "address"; }, { indexed: false; internalType: "string[]"; name: "capabilityKeys"; type: "string[]"; }, { indexed: false; internalType: "bytes[]"; name: "capabilityValues"; type: "bytes[]"; }]; name: "ProductAdded"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "uint256"; name: "providerId"; type: "uint256"; }, { indexed: true; internalType: "enum ServiceProviderRegistryStorage.ProductType"; name: "productType"; type: "uint8"; }]; name: "ProductRemoved"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "uint256"; name: "providerId"; type: "uint256"; }, { indexed: true; internalType: "enum ServiceProviderRegistryStorage.ProductType"; name: "productType"; type: "uint8"; }, { indexed: false; internalType: "address"; name: "serviceProvider"; type: "address"; }, { indexed: false; internalType: "string[]"; name: "capabilityKeys"; type: "string[]"; }, { indexed: false; internalType: "bytes[]"; name: "capabilityValues"; type: "bytes[]"; }]; name: "ProductUpdated"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "uint256"; name: "providerId"; type: "uint256"; }]; name: "ProviderInfoUpdated"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "uint256"; name: "providerId"; type: "uint256"; }, { indexed: true; internalType: "address"; name: "serviceProvider"; type: "address"; }, { indexed: true; internalType: "address"; name: "payee"; type: "address"; }]; name: "ProviderRegistered"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "uint256"; name: "providerId"; type: "uint256"; }]; name: "ProviderRemoved"; type: "event"; }, { anonymous: false; inputs: readonly [{ components: readonly [{ internalType: "address"; name: "nextImplementation"; type: "address"; }, { internalType: "uint96"; name: "afterEpoch"; type: "uint96"; }]; indexed: false; internalType: "struct ServiceProviderRegistry.PlannedUpgrade"; name: "plannedUpgrade"; type: "tuple"; }]; name: "UpgradeAnnounced"; type: "event"; }, { anonymous: false; inputs: readonly [{ indexed: true; internalType: "address"; name: "implementation"; type: "address"; }]; name: "Upgraded"; type: "event"; }, { 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: "FailedCall"; type: "error"; }, { inputs: readonly [{ internalType: "enum ServiceProviderRegistryStorage.ProductType"; name: "productType"; type: "uint8"; }]; name: "InsufficientCapabilitiesForProduct"; type: "error"; }, { inputs: readonly []; name: "InvalidInitialization"; 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: "UUPSUnauthorizedCallContext"; type: "error"; }, { inputs: readonly [{ internalType: "bytes32"; name: "slot"; type: "bytes32"; }]; name: "UUPSUnsupportedProxiableUUID"; type: "error"; }, { inputs: readonly [{ internalType: "enum Errors.AddressField"; name: "field"; type: "uint8"; }]; name: "AddressAlreadySet"; type: "error"; }, { inputs: readonly []; name: "AtLeastOnePriceMustBeNonZero"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "dataSetId"; type: "uint256"; }]; name: "CDNPaymentAlreadyTerminated"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "dataSetId"; type: "uint256"; }]; name: "CacheMissPaymentAlreadyTerminated"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "dataSetId"; type: "uint256"; }, { internalType: "address"; name: "expectedPayer"; type: "address"; }, { internalType: "address"; name: "caller"; type: "address"; }]; name: "CallerNotPayer"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "dataSetId"; type: "uint256"; }, { internalType: "address"; name: "expectedPayer"; type: "address"; }, { internalType: "address"; name: "expectedPayee"; type: "address"; }, { internalType: "address"; name: "caller"; type: "address"; }]; name: "CallerNotPayerOrPayee"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "expected"; type: "address"; }, { internalType: "address"; name: "actual"; type: "address"; }]; name: "CallerNotPayments"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "dataSetId"; type: "uint256"; }, { internalType: "uint256"; name: "windowStart"; type: "uint256"; }, { internalType: "uint256"; name: "nowBlock"; type: "uint256"; }]; name: "ChallengeWindowTooEarly"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "clientDataSetId"; type: "uint256"; }]; name: "ClientDataSetAlreadyRegistered"; type: "error"; }, { inputs: readonly [{ internalType: "enum Errors.CommissionType"; name: "commissionType"; type: "uint8"; }, { internalType: "uint256"; name: "max"; type: "uint256"; }, { internalType: "uint256"; name: "actual"; type: "uint256"; }]; name: "CommissionExceedsMaximum"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "railId"; type: "uint256"; }]; name: "DataSetNotFoundForRail"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "dataSetId"; type: "uint256"; }]; name: "DataSetNotRegistered"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "dataSetId"; type: "uint256"; }]; name: "DataSetPaymentAlreadyTerminated"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "dataSetId"; type: "uint256"; }, { internalType: "uint256"; name: "pdpEndEpoch"; type: "uint256"; }, { internalType: "uint256"; name: "currentBlock"; type: "uint256"; }]; name: "DataSetPaymentBeyondEndEpoch"; type: "error"; }, { inputs: readonly []; name: "DivisionByZero"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "dataSetId"; type: "uint256"; }, { internalType: "string"; name: "key"; type: "string"; }]; name: "DuplicateMetadataKey"; type: "error"; }, { inputs: readonly []; name: "ExtraDataRequired"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "actualSize"; type: "uint256"; }, { internalType: "uint256"; name: "maxAllowedSize"; type: "uint256"; }]; name: "ExtraDataTooLarge"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "dataSetId"; type: "uint256"; }]; name: "FilBeamServiceNotConfigured"; type: "error"; }, { inputs: readonly [{ internalType: "enum ServiceProviderRegistryStorage.ProductType"; name: "productType"; type: "uint8"; }]; name: "InsufficientCapabilitiesForProduct"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "payer"; type: "address"; }, { internalType: "address"; name: "operator"; type: "address"; }, { internalType: "uint256"; name: "lockupAllowance"; type: "uint256"; }, { internalType: "uint256"; name: "lockupUsage"; type: "uint256"; }, { internalType: "uint256"; name: "minimumLockupRequired"; type: "uint256"; }]; name: "InsufficientLockupAllowance"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "payer"; type: "address"; }, { internalType: "uint256"; name: "minimumRequired"; type: "uint256"; }, { internalType: "uint256"; name: "available"; type: "uint256"; }]; name: "InsufficientLockupFunds"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "payer"; type: "address"; }, { internalType: "address"; name: "operator"; type: "address"; }, { internalType: "uint256"; name: "maxLockupPeriod"; type: "uint256"; }, { internalType: "uint256"; name: "requiredLockupPeriod"; type: "uint256"; }]; name: "InsufficientMaxLockupPeriod"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "payer"; type: "address"; }, { internalType: "address"; name: "operator"; type: "address"; }, { internalType: "uint256"; name: "rateAllowance"; type: "uint256"; }, { internalType: "uint256"; name: "rateUsage"; type: "uint256"; }, { internalType: "uint256"; name: "minimumRateRequired"; type: "uint256"; }]; name: "InsufficientRateAllowance"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "dataSetId"; type: "uint256"; }, { internalType: "uint256"; name: "minExpected"; type: "uint256"; }, { internalType: "uint256"; name: "actual"; type: "uint256"; }]; name: "InvalidChallengeCount"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "dataSetId"; type: "uint256"; }, { internalType: "uint256"; name: "minAllowed"; type: "uint256"; }, { internalType: "uint256"; name: "maxAllowed"; type: "uint256"; }, { internalType: "uint256"; name: "actual"; type: "uint256"; }]; name: "InvalidChallengeEpoch"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "maxProvingPeriod"; type: "uint256"; }, { internalType: "uint256"; name: "challengeWindowSize"; type: "uint256"; }]; name: "InvalidChallengeWindowSize"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "dataSetId"; type: "uint256"; }]; name: "InvalidDataSetId"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "fromEpoch"; type: "uint256"; }, { internalType: "uint256"; name: "toEpoch"; type: "uint256"; }]; name: "InvalidEpochRange"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "length"; type: "uint256"; }]; name: "InvalidServiceDescriptionLength"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "length"; type: "uint256"; }]; name: "InvalidServiceNameLength"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "expected"; type: "address"; }, { internalType: "address"; name: "actual"; type: "address"; }]; name: "InvalidSignature"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "expectedLength"; type: "uint256"; }, { internalType: "uint256"; name: "actualLength"; type: "uint256"; }]; name: "InvalidSignatureLength"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "dataSetId"; type: "uint256"; }]; name: "InvalidTopUpAmount"; type: "error"; }, { inputs: readonly []; name: "MaxProvingPeriodZero"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "metadataArrayCount"; type: "uint256"; }, { internalType: "uint256"; name: "pieceCount"; type: "uint256"; }]; name: "MetadataArrayCountMismatch"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "keysLength"; type: "uint256"; }, { internalType: "uint256"; name: "valuesLength"; type: "uint256"; }]; name: "MetadataKeyAndValueLengthMismatch"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "index"; type: "uint256"; }, { internalType: "uint256"; name: "maxAllowed"; type: "uint256"; }, { internalType: "uint256"; name: "length"; type: "uint256"; }]; name: "MetadataKeyExceedsMaxLength"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "index"; type: "uint256"; }, { internalType: "uint256"; name: "maxAllowed"; type: "uint256"; }, { internalType: "uint256"; name: "length"; type: "uint256"; }]; name: "MetadataValueExceedsMaxLength"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "dataSetId"; type: "uint256"; }, { internalType: "uint256"; name: "periodDeadline"; type: "uint256"; }, { internalType: "uint256"; name: "nowBlock"; type: "uint256"; }]; name: "NextProvingPeriodAlreadyCalled"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "dataSetId"; type: "uint256"; }]; name: "NoPDPPaymentRail"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "dataSetId"; type: "uint256"; }, { internalType: "address"; name: "expected"; type: "address"; }, { internalType: "address"; name: "actual"; type: "address"; }]; name: "OldServiceProviderMismatch"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "expected"; type: "address"; }, { internalType: "address"; name: "actual"; type: "address"; }]; name: "OnlyFilBeamControllerAllowed"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "expected"; type: "address"; }, { internalType: "address"; name: "actual"; type: "address"; }]; name: "OnlyPDPVerifierAllowed"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "expected"; type: "address"; }, { internalType: "address"; name: "actual"; type: "address"; }]; name: "OnlySelf"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "payer"; type: "address"; }, { internalType: "address"; name: "operator"; type: "address"; }]; name: "OperatorNotApproved"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "dataSetId"; type: "uint256"; }, { internalType: "uint256"; name: "pdpEndEpoch"; type: "uint256"; }]; name: "PaymentRailsNotFinalized"; type: "error"; }, { inputs: readonly [{ internalType: "enum Errors.PriceType"; name: "priceType"; type: "uint8"; }, { internalType: "uint256"; name: "maxAllowed"; type: "uint256"; }, { internalType: "uint256"; name: "actual"; type: "uint256"; }]; name: "PriceExceedsMaximum"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "dataSetId"; type: "uint256"; }]; name: "ProofAlreadySubmitted"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "providerId"; type: "uint256"; }]; name: "ProviderAlreadyApproved"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "providerId"; type: "uint256"; }]; name: "ProviderNotInApprovedList"; type: "error"; }, { inputs: readonly [{ internalType: "address"; name: "provider"; type: "address"; }]; name: "ProviderNotRegistered"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "dataSetId"; type: "uint256"; }]; name: "ProvingNotStarted"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "dataSetId"; type: "uint256"; }]; name: "ProvingPeriodNotInitialized"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "dataSetId"; type: "uint256"; }, { internalType: "uint256"; name: "deadline"; type: "uint256"; }, { internalType: "uint256"; name: "nowBlock"; type: "uint256"; }]; name: "ProvingPeriodPassed"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "railId"; type: "uint256"; }]; name: "RailNotAssociated"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "railId"; type: "uint256"; }, { internalType: "uint256"; name: "settledUpTo"; type: "uint256"; }, { internalType: "uint256"; name: "endEpoch"; type: "uint256"; }]; name: "RailNotFullySettled"; type: "error"; }, { inputs: readonly []; name: "ServiceContractMustTerminateRail"; type: "error"; }, { inputs: readonly [{ internalType: "uint256"; name: "maxAllowed"; type: "uint256"; }, { internalType: "uint256"; name: "keysLength"; type: "uint256"; }]; name: "TooManyMetadataKeys"; type: "error"; }, { inputs: readonly [{ internalType: "uint8"; name: "v"; type: "uint8"; }]; name: "UnsupportedSignatureV"; type: "error"; }, { inputs: readonly [{ internalType: "enum Errors.AddressField"; name: "field"; type: "uint8"; }]; name: "ZeroAddress"; type: "error"; }] = chain.contracts.serviceProviderRegistry.abi

address: `0x${string}`

args: [number]

functionName: "removeProduct" = 'removeProduct'

Errors removeProductCall.ErrorType

import { removeProductCall } from '@filoz/synapse-core/sp-registry'
import { createWalletClient, http } from 'viem'
import { privateKeyToAccount } from 'viem/accounts'
import { simulateContract } from 'viem/actions'
import { calibration } from '@filoz/synapse-core/chains'
const account = privateKeyToAccount('0x...')
const client = createWalletClient({
account,
chain: calibration,
transport: http(),
})
const { request } = await simulateContract(client, removeProductCall({
chain: calibration,
}))
console.log(request)