@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.
- package/dist/src/warm-storage/index.d.ts +1 -0
- package/dist/src/warm-storage/index.d.ts.map +1 -1
- package/dist/src/warm-storage/index.js +1 -0
- package/dist/src/warm-storage/index.js.map +1 -1
- package/dist/src/warm-storage/use-create-data-set.d.ts +4 -3
- package/dist/src/warm-storage/use-create-data-set.d.ts.map +1 -1
- package/dist/src/warm-storage/use-create-data-set.js +7 -6
- package/dist/src/warm-storage/use-create-data-set.js.map +1 -1
- package/dist/src/warm-storage/use-data-sets.d.ts +8 -9
- package/dist/src/warm-storage/use-data-sets.d.ts.map +1 -1
- package/dist/src/warm-storage/use-data-sets.js +6 -13
- package/dist/src/warm-storage/use-data-sets.js.map +1 -1
- package/dist/src/warm-storage/use-delete-piece.d.ts +15 -0
- package/dist/src/warm-storage/use-delete-piece.d.ts.map +1 -0
- package/dist/src/warm-storage/use-delete-piece.js +38 -0
- package/dist/src/warm-storage/use-delete-piece.js.map +1 -0
- package/dist/src/warm-storage/use-upload.d.ts +2 -2
- package/dist/src/warm-storage/use-upload.d.ts.map +1 -1
- package/dist/src/warm-storage/use-upload.js +7 -9
- package/dist/src/warm-storage/use-upload.js.map +1 -1
- package/package.json +6 -3
- package/src/warm-storage/index.ts +1 -0
- package/src/warm-storage/use-create-data-set.ts +9 -9
- package/src/warm-storage/use-data-sets.ts +7 -16
- package/src/warm-storage/use-delete-piece.ts +58 -0
- package/src/warm-storage/use-upload.ts +9 -11
|
@@ -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 +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/
|
|
2
|
-
import
|
|
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<
|
|
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,
|
|
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
|
|
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 {
|
|
19
|
-
|
|
20
|
-
|
|
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?.(
|
|
24
|
-
const dataSet = await
|
|
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,
|
|
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
|
|
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<
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
-
|
|
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":"
|
|
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
|
|
4
|
-
import { getDataSets,
|
|
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
|
|
23
|
-
|
|
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.
|
|
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,
|
|
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,
|
|
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
|
|
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
|
|
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
|
|
24
|
+
const uploadRsp = await upload(connectorClient, {
|
|
25
25
|
dataSetId,
|
|
26
26
|
data: files,
|
|
27
27
|
});
|
|
28
|
-
props?.onHash?.(
|
|
29
|
-
const rsp = await
|
|
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;
|
|
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.
|
|
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.
|
|
69
|
+
"@filoz/synapse-core": "^0.1.1"
|
|
67
70
|
},
|
|
68
71
|
"devDependencies": {
|
|
69
|
-
"@biomejs/biome": "
|
|
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,7 +1,6 @@
|
|
|
1
|
-
import type { DataSetCreatedResponse } from '@filoz/synapse-core/
|
|
2
|
-
import * as
|
|
3
|
-
import type
|
|
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 {
|
|
41
|
-
|
|
42
|
-
|
|
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?.(
|
|
49
|
+
props?.onHash?.(txHash)
|
|
50
50
|
|
|
51
|
-
const dataSet = await
|
|
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
|
|
4
|
-
import
|
|
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<
|
|
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
|
-
|
|
41
|
-
|
|
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.
|
|
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
|
|
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
|
|
42
|
+
const uploadRsp = await upload(connectorClient, {
|
|
43
43
|
dataSetId,
|
|
44
44
|
data: files,
|
|
45
45
|
})
|
|
46
46
|
|
|
47
|
-
props?.onHash?.(
|
|
48
|
-
const rsp = await
|
|
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],
|