99久久国产亚洲高清观看2020_国产免费成人_四虎国产精品永久地址入口_国产精品免费一区二区久久夜色_美国超碰在线_男人天堂tv

您的位置:首頁 > 區塊鏈 >

Truffle可提供易于使用的dApp框架 幫助Chainlinked正確運行

2019-08-09 11:16:02 來源: 區塊網

Truffle 是區塊鏈公司 ConsenSys 的一家子公司,它已經為以太坊區塊鏈開發了一個開源區塊鏈開發環境和測試框架。近日,微軟和Truffle宣布結為

Truffle 是區塊鏈公司 ConsenSys 的一家子公司,它已經為以太坊區塊鏈開發了一個開源區塊鏈開發環境和測試框架。近日,微軟和Truffle宣布結為伙伴關系,為微軟 Azure 生態系統引入區塊鏈開發者工具。這兩家組織正在進行的投資包括用于測試的本地區塊鏈節點,并提供測試數據、智能合約的撰寫和持續部署、調試及測試。

在使用Chainlink時,強大的開發工具可以幫助您的智能合約在鏈上安全地部署成功。Truffle旨在提供一個易于使用的dApp框架,以幫助開發人員更好地開展其dApp的開發工作。

Truffle非常易于上手,Truffle Boxes的特點決定了您可以直接在終端下載dApp樣板。為了幫助您使用Chainlink,我們提供Chainlink Truffle Box樣板。其中包含了一個名為“MyContract”的的Chainlinked智能合約示例以及預制的測試套件。首先需要打開終端并安裝Truffle。

npm install truffle -g

接下來,創建一個新的目錄,并通過下面的命令從box中獲取Chainlinked示例合約:

mkdir Chainlink

cd Chainlink

truffle unbox smartcontractkit/chainlink

開箱之后,您會發現有一些新目錄會自動創建。其中包含了很多非常有用的示例代碼,可以幫助您快速開始Chainlinked智能合約的開發。

本文我們主要會介紹“MyContract”合約,代碼文件可以在*contracts*目錄下找到。其中包含了一些基本的Chainlink功能,可以幫助我們深入理解Chainlinked合約是如何工作的。

## 測試

首先,測試合約以確保其一切正常。您可以通過以下命令執行此操作:

npm test

這將在樣本合約上運行各種測試用例,例如創建帶有和不帶LINK代幣的請求,將這些請求發送到oracle合同地址以及測試合同所有權。

*注意:你可能會遇到一些LINK代幣合約的各種編譯警告,這是因為我們用的是最新的Solidity編譯器版本,而不是合約創建時候的編譯器版本,因此我們可以忽略這些警告。LINK代幣合約已經部署,我們只是想這些合約提供給本地測試。

*需要注意的是,每次運行測試之后,我們都重新部署了每一個合約。這是為了我們可以進行真正的單元測試, 我們不想我們的測試依賴于其他測試的輸出。另外,重新部署每個合約需要時間,但這僅用于測試目的,不會影響我們的實際性能運行時間。

現在讓我們來看一下“MyContract”的這些測試用例的更多細節,您可以在*test/MyContract_test.js*下找到。如果您之前使用過Mocha.js,您會發現語法很熟悉。Truffle基于Mocha測試框架,具有智能合約的特有功能。讓我們來看看其中的一些新功能。

定義MyContract合約所使用的變量。注意其中jobId值是演示所用的占位符,不是真正可用的JobId。您可以在這里找到真正可用的JobId。

contract()函數的功能和Mocha中describe()函數實現的功能類似,但它結合了Truffle中的clean-room-feature。在Truffle的文檔中這樣解釋:

- 在每個contract()函數運行之前,您的合約將重新部署到以太坊網絡,其中的測試以原始的合約狀態運行。

- contract()函數提供了可以用來編寫測試的可用帳戶列表。

此外,我們的示例“MyContract”需要來自其他智能合約的輸出。為此,我們將使用artifacts.require()方法,該方法實質上將特定智能合約的輸出作為合同抽象導入。此數據存儲為Truffle可以使用的JSON 二進制對象查看到。閱讀更多有關artifacts.require()如何在這里工作的信息。

助手合約存儲為常量引用,現在我們可以開始創建測試用例。為此,我們需要正確理解關鍵的測試方法,例如*describe(),beforeEach(),it()和context()*。

- *describe()* 允許我們將測試用例組合在一起。它需要兩個參數,第一個是我們的測試組名稱的字符串,第二個是回調函數。這個方法涉及的測試用例是創建請求,完成請求,取消請求以及取回LINK。

