@filoz/synapse-react 0.0.1 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,6 @@
1
1
  export * from './use-create-data-set.ts';
2
2
  export * from './use-data-sets.ts';
3
+ export * from './use-delete-piece.ts';
3
4
  export * from './use-providers.ts';
4
5
  export * from './use-service-price.ts';
5
6
  export * from './use-upload.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/warm-storage/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/warm-storage/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA"}
@@ -1,5 +1,6 @@
1
1
  export * from "./use-create-data-set.js";
2
2
  export * from "./use-data-sets.js";
3
+ export * from "./use-delete-piece.js";
3
4
  export * from "./use-providers.js";
4
5
  export * from "./use-service-price.js";
5
6
  export * from "./use-upload.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/warm-storage/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/warm-storage/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA"}
@@ -1,5 +1,6 @@
1
- import type { DataSetCreatedResponse } from '@filoz/synapse-core/curio';
2
- import type { PDPProvider } from '@filoz/synapse-core/warm-storage';
1
+ import type { DataSetCreatedResponse } from '@filoz/synapse-core/sp';
2
+ import * as SP from '@filoz/synapse-core/sp';
3
+ import { type PDPProvider } from '@filoz/synapse-core/warm-storage';
3
4
  import { type MutateOptions } from '@tanstack/react-query';
