@0xsequence/hooks 5.0.7 → 5.0.9
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/cjs/hooks/Combination/useGetSwapPrices.d.ts.map +1 -1
- package/dist/cjs/hooks/Combination/useGetSwapPrices.js +10 -8
- package/dist/cjs/hooks/Combination/useGetSwapPrices.js.map +1 -1
- package/dist/cjs/hooks/Indexer/useGetTransactionHistory.d.ts +82 -3
- package/dist/cjs/hooks/Indexer/useGetTransactionHistory.d.ts.map +1 -1
- package/dist/cjs/hooks/Indexer/useGetTransactionHistory.js +73 -3
- package/dist/cjs/hooks/Indexer/useGetTransactionHistory.js.map +1 -1
- package/dist/cjs/hooks/Indexer/useGetTransactionHistorySummary.d.ts.map +1 -1
- package/dist/cjs/hooks/Indexer/useGetTransactionHistorySummary.js +10 -1
- package/dist/cjs/hooks/Indexer/useGetTransactionHistorySummary.js.map +1 -1
- package/dist/esm/hooks/Combination/useGetSwapPrices.d.ts.map +1 -1
- package/dist/esm/hooks/Combination/useGetSwapPrices.js +10 -8
- package/dist/esm/hooks/Combination/useGetSwapPrices.js.map +1 -1
- package/dist/esm/hooks/Indexer/useGetTransactionHistory.d.ts +82 -3
- package/dist/esm/hooks/Indexer/useGetTransactionHistory.d.ts.map +1 -1
- package/dist/esm/hooks/Indexer/useGetTransactionHistory.js +73 -3
- package/dist/esm/hooks/Indexer/useGetTransactionHistory.js.map +1 -1
- package/dist/esm/hooks/Indexer/useGetTransactionHistorySummary.d.ts.map +1 -1
- package/dist/esm/hooks/Indexer/useGetTransactionHistorySummary.js +10 -1
- package/dist/esm/hooks/Indexer/useGetTransactionHistorySummary.js.map +1 -1
- package/package.json +5 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetSwapPrices.d.ts","sourceRoot":"","sources":["../../../../src/hooks/Combination/useGetSwapPrices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE9D,OAAO,EAAE,YAAY,EAAoB,MAAM,sBAAsB,CAAA;AAKrE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAM1C,UAAU,OAAO;IACf,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,EAAE,SAAS,CAAA;IAChB,IAAI,EAAE,YAAY,GAAG,SAAS,CAAA;IAC9B,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAA;IACnB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;
|
|
1
|
+
{"version":3,"file":"useGetSwapPrices.d.ts","sourceRoot":"","sources":["../../../../src/hooks/Combination/useGetSwapPrices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE9D,OAAO,EAAE,YAAY,EAAoB,MAAM,sBAAsB,CAAA;AAKrE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAM1C,UAAU,OAAO;IACf,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,EAAE,SAAS,CAAA;IAChB,IAAI,EAAE,YAAY,GAAG,SAAS,CAAA;IAC9B,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAA;IACnB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AA8GD;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,oBAAoB,EAAE,UAAU,YAAY,wFAsBlF,CAAA"}
|
|
@@ -33,18 +33,16 @@ const getSwapPrices = async (apiClient, metadataClient, indexerGatewayClient, ar
|
|
|
33
33
|
});
|
|
34
34
|
});
|
|
35
35
|
currencyInfoMap.set(currencyAddress, isNativeToken
|
|
36
|
-
? getNativeTokenInfo()
|
|
37
|
-
return data;
|
|
38
|
-
})
|
|
36
|
+
? getNativeTokenInfo()
|
|
39
37
|
: metadataClient
|
|
40
38
|
.getContractInfo({
|
|
41
39
|
chainID: String(args.chainId),
|
|
42
40
|
contractAddress: currencyAddress
|
|
43
41
|
})
|
|
44
|
-
.then(data => {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
42
|
+
.then(data => ({ ...data.contractInfo }))
|
|
43
|
+
.catch(error => {
|
|
44
|
+
console.error(`Failed to fetch contract info for ${currencyAddress}:`, error);
|
|
45
|
+
return undefined;
|
|
48
46
|
}));
|
|
49
47
|
}
|
|
50
48
|
});
|
|
@@ -75,6 +73,10 @@ const getSwapPrices = async (apiClient, metadataClient, indexerGatewayClient, ar
|
|
|
75
73
|
balance: res.balances[0].results[0].balance
|
|
76
74
|
};
|
|
77
75
|
}
|
|
76
|
+
})
|
|
77
|
+
.catch(error => {
|
|
78
|
+
console.error(`Failed to fetch balance for ${currencyAddress}:`, error);
|
|
79
|
+
return { balance: '0' };
|
|
78
80
|
});
|
|
79
81
|
currencyBalanceInfoMap.set(currencyAddress, tokenBalance);
|
|
80
82
|
}
|
|
@@ -87,7 +89,7 @@ const getSwapPrices = async (apiClient, metadataClient, indexerGatewayClient, ar
|
|
|
87
89
|
...price,
|
|
88
90
|
currencyAddress
|
|
89
91
|
},
|
|
90
|
-
info:
|
|
92
|
+
info: await currencyInfoMap.get(currencyAddress),
|
|
91
93
|
balance: (await currencyBalanceInfoMap.get(currencyAddress)) || { balance: '0' }
|
|
92
94
|
};
|
|
93
95
|
}) || []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetSwapPrices.js","sourceRoot":"","sources":["../../../../src/hooks/Combination/useGetSwapPrices.ts"],"names":[],"mappings":";;;AAGA,iDAA0D;AAC1D,uDAAgD;AAEhD,+CAA8F;AAE9F,iDAAoD;AACpD,sDAAkD;AAClD,uFAAmF;AACnF,qEAAiE;AAoBjE,MAAM,aAAa,GAAG,KAAK,EACzB,SAA4B,EAC5B,cAAgC,EAChC,oBAA4C,EAC5C,IAA0B,EACa,EAAE;IACzC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,GAAG,EAAE,CAAC;QAChH,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,8BAAoB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAElD,MAAM,EAAE,gBAAgB,EAAE,GAAG,cAAc,EAAE,GAAG,IAAI,CAAA;IAEpD,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;IAEzD,IAAI,GAAG,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,GAAG,EAA6C,CAAA;IAC5E,IAAI,gBAAgB,EAAE,CAAC;QACrB,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC9B,MAAM,EAAE,eAAe,EAAE,kBAAkB,EAAE,GAAG,KAAK,CAAA;YACrD,MAAM,eAAe,GAAG,IAAA,wBAAc,EAAC,kBAAkB,EAAE,wCAA4B,CAAC,CAAC,CAAC,CAAC,wBAAY,CAAC,CAAC,CAAC,kBAAkB,CAAA;YAC5H,MAAM,aAAa,GAAG,IAAA,wBAAc,EAAC,eAAe,EAAE,wBAAY,CAAC,CAAA;YACnE,IAAI,eAAe,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC7D,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAC9B,IAAI,OAAO,CAAe,OAAO,CAAC,EAAE;oBAClC,OAAO,CAAC;wBACN,GAAG,OAAO,EAAE,WAAW;wBACvB,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE;wBAC/B,OAAO,EAAE,wBAAY;qBACN,CAAC,CAAA;gBACpB,CAAC,CAAC,CAAA;gBAEJ,eAAe,CAAC,GAAG,CACjB,eAAe,EACf,aAAa;oBACX,CAAC,CAAC,kBAAkB,EAAE
|
|
1
|
+
{"version":3,"file":"useGetSwapPrices.js","sourceRoot":"","sources":["../../../../src/hooks/Combination/useGetSwapPrices.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Page } from '@0xsequence/indexer';
|
|
1
|
+
import { GetTransactionHistoryReturn, Page } from '@0xsequence/indexer';
|
|
2
|
+
import { InfiniteData, UseInfiniteQueryResult } from '@tanstack/react-query';
|
|
2
3
|
import { HooksOptions } from '../../types';
|
|
3
4
|
interface GetTransactionHistoryArgs {
|
|
4
5
|
accountAddress: string;
|
|
@@ -6,12 +7,90 @@ interface GetTransactionHistoryArgs {
|
|
|
6
7
|
tokenId?: string;
|
|
7
8
|
page?: Page;
|
|
8
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* Return type for the useGetTransactionHistory hook.
|
|
12
|
+
* Extends React Query's UseInfiniteQueryResult with transaction history data.
|
|
13
|
+
*
|
|
14
|
+
* @property data - The paginated transaction history data
|
|
15
|
+
* @property data.pages - Array of page results, each containing:
|
|
16
|
+
* - transactions: Array of transaction objects with:
|
|
17
|
+
* - txnHash: Transaction hash
|
|
18
|
+
* - blockNumber: Block number where transaction was mined
|
|
19
|
+
* - blockHash: Hash of the block
|
|
20
|
+
* - chainId: Chain ID where transaction occurred
|
|
21
|
+
* - metaTxnID: Optional meta transaction ID
|
|
22
|
+
* - transfers: Optional array of transaction transfers
|
|
23
|
+
* - timestamp: Transaction timestamp
|
|
24
|
+
* - page: Pagination information:
|
|
25
|
+
* - page: Next page number
|
|
26
|
+
* - more: Whether more results exist in the next page
|
|
27
|
+
* - pageSize: Number of results per page
|
|
28
|
+
* @property everything else that react query returns {@link UseInfiniteQueryResult}
|
|
29
|
+
*
|
|
30
|
+
*/
|
|
31
|
+
export type UseGetTransactionHistoryReturnType = UseInfiniteQueryResult<InfiniteData<GetTransactionHistoryReturn, unknown>, Error>;
|
|
9
32
|
export interface UseGetTransactionHistoryArgs extends GetTransactionHistoryArgs {
|
|
10
33
|
chainId: number;
|
|
11
34
|
}
|
|
12
35
|
/**
|
|
13
|
-
*
|
|
36
|
+
* Hook to fetch and paginate through transaction history for a given account and chain.
|
|
37
|
+
*
|
|
38
|
+
* This hook provides methods to fetch transaction history with support for infinite scrolling.
|
|
39
|
+
* It can filter transactions by contract address and token ID, making it useful for both
|
|
40
|
+
* general account history and specific asset history views.
|
|
41
|
+
*
|
|
42
|
+
* Go to {@link https://docs.sequence.xyz/sdk/web/hooks/useGetTransactionHistory} for more detailed documentation.
|
|
43
|
+
*
|
|
44
|
+
* @param args - Configuration object for the transaction history query {@link GetTransactionHistoryArgs}
|
|
45
|
+
*
|
|
46
|
+
* @returns A hook that returns the transaction history for a given account and chain. {@link UseGetTransactionHistoryReturnType}
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```tsx
|
|
50
|
+
* import { useGetTransactionHistory } from '@0xsequence/hooks'
|
|
51
|
+
*
|
|
52
|
+
* const TransactionList = () => {
|
|
53
|
+
* const {
|
|
54
|
+
* data,
|
|
55
|
+
* fetchNextPage,
|
|
56
|
+
* hasNextPage,
|
|
57
|
+
* isLoading,
|
|
58
|
+
* isFetchingNextPage
|
|
59
|
+
* } = useGetTransactionHistory({
|
|
60
|
+
* chainId: 1,
|
|
61
|
+
* accountAddress: '0x123...',
|
|
62
|
+
* // Optional filters:
|
|
63
|
+
* // contractAddress: '0x456...',
|
|
64
|
+
* // tokenId: '1'
|
|
65
|
+
* })
|
|
66
|
+
*
|
|
67
|
+
* if (isLoading) return <div>Loading...</div>
|
|
68
|
+
*
|
|
69
|
+
* return (
|
|
70
|
+
* <div>
|
|
71
|
+
* {data?.pages.map(page =>
|
|
72
|
+
* page.transactions.map(tx => (
|
|
73
|
+
* <div key={tx.txnHash}>
|
|
74
|
+
* Transaction: {tx.txnHash}
|
|
75
|
+
* Block: {tx.blockNumber}
|
|
76
|
+
* Time: {tx.timestamp}
|
|
77
|
+
* </div>
|
|
78
|
+
* ))
|
|
79
|
+
* )}
|
|
80
|
+
*
|
|
81
|
+
* {hasNextPage && (
|
|
82
|
+
* <button
|
|
83
|
+
* onClick={() => fetchNextPage()}
|
|
84
|
+
* disabled={isFetchingNextPage}
|
|
85
|
+
* >
|
|
86
|
+
* {isFetchingNextPage ? 'Loading more...' : 'Load more'}
|
|
87
|
+
* </button>
|
|
88
|
+
* )}
|
|
89
|
+
* </div>
|
|
90
|
+
* )
|
|
91
|
+
* }
|
|
92
|
+
* ```
|
|
14
93
|
*/
|
|
15
|
-
export declare const useGetTransactionHistory: (args: UseGetTransactionHistoryArgs, options?: HooksOptions) =>
|
|
94
|
+
export declare const useGetTransactionHistory: (args: UseGetTransactionHistoryArgs, options?: HooksOptions) => UseGetTransactionHistoryReturnType;
|
|
16
95
|
export {};
|
|
17
96
|
//# sourceMappingURL=useGetTransactionHistory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetTransactionHistory.d.ts","sourceRoot":"","sources":["../../../../src/hooks/Indexer/useGetTransactionHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"useGetTransactionHistory.d.ts","sourceRoot":"","sources":["../../../../src/hooks/Indexer/useGetTransactionHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,IAAI,EAAmB,MAAM,qBAAqB,CAAA;AACxF,OAAO,EAAE,YAAY,EAAoB,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAI9F,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAI1C,UAAU,yBAAyB;IACjC,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,kCAAkC,GAAG,sBAAsB,CAAC,YAAY,CAAC,2BAA2B,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CAAA;AAElI,MAAM,WAAW,4BAA6B,SAAQ,yBAAyB;IAC7E,OAAO,EAAE,MAAM,CAAA;CAChB;AAiCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,eAAO,MAAM,wBAAwB,GACnC,MAAM,4BAA4B,EAClC,UAAU,YAAY,KACrB,kCAwBF,CAAA"}
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useGetTransactionHistory = void 0;
|
|
4
4
|
const react_query_1 = require("@tanstack/react-query");
|
|
5
|
+
const viem_1 = require("viem");
|
|
5
6
|
const constants_1 = require("../../constants");
|
|
6
7
|
const useIndexerClient_1 = require("./useIndexerClient");
|
|
7
8
|
const getTransactionHistory = async (indexerClient, { contractAddress, accountAddress, tokenId, page }) => {
|
|
8
|
-
const res = indexerClient.getTransactionHistory({
|
|
9
|
+
const res = await indexerClient.getTransactionHistory({
|
|
9
10
|
includeMetadata: true,
|
|
10
11
|
page,
|
|
11
12
|
filter: {
|
|
@@ -14,10 +15,79 @@ const getTransactionHistory = async (indexerClient, { contractAddress, accountAd
|
|
|
14
15
|
tokenID: tokenId
|
|
15
16
|
}
|
|
16
17
|
});
|
|
17
|
-
|
|
18
|
+
const transactions = res.transactions.map(transaction => {
|
|
19
|
+
return {
|
|
20
|
+
...transaction,
|
|
21
|
+
transfers: transaction.transfers?.map(transfer => ({
|
|
22
|
+
...transfer,
|
|
23
|
+
from: (0, viem_1.getAddress)(transfer.from),
|
|
24
|
+
to: (0, viem_1.getAddress)(transfer.to)
|
|
25
|
+
}))
|
|
26
|
+
};
|
|
27
|
+
});
|
|
28
|
+
return {
|
|
29
|
+
...res,
|
|
30
|
+
transactions
|
|
31
|
+
};
|
|
18
32
|
};
|
|
19
33
|
/**
|
|
20
|
-
*
|
|
34
|
+
* Hook to fetch and paginate through transaction history for a given account and chain.
|
|
35
|
+
*
|
|
36
|
+
* This hook provides methods to fetch transaction history with support for infinite scrolling.
|
|
37
|
+
* It can filter transactions by contract address and token ID, making it useful for both
|
|
38
|
+
* general account history and specific asset history views.
|
|
39
|
+
*
|
|
40
|
+
* Go to {@link https://docs.sequence.xyz/sdk/web/hooks/useGetTransactionHistory} for more detailed documentation.
|
|
41
|
+
*
|
|
42
|
+
* @param args - Configuration object for the transaction history query {@link GetTransactionHistoryArgs}
|
|
43
|
+
*
|
|
44
|
+
* @returns A hook that returns the transaction history for a given account and chain. {@link UseGetTransactionHistoryReturnType}
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```tsx
|
|
48
|
+
* import { useGetTransactionHistory } from '@0xsequence/hooks'
|
|
49
|
+
*
|
|
50
|
+
* const TransactionList = () => {
|
|
51
|
+
* const {
|
|
52
|
+
* data,
|
|
53
|
+
* fetchNextPage,
|
|
54
|
+
* hasNextPage,
|
|
55
|
+
* isLoading,
|
|
56
|
+
* isFetchingNextPage
|
|
57
|
+
* } = useGetTransactionHistory({
|
|
58
|
+
* chainId: 1,
|
|
59
|
+
* accountAddress: '0x123...',
|
|
60
|
+
* // Optional filters:
|
|
61
|
+
* // contractAddress: '0x456...',
|
|
62
|
+
* // tokenId: '1'
|
|
63
|
+
* })
|
|
64
|
+
*
|
|
65
|
+
* if (isLoading) return <div>Loading...</div>
|
|
66
|
+
*
|
|
67
|
+
* return (
|
|
68
|
+
* <div>
|
|
69
|
+
* {data?.pages.map(page =>
|
|
70
|
+
* page.transactions.map(tx => (
|
|
71
|
+
* <div key={tx.txnHash}>
|
|
72
|
+
* Transaction: {tx.txnHash}
|
|
73
|
+
* Block: {tx.blockNumber}
|
|
74
|
+
* Time: {tx.timestamp}
|
|
75
|
+
* </div>
|
|
76
|
+
* ))
|
|
77
|
+
* )}
|
|
78
|
+
*
|
|
79
|
+
* {hasNextPage && (
|
|
80
|
+
* <button
|
|
81
|
+
* onClick={() => fetchNextPage()}
|
|
82
|
+
* disabled={isFetchingNextPage}
|
|
83
|
+
* >
|
|
84
|
+
* {isFetchingNextPage ? 'Loading more...' : 'Load more'}
|
|
85
|
+
* </button>
|
|
86
|
+
* )}
|
|
87
|
+
* </div>
|
|
88
|
+
* )
|
|
89
|
+
* }
|
|
90
|
+
* ```
|
|
21
91
|
*/
|
|
22
92
|
const useGetTransactionHistory = (args, options) => {
|
|
23
93
|
const indexerClient = (0, useIndexerClient_1.useIndexerClient)(args.chainId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetTransactionHistory.js","sourceRoot":"","sources":["../../../../src/hooks/Indexer/useGetTransactionHistory.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"useGetTransactionHistory.js","sourceRoot":"","sources":["../../../../src/hooks/Indexer/useGetTransactionHistory.ts"],"names":[],"mappings":";;;AACA,uDAA8F;AAC9F,+BAAiC;AAEjC,+CAAkD;AAGlD,yDAAqD;AAoCrD,MAAM,qBAAqB,GAAG,KAAK,EACjC,aAA8B,EAC9B,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAA6B,EAC7E,EAAE;IACF,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,qBAAqB,CAAC;QACpD,eAAe,EAAE,IAAI;QACrB,IAAI;QACJ,MAAM,EAAE;YACN,cAAc;YACd,eAAe;YACf,OAAO,EAAE,OAAO;SACjB;KACF,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;QACtD,OAAO;YACL,GAAG,WAAW;YACd,SAAS,EAAE,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACjD,GAAG,QAAQ;gBACX,IAAI,EAAE,IAAA,iBAAU,EAAC,QAAQ,CAAC,IAAI,CAAC;gBAC/B,EAAE,EAAE,IAAA,iBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;aAC5B,CAAC,CAAC;SACJ,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,OAAO;QACL,GAAG,GAAG;QACN,YAAY;KACb,CAAA;AACH,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACI,MAAM,wBAAwB,GAAG,CACtC,IAAkC,EAClC,OAAsB,EACc,EAAE;IACtC,MAAM,aAAa,GAAG,IAAA,mCAAgB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAEpD,OAAO,IAAA,8BAAgB,EAAC;QACtB,QAAQ,EAAE,CAAC,sBAAU,CAAC,wBAAwB,EAAE,IAAI,EAAE,OAAO,CAAC;QAC9D,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;YACzB,OAAO,qBAAqB,CAAC,aAAa,EAAE;gBAC1C,GAAG,IAAI;gBACP,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;aAC1B,CAAC,CAAA;QACJ,CAAC;QACD,gBAAgB,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;YAC7B,0EAA0E;YAC1E,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,SAAS,CAAA;YAClB,CAAC;YAED,OAAO,IAAI,EAAE,IAAI,IAAI,CAAC,CAAA;QACxB,CAAC;QACD,gBAAgB,EAAE,CAAC;QACnB,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI;QAC7B,SAAS,EAAE,gBAAI,CAAC,SAAS,GAAG,EAAE;QAC9B,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,OAAO,EAAE,QAAQ;KACvE,CAAC,CAAA;AACJ,CAAC,CAAA;AA3BY,QAAA,wBAAwB,4BA2BpC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetTransactionHistorySummary.d.ts","sourceRoot":"","sources":["../../../../src/hooks/Indexer/useGetTransactionHistorySummary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,WAAW,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"useGetTransactionHistorySummary.d.ts","sourceRoot":"","sources":["../../../../src/hooks/Indexer/useGetTransactionHistorySummary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAKlE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAI1C,MAAM,WAAW,gCAAgC;IAC/C,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAoCD;;GAEG;AACH,eAAO,MAAM,+BAA+B,GAC1C,kCAAkC,gCAAgC,EAClE,UAAU,YAAY,yEAiBvB,CAAA"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useGetTransactionHistorySummary = void 0;
|
|
4
4
|
const react_query_1 = require("@tanstack/react-query");
|
|
5
|
+
const viem_1 = require("viem");
|
|
5
6
|
const constants_1 = require("../../constants");
|
|
6
7
|
const useIndexerClient_1 = require("./useIndexerClient");
|
|
7
8
|
const getTransactionHistorySummary = async (indexerClients, { accountAddress }) => {
|
|
@@ -17,7 +18,15 @@ const getTransactionHistorySummary = async (indexerClients, { accountAddress })
|
|
|
17
18
|
const secondDate = new Date(b.timestamp).getTime();
|
|
18
19
|
return secondDate - firstDate;
|
|
19
20
|
});
|
|
20
|
-
|
|
21
|
+
const transactions = orderedTransactions.map(transaction => ({
|
|
22
|
+
...transaction,
|
|
23
|
+
transfers: transaction.transfers?.map(transfer => ({
|
|
24
|
+
...transfer,
|
|
25
|
+
from: (0, viem_1.getAddress)(transfer.from),
|
|
26
|
+
to: (0, viem_1.getAddress)(transfer.to)
|
|
27
|
+
}))
|
|
28
|
+
}));
|
|
29
|
+
return transactions;
|
|
21
30
|
};
|
|
22
31
|
/**
|
|
23
32
|
* @description Gets the exhaustive transaction history for a given accountAddress and list of chainIds
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetTransactionHistorySummary.js","sourceRoot":"","sources":["../../../../src/hooks/Indexer/useGetTransactionHistorySummary.ts"],"names":[],"mappings":";;;AACA,uDAAgD;
|
|
1
|
+
{"version":3,"file":"useGetTransactionHistorySummary.js","sourceRoot":"","sources":["../../../../src/hooks/Indexer/useGetTransactionHistorySummary.ts"],"names":[],"mappings":";;;AACA,uDAAgD;AAChD,+BAAiC;AAEjC,+CAAkD;AAGlD,yDAAsD;AAOtD,MAAM,4BAA4B,GAAG,KAAK,EACxC,cAA4C,EAC5C,EAAE,cAAc,EAAoC,EAC5B,EAAE;IAC1B,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CACtD,aAAa,CAAC,qBAAqB,CAAC;QAClC,MAAM,EAAE;YACN,cAAc;SACf;QACD,eAAe,EAAE,IAAI;KACtB,CAAC,CACH,CACF,CAAA;IAED,MAAM,qBAAqB,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAA;IACnF,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9D,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAA;QACjD,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAA;QAClD,OAAO,UAAU,GAAG,SAAS,CAAA;IAC/B,CAAC,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC3D,GAAG,WAAW;QACd,SAAS,EAAE,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACjD,GAAG,QAAQ;YACX,IAAI,EAAE,IAAA,iBAAU,EAAC,QAAQ,CAAC,IAAI,CAAC;YAC/B,EAAE,EAAE,IAAA,iBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;SAC5B,CAAC,CAAC;KACJ,CAAC,CAAC,CAAA;IAEH,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AAED;;GAEG;AACI,MAAM,+BAA+B,GAAG,CAC7C,gCAAkE,EAClE,OAAsB,EACtB,EAAE;IACF,MAAM,cAAc,GAAG,IAAA,oCAAiB,EAAC,gCAAgC,CAAC,QAAQ,CAAC,CAAA;IAEnF,OAAO,IAAA,sBAAQ,EAAC;QACd,QAAQ,EAAE,CAAC,sBAAU,CAAC,+BAA+B,EAAE,gCAAgC,EAAE,OAAO,CAAC;QACjG,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,MAAM,4BAA4B,CAAC,cAAc,EAAE,gCAAgC,CAAC,CAAA;QAC7F,CAAC;QACD,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI;QAC7B,SAAS,EAAE,gBAAI,CAAC,SAAS,GAAG,EAAE;QAC9B,cAAc,EAAE,IAAI;QACpB,OAAO,EACL,gCAAgC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YACpD,CAAC,CAAC,gCAAgC,CAAC,cAAc;YACjD,CAAC,OAAO,EAAE,QAAQ;KACrB,CAAC,CAAA;AACJ,CAAC,CAAA;AAnBY,QAAA,+BAA+B,mCAmB3C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetSwapPrices.d.ts","sourceRoot":"","sources":["../../../../src/hooks/Combination/useGetSwapPrices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE9D,OAAO,EAAE,YAAY,EAAoB,MAAM,sBAAsB,CAAA;AAKrE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAM1C,UAAU,OAAO;IACf,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,EAAE,SAAS,CAAA;IAChB,IAAI,EAAE,YAAY,GAAG,SAAS,CAAA;IAC9B,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAA;IACnB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;
|
|
1
|
+
{"version":3,"file":"useGetSwapPrices.d.ts","sourceRoot":"","sources":["../../../../src/hooks/Combination/useGetSwapPrices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE9D,OAAO,EAAE,YAAY,EAAoB,MAAM,sBAAsB,CAAA;AAKrE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAM1C,UAAU,OAAO;IACf,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,EAAE,SAAS,CAAA;IAChB,IAAI,EAAE,YAAY,GAAG,SAAS,CAAA;IAC9B,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAA;IACnB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AA8GD;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,oBAAoB,EAAE,UAAU,YAAY,wFAsBlF,CAAA"}
|
|
@@ -30,18 +30,16 @@ const getSwapPrices = async (apiClient, metadataClient, indexerGatewayClient, ar
|
|
|
30
30
|
});
|
|
31
31
|
});
|
|
32
32
|
currencyInfoMap.set(currencyAddress, isNativeToken
|
|
33
|
-
? getNativeTokenInfo()
|
|
34
|
-
return data;
|
|
35
|
-
})
|
|
33
|
+
? getNativeTokenInfo()
|
|
36
34
|
: metadataClient
|
|
37
35
|
.getContractInfo({
|
|
38
36
|
chainID: String(args.chainId),
|
|
39
37
|
contractAddress: currencyAddress
|
|
40
38
|
})
|
|
41
|
-
.then(data => {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
.then(data => ({ ...data.contractInfo }))
|
|
40
|
+
.catch(error => {
|
|
41
|
+
console.error(`Failed to fetch contract info for ${currencyAddress}:`, error);
|
|
42
|
+
return undefined;
|
|
45
43
|
}));
|
|
46
44
|
}
|
|
47
45
|
});
|
|
@@ -72,6 +70,10 @@ const getSwapPrices = async (apiClient, metadataClient, indexerGatewayClient, ar
|
|
|
72
70
|
balance: res.balances[0].results[0].balance
|
|
73
71
|
};
|
|
74
72
|
}
|
|
73
|
+
})
|
|
74
|
+
.catch(error => {
|
|
75
|
+
console.error(`Failed to fetch balance for ${currencyAddress}:`, error);
|
|
76
|
+
return { balance: '0' };
|
|
75
77
|
});
|
|
76
78
|
currencyBalanceInfoMap.set(currencyAddress, tokenBalance);
|
|
77
79
|
}
|
|
@@ -84,7 +86,7 @@ const getSwapPrices = async (apiClient, metadataClient, indexerGatewayClient, ar
|
|
|
84
86
|
...price,
|
|
85
87
|
currencyAddress
|
|
86
88
|
},
|
|
87
|
-
info:
|
|
89
|
+
info: await currencyInfoMap.get(currencyAddress),
|
|
88
90
|
balance: (await currencyBalanceInfoMap.get(currencyAddress)) || { balance: '0' }
|
|
89
91
|
};
|
|
90
92
|
}) || []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetSwapPrices.js","sourceRoot":"","sources":["../../../../src/hooks/Combination/useGetSwapPrices.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEhD,OAAO,EAAE,4BAA4B,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAE9F,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAA;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAoBjE,MAAM,aAAa,GAAG,KAAK,EACzB,SAA4B,EAC5B,cAAgC,EAChC,oBAA4C,EAC5C,IAA0B,EACa,EAAE;IACzC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,GAAG,EAAE,CAAC;QAChH,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAElD,MAAM,EAAE,gBAAgB,EAAE,GAAG,cAAc,EAAE,GAAG,IAAI,CAAA;IAEpD,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;IAEzD,IAAI,GAAG,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,GAAG,EAA6C,CAAA;IAC5E,IAAI,gBAAgB,EAAE,CAAC;QACrB,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC9B,MAAM,EAAE,eAAe,EAAE,kBAAkB,EAAE,GAAG,KAAK,CAAA;YACrD,MAAM,eAAe,GAAG,cAAc,CAAC,kBAAkB,EAAE,4BAA4B,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAA;YAC5H,MAAM,aAAa,GAAG,cAAc,CAAC,eAAe,EAAE,YAAY,CAAC,CAAA;YACnE,IAAI,eAAe,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC7D,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAC9B,IAAI,OAAO,CAAe,OAAO,CAAC,EAAE;oBAClC,OAAO,CAAC;wBACN,GAAG,OAAO,EAAE,WAAW;wBACvB,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE;wBAC/B,OAAO,EAAE,YAAY;qBACN,CAAC,CAAA;gBACpB,CAAC,CAAC,CAAA;gBAEJ,eAAe,CAAC,GAAG,CACjB,eAAe,EACf,aAAa;oBACX,CAAC,CAAC,kBAAkB,EAAE
|
|
1
|
+
{"version":3,"file":"useGetSwapPrices.js","sourceRoot":"","sources":["../../../../src/hooks/Combination/useGetSwapPrices.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Page } from '@0xsequence/indexer';
|
|
1
|
+
import { GetTransactionHistoryReturn, Page } from '@0xsequence/indexer';
|
|
2
|
+
import { InfiniteData, UseInfiniteQueryResult } from '@tanstack/react-query';
|
|
2
3
|
import { HooksOptions } from '../../types';
|
|
3
4
|
interface GetTransactionHistoryArgs {
|
|
4
5
|
accountAddress: string;
|
|
@@ -6,12 +7,90 @@ interface GetTransactionHistoryArgs {
|
|
|
6
7
|
tokenId?: string;
|
|
7
8
|
page?: Page;
|
|
8
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* Return type for the useGetTransactionHistory hook.
|
|
12
|
+
* Extends React Query's UseInfiniteQueryResult with transaction history data.
|
|
13
|
+
*
|
|
14
|
+
* @property data - The paginated transaction history data
|
|
15
|
+
* @property data.pages - Array of page results, each containing:
|
|
16
|
+
* - transactions: Array of transaction objects with:
|
|
17
|
+
* - txnHash: Transaction hash
|
|
18
|
+
* - blockNumber: Block number where transaction was mined
|
|
19
|
+
* - blockHash: Hash of the block
|
|
20
|
+
* - chainId: Chain ID where transaction occurred
|
|
21
|
+
* - metaTxnID: Optional meta transaction ID
|
|
22
|
+
* - transfers: Optional array of transaction transfers
|
|
23
|
+
* - timestamp: Transaction timestamp
|
|
24
|
+
* - page: Pagination information:
|
|
25
|
+
* - page: Next page number
|
|
26
|
+
* - more: Whether more results exist in the next page
|
|
27
|
+
* - pageSize: Number of results per page
|
|
28
|
+
* @property everything else that react query returns {@link UseInfiniteQueryResult}
|
|
29
|
+
*
|
|
30
|
+
*/
|
|
31
|
+
export type UseGetTransactionHistoryReturnType = UseInfiniteQueryResult<InfiniteData<GetTransactionHistoryReturn, unknown>, Error>;
|
|
9
32
|
export interface UseGetTransactionHistoryArgs extends GetTransactionHistoryArgs {
|
|
10
33
|
chainId: number;
|
|
11
34
|
}
|
|
12
35
|
/**
|
|
13
|
-
*
|
|
36
|
+
* Hook to fetch and paginate through transaction history for a given account and chain.
|
|
37
|
+
*
|
|
38
|
+
* This hook provides methods to fetch transaction history with support for infinite scrolling.
|
|
39
|
+
* It can filter transactions by contract address and token ID, making it useful for both
|
|
40
|
+
* general account history and specific asset history views.
|
|
41
|
+
*
|
|
42
|
+
* Go to {@link https://docs.sequence.xyz/sdk/web/hooks/useGetTransactionHistory} for more detailed documentation.
|
|
43
|
+
*
|
|
44
|
+
* @param args - Configuration object for the transaction history query {@link GetTransactionHistoryArgs}
|
|
45
|
+
*
|
|
46
|
+
* @returns A hook that returns the transaction history for a given account and chain. {@link UseGetTransactionHistoryReturnType}
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```tsx
|
|
50
|
+
* import { useGetTransactionHistory } from '@0xsequence/hooks'
|
|
51
|
+
*
|
|
52
|
+
* const TransactionList = () => {
|
|
53
|
+
* const {
|
|
54
|
+
* data,
|
|
55
|
+
* fetchNextPage,
|
|
56
|
+
* hasNextPage,
|
|
57
|
+
* isLoading,
|
|
58
|
+
* isFetchingNextPage
|
|
59
|
+
* } = useGetTransactionHistory({
|
|
60
|
+
* chainId: 1,
|
|
61
|
+
* accountAddress: '0x123...',
|
|
62
|
+
* // Optional filters:
|
|
63
|
+
* // contractAddress: '0x456...',
|
|
64
|
+
* // tokenId: '1'
|
|
65
|
+
* })
|
|
66
|
+
*
|
|
67
|
+
* if (isLoading) return <div>Loading...</div>
|
|
68
|
+
*
|
|
69
|
+
* return (
|
|
70
|
+
* <div>
|
|
71
|
+
* {data?.pages.map(page =>
|
|
72
|
+
* page.transactions.map(tx => (
|
|
73
|
+
* <div key={tx.txnHash}>
|
|
74
|
+
* Transaction: {tx.txnHash}
|
|
75
|
+
* Block: {tx.blockNumber}
|
|
76
|
+
* Time: {tx.timestamp}
|
|
77
|
+
* </div>
|
|
78
|
+
* ))
|
|
79
|
+
* )}
|
|
80
|
+
*
|
|
81
|
+
* {hasNextPage && (
|
|
82
|
+
* <button
|
|
83
|
+
* onClick={() => fetchNextPage()}
|
|
84
|
+
* disabled={isFetchingNextPage}
|
|
85
|
+
* >
|
|
86
|
+
* {isFetchingNextPage ? 'Loading more...' : 'Load more'}
|
|
87
|
+
* </button>
|
|
88
|
+
* )}
|
|
89
|
+
* </div>
|
|
90
|
+
* )
|
|
91
|
+
* }
|
|
92
|
+
* ```
|
|
14
93
|
*/
|
|
15
|
-
export declare const useGetTransactionHistory: (args: UseGetTransactionHistoryArgs, options?: HooksOptions) =>
|
|
94
|
+
export declare const useGetTransactionHistory: (args: UseGetTransactionHistoryArgs, options?: HooksOptions) => UseGetTransactionHistoryReturnType;
|
|
16
95
|
export {};
|
|
17
96
|
//# sourceMappingURL=useGetTransactionHistory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetTransactionHistory.d.ts","sourceRoot":"","sources":["../../../../src/hooks/Indexer/useGetTransactionHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"useGetTransactionHistory.d.ts","sourceRoot":"","sources":["../../../../src/hooks/Indexer/useGetTransactionHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,IAAI,EAAmB,MAAM,qBAAqB,CAAA;AACxF,OAAO,EAAE,YAAY,EAAoB,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAI9F,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAI1C,UAAU,yBAAyB;IACjC,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,kCAAkC,GAAG,sBAAsB,CAAC,YAAY,CAAC,2BAA2B,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CAAA;AAElI,MAAM,WAAW,4BAA6B,SAAQ,yBAAyB;IAC7E,OAAO,EAAE,MAAM,CAAA;CAChB;AAiCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,eAAO,MAAM,wBAAwB,GACnC,MAAM,4BAA4B,EAClC,UAAU,YAAY,KACrB,kCAwBF,CAAA"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { useInfiniteQuery } from '@tanstack/react-query';
|
|
2
|
+
import { getAddress } from 'viem';
|
|
2
3
|
import { QUERY_KEYS, time } from '../../constants';
|
|
3
4
|
import { useIndexerClient } from './useIndexerClient';
|
|
4
5
|
const getTransactionHistory = async (indexerClient, { contractAddress, accountAddress, tokenId, page }) => {
|
|
5
|
-
const res = indexerClient.getTransactionHistory({
|
|
6
|
+
const res = await indexerClient.getTransactionHistory({
|
|
6
7
|
includeMetadata: true,
|
|
7
8
|
page,
|
|
8
9
|
filter: {
|
|
@@ -11,10 +12,79 @@ const getTransactionHistory = async (indexerClient, { contractAddress, accountAd
|
|
|
11
12
|
tokenID: tokenId
|
|
12
13
|
}
|
|
13
14
|
});
|
|
14
|
-
|
|
15
|
+
const transactions = res.transactions.map(transaction => {
|
|
16
|
+
return {
|
|
17
|
+
...transaction,
|
|
18
|
+
transfers: transaction.transfers?.map(transfer => ({
|
|
19
|
+
...transfer,
|
|
20
|
+
from: getAddress(transfer.from),
|
|
21
|
+
to: getAddress(transfer.to)
|
|
22
|
+
}))
|
|
23
|
+
};
|
|
24
|
+
});
|
|
25
|
+
return {
|
|
26
|
+
...res,
|
|
27
|
+
transactions
|
|
28
|
+
};
|
|
15
29
|
};
|
|
16
30
|
/**
|
|
17
|
-
*
|
|
31
|
+
* Hook to fetch and paginate through transaction history for a given account and chain.
|
|
32
|
+
*
|
|
33
|
+
* This hook provides methods to fetch transaction history with support for infinite scrolling.
|
|
34
|
+
* It can filter transactions by contract address and token ID, making it useful for both
|
|
35
|
+
* general account history and specific asset history views.
|
|
36
|
+
*
|
|
37
|
+
* Go to {@link https://docs.sequence.xyz/sdk/web/hooks/useGetTransactionHistory} for more detailed documentation.
|
|
38
|
+
*
|
|
39
|
+
* @param args - Configuration object for the transaction history query {@link GetTransactionHistoryArgs}
|
|
40
|
+
*
|
|
41
|
+
* @returns A hook that returns the transaction history for a given account and chain. {@link UseGetTransactionHistoryReturnType}
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```tsx
|
|
45
|
+
* import { useGetTransactionHistory } from '@0xsequence/hooks'
|
|
46
|
+
*
|
|
47
|
+
* const TransactionList = () => {
|
|
48
|
+
* const {
|
|
49
|
+
* data,
|
|
50
|
+
* fetchNextPage,
|
|
51
|
+
* hasNextPage,
|
|
52
|
+
* isLoading,
|
|
53
|
+
* isFetchingNextPage
|
|
54
|
+
* } = useGetTransactionHistory({
|
|
55
|
+
* chainId: 1,
|
|
56
|
+
* accountAddress: '0x123...',
|
|
57
|
+
* // Optional filters:
|
|
58
|
+
* // contractAddress: '0x456...',
|
|
59
|
+
* // tokenId: '1'
|
|
60
|
+
* })
|
|
61
|
+
*
|
|
62
|
+
* if (isLoading) return <div>Loading...</div>
|
|
63
|
+
*
|
|
64
|
+
* return (
|
|
65
|
+
* <div>
|
|
66
|
+
* {data?.pages.map(page =>
|
|
67
|
+
* page.transactions.map(tx => (
|
|
68
|
+
* <div key={tx.txnHash}>
|
|
69
|
+
* Transaction: {tx.txnHash}
|
|
70
|
+
* Block: {tx.blockNumber}
|
|
71
|
+
* Time: {tx.timestamp}
|
|
72
|
+
* </div>
|
|
73
|
+
* ))
|
|
74
|
+
* )}
|
|
75
|
+
*
|
|
76
|
+
* {hasNextPage && (
|
|
77
|
+
* <button
|
|
78
|
+
* onClick={() => fetchNextPage()}
|
|
79
|
+
* disabled={isFetchingNextPage}
|
|
80
|
+
* >
|
|
81
|
+
* {isFetchingNextPage ? 'Loading more...' : 'Load more'}
|
|
82
|
+
* </button>
|
|
83
|
+
* )}
|
|
84
|
+
* </div>
|
|
85
|
+
* )
|
|
86
|
+
* }
|
|
87
|
+
* ```
|
|
18
88
|
*/
|
|
19
89
|
export const useGetTransactionHistory = (args, options) => {
|
|
20
90
|
const indexerClient = useIndexerClient(args.chainId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetTransactionHistory.js","sourceRoot":"","sources":["../../../../src/hooks/Indexer/useGetTransactionHistory.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"useGetTransactionHistory.js","sourceRoot":"","sources":["../../../../src/hooks/Indexer/useGetTransactionHistory.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,gBAAgB,EAA0B,MAAM,uBAAuB,CAAA;AAC9F,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAEjC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAGlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAoCrD,MAAM,qBAAqB,GAAG,KAAK,EACjC,aAA8B,EAC9B,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAA6B,EAC7E,EAAE;IACF,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,qBAAqB,CAAC;QACpD,eAAe,EAAE,IAAI;QACrB,IAAI;QACJ,MAAM,EAAE;YACN,cAAc;YACd,eAAe;YACf,OAAO,EAAE,OAAO;SACjB;KACF,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;QACtD,OAAO;YACL,GAAG,WAAW;YACd,SAAS,EAAE,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACjD,GAAG,QAAQ;gBACX,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC/B,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;aAC5B,CAAC,CAAC;SACJ,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,OAAO;QACL,GAAG,GAAG;QACN,YAAY;KACb,CAAA;AACH,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,IAAkC,EAClC,OAAsB,EACc,EAAE;IACtC,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAEpD,OAAO,gBAAgB,CAAC;QACtB,QAAQ,EAAE,CAAC,UAAU,CAAC,wBAAwB,EAAE,IAAI,EAAE,OAAO,CAAC;QAC9D,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;YACzB,OAAO,qBAAqB,CAAC,aAAa,EAAE;gBAC1C,GAAG,IAAI;gBACP,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;aAC1B,CAAC,CAAA;QACJ,CAAC;QACD,gBAAgB,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;YAC7B,0EAA0E;YAC1E,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,SAAS,CAAA;YAClB,CAAC;YAED,OAAO,IAAI,EAAE,IAAI,IAAI,CAAC,CAAA;QACxB,CAAC;QACD,gBAAgB,EAAE,CAAC;QACnB,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI;QAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,EAAE;QAC9B,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,OAAO,EAAE,QAAQ;KACvE,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetTransactionHistorySummary.d.ts","sourceRoot":"","sources":["../../../../src/hooks/Indexer/useGetTransactionHistorySummary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,WAAW,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"useGetTransactionHistorySummary.d.ts","sourceRoot":"","sources":["../../../../src/hooks/Indexer/useGetTransactionHistorySummary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAKlE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAI1C,MAAM,WAAW,gCAAgC;IAC/C,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAoCD;;GAEG;AACH,eAAO,MAAM,+BAA+B,GAC1C,kCAAkC,gCAAgC,EAClE,UAAU,YAAY,yEAiBvB,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useQuery } from '@tanstack/react-query';
|
|
2
|
+
import { getAddress } from 'viem';
|
|
2
3
|
import { QUERY_KEYS, time } from '../../constants';
|
|
3
4
|
import { useIndexerClients } from './useIndexerClient';
|
|
4
5
|
const getTransactionHistorySummary = async (indexerClients, { accountAddress }) => {
|
|
@@ -14,7 +15,15 @@ const getTransactionHistorySummary = async (indexerClients, { accountAddress })
|
|
|
14
15
|
const secondDate = new Date(b.timestamp).getTime();
|
|
15
16
|
return secondDate - firstDate;
|
|
16
17
|
});
|
|
17
|
-
|
|
18
|
+
const transactions = orderedTransactions.map(transaction => ({
|
|
19
|
+
...transaction,
|
|
20
|
+
transfers: transaction.transfers?.map(transfer => ({
|
|
21
|
+
...transfer,
|
|
22
|
+
from: getAddress(transfer.from),
|
|
23
|
+
to: getAddress(transfer.to)
|
|
24
|
+
}))
|
|
25
|
+
}));
|
|
26
|
+
return transactions;
|
|
18
27
|
};
|
|
19
28
|
/**
|
|
20
29
|
* @description Gets the exhaustive transaction history for a given accountAddress and list of chainIds
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetTransactionHistorySummary.js","sourceRoot":"","sources":["../../../../src/hooks/Indexer/useGetTransactionHistorySummary.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"useGetTransactionHistorySummary.js","sourceRoot":"","sources":["../../../../src/hooks/Indexer/useGetTransactionHistorySummary.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAEjC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAGlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAOtD,MAAM,4BAA4B,GAAG,KAAK,EACxC,cAA4C,EAC5C,EAAE,cAAc,EAAoC,EAC5B,EAAE;IAC1B,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CACtD,aAAa,CAAC,qBAAqB,CAAC;QAClC,MAAM,EAAE;YACN,cAAc;SACf;QACD,eAAe,EAAE,IAAI;KACtB,CAAC,CACH,CACF,CAAA;IAED,MAAM,qBAAqB,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAA;IACnF,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9D,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAA;QACjD,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAA;QAClD,OAAO,UAAU,GAAG,SAAS,CAAA;IAC/B,CAAC,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC3D,GAAG,WAAW;QACd,SAAS,EAAE,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACjD,GAAG,QAAQ;YACX,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC/B,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;SAC5B,CAAC,CAAC;KACJ,CAAC,CAAC,CAAA;IAEH,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC7C,gCAAkE,EAClE,OAAsB,EACtB,EAAE;IACF,MAAM,cAAc,GAAG,iBAAiB,CAAC,gCAAgC,CAAC,QAAQ,CAAC,CAAA;IAEnF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,UAAU,CAAC,+BAA+B,EAAE,gCAAgC,EAAE,OAAO,CAAC;QACjG,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,MAAM,4BAA4B,CAAC,cAAc,EAAE,gCAAgC,CAAC,CAAA;QAC7F,CAAC;QACD,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI;QAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,EAAE;QAC9B,cAAc,EAAE,IAAI;QACpB,OAAO,EACL,gCAAgC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YACpD,CAAC,CAAC,gCAAgC,CAAC,cAAc;YACjD,CAAC,OAAO,EAAE,QAAQ;KACrB,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@0xsequence/hooks",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.9",
|
|
4
4
|
"description": "React hooks for Sequence Web SDK",
|
|
5
5
|
"repository": "https://github.com/0xsequence/web-sdk/tree/master/packages/hooks",
|
|
6
6
|
"author": "Horizon Blockchain Games",
|
|
@@ -26,7 +26,8 @@
|
|
|
26
26
|
"@0xsequence/network": ">=2.2.13",
|
|
27
27
|
"@tanstack/react-query": ">= 5",
|
|
28
28
|
"react": ">= 17",
|
|
29
|
-
"react-dom": ">= 17"
|
|
29
|
+
"react-dom": ">= 17",
|
|
30
|
+
"viem": ">= 2.0.0"
|
|
30
31
|
},
|
|
31
32
|
"devDependencies": {
|
|
32
33
|
"@0xsequence/api": "^2.2.13",
|
|
@@ -44,7 +45,8 @@
|
|
|
44
45
|
"react-dom": "^19.0.0",
|
|
45
46
|
"typescript": "^5.8.2",
|
|
46
47
|
"vite": "^6.0.2",
|
|
47
|
-
"vitest": "^2.1.8"
|
|
48
|
+
"vitest": "^2.1.8",
|
|
49
|
+
"viem": "^2.23.10"
|
|
48
50
|
},
|
|
49
51
|
"scripts": {
|
|
50
52
|
"build": "pnpm build:clean && pnpm build:esm && pnpm build:cjs",
|