플래시 론
Flash loan은 정의상 하나의 programmable transaction block 안에서 대출과 상환이 모두 이루어지는 uncollateralized loan이다. 사용자는 어떤 DeepBookV3 pool에서든 base asset 또는 quote asset으로 flash loan을 빌릴 수 있다. Flash loan은 FlashLoan hot potato(ability가 없는 struct)를 반환하며, 이는 호출이 끝나기 전에 pool에 반환되어야 한다. transaction은 atomic이므로 대출이 반환되지 않으면 전체 transaction이 실패한다.
빌릴 수 있는 수량은 pool이 보유한 최대 amount일 수 있다. pool에서 빌리고 같은 pool에서 거래하면 거래에는 자금 이동이 필요하므로 실패할 수 있다. 자금을 빌리면 이동시킬 자금이 남지 않기 때문이다.
API
다음은 flash loan을 위해 Pool이 제공하는 endpoint이다.
Borrow flash loan base
Pool에서 base asset을 빌린다. 이 함수는 hot potato를 반환하여 차입자가 같은 transaction 안에서 자산을 반환하도록 강제한다.
packages/deepbook/sources/pool.move. You probably need to run `pnpm prebuild` and restart the site.Borrow flash loan quote
Pool에서 quote asset을 빌린다. 이 함수는 hot potato를 반환하여 차입자가 같은 transaction 안에서 자산을 반환하도록 강제한다.
packages/deepbook/sources/pool.move. You probably need to run `pnpm prebuild` and restart the site.Retrieve flash loan base
flash loan으로 빌린 base asset을 Pool에 반환한다. 자산이 반환된 경우에만 FlashLoan object가 unwrap되며, 그렇지 않으면 transaction이 실패한다.
packages/deepbook/sources/pool.move. You probably need to run `pnpm prebuild` and restart the site.Retrieve flash loan quote
flash loan으로 빌린 quote asset을 Pool에 반환한다. 자산이 반환된 경우에만 FlashLoan object가 unwrap되며, 그렇지 않으면 transaction이 실패한다.
packages/deepbook/sources/pool.move. You probably need to run `pnpm prebuild` and restart the site.