4
5
  export interface UseCreateDataSetProps {
5
6
  onHash?: (hash: string) => void;
@@ -10,5 +11,5 @@ export interface UseCreateDataSetVariables {
10
11
  cdn: boolean;
11
12
  }
12
13
  export type UseCreateDataSetResult = DataSetCreatedResponse;
13
- export declare function useCreateDataSet(props: UseCreateDataSetProps): import("@tanstack/react-query").UseMutationResult<DataSetCreatedResponse, Error, UseCreateDataSetVariables, unknown>;
14
+ export declare function useCreateDataSet(props: UseCreateDataSetProps): import("@tanstack/react-query").UseMutationResult<SP.DataSetCreateSuccess, Error, UseCreateDataSetVariables, unknown>;
14
15
  //# sourceMappingURL=use-create-data-set.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-create-data-set.d.ts","sourceRoot":"","sources":["../../../src/warm-storage/use-create-data-set.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAEvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAEnE,OAAO,EAAE,KAAK,aAAa,EAA+B,MAAM,uBAAuB,CAAA;AAIvF,MAAM,WAAW,qBAAqB;IAIpC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/B,QAAQ,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,KAAK,EAAE,yBAAyB,CAAC,EAAE,YAAY,CAAC,CAAA;CACvG;AAED,MAAM,WAAW,yBAAyB;IAIxC,QAAQ,EAAE,WAAW,CAAA;IACrB,GAAG,EAAE,OAAO,CAAA;CACb;AAED,MAAM,MAAM,sBAAsB,GAAG,sBAAsB,CAAA;AAE3D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,wHAmC5D"}
1
+ {"version":3,"file":"use-create-data-set.d.ts","sourceRoot":"","sources":["../../../src/warm-storage/use-create-data-set.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AACpE,OAAO,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC5C,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAClF,OAAO,EAAE,KAAK,aAAa,EAA+B,MAAM,uBAAuB,CAAA;AAIvF,MAAM,WAAW,qBAAqB;IAIpC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/B,QAAQ,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,KAAK,EAAE,yBAAyB,CAAC,EAAE,YAAY,CAAC,CAAA;CACvG;AAED,MAAM,WAAW,yBAAyB;IAIxC,QAAQ,EAAE,WAAW,CAAA;IACrB,GAAG,EAAE,OAAO,CAAA;CACb;AAED,MAAM,MAAM,sBAAsB,GAAG,sBAAsB,CAAA;AAE3D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,yHAoC5D"}
@@ -1,4 +1,4 @@
1
- import * as Curio from '@filoz/synapse-core/curio';
1
+ import * as SP from '@filoz/synapse-core/sp';
2
2
  import { createDataSet } from '@filoz/synapse-core/warm-storage';
3
3
  import { useMutation, useQueryClient } from '@tanstack/react-query';
4
4
  import { useAccount, useChainId, useConfig } from 'wagmi';
@@ -15,13 +15,14 @@ export function useCreateDataSet(props) {
15
15
  account: account.address,
16
16
  chainId,
17
17
  });
18
- const { hash, statusUrl } = await createDataSet(connectorClient, {
19
- publicClient: config.getClient(),
20
- provider,
18
+ const { txHash, statusUrl } = await createDataSet(connectorClient, {
19
+ payee: provider.payee,
20
+ payer: account.address,
21
+ endpoint: provider.pdp.serviceURL,
21
22
  cdn,
22
23
  });
23
- props?.onHash?.(hash);
24
- const dataSet = await Curio.pollForDataSetCreationStatus({ statusUrl });
24
+ props?.onHash?.(txHash);
25
+ const dataSet = await SP.pollForDataSetCreationStatus({ statusUrl });
25
26
  queryClient.invalidateQueries({
26
27
  queryKey: ['synapse-warm-storage-data-sets', account.address],
27
28
  });
@@ -1 +1 @@
1
- {"version":3,"file":"use-create-data-set.js","sourceRoot":"","sources":["../../../src/warm-storage/use-create-data-set.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,2BAA2B,CAAA;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAA;AAChE,OAAO,EAAsB,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACvF,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAoBlD,MAAM,UAAU,gBAAgB,CAAC,KAA4B;IAC3D,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IACtC,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IACtC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IACpC,OAAO,WAAW,CAAC;QACjB,GAAG,KAAK,EAAE,QAAQ;QAClB,UAAU,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,EAA6B,EAAE,EAAE;YACjE,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE;gBACvD,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,OAAO;aACR,CAAC,CAAA;YAEF,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,aAAa,CAAC,eAAe,EAAE;gBAC/D,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE;gBAChC,QAAQ;gBACR,GAAG;aAKJ,CAAC,CAAA;YACF,KAAK,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,CAAA;YAErB,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,4BAA4B,CAAC,EAAE,SAAS,EAAE,CAAC,CAAA;YAEvE,WAAW,CAAC,iBAAiB,CAAC;gBAC5B,QAAQ,EAAE,CAAC,gCAAgC,EAAE,OAAO,CAAC,OAAO,CAAC;aAC9D,CAAC,CAAA;YACF,WAAW,CAAC,iBAAiB,CAAC;gBAC5B,QAAQ,EAAE,CAAC,+CAA+C,EAAE,OAAO,CAAC,OAAO,CAAC;aAC7E,CAAC,CAAA;YACF,OAAO,OAAO,CAAA;QAChB,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"use-create-data-set.js","sourceRoot":"","sources":["../../../src/warm-storage/use-create-data-set.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAoB,MAAM,kCAAkC,CAAA;AAClF,OAAO,EAAsB,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACvF,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAoBlD,MAAM,UAAU,gBAAgB,CAAC,KAA4B;IAC3D,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IACtC,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IACtC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IACpC,OAAO,WAAW,CAAC;QACjB,GAAG,KAAK,EAAE,QAAQ;QAClB,UAAU,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,EAA6B,EAAE,EAAE;YACjE,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE;gBACvD,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,OAAO;aACR,CAAC,CAAA;YAEF,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,aAAa,CAAC,eAAe,EAAE;gBACjE,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,KAAK,EAAE,OAAO,CAAC,OAAO;gBACtB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,UAAU;gBACjC,GAAG;aAKJ,CAAC,CAAA;YACF,KAAK,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,CAAA;YAEvB,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,4BAA4B,CAAC,EAAE,SAAS,EAAE,CAAC,CAAA;YAEpE,WAAW,CAAC,iBAAiB,CAAC;gBAC5B,QAAQ,EAAE,CAAC,gCAAgC,EAAE,OAAO,CAAC,OAAO,CAAC;aAC9D,CAAC,CAAA;YACF,WAAW,CAAC,iBAAiB,CAAC;gBAC5B,QAAQ,EAAE,CAAC,+CAA+C,EAAE,OAAO,CAAC,OAAO,CAAC;aAC7E,CAAC,CAAA;YACF,OAAO,OAAO,CAAA;QAChB,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -1,10 +1,9 @@
1
- import { type MetadataObject } from '@filoz/synapse-core';
2
- import type { CurioPieceWithUrl } from '@filoz/synapse-core/curio';
3
- import { type DataSet } from '@filoz/synapse-core/warm-storage';
1
+ import { type MetadataObject } from '@filoz/synapse-core/utils';
2
+ import { type DataSet, type Piece } from '@filoz/synapse-core/warm-storage';
4
3
  import { type UseQueryOptions } from '@tanstack/react-query';
5
4
  import type { Simplify } from 'type-fest';
6
5
  import type { Address } from 'viem';
7
- export type PieceWithMetadata = Simplify<CurioPieceWithUrl & {
6
+ export type PieceWithMetadata = Simplify<Piece & {
8
7
  metadata: MetadataObject;
9
8
  }>;
10
9
  export interface DataSetWithPieces extends DataSet {
@@ -18,15 +17,15 @@ export interface UseDataSetsProps {
18
17
  export declare function useDataSets(props: UseDataSetsProps): import("@tanstack/react-query").UseQueryResult<{
19
18
  pieces: {
20
19
  metadata: Record<string, string>;
21
- pieceCid: string;
22
- pieceId: number;
23
- pieceUrl: string;
20
+ cid: import("@web3-storage/data-segment").PieceLink;
21
+ id: bigint;
22
+ url: string;
24
23
  }[];
25
- pdpDatasetId: bigint;
26
24
  live: boolean;
27
25
  managed: boolean;
28
26
  cdn: boolean;
29
27
  metadata: MetadataObject;
28
+ pdp: import("@filoz/synapse-core/warm-storage").PDPOffering;
30
29
  pdpRailId: bigint;
31
30
  cacheMissRailId: bigint;
32
31
  cdnRailId: bigint;
@@ -37,6 +36,6 @@ export declare function useDataSets(props: UseDataSetsProps): import("@tanstack/
37
36
  clientDataSetId: bigint;
38
37
  pdpEndEpoch: bigint;
39
38
  providerId: bigint;
40
- cdnEndEpoch: bigint;
39
+ dataSetId: bigint;
41
40
  }[], Error>;
42
41
  //# sourceMappingURL=use-data-sets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-data-sets.d.ts","sourceRoot":"","sources":["../../../src/warm-storage/use-data-sets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAyB,MAAM,qBAAqB,CAAA;AAEhF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAElE,OAAO,EAAE,KAAK,OAAO,EAA8B,MAAM,kCAAkC,CAAA;AAC3F,OAAO,EAAa,KAAK,eAAe,EAAY,MAAM,uBAAuB,CAAA;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAKnC,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,GAAG;IAAE,QAAQ,EAAE,cAAc,CAAA;CAAE,CAAC,CAAA;AAE1F,MAAM,WAAW,iBAAkB,SAAQ,OAAO;IAChD,MAAM,EAAE,iBAAiB,EAAE,CAAA;CAC5B;AAED,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,EAAE,CAAA;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,CAAA;CACzE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;YAgDlD"}
1
+ {"version":3,"file":"use-data-sets.d.ts","sourceRoot":"","sources":["../../../src/warm-storage/use-data-sets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAyB,MAAM,2BAA2B,CAAA;AACtF,OAAO,EAAE,KAAK,OAAO,EAA0B,KAAK,KAAK,EAAE,MAAM,kCAAkC,CAAA;AACnG,OAAO,EAAa,KAAK,eAAe,EAAY,MAAM,uBAAuB,CAAA;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAInC,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,KAAK,GAAG;IAAE,QAAQ,EAAE,cAAc,CAAA;CAAE,CAAC,CAAA;AAE9E,MAAM,WAAW,iBAAkB,SAAQ,OAAO;IAChD,MAAM,EAAE,iBAAiB,EAAE,CAAA;CAC5B;AAED,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,EAAE,CAAA;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,CAAA;CACzE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;YA0ClD"}
@@ -1,37 +1,30 @@
1
- import { metadataArrayToObject } from '@filoz/synapse-core';
2
1
  import { getChain } from '@filoz/synapse-core/chains';
3
- import * as PDP from '@filoz/synapse-core/curio';
4
- import { getDataSets, readProviders } from '@filoz/synapse-core/warm-storage';
2
+ import { metadataArrayToObject } from '@filoz/synapse-core/utils';
3
+ import { getDataSets, getPieces } from '@filoz/synapse-core/warm-storage';
5
4
  import { skipToken, useQuery } from '@tanstack/react-query';
6
5
  import { readContract } from 'viem/actions';
7
6
  import { useChainId, useConfig } from 'wagmi';
8
- import { useProviders } from "./use-providers.js";
9
7
  export function useDataSets(props) {
10
8
  const config = useConfig();
11
9
  const chainId = useChainId();
12
10
  const address = props.address;
13
- const { data: providersPrefected } = useProviders();
14
11
  const chain = getChain(chainId);
15
12
  return useQuery({
16
13
  queryKey: ['synapse-warm-storage-data-sets', address],
17
14
  queryFn: address
18
15
  ? async () => {
19
- const providers = providersPrefected ?? (await readProviders(config.getClient()));
20
16
  const dataSets = await getDataSets(config.getClient(), { address });
21
17
  const dataSetsWithPieces = await Promise.all(dataSets.map(async (dataSet) => {
22
- const pieces = await PDP.getPiecesForDataSet({
23
- endpoint: providers.find((p) => p.providerId === dataSet.providerId)?.pdp.serviceURL || '',
24
- dataSetId: dataSet.pdpDatasetId,
25
- chainId,
18
+ const piecesPaginated = await getPieces(config.getClient(), {
19
+ dataSet,
26
20
  address,
27
- cdn: dataSet.cdn,
28
21
  });
29
- const piecesWithMetadata = await Promise.all(pieces.map(async (piece) => {
22
+ const piecesWithMetadata = await Promise.all(piecesPaginated.pieces.map(async (piece) => {
30
23
  const metadata = await readContract(config.getClient(), {
31
24
  address: chain.contracts.storageView.address,
32
25
  abi: chain.contracts.storageView.abi,
33
26
  functionName: 'getAllPieceMetadata',
34
- args: [dataSet.pdpDatasetId, BigInt(piece.pieceId)],
27
+ args: [dataSet.dataSetId, BigInt(piece.id)],
35
28
  });
36
29
  return {
37
30
  ...piece,
@@ -1 +1 @@
1
- {"version":3,"file":"use-data-sets.js","sourceRoot":"","sources":["../../../src/warm-storage/use-data-sets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAErD,OAAO,KAAK,GAAG,MAAM,2BAA2B,CAAA;AAChD,OAAO,EAAgB,WAAW,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAA;AAC3F,OAAO,EAAE,SAAS,EAAwB,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAGjF,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAejD,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;IAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;IAC7B,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,YAAY,EAAE,CAAA;IACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC/B,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,gCAAgC,EAAE,OAAO,CAAC;QACrD,OAAO,EAAE,OAAO;YACd,CAAC,CAAC,KAAK,IAAI,EAAE;gBACT,MAAM,SAAS,GAAG,kBAAkB,IAAI,CAAC,MAAM,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;gBACjF,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;gBACnE,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC1C,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;oBAE7B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,mBAAmB,CAAC;wBAC3C,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,UAAU,IAAI,EAAE;wBAC1F,SAAS,EAAE,OAAO,CAAC,YAAY;wBAC/B,OAAO;wBACP,OAAO;wBACP,GAAG,EAAE,OAAO,CAAC,GAAG;qBACjB,CAAC,CAAA;oBAEF,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC1C,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;wBACzB,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE;4BACtD,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO;4BAC5C,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG;4BACpC,YAAY,EAAE,qBAAqB;4BACnC,IAAI,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;yBACpD,CAAC,CAAA;wBACF,OAAO;4BACL,GAAG,KAAK;4BACR,QAAQ,EAAE,qBAAqB,CAAC,QAAQ,CAAC;yBAC1C,CAAA;oBACH,CAAC,CAAC,CACH,CAAA;oBAED,OAAO;wBACL,GAAG,OAAO;wBACV,MAAM,EAAE,kBAAkB;qBAC3B,CAAA;gBACH,CAAC,CAAC,CACH,CAAA;gBACD,OAAO,kBAAkB,CAAA;YAC3B,CAAC;YACH,CAAC,CAAC,SAAS;KACd,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"use-data-sets.js","sourceRoot":"","sources":["../../../src/warm-storage/use-data-sets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,OAAO,EAAuB,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACtF,OAAO,EAAgB,WAAW,EAAE,SAAS,EAAc,MAAM,kCAAkC,CAAA;AACnG,OAAO,EAAE,SAAS,EAAwB,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAGjF,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAe7C,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;IAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;IAC7B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC/B,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,gCAAgC,EAAE,OAAO,CAAC;QACrD,OAAO,EAAE,OAAO;YACd,CAAC,CAAC,KAAK,IAAI,EAAE;gBACT,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;gBACnE,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC1C,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;oBAC7B,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE;wBAC1D,OAAO;wBACP,OAAO;qBACR,CAAC,CAAA;oBAEF,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC1C,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;wBACzC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE;4BACtD,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO;4BAC5C,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG;4BACpC,YAAY,EAAE,qBAAqB;4BACnC,IAAI,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;yBAC5C,CAAC,CAAA;wBACF,OAAO;4BACL,GAAG,KAAK;4BACR,QAAQ,EAAE,qBAAqB,CAAC,QAAQ,CAAC;yBAC1C,CAAA;oBACH,CAAC,CAAC,CACH,CAAA;oBAED,OAAO;wBACL,GAAG,OAAO;wBACV,MAAM,EAAE,kBAAkB;qBAC3B,CAAA;gBACH,CAAC,CAAC,CACH,CAAA;gBACD,OAAO,kBAAkB,CAAA;YAC3B,CAAC;YACH,CAAC,CAAC,SAAS;KACd,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { SessionKey } from '@filoz/synapse-core/session-key';
2
+ import { type DataSet } from '@filoz/synapse-core/warm-storage';
3
+ import { type MutateOptions } from '@tanstack/react-query';
4
+ import type { TransactionReceipt } from 'viem';
5
+ export interface UseDeletePieceProps {
6
+ onHash?: (hash: string) => void;
7
+ sessionKey?: SessionKey;
8
+ mutation?: Omit<MutateOptions<TransactionReceipt, Error, UseDeletePieceVariables>, 'mutationFn'>;
9
+ }
10
+ export interface UseDeletePieceVariables {
11
+ dataSet: DataSet;
12
+ pieceId: bigint;
13
+ }
14
+ export declare function useDeletePiece(props: UseDeletePieceProps): import("@tanstack/react-query").UseMutationResult<TransactionReceipt<bigint, number, "success" | "reverted", import("viem").TransactionType>, Error, UseDeletePieceVariables, unknown>;
15
+ //# sourceMappingURL=use-delete-piece.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-delete-piece.d.ts","sourceRoot":"","sources":["../../../src/warm-storage/use-delete-piece.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,KAAK,OAAO,EAAyC,MAAM,kCAAkC,CAAA;AACtG,OAAO,EAAE,KAAK,aAAa,EAA+B,MAAM,uBAAuB,CAAA;AACvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AAI9C,MAAM,WAAW,mBAAmB;IAIlC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/B,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,KAAK,EAAE,uBAAuB,CAAC,EAAE,YAAY,CAAC,CAAA;CACjG;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB;AACD,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,0LAoCxD"}
@@ -0,0 +1,38 @@
1
+ import { getChain } from '@filoz/synapse-core/chains';
2
+ import { deletePiece, pollForDeletePieceStatus } from '@filoz/synapse-core/warm-storage';
3
+ import { useMutation, useQueryClient } from '@tanstack/react-query';
4
+ import { useAccount, useChainId, useConfig } from 'wagmi';
5
+ import { getConnectorClient } from 'wagmi/actions';
6
+ export function useDeletePiece(props) {
7
+ const config = useConfig();
8
+ const chainId = useChainId({ config });
9
+ const chain = getChain(chainId);
10
+ const account = useAccount({ config });
11
+ const queryClient = useQueryClient();
12
+ const client = config.getClient();
13
+ return useMutation({
14
+ ...props?.mutation,
15
+ mutationFn: async ({ dataSet, pieceId }) => {
16
+ let connectorClient = await getConnectorClient(config, {
17
+ account: account.address,
18
+ chainId,
19
+ });
20
+ if (props?.sessionKey && (await props?.sessionKey.isValid(connectorClient, 'SchedulePieceRemovals'))) {
21
+ connectorClient = props?.sessionKey.client(chain, client.transport);
22
+ }
23
+ const deletePieceRsp = await deletePiece(connectorClient, {
24
+ endpoint: dataSet.pdp.serviceURL,
25
+ dataSetId: dataSet.dataSetId,
26
+ clientDataSetId: dataSet.clientDataSetId,
27
+ pieceId,
28
+ });
29
+ props?.onHash?.(deletePieceRsp.txHash);
30
+ const rsp = await pollForDeletePieceStatus(client, deletePieceRsp);
31
+ queryClient.invalidateQueries({
32
+ queryKey: ['synapse-warm-storage-data-sets', account.address],
33
+ });
34
+ return rsp;
35
+ },
36
+ });
37
+ }
38
+ //# sourceMappingURL=use-delete-piece.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-delete-piece.js","sourceRoot":"","sources":["../../../src/warm-storage/use-delete-piece.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAErD,OAAO,EAAgB,WAAW,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAA;AACtG,OAAO,EAAsB,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEvF,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAelD,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC/B,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IACtC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;IAEjC,OAAO,WAAW,CAAC;QACjB,GAAG,KAAK,EAAE,QAAQ;QAClB,UAAU,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAA2B,EAAE,EAAE;YAClE,IAAI,eAAe,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE;gBACrD,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,OAAO;aACR,CAAC,CAAA;YAEF,IAAI,KAAK,EAAE,UAAU,IAAI,CAAC,MAAM,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAC,EAAE,CAAC;gBACrG,eAAe,GAAG,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;YACrE,CAAC;YAED,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,eAAe,EAAE;gBACxD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;gBAChC,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,OAAO;aACR,CAAC,CAAA;YAEF,KAAK,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;YACtC,MAAM,GAAG,GAAG,MAAM,wBAAwB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;YAElE,WAAW,CAAC,iBAAiB,CAAC;gBAC5B,QAAQ,EAAE,CAAC,gCAAgC,EAAE,OAAO,CAAC,OAAO,CAAC;aAC9D,CAAC,CAAA;YACF,OAAO,GAAG,CAAA;QACZ,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -1,14 +1,14 @@
1
- import type { AddPiecesSuccess } from '@filoz/synapse-core/curio';
2
1
  import type { SessionKey } from '@filoz/synapse-core/session-key';
2
+ import type { AddPiecesSuccess } from '@filoz/synapse-core/sp';
3
3
  import { type MutateOptions } from '@tanstack/react-query';
4
4
  export interface UseUploadProps {
5
5
  onHash?: (hash: string) => void;
6
+ sessionKey?: SessionKey;
6
7
  mutation?: Omit<MutateOptions<AddPiecesSuccess, Error, UseUploadVariables>, 'mutationFn'>;
7
8
  }
8
9
  export interface UseUploadVariables {
9
10
  files: File[];
10
11
  dataSetId: bigint;
11
- sessionKey?: SessionKey;
12
12
  }
13
13
  export declare function useUpload(props: UseUploadProps): import("@tanstack/react-query").UseMutationResult<AddPiecesSuccess, Error, UseUploadVariables, unknown>;
14
14
  //# sourceMappingURL=use-upload.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-upload.d.ts","sourceRoot":"","sources":["../../../src/warm-storage/use-upload.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAEjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAEjE,OAAO,EAAE,KAAK,aAAa,EAA+B,MAAM,uBAAuB,CAAA;AAIvF,MAAM,WAAW,cAAc;IAI7B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/B,QAAQ,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,KAAK,EAAE,kBAAkB,CAAC,EAAE,YAAY,CAAC,CAAA;CAC1F;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,IAAI,EAAE,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AACD,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,2GAmC9C"}
1
+ {"version":3,"file":"use-upload.d.ts","sourceRoot":"","sources":["../../../src/warm-storage/use-upload.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAG9D,OAAO,EAAE,KAAK,aAAa,EAA+B,MAAM,uBAAuB,CAAA;AAIvF,MAAM,WAAW,cAAc;IAI7B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/B,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,KAAK,EAAE,kBAAkB,CAAC,EAAE,YAAY,CAAC,CAAA;CAC1F;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,IAAI,EAAE,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;CAClB;AACD,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,2GAiC9C"}
@@ -1,5 +1,5 @@
1
1
  import { getChain } from '@filoz/synapse-core/chains';
2
- import * as Curio from '@filoz/synapse-core/curio';
2
+ import * as SP from '@filoz/synapse-core/sp';
3
3
  import { upload } from '@filoz/synapse-core/warm-storage';
4
4
  import { useMutation, useQueryClient } from '@tanstack/react-query';
5
5
  import { useAccount, useChainId, useConfig } from 'wagmi';
@@ -13,22 +13,20 @@ export function useUpload(props) {
13
13
  const client = config.getClient();
14
14
  return useMutation({
15
15
  ...props?.mutation,
16
- mutationFn: async ({ files, dataSetId, sessionKey }) => {
16
+ mutationFn: async ({ files, dataSetId }) => {
17
17
  let connectorClient = await getConnectorClient(config, {
18
18
  account: account.address,
19
19
  chainId,
20
20
  });
21
- if (sessionKey && (await sessionKey.isValid(connectorClient, 'AddPieces'))) {
22
- connectorClient = sessionKey.client(chain, client.transport);
21
+ if (props?.sessionKey && (await props?.sessionKey.isValid(connectorClient, 'AddPieces'))) {
22
+ connectorClient = props?.sessionKey.client(chain, client.transport);
23
23
  }
24
- const pieces = await upload(connectorClient, {
24
+ const uploadRsp = await upload(connectorClient, {
25
25
  dataSetId,
26
26
  data: files,
27
27
  });
28
- props?.onHash?.(pieces.txHash);
29
- const rsp = await Curio.pollForAddPiecesStatus({
30
- statusUrl: pieces.statusUrl,
31
- });
28
+ props?.onHash?.(uploadRsp.txHash);
29
+ const rsp = await SP.pollForAddPiecesStatus(uploadRsp);
32
30
  queryClient.invalidateQueries({
33
31
  queryKey: ['synapse-warm-storage-data-sets', account.address],
34
32
  });
@@ -1 +1 @@
1
- {"version":3,"file":"use-upload.js","sourceRoot":"","sources":["../../../src/warm-storage/use-upload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAErD,OAAO,KAAK,KAAK,MAAM,2BAA2B,CAAA;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAsB,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACvF,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAelD,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC/B,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IACtC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;IAEjC,OAAO,WAAW,CAAC;QACjB,GAAG,KAAK,EAAE,QAAQ;QAClB,UAAU,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAsB,EAAE,EAAE;YACzE,IAAI,eAAe,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE;gBACrD,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,OAAO;aACR,CAAC,CAAA;YACF,IAAI,UAAU,IAAI,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;gBAC3E,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;YAC9D,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE;gBAC3C,SAAS;gBACT,IAAI,EAAE,KAAK;aACZ,CAAC,CAAA;YAEF,KAAK,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YAC9B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,sBAAsB,CAAC;gBAC7C,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC,CAAA;YAEF,WAAW,CAAC,iBAAiB,CAAC;gBAC5B,QAAQ,EAAE,CAAC,gCAAgC,EAAE,OAAO,CAAC,OAAO,CAAC;aAC9D,CAAC,CAAA;YACF,OAAO,GAAG,CAAA;QACZ,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"use-upload.js","sourceRoot":"","sources":["../../../src/warm-storage/use-upload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAGrD,OAAO,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAsB,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACvF,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAelD,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC/B,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IACtC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;IAEjC,OAAO,WAAW,CAAC;QACjB,GAAG,KAAK,EAAE,QAAQ;QAClB,UAAU,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAsB,EAAE,EAAE;YAC7D,IAAI,eAAe,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE;gBACrD,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,OAAO;aACR,CAAC,CAAA;YACF,IAAI,KAAK,EAAE,UAAU,IAAI,CAAC,MAAM,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;gBACzF,eAAe,GAAG,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;YACrE,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE;gBAC9C,SAAS;gBACT,IAAI,EAAE,KAAK;aACZ,CAAC,CAAA;YAEF,KAAK,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;YACjC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAA;YAEtD,WAAW,CAAC,iBAAiB,CAAC;gBAC5B,QAAQ,EAAE,CAAC,gCAAgC,EAAE,OAAO,CAAC,OAAO,CAAC;aAC9D,CAAC,CAAA;YACF,OAAO,GAAG,CAAA;QACZ,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@filoz/synapse-react",
3
- "version": "0.0.1",
3
+ "version": "0.1.1",
4
4
  "description": "React hooks for interacting with Filecoin Onchain Cloud smart contracts",
5
5
  "repository": {
6
6
  "type": "git",
@@ -47,6 +47,9 @@
47
47
  ],
48
48
  "output": [
49
49
  "dist/**"
50
+ ],
51
+ "dependencies": [
52
+ "../synapse-core:build"
50
53
  ]
51
54
  },
52
55
  "lint": {
@@ -63,10 +66,10 @@
63
66
  },
64
67
  "dependencies": {
65
68
  "filsnap-adapter": "^3.3.8",
66
- "@filoz/synapse-core": "^0.0.1"
69
+ "@filoz/synapse-core": "^0.1.1"
67
70
  },
68
71
  "devDependencies": {
69
- "@biomejs/biome": "~2.2.6",
72
+ "@biomejs/biome": "2.3.2",
70
73
  "@types/node": "^24.9.1",
71
74
  "type-fest": "^5.1.0",
72
75
  "typescript": "5.9.3"
@@ -1,5 +1,6 @@
1
1
  export * from './use-create-data-set.ts'
2
2
  export * from './use-data-sets.ts'
3
+ export * from './use-delete-piece.ts'
3
4
  export * from './use-providers.ts'
4
5
  export * from './use-service-price.ts'
5
6
  export * from './use-upload.ts'
@@ -1,7 +1,6 @@
1
- import type { DataSetCreatedResponse } from '@filoz/synapse-core/curio'
2
- import * as Curio from '@filoz/synapse-core/curio'
3
- import type { PDPProvider } from '@filoz/synapse-core/warm-storage'
4
- import { createDataSet } from '@filoz/synapse-core/warm-storage'
1
+ import type { DataSetCreatedResponse } from '@filoz/synapse-core/sp'
2
+ import * as SP from '@filoz/synapse-core/sp'
3
+ import { createDataSet, type PDPProvider } from '@filoz/synapse-core/warm-storage'
5
4
  import { type MutateOptions, useMutation, useQueryClient } from '@tanstack/react-query'
6
5
  import { useAccount, useChainId, useConfig } from 'wagmi'
7
6
  import { getConnectorClient } from 'wagmi/actions'
@@ -37,18 +36,19 @@ export function useCreateDataSet(props: UseCreateDataSetProps) {
37
36
  chainId,
38
37
  })
39
38
 
40
- const { hash, statusUrl } = await createDataSet(connectorClient, {
41
- publicClient: config.getClient(),
42
- provider,
39
+ const { txHash, statusUrl } = await createDataSet(connectorClient, {
40
+ payee: provider.payee,
41
+ payer: account.address,
42
+ endpoint: provider.pdp.serviceURL,
43
43
  cdn,
44
44
  // metadata: {
45
45
  // title: 'Test Data Set',
46
46
  // description: 'Test Description',
47
47
  // },
48
48
  })
49
- props?.onHash?.(hash)
49
+ props?.onHash?.(txHash)
50
50
 
51
- const dataSet = await Curio.pollForDataSetCreationStatus({ statusUrl })
51
+ const dataSet = await SP.pollForDataSetCreationStatus({ statusUrl })
52
52
 
53
53
  queryClient.invalidateQueries({
54
54
  queryKey: ['synapse-warm-storage-data-sets', account.address],
@@ -1,16 +1,13 @@
1
- import { type MetadataObject, metadataArrayToObject } from '@filoz/synapse-core'
2
1
  import { getChain } from '@filoz/synapse-core/chains'
3
- import type { CurioPieceWithUrl } from '@filoz/synapse-core/curio'
4
- import * as PDP from '@filoz/synapse-core/curio'
5
- import { type DataSet, getDataSets, readProviders } from '@filoz/synapse-core/warm-storage'
2
+ import { type MetadataObject, metadataArrayToObject } from '@filoz/synapse-core/utils'
3
+ import { type DataSet, getDataSets, getPieces, type Piece } from '@filoz/synapse-core/warm-storage'
6
4
  import { skipToken, type UseQueryOptions, useQuery } from '@tanstack/react-query'
7
5
  import type { Simplify } from 'type-fest'
8
6
  import type { Address } from 'viem'
9
7
  import { readContract } from 'viem/actions'
10
8
  import { useChainId, useConfig } from 'wagmi'
11
- import { useProviders } from './use-providers.ts'
12
9
 
13
- export type PieceWithMetadata = Simplify<CurioPieceWithUrl & { metadata: MetadataObject }>
10
+ export type PieceWithMetadata = Simplify<Piece & { metadata: MetadataObject }>
14
11
 
15
12
  export interface DataSetWithPieces extends DataSet {
16
13
  pieces: PieceWithMetadata[]
@@ -27,32 +24,26 @@ export function useDataSets(props: UseDataSetsProps) {
27
24
  const config = useConfig()
28
25
  const chainId = useChainId()
29
26
  const address = props.address
30
- const { data: providersPrefected } = useProviders()
31
27
  const chain = getChain(chainId)
32
28
  return useQuery({
33
29
  queryKey: ['synapse-warm-storage-data-sets', address],
34
30
  queryFn: address
35
31
  ? async () => {
36
- const providers = providersPrefected ?? (await readProviders(config.getClient()))
37
32
  const dataSets = await getDataSets(config.getClient(), { address })
38
33
  const dataSetsWithPieces = await Promise.all(
39
34
  dataSets.map(async (dataSet) => {
40
- // TODO: Get the active pieces from the PDP contract instead of the Curio API
41
- const pieces = await PDP.getPiecesForDataSet({
42
- endpoint: providers.find((p) => p.providerId === dataSet.providerId)?.pdp.serviceURL || '',
43
- dataSetId: dataSet.pdpDatasetId,
44
- chainId,
35
+ const piecesPaginated = await getPieces(config.getClient(), {
36
+ dataSet,
45
37
  address,
46
- cdn: dataSet.cdn,
47
38
  })
48
39
 
49
40
  const piecesWithMetadata = await Promise.all(
50
- pieces.map(async (piece) => {
41
+ piecesPaginated.pieces.map(async (piece) => {
51
42
  const metadata = await readContract(config.getClient(), {
52
43
  address: chain.contracts.storageView.address,
53
44
  abi: chain.contracts.storageView.abi,
54
45
  functionName: 'getAllPieceMetadata',
55
- args: [dataSet.pdpDatasetId, BigInt(piece.pieceId)],
46
+ args: [dataSet.dataSetId, BigInt(piece.id)],
56
47
  })
57
48
  return {
58
49
  ...piece,
@@ -0,0 +1,58 @@
1
+ import { getChain } from '@filoz/synapse-core/chains'
2
+ import type { SessionKey } from '@filoz/synapse-core/session-key'
3
+ import { type DataSet, deletePiece, pollForDeletePieceStatus } from '@filoz/synapse-core/warm-storage'
4
+ import { type MutateOptions, useMutation, useQueryClient } from '@tanstack/react-query'
5
+ import type { TransactionReceipt } from 'viem'
6
+ import { useAccount, useChainId, useConfig } from 'wagmi'
7
+ import { getConnectorClient } from 'wagmi/actions'
8
+
9
+ export interface UseDeletePieceProps {
10
+ /**
11
+ * The callback to call when the hash is available.
12
+ */
13
+ onHash?: (hash: string) => void
14
+ sessionKey?: SessionKey
15
+ mutation?: Omit<MutateOptions<TransactionReceipt, Error, UseDeletePieceVariables>, 'mutationFn'>
16
+ }
17
+
18
+ export interface UseDeletePieceVariables {
19
+ dataSet: DataSet
20
+ pieceId: bigint
21
+ }
22
+ export function useDeletePiece(props: UseDeletePieceProps) {
23
+ const config = useConfig()
24
+ const chainId = useChainId({ config })
25
+ const chain = getChain(chainId)
26
+ const account = useAccount({ config })
27
+ const queryClient = useQueryClient()
28
+ const client = config.getClient()
29
+
30
+ return useMutation({
31
+ ...props?.mutation,
32
+ mutationFn: async ({ dataSet, pieceId }: UseDeletePieceVariables) => {
33
+ let connectorClient = await getConnectorClient(config, {
34
+ account: account.address,
35
+ chainId,
36
+ })
37
+
38
+ if (props?.sessionKey && (await props?.sessionKey.isValid(connectorClient, 'SchedulePieceRemovals'))) {
39
+ connectorClient = props?.sessionKey.client(chain, client.transport)
40
+ }
41
+
42
+ const deletePieceRsp = await deletePiece(connectorClient, {
43
+ endpoint: dataSet.pdp.serviceURL,
44
+ dataSetId: dataSet.dataSetId,
45
+ clientDataSetId: dataSet.clientDataSetId,
46
+ pieceId,
47
+ })
48
+
49
+ props?.onHash?.(deletePieceRsp.txHash)
50
+ const rsp = await pollForDeletePieceStatus(client, deletePieceRsp)
51
+
52
+ queryClient.invalidateQueries({
53
+ queryKey: ['synapse-warm-storage-data-sets', account.address],
54
+ })
55
+ return rsp
56
+ },
57
+ })
58
+ }
@@ -1,7 +1,7 @@
1
1
  import { getChain } from '@filoz/synapse-core/chains'
2
- import type { AddPiecesSuccess } from '@filoz/synapse-core/curio'
3
- import * as Curio from '@filoz/synapse-core/curio'
4
2
  import type { SessionKey } from '@filoz/synapse-core/session-key'
3
+ import type { AddPiecesSuccess } from '@filoz/synapse-core/sp'
4
+ import * as SP from '@filoz/synapse-core/sp'
5
5
  import { upload } from '@filoz/synapse-core/warm-storage'
6
6
  import { type MutateOptions, useMutation, useQueryClient } from '@tanstack/react-query'
7
7
  import { useAccount, useChainId, useConfig } from 'wagmi'
@@ -12,13 +12,13 @@ export interface UseUploadProps {
12
12
  * The callback to call when the hash is available.
13
13
  */
14
14
  onHash?: (hash: string) => void
15
+ sessionKey?: SessionKey
15
16
  mutation?: Omit<MutateOptions<AddPiecesSuccess, Error, UseUploadVariables>, 'mutationFn'>
16
17
  }
17
18
 
18
19
  export interface UseUploadVariables {
19
20
  files: File[]
20
21
  dataSetId: bigint
21
- sessionKey?: SessionKey
22
22
  }
23
23
  export function useUpload(props: UseUploadProps) {
24
24
  const config = useConfig()
@@ -30,24 +30,22 @@ export function useUpload(props: UseUploadProps) {
30
30
 
31
31
  return useMutation({
32
32
  ...props?.mutation,
33
- mutationFn: async ({ files, dataSetId, sessionKey }: UseUploadVariables) => {
33
+ mutationFn: async ({ files, dataSetId }: UseUploadVariables) => {
34
34
  let connectorClient = await getConnectorClient(config, {
35
35
  account: account.address,
36
36
  chainId,
37
37
  })
38
- if (sessionKey && (await sessionKey.isValid(connectorClient, 'AddPieces'))) {
39
- connectorClient = sessionKey.client(chain, client.transport)
38
+ if (props?.sessionKey && (await props?.sessionKey.isValid(connectorClient, 'AddPieces'))) {
39
+ connectorClient = props?.sessionKey.client(chain, client.transport)
40
40
  }
41
41
 
42
- const pieces = await upload(connectorClient, {
42
+ const uploadRsp = await upload(connectorClient, {
43
43
  dataSetId,
44
44
  data: files,
45
45
  })
46
46
 
47
- props?.onHash?.(pieces.txHash)
48
- const rsp = await Curio.pollForAddPiecesStatus({
49
- statusUrl: pieces.statusUrl,
50
- })
47
+ props?.onHash?.(uploadRsp.txHash)
48
+ const rsp = await SP.pollForAddPiecesStatus(uploadRsp)
51
49
 
52
50
  queryClient.invalidateQueries({
53
51
  queryKey: ['synapse-warm-storage-data-sets', account.address],