Appearance
劇場型デフィ「Puppet」:トークンを救い出し、隠された財産を回収せよ!
あなたは、巧妙に設計されたDeFiの罠「Puppet」に挑む冒険者です。このチャレンジでは、ユーザーが担保としてETHを預け入れることでDamn Valuable Token (DVT) を借りられる「貸付プール」と、DVTとETHの交換が行われる古い「Uniswap v1取引所」が存在します。あなたの使命は、貸付プールから全てのDVTを回収し、指定された「回収アカウント」に安全に保管することです。あなたは25 ETHと1000 DVTを所持した状態でスタートします。
冒険の舞台
- 貸付プール (PuppetPool):
- 100,000 DVTの流動性を誇ります。
- DVTを借りるには、借入額の2倍のETHを担保として預ける必要があります。
DEPOSIT_FACTORが2と設定されており、担保計算に影響します。
- Uniswap v1取引所:
- DVTとETHの交換市場として機能します。
- 初期流動性として10 ETHと10 DVTが存在します。
- あなたの初期資産:
- 25 ETH
- 1000 DVT
攻略の鍵:Uniswap v1と貸付プールの連動
このチャレンジの巧妙な点は、貸付プールがDVTの価格を「Uniswap v1取引所の流動性比率」を基に算出していることです。これは、Uniswap v1の流動性が変動すると、貸付プールが要求する担保額も変化することを意味します。
攻略手順のヒント
- Uniswap v1の流動性を操作する:
- まず、あなたはUniswap v1取引所にあなたのDVTを預け入れ、ETHを引き出すことで、DVTの価格を操作します。Uniswap v1の
tokenToEthSwapInput関数を利用して、保有しているDVTをETHに交換しましょう。この際、max_tokens_soldの代わりにmin_ethを設定し、交換レートを有利に進めることができます。 - 重要: この操作により、Uniswap v1取引所におけるDVTのETHに対する価格が下落します。
- まず、あなたはUniswap v1取引所にあなたのDVTを預け入れ、ETHを引き出すことで、DVTの価格を操作します。Uniswap v1の
- 貸付プールからDVTを借りる:
- Uniswap v1での価格操作が成功すると、貸付プールが要求する担保額が大幅に減少します。
- この機会に、貸付プールに存在する全てのDVT(100,000 DVT)を借り入れます。
borrow関数を呼び出す際に、計算された(そして減少した)担保額をETHで支払う必要があります。 - 注意: 借入時には、
token.transferが成功することが前提となります。
- 回収アカウントへ移動:
- 貸付プールから借り入れたDVTは、あなたのウォレットに直接送られてきます。
- これらのDVTを、指定された「回収アカウント」に送金します。
挑戦者へのメッセージ
この「Puppet」チャレンジは、スマートコントラクトの相互作用、特にAMM(自動マーケットメイカー)の価格変動メカニズムを理解することが不可欠です。Uniswap v1の特性を巧みに利用し、貸付プールが設定する「価格」を操作することが、勝利への道を開きます。
さあ、あなたのDeFiスキルを駆使して、隠された富を解放し、この挑戦をクリアしましょう!