import { BorrowSDK, ChainType } from '@satsterminal-sdk/borrow';
async function repayLoan() {
const sdk = new BorrowSDK({
apiKey: process.env.API_KEY!,
chain: ChainType.ARBITRUM,
wallet: walletProvider
});
await sdk.setup();
// Get active loans
const history = await sdk.getLoanHistory({ status: 'active' });
const loan = history.transactions[0];
if (!loan) {
console.log('No active loans');
return;
}
// Check collateral info
const collateral = await sdk.getLoanCollateralInfo(loan.id);
console.log('Outstanding debt:', collateral?.remainingDebt);
console.log('Max withdrawable:', collateral?.maxWithdrawable);
// Full repayment with collateral withdrawal
await sdk.repay(loan.id, collateral?.remainingDebt || '0', {
collateralToWithdraw: collateral?.maxWithdrawable,
userBtcWithdrawAddress: 'bc1q...',
trackWorkflow: true,
callbacks: {
onStatusUpdate: (status) => {
console.log(`[${status.step}] ${status.label}`);
// Show bridge progress
if (status.stage.startsWith('BRIDGE_')) {
console.log(' Bridging collateral to BTC...');
}
},
onComplete: () => {
console.log('Loan fully repaid and collateral withdrawn!');
},
onError: (error) => {
console.error('Repayment failed:', error);
}
}
});
}