getApprovedProvidersCall
getApprovedProvidersCall(
options):object
Defined in: packages/synapse-core/src/warm-storage/get-approved-providers.ts:134
Create a call to the getApprovedProviders function
This function is used to create a call to the getApprovedProviders function for use with the multicall or readContract function.
For large lists, use pagination to avoid gas limit issues.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
options | OptionsType | getApprovedProvidersCall.OptionsType |
Returns
Section titled “Returns”object
The call to the getApprovedProviders function getApprovedProvidersCall.OutputType
abi: readonly [{
inputs: readonly [{internalType:"contract FilecoinWarmStorageService";name:"_service";type:"address"; }];stateMutability:"nonpayable";type:"constructor"; }, {inputs: readonly [];name:"challengeWindow";outputs: readonly [{internalType:"uint256";name:"";type:"uint256"; }];stateMutability:"view";type:"function"; }, {inputs: readonly [{internalType:"address";name:"payer";type:"address"; }];name:"clientDataSets";outputs: readonly [{internalType:"uint256[]";name:"dataSetIds";type:"uint256[]"; }];stateMutability:"view";type:"function"; }, {inputs: readonly [{internalType:"address";name:"payer";type:"address"; }, {internalType:"uint256";name:"nonce";type:"uint256"; }];name:"clientNonces";outputs: readonly [{internalType:"uint256";name:"";type:"uint256"; }];stateMutability:"view";type:"function"; }, {inputs: readonly [];name:"filBeamControllerAddress";outputs: readonly [{internalType:"address";name:"";type:"address"; }];stateMutability:"view";type:"function"; }, {inputs: readonly [{internalType:"uint256";name:"dataSetId";type:"uint256"; }];name:"getAllDataSetMetadata";outputs: readonly [{internalType:"string[]";name:"keys";type:"string[]"; }, {internalType:"string[]";name:"values";type:"string[]"; }];stateMutability:"view";type:"function"; }, {inputs: readonly [{internalType:"uint256";name:"dataSetId";type:"uint256"; }, {internalType:"uint256";name:"pieceId";type:"uint256"; }];name:"getAllPieceMetadata";outputs: readonly [{internalType:"string[]";name:"keys";type:"string[]"; }, {internalType:"string[]";name:"values";type:"string[]"; }];stateMutability:"view";type:"function"; }, {inputs: readonly [{internalType:"uint256";name:"offset";type:"uint256"; }, {internalType:"uint256";name:"limit";type:"uint256"; }];name:"getApprovedProviders";outputs: readonly [{internalType:"uint256[]";name:"providerIds";type:"uint256[]"; }];stateMutability:"view";type:"function"; }, {inputs: readonly [];name:"getApprovedProvidersLength";outputs: readonly [{internalType:"uint256";name:"count";type:"uint256"; }];stateMutability:"view";type:"function"; }, {inputs: readonly [];name:"getChallengesPerProof";outputs: readonly [{internalType:"uint64";name:"";type:"uint64"; }];stateMutability:"pure";type:"function"; }, {inputs: readonly [{internalType:"address";name:"client";type:"address"; }];name:"getClientDataSets";outputs: readonly [{components: readonly [{internalType:"uint256";name:"pdpRailId";type:"uint256"; }, {internalType:"uint256";name:"cacheMissRailId";type:"uint256"; }, {internalType:"uint256";name:"cdnRailId";type:"uint256"; }, {internalType:"address";name:"payer";type:"address"; }, {internalType:"address";name:"payee";type:"address"; }, {internalType:"address";name:"serviceProvider";type:"address"; }, {internalType:"uint256";name:"commissionBps";type:"uint256"; }, {internalType:"uint256";name:"clientDataSetId";type:"uint256"; }, {internalType:"uint256";name:"pdpEndEpoch";type:"uint256"; }, {internalType:"uint256";name:"providerId";type:"uint256"; }, {internalType:"uint256";name:"dataSetId";type:"uint256"; }];internalType:"struct FilecoinWarmStorageService.DataSetInfoView[]";name:"infos";type:"tuple[]"; }];stateMutability:"view";type:"function"; }, {inputs: readonly [];name:"getCurrentPricingRates";outputs: readonly [{internalType:"uint256";name:"storagePrice";type:"uint256"; }, {internalType:"uint256";name:"minimumRate";type:"uint256"; }];stateMutability:"view";type:"function"; }, {inputs: readonly [{internalType:"uint256";name:"dataSetId";type:"uint256"; }];name:"getDataSet";outputs: readonly [{components: readonly [{internalType:"uint256";name:"pdpRailId";type:"uint256"; }, {internalType:"uint256";name:"cacheMissRailId";type:"uint256"; }, {internalType:"uint256";name:"cdnRailId";type:"uint256"; }, {internalType:"address";name:"payer";type:"address"; }, {internalType:"address";name:"payee";type:"address"; }, {internalType:"address";name:"serviceProvider";type:"address"; }, {internalType:"uint256";name:"commissionBps";type:"uint256"; }, {internalType:"uint256";name:"clientDataSetId";type:"uint256"; }, {internalType:"uint256";name:"pdpEndEpoch";type:"uint256"; }, {internalType:"uint256";name:"providerId";type:"uint256"; }, {internalType:"uint256";name:"dataSetId";type:"uint256"; }];internalType:"struct FilecoinWarmStorageService.DataSetInfoView";name:"info";type:"tuple"; }];stateMutability:"view";type:"function"; }, {inputs: readonly [{internalType:"uint256";name:"dataSetId";type:"uint256"; }, {internalType:"string";name:"key";type:"string"; }];name:"getDataSetMetadata";outputs: readonly [{internalType:"bool";name:"exists";type:"bool"; }, {internalType:"string";name:"value";type:"string"; }];stateMutability:"view";type:"function"; }, {inputs: readonly [{internalType:"uint256";name:"leafCount";type:"uint256"; }];name:"getDataSetSizeInBytes";outputs: readonly [{internalType:"uint256";name:"";type:"uint256"; }];stateMutability:"pure";type:"function"; }, {inputs: readonly [{internalType:"uint256";name:"dataSetId";type:"uint256"; }];name:"getDataSetStatus";outputs: readonly [{internalType:"enum FilecoinWarmStorageService.DataSetStatus";name:"status";type:"uint8"; }];stateMutability:"view";type:"function"; }, {inputs: readonly [];name:"getMaxProvingPeriod";outputs: readonly [{internalType:"uint64";name:"";type:"uint64"; }];stateMutability:"view";type:"function"; }, {inputs: readonly [];name:"getPDPConfig";outputs: readonly [{internalType:"uint64";name:"maxProvingPeriod";type:"uint64"; }, {internalType:"uint256";name:"challengeWindowSize";type:"uint256"; }, {internalType:"uint256";name:"challengesPerProof";type:"uint256"; }, {internalType:"uint256";name:"initChallengeWindowStart";type:"uint256"; }];stateMutability:"view";type:"function"; }, {inputs: readonly [{internalType:"uint256";name:"dataSetId";type:"uint256"; }, {internalType:"uint256";name:"pieceId";type:"uint256"; }, {internalType:"string";name:"key";type:"string"; }];name:"getPieceMetadata";outputs: readonly [{internalType:"bool";name:"exists";type:"bool"; }, {internalType:"string";name:"value";type:"string"; }];stateMutability:"view";type:"function"; }, {inputs: readonly [{internalType:"uint256";name:"providerId";type:"uint256"; }];name:"isProviderApproved";outputs: readonly [{internalType:"bool";name:"";type:"bool"; }];stateMutability:"view";type:"function"; }, {inputs: readonly [{internalType:"uint256";name:"setId";type:"uint256"; }];name:"nextPDPChallengeWindowStart";outputs: readonly [{internalType:"uint256";name:"";type:"uint256"; }];stateMutability:"view";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 [{internalType:"uint256";name:"dataSetId";type:"uint256"; }, {internalType:"uint256";name:"periodId";type:"uint256"; }];name:"provenPeriods";outputs: readonly [{internalType:"bool";name:"";type:"bool"; }];stateMutability:"view";type:"function"; }, {inputs: readonly [{internalType:"uint256";name:"dataSetId";type:"uint256"; }];name:"provenThisPeriod";outputs: readonly [{internalType:"bool";name:"";type:"bool"; }];stateMutability:"view";type:"function"; }, {inputs: readonly [{internalType:"uint256";name:"dataSetId";type:"uint256"; }];name:"provingActivationEpoch";outputs: readonly [{internalType:"uint256";name:"";type:"uint256"; }];stateMutability:"view";type:"function"; }, {inputs: readonly [{internalType:"uint256";name:"setId";type:"uint256"; }];name:"provingDeadline";outputs: readonly [{internalType:"uint256";name:"";type:"uint256"; }];stateMutability:"view";type:"function"; }, {inputs: readonly [{internalType:"uint256";name:"railId";type:"uint256"; }];name:"railToDataSet";outputs: readonly [{internalType:"uint256";name:"";type:"uint256"; }];stateMutability:"view";type:"function"; }, {inputs: readonly [];name:"service";outputs: readonly [{internalType:"contract FilecoinWarmStorageService";name:"";type:"address"; }];stateMutability:"view";type:"function"; }, {inputs: readonly [];name:"serviceCommissionBps";outputs: readonly [{internalType:"uint256";name:"";type:"uint256"; }];stateMutability:"view";type:"function"; }, {inputs: readonly [{internalType:"uint256";name:"dataSetId";type:"uint256"; }];name:"ProvingPeriodNotInitialized";type:"error"; }] =chain.contracts.storageView.abi
address
Section titled “address”address:
`0x${string}`
args: [
bigint,bigint]
functionName
Section titled “functionName”functionName:
"getApprovedProviders"='getApprovedProviders'
Throws
Section titled “Throws”Errors getApprovedProvidersCall.ErrorType
Example
Section titled “Example”import { getApprovedProvidersCall } from '@filoz/synapse-core/warm-storage'import { createPublicClient, http } from 'viem'import { multicall } from 'viem/actions'import { calibration } from '@filoz/synapse-core/chains'
const client = createPublicClient({ chain: calibration, transport: http(),})
// Paginate through providers in batches of 50const results = await multicall(client, { contracts: [ getApprovedProvidersCall({ chain: calibration, offset: 0n, limit: 50n }), getApprovedProvidersCall({ chain: calibration, offset: 50n, limit: 50n }), ],})
console.log(results)