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