Skip to content
On this page

劇場型デフィ「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の流動性が変動すると、貸付プールが要求する担保額も変化することを意味します。

攻略手順のヒント

  1. Uniswap v1の流動性を操作する:
    • まず、あなたはUniswap v1取引所にあなたのDVTを預け入れ、ETHを引き出すことで、DVTの価格を操作します。Uniswap v1のtokenToEthSwapInput関数を利用して、保有しているDVTをETHに交換しましょう。この際、max_tokens_soldの代わりにmin_ethを設定し、交換レートを有利に進めることができます。
    • 重要: この操作により、Uniswap v1取引所におけるDVTのETHに対する価格が下落します。
  2. 貸付プールからDVTを借りる:
    • Uniswap v1での価格操作が成功すると、貸付プールが要求する担保額が大幅に減少します。
    • この機会に、貸付プールに存在する全てのDVT(100,000 DVT)を借り入れます。borrow関数を呼び出す際に、計算された(そして減少した)担保額をETHで支払う必要があります。
    • 注意: 借入時には、token.transferが成功することが前提となります。
  3. 回収アカウントへ移動:
    • 貸付プールから借り入れたDVTは、あなたのウォレットに直接送られてきます。
    • これらのDVTを、指定された「回収アカウント」に送金します。

挑戦者へのメッセージ

この「Puppet」チャレンジは、スマートコントラクトの相互作用、特にAMM(自動マーケットメイカー)の価格変動メカニズムを理解することが不可欠です。Uniswap v1の特性を巧みに利用し、貸付プールが設定する「価格」を操作することが、勝利への道を開きます。

さあ、あなたのDeFiスキルを駆使して、隠された富を解放し、この挑戦をクリアしましょう!

Built with AiAda