Skip to content

updateProductSync

updateProductSync(client, options): Promise<OutputType>

Defined in: packages/synapse-core/src/sp-registry/update-product.ts:155

Update a product for the service provider and wait for confirmation

Updates an existing product for the calling provider and waits for the transaction to be confirmed. Returns the receipt with the event.

ParameterTypeDescription
clientClient<Transport, Chain, Account>The viem client with account to use for the transaction.
options{ capabilities?: Record<string, string>; contractAddress?: `0x${string}`; onHash?: (hash) => void; pdpOffering: PDPOffering; productType?: number; }updateProductSync.OptionsType
options.capabilities?Record<string, string>Additional capabilities as key-value pairs. Optional.
options.contractAddress?`0x${string}`Service provider registry contract address. If not provided, the default is the registry contract address for the chain.
options.onHash?(hash) => voidCallback function called with the transaction hash before waiting for the receipt.
options.pdpOfferingPDPOfferingThe PDP offering details
options.productType?numberThe product type to update (0 for PDP). Defaults to 0.

Promise<OutputType>

The transaction receipt and extracted event updateProductSync.OutputType

Errors updateProductSync.ErrorType

import { updateProductSync } from '@filoz/synapse-core/sp-registry'
import { createWalletClient, http, parseEther } from 'viem'
import { privateKeyToAccount } from 'viem/accounts'
import { calibration } from '@filoz/synapse-core/chains'
const account = privateKeyToAccount('0x...')
const client = createWalletClient({
account,
chain: calibration,
transport: http(),
})
const { receipt, event } = await updateProductSync(client, {
pdpOffering: {
serviceURL: 'https://provider.example.com',
minPieceSizeInBytes: 1024n,
maxPieceSizeInBytes: 1073741824n,
storagePricePerTibPerDay: parseEther('0.15'),
minProvingPeriodInEpochs: 2880n,
location: 'us-west',
paymentTokenAddress: '0x0000000000000000000000000000000000000000',
},
onHash: (hash) => console.log('Transaction sent:', hash),
})
console.log('Provider ID:', event.args.providerId)
console.log('Product Type:', event.args.productType)