このプロジェクトについて
FlashLoanArbitrage — 概要
このREADMEは、フラッシュローンで資金調達を行うDeFi裁定取引用のNode.jsコマンドラインボットについて説明しています。リポジトリ名と説明(「機会を求めてスマートコントラクトのアクティビティを監視する」)は、READMEの内容(FlashLoanArbitrageというボットのドキュメント)と一致していません。ドキュメント化されているプロジェクトファイルは、goflash.js、package.json、wallet.json、およびREADME自体です。
仕組み
このボットは、オンチェーンのスマートコントラクトとローカルスクリプトのgoflash.jsの2つのパーツで構成されています。スクリプトは、リファレンスオラクルとしてのChainlink、Uniswap V2、SushiSwap、Curve Finance、Balancerの5つのソースからETH/USDC価格を照会し、最大価格差が0.9%以上に達するまで待機します。しきい値に達するとコントラクトを呼び出し、USDCでフラッシュローンを受け取り、価格の安い取引所でETHを購入し、高い取引所で売却します。その後、手数料とガス代を加えてローンを返済し、残りの利益をETHに変換してユーザーのウォレットに返却します。スキャンは60秒ごとに繰り返され、コンソールには価格が上昇・下降・不変のインジケーターと共に表示されます。
READMEに記載されているフラッシュローンのソースは、Aave(手数料0.05%、最大10,000,000 USDC)、dYdX(0.05%、最大500,000)、Uniswap V3(0.01%、最大5,000,000)、Balancer(0.02%、最大1,000,000)です。READMEでは、手数料を抑えるためにdYdXまたはUniswap V3を推奨しており、ローン額が大きくなるほど手数料も高くなる点に言及しています。
セットアップと操作
インストールは、goflash.jsとpackage.jsonが含まれるフォルダでnpm installを実行し、その後node goflash.jsを実行します。初回起動時には、inquirerで構築されたインタラクティブなプロンプトが表示され、新しいウォレットの作成または秘密鍵による既存ウォレットのインポートを選択できます。鍵は同じフォルダのwallet.jsonに書き込まれます。メインメニューでは、DeFiプロトコルの選択、ローン額(10 ETHからプロトコル最大まで)の設定、ウォレットの再作成または再インポート、裁定取引の開始、または終了を選択できます。依存関係として、ethers ^6.11.1、inquirer ^8.2.6、chalk ^4.1.2が挙げられています。READMEによると、ウォレット残高が0.1 ETH未満の場合、ガス代として使用されるため、10 ETHを超えるローンの選択ができなくなります。また、ドキュメント化された手数料モデルには、フラッシュローン手数料、0.1%の取引手数料、0.05%のスリッページ、およびガス代が含まれています。
利用前に検討すべき事項
- README自体に、実際の市場で0.9%のスプレッドは稀であり、そのためボットが機会を見つけられない可能性があること、および「デモンストレーション用に時折シミュレートされた機会を表示する」ことが記載されています。
- 秘密鍵はwallet.jsonに平文で保存されます。READMEでは、このファイルを.gitignoreに追加し、オフラインバックアップを保持し、専用のウォレットを使用し、鍵を絶対に共有しないようアドバイスしています。
- READMEに示されているプロジェクト構造にコントラクトのソースファイルが含まれていないため、オンチェーンコンポーネントはリストされたファイル内でドキュメント化されていません。
- このプロジェクトは「教育目的として現状のまま」公開されており、「自己責任で使用すること」とされています。
READMEのトラブルシューティングノートでは、モジュール形式のエラー、無効な秘密鍵形式、ガス代の不足、ウォレット残高ゼロ、RPCの再接続、およびV2形式の取引所におけるETH/USDCペアの欠如についてカバーしています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.