Skip to content

WarmStorageService

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:105

addApprovedProvider(signer, providerId): Promise<TransactionResponse>;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:1005

Add an approved provider by ID (owner only)

ParameterTypeDescription
signerSignerSigner with owner permissions
providerIdnumberProvider ID from registry

Promise<TransactionResponse>

Transaction response


calculateStorageCost(sizeInBytes): Promise<{
perDay: bigint;
perEpoch: bigint;
perMonth: bigint;
withCDN: {
perDay: bigint;
perEpoch: bigint;
perMonth: bigint;
};
}>;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:752

Calculate storage costs for a given size

ParameterTypeDescription
sizeInBytesnumberSize of data to store in bytes

Promise<{ perDay: bigint; perEpoch: bigint; perMonth: bigint; withCDN: { perDay: bigint; perEpoch: bigint; perMonth: bigint; }; }>

Cost estimates per epoch, day, and month for both CDN and non-CDN


checkAllowanceForStorage(
sizeInBytes,
withCDN,
paymentsService,
lockupDays?): Promise<{
costs: {
perDay: bigint;
perEpoch: bigint;
perMonth: bigint;
};
currentLockupAllowance: bigint;
currentLockupUsed: bigint;
currentRateAllowance: bigint;
currentRateUsed: bigint;
depositAmountNeeded: bigint;
lockupAllowanceNeeded: bigint;
message?: string;
rateAllowanceNeeded: bigint;
sufficient: boolean;
}>;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:793

Check if user has sufficient allowances for a storage operation and calculate costs

ParameterTypeDescription
sizeInBytesnumberSize of data to store
withCDNbooleanWhether CDN is enabled
paymentsServicePaymentsServicePaymentsService instance to check allowances
lockupDays?numberNumber of days for lockup period (defaults to 10)

Promise<{ costs: { perDay: bigint; perEpoch: bigint; perMonth: bigint; }; currentLockupAllowance: bigint; currentLockupUsed: bigint; currentRateAllowance: bigint; currentRateUsed: bigint; depositAmountNeeded: bigint; lockupAllowanceNeeded: bigint; message?: string; rateAllowanceNeeded: bigint; sufficient: boolean; }>

Allowance requirement details and storage costs


getAddPiecesInfo(dataSetId): Promise<AddPiecesInfo>;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:399

Get information for adding pieces to a data set

ParameterTypeDescription
dataSetIdnumberThe PDPVerifier data set ID

Promise<AddPiecesInfo>

Helper information for adding pieces


getApprovedProviderIds(): Promise<number[]>;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:1037

Get list of approved provider IDs

Promise<number[]>

Array of approved provider IDs


getChallengeWindow(): Promise<number>;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:1089

Get the challenge window size from the WarmStorage contract

Promise<number>

Challenge window size in epochs


getClientDataSets(clientAddress): Promise<DataSetInfo[]>;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:306

Get all data sets for a specific client

ParameterTypeDescription
clientAddressstringThe client address

Promise<DataSetInfo[]>

Array of data set information


getClientDataSetsWithDetails(client, onlyManaged): Promise<EnhancedDataSetInfo[]>;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:337

Get all data sets for a client with enhanced details This includes live status and management information

ParameterTypeDefault valueDescription
clientstringundefinedThe client address
onlyManagedbooleanfalseIf true, only return data sets managed by this Warm Storage contract

Promise<EnhancedDataSetInfo[]>

Array of enhanced data set information


getComprehensiveDataSetStatus(txHashOrTransaction, pdpServer?): Promise<ComprehensiveDataSetStatus>;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:547

Get comprehensive data set creation status combining server and chain info

ParameterTypeDescription
txHashOrTransaction| string | TransactionResponseTransaction hash or transaction object
pdpServer?PDPServerPDP server instance for status checks

Promise<ComprehensiveDataSetStatus>

Combined status information


getDataSet(dataSetId): Promise<DataSetInfo>;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:277

Get a single data set by ID

ParameterTypeDescription
dataSetIdnumberThe data set ID to retrieve

Promise<DataSetInfo>

Data set information

Error if data set doesn’t exist


getDataSetMetadata(dataSetId): Promise<Record<string, string>>;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:675

Get all metadata for a data set

ParameterTypeDescription
dataSetIdnumberThe data set ID

Promise<Record<string, string>>

Object with metadata key-value pairs


getDataSetMetadataByKey(dataSetId, key): Promise<null | string>;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:693

Get specific metadata key for a data set

ParameterTypeDescription
dataSetIdnumberThe data set ID
keystringThe metadata key to retrieve

Promise<null | string>

The metadata value if it exists, null otherwise


getMaxProvingPeriod(): Promise<number>;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:1079

Get the maximum proving period from the WarmStorage contract

Promise<number>

Maximum proving period in epochs


getNextClientDataSetId(clientAddress): Promise<number>;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:444

Get the next client dataset ID for a given client This reads the current counter from the WarmStorage contract

ParameterTypeDescription
clientAddressstringThe client’s wallet address

Promise<number>

next client dataset ID that will be assigned by this WarmStorage contract


getOwner(): Promise<string>;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:1057

Get the contract owner address

Promise<string>

Owner address


