@@ -24,6 +24,8 @@ import MoneriumClient, {
2424 ProfilesResponse ,
2525 RequestIbanPayload ,
2626 ResponseStatus ,
27+ SignaturesQueryParams ,
28+ SignaturesResponse ,
2729 SubmitProfileDetailsPayload ,
2830 Token ,
2931} from '@monerium/sdk' ;
@@ -86,6 +88,11 @@ export const keys = {
8688 requestIban : [ 'monerium' , 'request-iban' ] ,
8789 placeOrder : [ 'monerium' , 'place-order' ] ,
8890 linkAddress : [ 'monerium' , 'link-address' ] ,
91+ getSignatures : ( filter ?: unknown ) => [
92+ 'monerium' ,
93+ 'signatures' ,
94+ ...( filter ? [ filter ] : [ ] ) ,
95+ ] ,
8996} ;
9097
9198/** Internal hook to use SDK */
@@ -998,6 +1005,72 @@ export function usePlaceOrder({
9981005 ...rest ,
9991006 } ;
10001007}
1008+ /**
1009+ * Get pending signatures for the authenticated user.
1010+ *
1011+ * Returns pending signatures that require user action, such as order signatures
1012+ * or link address signatures. Accepts filtering by address, chain, kind, and profile.
1013+ *
1014+ * @group Hooks
1015+ * @category Signatures
1016+ * @param {Object } params
1017+ * @param {SignaturesQueryParams } params.query - Optional query parameters to filter signatures
1018+ *
1019+ * @example
1020+ * ```ts
1021+ * // Get all pending signatures
1022+ * const {
1023+ * data: signatures,
1024+ * isLoading,
1025+ * isError,
1026+ * error,
1027+ * refetch,
1028+ * ...moreUseQueryResults
1029+ * } = useSignatures();
1030+ *
1031+ * // Get pending order signatures for a specific address
1032+ * const { data: orderSignatures } = useSignatures({
1033+ * query: {
1034+ * address: '0x1234...',
1035+ * kind: 'order'
1036+ * }
1037+ * });
1038+ *
1039+ * // Check the kind of signature
1040+ * signatures?.pending.forEach(sig => {
1041+ * if (sig.kind === 'order') {
1042+ * console.log('Order signature:', sig.id, sig.amount);
1043+ * } else {
1044+ * console.log('Link address signature');
1045+ * }
1046+ * });
1047+ * ```
1048+ * @see {@link https://monerium.dev/api-docs-v2#tag/signatures/operation/get-signatures | API Documentation }
1049+ */
1050+ export function useSignatures ( {
1051+ query,
1052+ options,
1053+ } : {
1054+ query ?: SignaturesQueryParams ;
1055+ /** {@inheritDoc QueryOptions } */
1056+ options ?: QueryOptions < SignaturesResponse > ;
1057+ } = { } ) {
1058+ const sdk = useSdk ( ) ;
1059+ const { isAuthorized } = useAuth ( ) ;
1060+
1061+ return useQuery < SignaturesResponse > ( {
1062+ ...options ,
1063+ queryKey : keys . getSignatures ( query ) ,
1064+ queryFn : ( ) => {
1065+ if ( ! sdk ) {
1066+ throw new Error ( 'No SDK instance available' ) ;
1067+ }
1068+ return sdk . getSignatures ( query ) ;
1069+ } ,
1070+ enabled : Boolean ( sdk && isAuthorized && ( options ?. enabled ?? true ) ) ,
1071+ } ) ;
1072+ }
1073+
10011074/**
10021075 * # Add address to profile.
10031076 *
0 commit comments