From d31310df2882e2f2da365c8e45c970d42e8276e2 Mon Sep 17 00:00:00 2001 From: gerg Date: Tue, 23 May 2023 15:00:26 -0400 Subject: [PATCH 1/2] add flash loans page from old dev docs --- docs/guides/README.md | 1 + docs/guides/arbitrageurs/flash-loans.md | 36 +++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 docs/guides/arbitrageurs/flash-loans.md diff --git a/docs/guides/README.md b/docs/guides/README.md index 08bba97a..e1d70438 100644 --- a/docs/guides/README.md +++ b/docs/guides/README.md @@ -6,6 +6,7 @@ heroImage: /images/backgrounds/blue.png ## Arbitrageurs +- [Flash Loans](/guides/arbitrageurs/flash-loans.md) - [Get Spot Price of a Pool](/guides/arbitrageurs/get-spot-price.md) ## Aggregators diff --git a/docs/guides/arbitrageurs/flash-loans.md b/docs/guides/arbitrageurs/flash-loans.md new file mode 100644 index 00000000..c6165a7e --- /dev/null +++ b/docs/guides/arbitrageurs/flash-loans.md @@ -0,0 +1,36 @@ +# Flash Loans + +## Overview + +Since the Vault holds all tokens for all pools, the consolidated token balances are available as Flash Loans. + +## Example Code + +```clike +pragma solidity ^0.7.0; + +import "@balancer-labs/v2-vault/contracts/interfaces/IVault.sol"; +import "@balancer-labs/v2-vault/contracts/interfaces/IFlashLoanRecipient.sol"; + +contract FlashLoanRecipient is IFlashLoanRecipient { + IVault private constant vault = "0xBA12222222228d8Ba445958a75a0704d566BF2C8"; + + function makeFlashLoan( + IERC20[] memory tokens, + uint256[] memory amounts, + bytes memory userData + ) external { + vault.flashLoan(this, tokens, amounts, userData); + } + + function receiveFlashLoan( + IERC20[] memory tokens, + uint256[] memory amounts, + uint256[] memory feeAmounts, + bytes memory userData + ) external override { + require(msg.sender == vault); + ... + } +} +``` From 32bb57d9615a3fddc3e637835320132321c15ef0 Mon Sep 17 00:00:00 2001 From: gerg <69520747+gerrrg@users.noreply.github.com> Date: Tue, 23 May 2023 15:03:18 -0400 Subject: [PATCH 2/2] change clike to solidity code block syntax highlighting --- docs/guides/arbitrageurs/flash-loans.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/arbitrageurs/flash-loans.md b/docs/guides/arbitrageurs/flash-loans.md index c6165a7e..a7941dde 100644 --- a/docs/guides/arbitrageurs/flash-loans.md +++ b/docs/guides/arbitrageurs/flash-loans.md @@ -6,7 +6,7 @@ Since the Vault holds all tokens for all pools, the consolidated token balances ## Example Code -```clike +```solidity pragma solidity ^0.7.0; import "@balancer-labs/v2-vault/contracts/interfaces/IVault.sol";