import { useCallback } from 'react';
import { RelayClient } from '@polymarket/builder-relayer-client';
import { checkAllApprovals, createAllApprovalTxs } from '../utils/approvals';
/** Set/check the token approvals the Safe needs to trade (USDC.e + outcome tokens
* to CTF/Exchange/NegRisk). Gasless via RelayClient. */
export default function useTokenApprovals() {
const checkAllTokenApprovals = useCallback((safe: string) => checkAllApprovals(safe), []);
const setAllTokenApprovals = useCallback(async (relay: RelayClient): Promise<boolean> => {
try {
const res = await relay.execute(createAllApprovalTxs(), 'Set all token approvals for trading');
await res.wait();
return true;
} catch (e) {
console.error('Failed to set approvals:', e);
return false;
}
}, []);
return { checkAllTokenApprovals, setAllTokenApprovals };
}
📜 Git History
6c47fa4chore: local Polikopi project home + Phase 1 redesign artifacts12 days ago
Show last diff
Loading...