Swap lending b/w DAI & USDC on Compound
Installation or just use your browser console.
Trigger the following uniquely designed spells to fulfill this use case. Check this section for generic details around casting spells.
The DSA will cast the spells across the Compound and OasisDEX connectors in the specified sequence.
let borrowAmount = 20; // 20 DAI
let borrowAmtInWei = dsa.tokens.fromDecimal(borrowAmount, "dai"); // borrow flash loan and swap via OasisDEX
let slippage = 0.1; // 0.1% slippage.
let dai_address = dsa.tokens.info.dai.address
let usdc_address = dsa.tokens.info.usdc.address
let buyAmount = await dsa.oasis.getBuyAmount("USDC", "DAI", borrowAmount, slippage);
let spells = dsa.Spell();
spells.add({
connector: "instapool",
method: "flashBorrow",
args: [dai_address, borrowAmtInWei, 0, 0]
});
spells.add({
connector: "oasis",
method: "sell",
args: [usdc_address, dai_address, borrowAmtInWei, buyAmount.unitAmt, 0, "423"] // setting USDC amount with id 423
});
spells.add({
connector: "compound",
method: "deposit",
args: [usdc_address, 0, "423", 0] // get Deposit amount with id 423
});
spells.add({
connector: "compound",
method: "withdraw",
args: [dai_address, borrowAmtInWei, 0, 0]
});
spells.add({
connector: "instapool",
method: "flashPayback",
args: [dai_address, 0, 0]
});
dsa.cast(spells).then(console.log)
let borrowAmount = 20; // 20 USDC
let borrowAmtInWei = dsa.tokens.fromDecimal(borrowAmount, "usdc"); // borrow flash loan and swap via OasisDEX
let slippage = 0.1; // 0.1% slippage.
let dai_address = dsa.tokens.info.dai.address
let usdc_address = dsa.tokens.info.usdc.address
let buyAmount = await dsa.oasis.getBuyAmount("DAI", "USDC", borrowAmount, slippage);
let spells = dsa.Spell();
spells.add({
connector: "instapool",
method: "flashBorrow",
args: [usdc_address, borrowAmtInWei, 0, 0]
});
spells.add({
connector: "oasis",
method: "sell",
args: [dai_address, usdc_address, borrowAmtInWei, buyAmount.unitAmt, 0, "423"] // setting DAI amount with id 423
});
spells.add({
connector: "compound",
method: "deposit",
args: [dai_address, 0, "423", 0] // get Deposit amount with id 423
});
spells.add({
connector: "compound",
method: "withdraw",
args: [usdc_address, borrowAmtInWei, 0, 0]
});
spells.add({
connector: "instapool",
method: "flashPayback",
args: usdc_address, 0, 0]
});
dsa.cast(spells).then(console.log)
If you still can't find something you're looking for or have any questions, ask them at our developers community on Discord or simply send an Email.
Our team is excited about assisting you to build an application using Instadapp Developer Platform. Your questions and feedback help us make a better development environment for future developers.
Best way to stay connected with our progress.