Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 4x 4x 12x | import { StacksProvider } from './common/provider';
import { getStacksProvider } from './common/get-stacks-provider';
export function genericTransactionPopupFactory<OnFinishedPayload, ErrorMessagePayload = string>(
method: keyof StacksProvider
) {
return async function fn(options: {
token: string;
onFinish?: (payload: OnFinishedPayload) => void;
onCancel?: (errorMessage?: ErrorMessagePayload) => void;
}) {
const { token, onFinish, onCancel } = options;
try {
const Provider: StacksProvider | undefined = getStacksProvider();
Iif (!Provider) throw new Error('[micro-stacks/connect] No Stacks provider');
const fn = Provider[method];
Iif (typeof fn !== 'function')
throw new Error(`[micro-stacks/connect] StacksProvider method ${method} not found`);
const responsePayload = await fn(token);
onFinish?.(responsePayload as unknown as OnFinishedPayload);
} catch (e) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
onCancel?.((e as unknown as any)?.message);
}
};
}
|