このプロジェクトについて
# 概要
このREADMEでは、本リポジトリを「FlashLoanArbitrage」として説明しています。これは、スマートコントラクトと連携してDeFi上でETH/USDCの裁定取引を行うローカルNode.jsスクリプト(`goflash.js`)です。なお、リポジトリ自体の名称は`smart-order-manager`となっており、説明文には「効率的な実行のためのオーダーキューを管理する」と記載されています。これはREADMEの内容と一致しないため、実行前にダウンロードした内容を十分に確認してください。
## 報告されている動作
- Chainlink、Uniswap V2、SushiSwap、Curve Finance、Balancerで60秒ごとにETH/USDC価格をポーリングし、変動インジケーター(↑ / ↓ / —)付きのカラーターミナルテーブルに表示します。
- プラットフォーム間で0.9%以上のスプレッドが発生するまで待機し、トレードをトリガーします。READMEには、実際の市場でこのような差が出ることは稀であり、デモンストレーション目的でシミュレーション上の機会を時折表示することが明記されています。
- コントラクト側では、フラッシュローンでUSDCを借り入れ、安価な取引所でETHを購入し、高価な取引所で売却し、ローンと手数料およびガス代を返済した後、残りのUSDC利益をETHに変換すると説明されています。
- 明記されているフラッシュローン提供元と手数料率: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)。
## 実行方法
Node.jsが必要です。手順は、`goflash.js`と`package.json`を任意のフォルダに配置し、`npm install`を実行した後、`node goflash.js`を実行します。依存関係としてethers ^6.11.1、inquirer ^8.2.6、chalk ^4.1.2がリストされています。
初回起動時に、新しいウォレットの作成または秘密鍵によるインポートを選択するインタラクティブなプロンプトが表示されます。鍵はスクリプトと同じ場所にある`wallet.json`に書き込まれます。その後、メニューからフラッシュローンプロトコルの選択、ローン金額(ETH単位、READMEでは10 ETHからプロトコル上限まで)の設定、ウォレットの再作成または再インポート、裁定取引の開始、または終了を選択できます。READMEでは、残高が0.1 ETH未満の場合、ガス代が不足するため10 ETHを超えるローンは使用すべきではないと警告しています。
## 事前に確認すべき点
- **配布内容:** READMEでは`goflash.js`と`package.json`のダウンロードのみを指示しており、プロジェクト構成にもこれら2つのファイルと、自動生成される`wallet.json`、およびREADMEしか含まれていません。スマートコントラクトのソースコードが含まれていないため、スクリプトが対話しようとするオンチェーンコードをこのリポジトリだけでレビューすることは不可能です。
- **鍵の取り扱い:** 秘密鍵は`wallet.json`にプレーンテキストで保存されます。README自体で.gitignoreへの追加、オフラインバックアップの保持、専用ウォレットの使用を推奨していますが、本来、鍵をこのような方法で扱うべきではありません。
- **主張とリスク:** READMEはこのプロジェクトを教育用とし、「自己責任で使用すること」としており、パフォーマンス数値、ライブ結果、または監査結果は提供していません。また、フラッシュローン手数料に加えて、コスト(取引手数料0.1%、スリッページ0.05%、ガス代)を列挙しており、RPCエラー、無効な鍵、資金不足に関するトラブルシューティングを記載しています。
本プロジェクトは、秘密鍵を要求する未検証のスクリプトとして扱い、コードを自身で精査し、どのコントラクトやアドレスを呼び出しているかを完全に理解するまで、実際の資金を使用しないでください。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.