- *beforeEach()*在每個單獨的測試范圍之前運行。對于許多測試來說,在運行測試用例之前,必須首先執行一些操作(例如等待鏈LINK的轉賬)。

- *it()*用于單個測試用例。這些用于測試我們在不同狀態下的合約以及明確他們想要完成的任務。你會注意到當我們運行npm test時,每個*it()函數*的參數中的字符串都會輸出為日志,這有助于我們清楚地看到我們的測試時間線。

- *context()*是*describe()*的別名,但是用于合同執行的更具體的狀態。換言之,它提供了另一種更容易閱讀和更有條理的測試方法。

## 寫在最后

Truffle提供了一個功能強大的工具箱,可幫助您的Chainlinked智能合約正確的運行。得益于Mocha.js這樣的流行的且文檔豐富的世界級測試框架,開發人員會非常容易的實現相關的開發工作。使用Truffle boxes,dApp公司能夠輕松地為其開發人員提供有用的示例,幫助發展區塊鏈生態系統。(Chainlink)

關鍵詞: Truffle dApp框架 Chainlinked

精選 導讀

募資55億港元萬物云啟動招股 預計9月29日登陸港交所主板

萬科9月19日早間公告,萬物云當日啟動招股,預計發行價介乎每股47 1港元至52 7港元,預計9月29日登陸港交所主板。按發行1 167億股計算,萬

發布時間: 2022-09-20 10:39
管理   2022-09-20

公募基金二季度持股情況曝光 隱形重倉股多為高端制造業

隨著半年報披露收官,公募基金二季度持股情況曝光。截至今年二季度末,公募基金全市場基金總數為9794只,資產凈值為269454 75億元,同比上

發布時間: 2022-09-02 10:45
資訊   2022-09-02

又有上市公司宣布變賣房產 上市公司粉飾財報動作不斷

再有上市公司宣布變賣房產。四川長虹25日稱,擬以1 66億元的轉讓底價掛牌出售31套房產。今年以來,A股公司出售房產不斷。根據記者不完全統

發布時間: 2022-08-26 09:44
資訊   2022-08-26

16天12連板大港股份回復深交所關注函 股份繼續沖高

回復交易所關注函后,大港股份繼續沖高。8月11日大港股份高開,隨后震蕩走高,接近收盤時觸及漲停,報20 2元 股。值得一提的是,在7月21日

發布時間: 2022-08-12 09:56
資訊   2022-08-12

萬家基金再添第二大股東 中泰證券擬受讓11%基金股權

7月13日,中泰證券發布公告,擬受讓齊河眾鑫投資有限公司(以下簡稱齊河眾鑫)所持有的萬家基金11%的股權,交易雙方共同確定本次交易的標的資

發布時間: 2022-07-14 09:39
管理   2022-07-14

央行連續7日每天30億元逆回購 對債市影響如何?

央行12日再次開展了30億元逆回購操作,中標利率2 10%。這已是央行連續7日每天僅進行30億元的逆回購縮量投放,創下去年1月以來的最低操作規

發布時間: 2022-07-13 09:38
資訊   2022-07-13

美元指數創近20年新高 黃金期貨創出逾9個月新低

由于對美聯儲激進加息的擔憂,美元指數11日大漲近1%創出近20年新高。受此影響,歐美股市、大宗商品均走弱,而黃金期貨創出逾9個月新低。美

發布時間: 2022-07-13 09:36
資訊   2022-07-13

美股三大股指全線下跌 納斯達克跌幅創下記錄以來最大跌幅

今年上半年,美股持續回落。數據顯示,道瓊斯指數上半年下跌15 3%,納斯達克綜合指數下跌29 5%,標普500指數下跌20 6%。其中,納斯達克連續

發布時間: 2022-07-04 09:51
推薦   2022-07-04

融資客熱情回升 兩市融資余額月內增加超344億元

近期A股走強,滬指6月以來上漲4%,融資客熱情明顯回升。數據顯示,截至6月16日,兩市融資余額1 479萬億元,月內增加344 67億元,最近一個半

發布時間: 2022-06-20 09:41
資訊   2022-06-20

4個交易日凈買入超百億元 北向資金持續流入A股市場

北向資金凈流入態勢延續。繼6月15日凈買入133 59億元后,北向資金6月16日凈買入44 52億元。自5月27日至今,除6月13日以外,北向資金累計凈

發布時間: 2022-06-17 09:37
推薦   2022-06-17