仮想通貨

【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

今回は、直接コントラクトを叩く「直コン」について解説します。直コンの操作方法を知っておくと、トラブル回避ができますし、自分の資金を守れるようになります。

最近で言うと、FantomNetworkのShadowSwapというサイトがラグプルで飛んだのですが、直コン操作を覚えておくと、LPや中に入れた資金を取り出すことがすぐにできます。直コン操作について知らない方もいると思うので、こういった緊急時のための操作手順を画像付きで解説していきたいと思います。

ちなみに、操作手順の解説ではShadowswapを扱いたかったのですが、サイトが飛んで完全に無くなっていたのでSpiritSwapを用いて操作手順を解説していきます。

1コントラクトでLPを作成する

今回は、他と比較してAPRが高かった「BNB-SPIRIT」を例にまずはLPを作成します。(個人的にはSPIRITは持ちたくないのですが、わかりやすそうだったので選んでいます。)

まずはBNBとSPIRITをそれぞれ購入したいので、「BNB-SPIRIT」を見つけて「Details」をタップします。

スクリーンショット 2021 07 05 1.40.17 1024x518 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

次に「BNB-SPIRIT LP」をタップします。

スクリーンショット 2021 07 05 1.42.18 1024x502 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

上にある「Swap」をタップして、通貨をそれぞれ選びます。(今回はFTMをBNBにスワップします。)通貨を選んだらどれくらいスワップするのか数量を入力します。そして下にある「Swap」ボタンをタップします。

スクリーンショット 2021 07 05 1.46.37 1024x570 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

「Confirm Swap」をタップします。

スクリーンショット 2021 07 05 1.50.13 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

「確認」をタップします。これでBNBの購入が完了です。

スクリーンショット 2021 07 05 1.51.02 1024x519 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

次にSPIRITも同じように購入します。SPIRITの購入手順は省きます。BNBとSPIRITを無事購入できたらLPを作成していきます。

まず上にある「Liquidity」をタップして「Add Liquidity」をタップします。

スクリーンショット 2021 07 05 1.54.41 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

通貨はBNBとSPIRITを選び、数量をそれぞれ入力します。(今回はMAXでいきます。)そして、「ApproveBNB」「ApproveSPIRIT」のボタンをそれぞれタップしていきます。

スクリーンショット 2021 07 05 1.57.00 1024x568 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

Approveがそれぞれ完了したら「Supply」ボタンが表示されるのでタップします。

スクリーンショット 2021 07 05 2.00.14 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

「Confirm Supply」をタップします。

スクリーンショット 2021 07 05 2.01.11 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

「確認」をタップします。これでLPの作成が完了です!

スクリーンショット 2021 07 05 2.02.09 1024x480 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

2 コントラクトでLPをMasterChefにApproveする

MasterChefってなんぞや?という方もいると思うので、まずはMasterChefについて解説します。

MasterChefとは簡単に言うと「どこのプールにどれだけトークンを配布するか」を制御しているものです。そして基本的にはこのMasterChefがイールドファーミングで配られている独自トークンのオーナーになっています。

どういうことかと言うと、例えば私が下の画像の赤枠の「SPIRIT-FTM」に預けているとします。

スクリーンショット 2021 07 05 2.07.47 1024x482 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

これをHarvestしたときにMasterChefがSPIRITトークンをMint(鋳造・発行)して配ってくれます。なのでMasterChefはSPIRITトークンを発行できる権限を持っている(オーナーである)ということになります。

ちなみにこのMasterChefを作った人が、MasterChefにオーナー権を譲渡して構築しています。

以上でMasterChefの簡単な説明は終わります。

では早速「2 コントラクトでLPをMasterChefにApproveする」の手順を解説していきます。

まず「BNB-SPIRIT」を探して「Approve」をタップします。

スクリーンショット 2021 07 05 3.31.50 1024x498 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

次に右側に出てきた小さい画面にある「アクセス許可の編集」をタップします。

スクリーンショット 2021 07 05 3.32.41 1024x458 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

このとき「無制限」「カスタム使用限度」と表示されます。基本的には「無制限」で構わないのですが、「カスタム使用限度」で数量を設定すると、MasterChefに対して設定した数値分しか操作できないように制限をかけることができます。MasterChefに勝手に引っこ抜かれることが怖い方にはおすすめです。

