Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
1f41cd9
fix: validateIpniAdvertisement checks provider
SgtPooki Nov 11, 2025
1e6e823
Update src/core/utils/validate-ipni-advertisement.ts
SgtPooki Nov 12, 2025
afb18ae
Update src/core/utils/validate-ipni-advertisement.ts
SgtPooki Nov 12, 2025
7df9efd
fix: fine-tune logic, remove dead branches
SgtPooki Nov 12, 2025
20364d6
fix: allow ipniIndexer override, default to filecoinpin.contact
SgtPooki Nov 12, 2025
b62441f
fix: use only current provider serviceURL
SgtPooki Nov 12, 2025
1f95e4d
Update src/core/utils/validate-ipni-advertisement.ts
SgtPooki Nov 12, 2025
4c0c1c2
Update src/core/utils/validate-ipni-advertisement.ts
SgtPooki Nov 12, 2025
fa10f75
Update src/core/utils/validate-ipni-advertisement.ts
SgtPooki Nov 12, 2025
ad90c71
Update src/core/utils/validate-ipni-advertisement.ts
SgtPooki Nov 12, 2025
31c6097
chore: more logic cleanup
SgtPooki Nov 12, 2025
915e7e9
fix: display received + expected multiaddrs
SgtPooki Nov 12, 2025
a2df72f
refactor: inline simple maps and filters
SgtPooki Nov 12, 2025
0484671
chore: more code cleanup
SgtPooki Nov 12, 2025
35e989b
fix: PDP definition
SgtPooki Nov 12, 2025
e5ea86d
chore: cleanup validateIpni options set in executeUpload
SgtPooki Nov 12, 2025
540da6e
fix: last error message
SgtPooki Nov 12, 2025
a89a445
Update src/core/utils/validate-ipni-advertisement.ts
SgtPooki Nov 12, 2025
1ff3746
Update src/core/utils/validate-ipni-advertisement.ts
SgtPooki Nov 12, 2025
c0302d3
Update src/test/unit/validate-ipni-advertisement.test.ts
SgtPooki Nov 12, 2025
d092307
Update src/test/unit/validate-ipni-advertisement.test.ts
SgtPooki Nov 12, 2025
ea21fc7
Update src/test/unit/validate-ipni-advertisement.test.ts
SgtPooki Nov 12, 2025
8d5d654
Update src/test/unit/validate-ipni-advertisement.test.ts
SgtPooki Nov 12, 2025
6a55fef
Update src/core/utils/validate-ipni-advertisement.ts
SgtPooki Nov 12, 2025
623bf87
Update src/core/utils/validate-ipni-advertisement.ts
SgtPooki Nov 12, 2025
23cab56
fix: remove expectedProviderMultiaddrs
SgtPooki Nov 12, 2025
7bd2632
refactor: validateIPNIadvertisement -> waitForIpniProviderResults
SgtPooki Nov 12, 2025
6ea2930
fix: use set operations, finish move to waitForIpniProviderResults
SgtPooki Nov 12, 2025
33f1ae9
fix: update terminology, ipniAdvertisement -> ipni provider results
SgtPooki Nov 12, 2025
c1edc16
fix: include Set operations in typescript
SgtPooki Nov 13, 2025
3ae6b18
Update src/core/utils/validate-ipni-advertisement.ts
SgtPooki Nov 13, 2025
83177bc
Update src/core/utils/validate-ipni-advertisement.ts
SgtPooki Nov 13, 2025
edb047a
Update src/core/utils/validate-ipni-advertisement.ts
SgtPooki Nov 13, 2025
bcc6b8a
chore: lint fix
SgtPooki Nov 13, 2025
6f595e1
test: fix tests after error msg change
SgtPooki Nov 13, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 29 additions & 5 deletions src/core/upload/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -230,16 +230,40 @@ export async function executeUpload(
case 'onPieceAdded': {
// Begin IPNI validation as soon as the piece is added and parked in the data set
if (options.ipniValidation?.enabled !== false && ipniValidationPromise == null) {
const { enabled: _enabled, ...rest } = options.ipniValidation ?? {}
ipniValidationPromise = validateIPNIAdvertisement(rootCid, {
...rest,
const { enabled: _enabled, expectedProviders, ...restOptions } = options.ipniValidation ?? {}

// Build validation options
const validationOptions: ValidateIPNIAdvertisementOptions = {
...restOptions,
logger,
...(options?.onProgress != null ? { onProgress: options.onProgress } : {}),
}).catch((error) => {
}

// Forward progress events to caller if they provided a handler
if (options?.onProgress != null) {
validationOptions.onProgress = options.onProgress
}

// Determine which providers to expect in IPNI
// Priority: user-provided expectedProviders > current provider > none (generic validation)
const providersToExpect =
expectedProviders && expectedProviders.length > 0
? expectedProviders
: synapseService.providerInfo != null
? [synapseService.providerInfo]
: []

if (providersToExpect.length > 0) {
validationOptions.expectedProviders = providersToExpect
}

// Start validation (runs in parallel with other operations)
ipniValidationPromise = validateIPNIAdvertisement(rootCid, validationOptions).catch((error) => {
logger.warn({ error }, 'IPNI advertisement validation promise rejected')
return false
})
}

// Capture transaction hash if available
if (event.data.txHash != null) {
transactionHash = event.data.txHash
}
Expand Down
Loading
Loading