import {
BorrowSDK,
ChainType,
SmartAccountError,
ApiError
} from '@satsterminal-sdk/borrow';
const sdk = new BorrowSDK({
apiKey: 'key',
chain: ChainType.ARBITRUM,
wallet: walletProvider
});
async function getLoan() {
try {
// New high-level method handles everything
const result = await sdk.getLoan({
collateralBTC: 0.1,
loanAmountUSD: 5000,
ltv: 70,
onStatusUpdate: (status) => {
console.log(`[${status.step}] ${status.label}`);
},
onDepositReady: (info) => {
console.log(`Deposit ${info.amountBTC} BTC to ${info.address}`);
},
onComplete: () => {
console.log('Loan complete!');
},
onError: (error) => {
console.error('Loan failed:', error);
}
});
// New method name with options object
const history = await sdk.getLoanHistory({
page: 1,
limit: 10,
status: 'active'
});
console.log('Loans:', history);
} catch (error) {
// New error handling
if (error instanceof SmartAccountError) {
console.error('Wallet error:', error.code, error.context);
} else if (error instanceof ApiError) {
console.error('API error:', error.statusCode);
} else {
console.error('Error:', error);
}
}
}