ただ、「カスタム使用限度」を利用する場合、注意点があります。

スクリーンショット 2021 07 05 3.33.50 1 1024x531 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

上の画像の右側の小さい画面に「1.157920….」と表示されています。この数字はプログラム用の数字なのでここには表示されていませんが、単位が「Wei」という単位になっています。

なので、カスタム使用限度使うときに仮に「1」と入力してしまうと、Wei単位では「10000000000000000000」となるので、数量が間違ってしまうことになります。(下記画像参照↓)

スクリーンショット 2021 07 05 4.09.39 1024x505 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

このことから「カスタム使用制限」を使うときは、私たちの世界で使っている「1」「2」という単位ではなく、プログラムの世界で使っているWeiという単位に合わせて入力しないといけません。入力するときは数字を18倍にして入力しましょう。

注意点について話したので、話を本題に戻して手順の解説をしていきます。

今回は「無制限」でいきます。「無制限」を選択したら「保存」をタップします。

スクリーンショット 2021 07 05 4.19.33 1024x463 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

次に「確認」をタップします。

スクリーンショット 2021 07 05 4.20.52 1024x465 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

本当は、コントラクトから直接操作ができればよかったのですが、SPIRIT LPの関数の承認がまだされていなかったのでApproveを手動でやる手順を解説しました。

Approveの操作手順は以上です。

3 コントラクトでMasterChefにDepositする

ここでは、コントラクトからDepositするために必要である「プールID (pid)」と「amount」の2つを調べます。早速その操作手順を解説していきます。(下記画像参照:コントラクト上でpidとamountを入力してwriteをタップするとDepositができる)

スクリーンショット 2021 07 05 4.51.50 1024x204 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

まず、SpiritSwapのページ右側にある「More」をタップして「Docs(ドキュメント)」をタップします。

スクリーンショット 2021 07 05 4.43.47 1024x692 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

ドキュメントのページが開いたら「Contracts」をタップして「SpiritMasterChefのリンク」をタップします。(MasterChefからプールIDを探していきます。)

スクリーンショット 2021 07 05 4.46.20 1024x535 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

「Contract」をタップして「Read Contract」をタップします。

スクリーンショット 2021 07 05 4.56.00 1024x498 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

下にスクロールします。すると「8.poolLength」の項目に30unitと表示されているのがわかります。これは、SPIRITのプールが0〜29の計30個ありますよ。といった意味になります。

その上の「7.poolinfo」の空欄に0〜29までの数字を入れて、BNB-SPIRITに該当するプールを探し出します。ここで該当した数字がプールID(pid)になります。

スクリーンショット 2021 07 05 5.08.10 1024x252 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

まずは試しに「0」を入力します。すると情報が表示されます。

スクリーンショット 2021 07 05 5.16.50 1024x346 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

次に「lpToken」のアドレスリンクをタップしてみます。

スクリーンショット 2021 07 05 6.23.13 1024x297 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

すると下の画像のようなページが表示されます。TokenTrackerを見てみると「SpiritSwap Token」と記載されています。これで「0番目のトークンはSpiritSwapトークンを入れるプール」ということがわかりました。

スクリーンショット 2021 07 05 6.23.48 1024x399 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

おそらく下の画像のStakingのプールに、この「0番目」が該当すると思われます。

画像をよく見るとSPIRITの真下に「2x」と表示されています。これはマルチプライヤー(重み)が2という意味です。

スクリーンショット 2021 07 05 6.26.05 1024x439 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

そして先ほどコントラクトで0番目のプール情報を見たときに「allocPoint(アロケーションポイント(マルチプライヤー/重みの元))」が200になっていたので、「1x」の場合はallocPointがおそらく100になるであろう。ということが考えられます。

スクリーンショット 2021 07 05 6.43.14 1024x308 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

この仕組みを頭に入れた上で「BNB-SPIRIT LP」のマルチプライヤーを見てみると「0.25x」となっています。なのでコントラクトでプールを探したときに「allocPoint」が「25」になるということがわかると思います。

スクリーンショット 2021 07 05 6.47.10 1024x509 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

これに加えてLPのコントラクトを覚えておくと、後々pidを見つけやすくなります。ということで、先ほど作ったLPのコントラクトを一旦確認したいと思います。

