このプロジェクトについて
FlashLoanArbitrageは、フラッシュローンを利用してDeFiで裁定取引を行うためのJavaScriptコマンドラインツールです。READMEでは、トレードシーケンスを実行するスマートコントラクトと、ユーザーのコンピュータ上で動作し、価格機会を検知してコントラクトをトリガーするローカルスクリプト「goflash.js」の2つの構成要素について説明しています。
著者の説明によると、コントラクトはUSDC建てのフラッシュローンを受け取り、ある取引所でETHを安く買い、別の取引所で高く売却し、手数料とガス代を加えてローンを返済した後、残りの利益をUSDCからETHに変換します。ローカルスクリプトは複数のプラットフォームでETH/USDC価格をポーリングし、損失を出すトレードの可能性を減らすために著者が設定した閾値である0.9%以上の差がある場合にのみ動作します。
READMEに記載されているフラッシュローン提供者は、Aave(手数料0.05%、最大10,000,000 USDC)、dYdX(0.05%、最大500,000 USDC)、Uniswap V3(0.01%、最大5,000,000 USDC)、Balancer(0.02%、最大1,000,000 USDC)です。ローン額が大きいほど手数料も高くなるため、少額のウォレット残高で過大なローンを組まないよう推奨されています。スキャン対象の価格ソースは、オラクル参照としてのChainlink、Uniswap V2、SushiSwap、Curve Finance、Balancerです。
実行方法としては、goflash.jsとpackage.jsonをフォルダにダウンロードし、npm installを実行した後、node goflash.jsを起動します。初回起動時に、スクリプトは新しいウォレットの作成または秘密鍵(0x接頭辞付きの64文字の16進数)による既存ウォレットのインポートを提案します。生成された秘密鍵は同じフォルダのwallet.jsonに保存され、READMEではこのファイルをGitに含めず、秘密鍵を絶対に共有しないよう繰り返し警告しています。inquirerで構築されたインタラクティブメニューでは、DeFiプロトコルの選択、ETHでのローン額設定、ウォレットの再作成またはインポート、裁定取引の開始、終了などのオプションが提供されます。コンソール出力の色付けにはchalkが、Ethereumへのアクセスにはethersが使用されています。
READMEによると、監視中はプラットフォームごとのETH/USDC価格が、上昇/下降/不変のマーカーおよび取引所間の最大スプレッドと共にテーブル形式で表示され、定期的(60秒のスキャンサイクルと言及)に更新されます。また、実用上の注意点として、ウォレット残高が0.1 ETH未満の場合、10 ETH以上のローンに対するガス代をカバーするには不十分であること、コストにはフラッシュローン手数料、約0.1%の取引手数料、約0.05%のスリッページ、およびガス代が含まれることが記されています。また、実際の市場で0.9%のクロスベニュー・スプレッドは稀であり、スクリプトがデモンストレーション用にシミュレーションされた機会を時折表示することがあると説明されています。トラブルシューティングセクションでは、モジュール形式のエラー、無効な秘密鍵形式、ガス代の不足、ウォレット残高ゼロ、RPCの再接続について触れており、V2でETH/USDCペアが見つからないのは正常であるとしています。
依存関係として、ethers ^6.11.1、inquirer ^8.2.6、chalk ^4.1.2が指定されています。本プロジェクトは教育目的として現状のまま公開されており、利用はユーザー自身の責任となります。評価する際は、利益に関する表現やコントラクトコードに注意してください。ワークフローには資金が入ったウォレットの秘密鍵の取り扱いが必要であり、オンチェーンコントラクトは監査済みであるとは記載されておらず、README自体が指定の閾値での実際の機会は一般的ではないことを認めています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.