在智能合約的時候,開發者只需要了解一種語言,例如堅固性、虛擬機或者銹但是一個框架並圍繞這個框架學習所有的語言會很想學習。
學習像 Dapp工具這樣的開發者可能有這樣的背景,並且可以為Web3 帶來更好的生活體驗。
在本篇DappTools教程中,你將學習如何通過DappTools創建框架、測試以及部署智能合約。
下面是本教程隨附的視頻教程:
DappTools 是什麼?
DappTools 是類似於Hardhat 的代碼存儲的框架,可以幫助智能合約開發者部署和維護他們的代碼部署一個、測試和測試。如果你把它編譯後的字節碼在哪裡?如何跟踪它的去向?這些都可以通過使用智能合約開發框架來解決的問題。
DappTools 最初是用Haskell 語言編寫的。然而最近,Paradigm 團隊採用了Dapp Tools 並用Rust 應用了它,並稱他們的新創造為鑄造廠之間的方式類似,因為它們都以大量的工作時間為中心,高效,而且會涉及到不同測試的代碼。
DappTools 是許多選擇首屈一指的流行協議。
為什麼使用DappTools?
如果你是Linux、bash腳本、追求高效、你不喜歡這樣的中心,那麼如果你是這樣來編碼的開發者絕對是試用的智能合約框架。 !
在學習什麼?
在本教程中,我們將學習如何:
- 使用DappTools
- 使用dapptools-starter-kit部署由Chainlink 的驅動混合型智能合約
下面是通過此入門工具包使用Chainlink 服務的一些示例:
安裝
要求
首先,我們需要安裝一些東西。
你可能已經安裝過製作如果沒有命令,你需要製作。可以按照這些步驟你是否已經安裝製作。
開始
安裝了這些工具,我們就可以開始使用入門工具包並使用它了。
sh git clone https://github.com/smartcontractkit/dapptools-starter-kit cd dapptools-starter-kit make # This installs the project's dependencies. make test
現在你有這些文件,我們來看看所有的東西是什麼的:
- 生成文件DappTools是基於腳本的文件,生成文件能夠幫助我們運行只需要輸入字符的大型命令。
- 庫項目:例如此文件夾用於存放外部依賴OpenZeppelin或者ds測試。
- 出去:編譯代碼的去向。 布朗尼 中的 建造 文件夾或 安全帽 中的 人工製品 文件夾。
- 源代碼:這是智能合約文件的位置。布朗尼和安全帽中的合同文件夾。
測試
現在做一些測試!要進行測試,我們可以運行做測試或者dapp 測試。
來自Dapp的所有命令都可用倉庫倉庫,包括dapp 構建、民族標誌和dapp 測試等。
導入外部依賴
假設我們想使用OpenZeppelin標準創建一個NFT。要安裝外部合約或包,我們可以使用dapp 安裝我們需要指定GitHub倉庫的組織和要安裝的倉庫名稱。
首先,我們需要在外部提交模塊的更改。 Dapp 包作為git 子引入,我們需要先提交。
運行:
git add . git commit -m ‘initial commit’
然後,我們可以安裝我們的包。例如,對於OpenZeppelin,我們將使用外部:
dapp install OpenZeppelin/openzeppelin-contracts
現在應該可以在庫文件夾中看到一個標有openzeppelin-合同這個新文件夾,因為它是從GitHub 下載的。倉庫包含OpenZeppelin 合約,我們有一些重複,但還需要了解它是如何工作的。
部署
要進行部署,首先需要設置民族標誌和.env文件。
設置你的帳戶/ethsign
將你的導入DappTools,可以使用密鑰庫或ethsign。 ethsign安裝安裝dapptools的。對於ethsign,運行以下命令:
bash ethsign import
現在將提示你輸入和密碼。你可以從元掩碼等錢包中獲取密碼。成功後,將密碼的地址添加到.env文件中的ETH_FROM有關示例,請參見變量下。.env.example文件。
可查看生成文件了解有關其背後工作原理的相關時間。
如果你要部署測試網,請確保你的錢包裡有測試網ETH 和LINK。你可以從 鏈環幣中獲取測試網LINK。
設置.env文件
你可以在.env.example中查看.env應該是網絡子的示例)(部署到真實的地方。
- ALCHEMY_API_KEY:可以通過獲取 煉金術 賬號獲取。
- ETH_FROM:發送交易的錢包地址。民族標誌中,可參考。
- ETHERSCAN_API_KEY:用於Etherscan 驗證(任選)。
- ETH_RPC_URL:用於在使用進行部署有一個默認的部署網絡(可選)。
測試網和主網部署
在.env文件中設置ETH_RPC_URL或者ALCHEMY_API_KEY,然後運行以下命令中的一個:
信託契約(Keeper契約):
bash make deploy CONTRACT=Counter
價格飼料:合約
bash make deploy CONTRACT=PriceFeedConsumer
Chainlink VRF消費者契約:
bash make deploy CONTRACT=VRFConsumer
你可以在腳本文件夾中個人的部署文件中改變其部署參數。所有的構造器參數都在./src/helper-config.sh文件夾中創建。這裡你可以為不同的網絡分配不同的構造器參數。
本地測試網
# 在一個終端上
dapp 測試網
將你的ETH_RPC_URL 改為http://127.0.0.1:8545
然後運行你的部署腳本。
在Etherscan 上進行驗證
部署完合同後,您可以在Etherscan 上完成合同進行驗證:
ETHERSCAN_API_KEY=<api-key> dapp verify-contract <contract_directory>/<contract>:<contract_name> <contract_address>
例如:
ETHERSCAN_API_KEY=123456765 dapp verify-contract ./src/Counter.sol:Counter 0x23456534212536435424
可查看DappTools文檔以了解如何通過DappTools 完成驗證合約。
與契約
為了與我們的契約,我們使用賽斯假設我們已經命令我們 PriceFeedConsumer.sol 部署到Kovan,現在我們要調用 獲取最新價格 函數。我們要怎麼做呢?
ETH_RPC_URL=<YOUR_RPC_URL> seth call <YOUR_CONTRACT_ADDRESS> "getLatestPrice()"
例如:
ETH_RPC_URL=https://alchemy.io/adsfasdf seth call 0xd39F749195Ab1B4772fBB496EDAF56729ee36E55 "getLatestPrice()"
我們會得到類似的 0x0000000000000000000000000000000000000000000000000000000004c17b125c0的輸出,這是 326815000000 的十六解釋。
要更改區塊鏈的(消耗氣),使用汽油發送。
假設我們部署了一個 VRFC消費者 契約,我們想要契約獲取隨機數:
首先,我們需要在Kovan 的鏈上向我們發送一些鏈接:
ETH_RPC_URL=<YOUR_RPC_URL> ETH_FROM=<YOUR_FROM_ADDRESS> seth send <LINK_TOKEN_ADDRESS> "transfer(address,uint256)" <VRF_CONSUMER_ADDRESS> 1000000000000000000
如:
ETH_RPC_URL=https://alchemy.io/adfasdf ETH_FROM=0x12345 seth send 0xa36085F69e2889c224210F603D836748e7dC0088 "transfer(address,uint256)" 0xa74576956E24a8Fa768723Bd5284BcBE1Ea03adA 100000000000000000
這裡100000000000000000 = 1 鏈接
然後,我們可以調用getRandomNumber 函數:
ETH_RPC_URL=<YOUR_RPC_URL> ETH_FROM=<YOUR_FROM_ADDRESS> seth send <VRF_CONSUMER_ADDRESS> "getRandomNumber()"
稍等一會後,讀取結果:
ETH_RPC_URL=<YOUR_RPC_URL> seth call <VRF_CONSUMER_ADDRESS> "randomResult()"
可以看到,這些腳本找我們的腳本請求中也會用得很好。如果你想參與貢獻,提交PR(Pull Request)!
資源列表
本教程的一些有用資源:
總結
我們建議你了解並嘗試使用Chainlink去中心化服務來創造一些非常強大的應用程序,這是一個非常強大的應用程序。
獲取更多關於Chainlink的信息,請訪問鏈環或者在docs.chain.link閱讀文檔。要討論集成問題,請聯繫專家。
帖子 如何使用DAppTools 首先出現在 Chainlink 博客.