まずは右上にMetaMaskのアイコンをタップして「Add Liquidity」をタップします。

スクリーンショット 2021 07 06 18.24.32 1024x475 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

右上の「↗︎」をタップします。

スクリーンショット 2021 07 06 18.25.33 1024x480 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

するとページが移動して、自分が作ったLPが表示されるので、先ほど作ったLP「SpiritLPs」をタップします。

スクリーンショット 2021 07 06 18.27.16 1024x506 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

表示されたページにコントラクトが記載されています。コントラクトの末尾「676d」を覚えておくと、後々pidを見つけやすくなります。

スクリーンショット 2021 07 06 18.30.30 1024x354 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

次に、MasterChefのpidを入力するページを開きます。(忘れた方は3の項目の冒頭を再度確認してみてください。)

まずは試しに「1」を入力します。するとアドレスも末尾も違いますし、allocPoint(アロケーションポイント)は600となっているので、探したいpidではないことがわかります。

スクリーンショット 2021 07 06 18.57.38 1024x289 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

続いて「2」を入力します。これも違います。

こんな感じで、どんどん番号を入力して確認していきます。

スクリーンショット 2021 07 06 18.59.42 1024x282 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

すると「22」を入力したところでトークンアドレスが「676d」で終わっていて、allocPoint(アロケーションポイント)が25になっているpidが見つかりました。

ということで、これが探したいpidだということがわかりました。

スクリーンショット 2021 07 06 19.08.06 1024x297 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

続いてamount(数量)を調べます。amountは先ほど5個前の画像(操作)で見つけたSpiritLPsの左側に記載されていました。

「0.35….」から始まっているのがamountになります。ここで注意しないといけないのが、amountに入力するときは単位を「Wei」に変えなければいけません。

なので、18倍にして入力してください。

スクリーンショット 2021 07 06 21.54.44 1024x442 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

続いて、pid(22)とamount(354..)を入力していきます。

まず、MasterChefのページを開きます。(忘れた方は3の項目の冒頭を再度確認してみてください。)

ページを開いたら「Contract」をタップして「Write Contract」をタップします。

スクリーンショット 2021 07 06 22.05.43 1024x512 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

そしてまずはウォレットを接続します。ウォレットはMetaMaskしか対応していないので注意してください。

「Connect to Web3」をタップします。

スクリーンショット 2021 07 06 22.08.35 1024x330 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

「MetaMask」をタップします。

スクリーンショット 2021 07 06 22.08.51 1024x450 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

接続するウォレットを選択した後「接続」をタップします。

スクリーンショット 2021 07 06 22.09.49 1024x436 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

再度「MetaMask」をタップします。

スクリーンショット 2021 07 06 22.10.18 1024x229 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

「OK」をタップします。これでウォレットの接続が完了しました。

スクリーンショット 2021 07 06 22.10.34 1024x309 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

続いて、少し下にスクロールすると「2.deposit」と表示されている欄があるので、そこに「22」「354….」を入力して、「Write」をタップします。

スクリーンショット 2021 07 06 22.14.56 1024x235 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

「確認」をタップします。このときガス代が通常通り表示されていれば通りますが、エラー表示が出ているときは通らないので操作をやり直してみてください。

スクリーンショット 2021 07 06 22.17.52 1024x401 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

これでDepositができました。一応、ちゃんと操作が反映されているか確認してみます。確認するときは「Veiw your transaction」をタップします。

スクリーンショット 2021 07 06 22.23.49 1024x215 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

SpiritLPsのところを見てみるとトランザクションが通ったことがわかります。

スクリーンショット 2021 07 06 22.25.17 1024x427 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

他にもSpiritSwapの「BNB-SPIRIT LP」を確認してみるとちゃんとステークされている表示になっていることが確認できました。

スクリーンショット 2021 07 06 22.26.15 1024x429 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

以上で「3.コントラクトからMasterChefにDepositする」の操作が完了しました。

4 コントラクトでMasterChefからWithdrawする

正直、ここの項目が直コンで一番重要なところです。

直コン操作をするときは、ほとんどがラグプルから抜けるときなのですが、その際はWithdrawを使います。

そしてWithdrawには「Emergency Withdraw」と「Withdraw」の2種類があります。

この2つの何が違うかというと、EARNEDのところで稼いでいる分で、まだHarvest(収穫)していないトークンをもらえるか、もらえないかが違います。