getPaymentsAddress(): string;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:209

string


getPDPVerifierAddress(): string;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:205

string


getPieceMetadata(dataSetId, pieceId): Promise<Record<string, string>>;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:705

Get all metadata for a piece in a data set

ParameterTypeDescription
dataSetIdnumberThe data set ID
pieceIdnumberThe piece ID

Promise<Record<string, string>>

Object with metadata key-value pairs


getPieceMetadataByKey(
dataSetId,
pieceId,
key): Promise<null | string>;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:724

Get specific metadata key for a piece in a data set

ParameterTypeDescription
dataSetIdnumberThe data set ID
pieceIdnumberThe piece ID
keystringThe metadata key to retrieve

Promise<null | string>

The metadata value if it exists, null otherwise


getProvider(): Provider;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:229

Get the provider instance

Provider

The ethers provider


getServicePrice(): Promise<ServicePriceInfo>;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:736

Get the current service price per TiB per month

Promise<ServicePriceInfo>

Service price information for both CDN and non-CDN options


getServiceProviderRegistryAddress(): string;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:221

string


getUSDFCTokenAddress(): string;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:213

string


getViewContractAddress(): string;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:217

string


isOwner(signer): Promise<boolean>;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:1067

Check if a signer is the contract owner

ParameterTypeDescription
signerSignerSigner to check

Promise<boolean>

Whether the signer is the owner


isProviderIdApproved(providerId): Promise<boolean>;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:1048

Check if a provider ID is approved

ParameterTypeDescription
providerIdnumberProvider ID to check

Promise<boolean>

Whether the provider is approved


prepareStorageUpload(options, paymentsService): Promise<{
actions: object[];
allowanceCheck: {
message?: string;
sufficient: boolean;
};
estimatedCost: {
perDay: bigint;
perEpoch: bigint;
perMonth: bigint;
};
}>;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:901

Prepare for storage upload by checking balances and allowances

This method performs a comprehensive check of the prerequisites for storage upload, including verifying sufficient funds and service allowances. It returns a list of actions that need to be executed before the upload can proceed.

ParameterTypeDescription
options{ dataSize: number; withCDN?: boolean; }Configuration options for the storage upload
options.dataSizenumberSize of data to store in bytes
options.withCDN?booleanWhether to enable CDN for faster retrieval (optional, defaults to false)
paymentsServicePaymentsServiceInstance of PaymentsService for handling payment operations

Promise<{ actions: object[]; allowanceCheck: { message?: string; sufficient: boolean; }; estimatedCost: { perDay: bigint; perEpoch: bigint; perMonth: bigint; }; }>

Object containing:

  • estimatedCost: Breakdown of storage costs (per epoch, day, and month)
  • allowanceCheck: Status of service allowances with optional message
  • actions: Array of required actions (deposit, approveService) that need to be executed
const prep = await warmStorageService.prepareStorageUpload(
{ dataSize: Number(SIZE_CONSTANTS.GiB), withCDN: true },
paymentsService
)
if (prep.actions.length > 0) {
for (const action of prep.actions) {
console.log(`Executing: ${action.description}`)
await action.execute()
}
}

removeApprovedProvider(signer, providerId): Promise<TransactionResponse>;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:1017

Remove an approved provider by ID (owner only)

ParameterTypeDescription
signerSignerSigner with owner permissions
providerIdnumberProvider ID from registry

Promise<TransactionResponse>

Transaction response


terminateDataSet(signer, dataSetId): Promise<TransactionResponse>;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:991

Terminate a data set with given ID

ParameterTypeDescription
signerSignerSigner which created this dataset
dataSetIdnumberID of the data set to terminate

Promise<TransactionResponse>

Transaction receipt


verifyDataSetCreation(txHashOrTransaction): Promise<DataSetCreationVerification>;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:465

Verify that a data set creation transaction was successful This checks both the transaction status and on-chain data set state

ParameterTypeDescription
txHashOrTransaction| string | TransactionResponseTransaction hash or transaction object

Promise<DataSetCreationVerification>

Verification result with data set ID if found


waitForDataSetCreationWithStatus(
txHashOrTransaction,
pdpServer,
maxWaitTime,
pollInterval,
onProgress?): Promise<ComprehensiveDataSetStatus>;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:626

Wait for data set creation with status updates

ParameterTypeDefault valueDescription
txHashOrTransaction| string | TransactionResponseundefinedTransaction hash or transaction object to wait for
pdpServerPDPServerundefinedPDP server for status checks
maxWaitTimenumberTIMING_CONSTANTS.DATA_SET_CREATION_TIMEOUT_MSMaximum time to wait in milliseconds
pollIntervalnumberTIMING_CONSTANTS.DATA_SET_CREATION_POLL_INTERVAL_MSPolling interval in milliseconds
onProgress?(status, elapsedMs) => Promise<void>undefinedOptional progress callback

Promise<ComprehensiveDataSetStatus>

Final comprehensive status


static create(provider, warmStorageAddress): Promise<WarmStorageService>;

Defined in: packages/synapse-sdk/src/warm-storage/service.ts:145

Create a new WarmStorageService instance with initialized addresses

ParameterType
providerProvider
warmStorageAddressstring

Promise<WarmStorageService>