一旦有了以太幣,我們需要做的最後一件事。如果轉到truffle-config.js,您會注意到這裡有很多配置,我們需要注意。為了進行部署,我們需要設定兩個環境變數。
(i)我們的Metamask助記符(您應該在建立帳戶時寫下來,或者只需轉到Metamask設定即可顯示出來)。這進入DEPLOYMENT_ACCOUNT_KEY
(ii)Infura API金鑰(Infura允許我們與以太坊客戶端通訊,而無需執行自己的客戶端)。這進入INFURA_API_金鑰中。
一旦您在終端中設定了這些,我們將新增一個truffle外掛,以便在部署後驗證智慧合約。我們需要這樣做,以便我們可以在Etherscan上檢視智慧合約程式碼,並可以直接透過瀏覽器執行其功能。
要新增外掛執行(像以前一樣在flashloan目錄內部)
yarn add -D truffle-plugin-verify
我寫這篇文章時的版本是1.22.4
現在我們需要將外掛新增到truffle-config.js
在truffle-config.js中附加“ plugins”和“ api_keys”
plugins: ["truffle-plugin-verify"],
api_keys: {
etherscan: process.env.ETHERSCAN_API_KEY,
},
注意,我們需要另一個API金鑰,這次請轉到Etherscan。你需要在他們那裡有一個帳戶,所以一定要註冊。
最後一件事,我保證。我們需要在Flashloan合約中新增license欄位。這是我們成功核實合約所必需的。去看contracts/Flashloan.sol並在檔案頂部新增這一行
// SPDX-License-Identifier: MIT
我們已經準備好部署Flashloan.sol!
執行以下命令(您必須在同一終端視窗中執行所有操作,以便在部署時可以使用之前設定的環境變數)
truffle console --network ropsten
然後(當你在truffle控制檯中時,應該說truffle(ropsten)>)
migrate --reset
你應該看到這樣的東西
要獲得可理解的程式碼,我們需要進行驗證。在同一終端視窗中執行
.exit
這將退出truffle控制檯(應該還有一個控制檯命令),現在
truffle run verify Flashloan --network ropsten --license MIT
如果你不明白這一點
如果您返回https://ropsten.etherscan.io/address/0x1bd39Dd799C046EEDce91b35b2056754CeF08aE9,“Contract”標籤現在將允許您與自己在Ropsten上執行的Flashloan合約進行互動
Ropsten DAI。前往https://ropsten.etherscan.io/address/0xf80a32a835f79d7787e8a8ee5721d0feafd78108#writeContract
在mint函式下,寫2。這將鑄成我們2個DAI
現在將此DAI傳送到flashloan智慧合約,在我的情況下為0x1bd39Dd799C046EEDce91b35b2056754CeF08aE9。現在智慧合約的餘額為2 DAI,我們可以向銀行借貸1 DAI。您可能已經注意到我們的合約說1 ether,那麼ether確實代表1e18 wei,因此,如果我們使用ERC20令牌,則僅表示該令牌的1e18。由於測試的DAI也有18位小數,所以一切都很好。
我聽到你的聲音,為什麼要借貸需要DAI?好吧,我們需要償還貸款的服務費。我們本來可以在DAI中估算出服務成本,它也可以起作用
現在回到已部署的合約
https://ropsten.etherscan.io/address/0x1bd39Dd799C046EEDce91b35b2056754CeF08aE9。轉到write部分,用我們想要flash loan的資產的地址點選flashloan write按鈕,即。
0xf80a32a835f79d7787e8a8ee5721d0feafd78108
這是我的一份不同合約的flashloan