もらいたい場合は普通に「Withdraw」で大丈夫です。もらわなくてもいいから早く抜きたいという場合は「Emergency Withdraw」で操作します。

スクリーンショット 2021 07 06 22.46.04 1024x483 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

では早速、操作の手順を解説していきます。

まずは簡単な「Emergency Withdraw」から解説します。

3の項目でpidとamountを入力したページを開きます。(SpiritMasterChef→Contract→WriteContractの順でタップ)

スクリーンショット 2021 07 06 22.05.43 1024x512 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

そして、下にスクロールすると4番目に「4.emergencyWithdraw」と表示されているので、そこの空欄にプールID(pid)を入力して「Write」ボタンをタップします。

スクリーンショット 2021 07 07 0.09.08 1024x165 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

「確認」をタップします。これで操作完了です。

スクリーンショット 2021 07 07 0.10.42 1024x421 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

ちゃんとできているかSpiritSwapの「BNB-SPIRIT LP」を確認します。

表示が0に変わったので「Emergency Withdraw」がちゃんとできていることがわかりました。

スクリーンショット 2021 07 07 0.12.27 1024x451 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

ラグプルと戦うときはスピード勝負なので、正直「Emergency Withdraw」の方を使う可能性が高いと思います。プールID(pid)を入れるだけで残高など関係なく抜き出してくれるので緊急時には便利です。

続いて「Withdraw」の操作手順を解説していきます。

「Withdraw」をするには先ほど開いたMasterChefのページを下にスクロールして「12.withdraw」の空欄に「pid」と「amount」を入力して「Write」をタップします。(すでに「pid」と「amount」は先ほどの手順の途中でわかっているので、ここではその手順の説明を省きます。)

スクリーンショット 2021 07 07 5.39.13 1024x225 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

「確認」をタップします。これで資金の引き抜きが完了しました。

スクリーンショット 2021 07 07 5.41.51 1024x460 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

「Withdraw」をする場合は、今現在のamount(数量)を調べないといけないので、緊急時に数量を調べる時間は正直もったいないかなとは思います。

5コントラクトでLPを解体する

SpiritSwapに戻り、左側にある「Trade」のページを開き「Liquidity」をタップして「Remove」をタップします。

スクリーンショット 2021 07 07 5.53.22 1024x586 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

その後、どれくらい解体するのか数量を選択して「Approve」をタップして、右側に表示される「確認」をタップします。これでLPの解体操作が完了です。ここの操作手順はいつも通りなので、簡単に解説しました。

スクリーンショット 2021 07 07 6.01.37 1024x637 - 【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

ちなみにですが、今のところラグプルするケースで多いのがBinanceSmartChainだとPancakeSwapのDEXを使っているパターンや、FantomNetworkだとSpookySwapのDEXを使っている場合が多いので、ユーザーインターフェース上でLPを解体すればいいのですが、DEXもそこが作っている場合だとそのDEX上でしか解体ができません。

どういうことかと言うと例えば今回ShadowSwapがラグりましたが、ShadowSwapがDEXも提供している場合(SHADOW LPみたいなものを提供している場合)には、ShadowSwap上のDEXでしか解体ができません。

そうなると、この5番目の操作を余儀なくさせられることになります。ここについては、また別の記事やYoutube動画で解説します。

6.まとめ

最近FTMやPolygonが充実してきたおかげで直コンの講座が非常にやりやすくなったプラス、ガス代もやすいので、今後も何個か扱っていければと思っています。

直コン操作はいざという時に必要になるので、トラブルが起きたときに見様見真似でやれば良いやと考えるのではなく、今のうちに一通りやり方を覚えておいて準備しておくことが大事です。

初めて直コン操作をする方にとっては難しいかもしれませんが、自分の資金を無駄にしないためにも、ぜひ読んでいただけたらと思います。

ブログだと分かりづらいという方は3MIKANのYoutube動画でも直コン講座はいくつか扱っているので参考にしてください。

ちなみに今回扱った内容と同じYoutube動画は下のリンクから見れますので、動画の方が良いという方はチェックしてみてください。

【DeFi】ShadowSwapのラグプルを回避できるスキル!今や知ってて当然の直コンを再度解説します。

最後まで読んでいただき、ありがとうございました。