01前言
在之前的技術視點文章中,我們介紹了目前本體主網支持的智能合約體系以及相應的智能合約開發工具SmartX。很多小伙伴都想上手練一練。在本期的本體技術視點中,我們將正式開始講述智能合約語法部分。本體的智能合約API分為7個模塊,分別是Blockchain&BlockAPI、RuntimeAPI、StorageAPI、NativeAPI、UpgradeAPI、ExecutionEngineAPI以及Static&DynamicCallAPI。本期我們將介紹?Blockchain&BlockAPI,這是本體智能合約體系中最基礎的部分。其中,BlockchainAPI支持基本的區塊鏈查詢操作,如獲取當前塊高等;BlockAPI支持基本的區塊查詢操作,如查詢指定區塊交易數等。同時,文末將提供視頻講解。
Gate.io開啟本體ONT挖礦理財用戶每日WING收益發放:據官方公告,Gate.io已經上線ONT鎖倉獲得WING收益DeFi流動性挖礦理財項目,并已開啟每日為用戶發放WING收益,實際理財收益將根據實際收益情況調整分發。當WING流通量滿足上線條件后,Gate.io將上線WING交易。[2020/9/16]
在這之前,小伙伴們可以在本體智能合約開發工具SmartX中新建一個合約,跟著我們進行操作。
02?BlockchainAPI使用方法
智能合約函數的引用與Python的引用如出一轍。開發者可以根據需要引入相應的函數。例如,下面語句引入了獲取當前最新塊高函數GetHeight和獲取區塊頭函數GetHeader。
本體ONT和ONG已上線 UniSwap平臺:9月4日,本體Ontology官方發文宣布,目前ONT和ONG已上線UniSwap平臺,支持以太坊生態中所有類型的DeFi產品。[2020/9/4]
2.1?GetHeight
開發者可以使用GetHeight來獲取當前最新塊高,具體例子如下。在后面的例子中,為了節省空間,我們將省略Main函數,小伙伴在練習的時候可以根據需要加入。
2.2?GetHeader
開發者可以使用GetHeader來獲取區塊頭,參數是某個塊的塊高。具體例子如下:
2.3GetTransactionByHash
動態 | 本體與中國金融認證中心達成合作:據本體官方消息,本體宣布與中國金融認證中心(CFCA)達成合作。CFCA將為本體生態提供網絡身份認證平臺,以基于數字證書的網絡身份認證服務為核心,提供多維度的基于數據的網絡身份認證服務,包括身份證、銀行卡和人臉識別認證服務。[2018/7/3]
開發者可以使用GetTransactionByHash函數通過交易哈希獲取交易。交易哈希以bytearray的格式,作為參數傳入GetTransactionByHash。這個函數的關鍵在于如何轉換將十六進制格式的交易哈希轉變為bytearray格式的交易哈希。我們以16進制格式的交易哈希為例,實現將十六進制格式的交易哈希轉變為bytearray格式的交易哈希。示例哈希如下:
NEO警告:本體沒有出售代幣:剛剛NEO官方推特發布警告稱,本體沒有進行代幣售賣。用戶將會損失以代幣銷售為由發送到NEON錢包的資金。本體現價2.24美元,下跌5.71%。[2018/3/31]
首先,將該交易哈希反序得到:
開發者可以通過SmartX提供的轉換工具HexNumber(littleendian)<-->Number實現這一步。然后,將其轉成bytearray格式:
開發者可以通過SmartX提供的轉換工具String<-->ByteArray實現這一步。最后,將得到的bytearray轉換成相應的字符串:
GetTransactionByHash函數通過交易哈希獲取交易的例子如下:
2.4?GetTransactionHeight
開發者可以使用GetTransactionHeight函數通過交易哈希獲取交易高度。我們還是以上個例子中的哈希為例:
2.5?GetContract
開發者可以使用GetContract函數通過合約哈希獲取合約。其中,合約哈希的轉換過程與上面講到的交易哈希轉換過程一致。
2.6?GetBlock
開發者可以使用GetBlock函數獲取區塊。有兩種方法可以獲取指定區塊:1.通過塊高獲取區塊:
2.通過區塊哈希獲取區塊:
03?BlockAPI使用方法
BlockAPI中可供引用的函數有三個,它們分別是GetTransactions、GetTransactionCount和GetTransactionByIndex。我們依次介紹下這三個函數。
3.1?GetTransactionCount
開發者可以使用GetTransactionCount函數獲取指定區塊的交易數量。
3.2?GetTransactions
開發者可以使用GetTransactions函數獲取獲取指定區塊的所有交易。
3.3GetTransactionByIndex
開發者可以使用GetTransactionByIndex函數獲取指定區塊的指定交易。
04?后記
Blockchain&BlockAPI在智能合約中起到查詢區塊鏈數據和區塊數據的作用,是智能合約最不可缺少的一部分。在后面的技術視點中,我們將討論如何使用其它API,探討它們和本體區塊鏈的交互。本期講述的所有語法部分我們提供了中文視頻,小伙伴們可以觀看和學習。
視頻觀看鏈接:https://v.qq.com/x/page/x0822d6u8xl.html
*詳細代碼信息可能顯示不全,可參考:https://mp.weixin.qq.com/s/t1sX3aDi5WVTthnc4sMHkQ
引介:以太坊為什么是第二代區塊鏈?2017年末,當我開始了解區塊鏈的時候,我注意到以太坊非常受關注。我總是看到別人說:比特幣是第一代區塊鏈,而以太坊是第二代區塊鏈.
1900/1/1 0:00:00自稱為比特幣創造者中本聰的CraigWright請求法庭將其上訴截止日期推遲14天。據Wright向佛羅里達州法院提交的文件顯示,其正在尋求更多的時間來質疑法官在上周對他做出的判決.
1900/1/1 0:00:001.點擊右上角資產,點擊進入資產管理。?2.選擇需提現的幣種,在這里以GGC為例,點擊提現。3.輸入提幣地址、提取的數量,點擊提幣.
1900/1/1 0:00:00尊敬的MXC用戶: 根據MXC平臺第二期“點亮計劃”結果顯示,點亮人數已滿足MXC平臺的考察要求.
1900/1/1 0:00:00據LongHash分析顯示,位于亞非、南美洲的很多第三世界國家對數字貨幣表現出了愈發濃厚的興趣,一些知名項目方已經發現了加密貨幣在第三世界國家的巨大潛力,紛紛在此布局.
1900/1/1 0:00:00尊敬的EXX用戶: 月圓中秋,情系EXX,為慶祝VNS全球各國黑卡社區開始建立及城市節點火熱招募,EXX平臺攜手VNS開啟交易大賽,參與活動可瓜分20萬VNS.
1900/1/1 0:00:00