買以太坊 買以太坊
Ctrl+D 買以太坊
ads
首頁 > 幣安幣 > Info

Rust智能合約養成日記: 合約部署,函數調用,及explorer使用

Author:

Time:1900/1/1 0:00:00

往期回顧:

Rust智能合約養成日記合約狀態數據定義與方法實現Rust智能合約養成日記編寫Rust智能合約單元測試在本期Rust智能合約開發Blog中,BlockSec將為大家介紹如何將一個簡單的示例智能合約部署至NEAR測試網絡(TestNet)中,執行合約,并查詢合約的執行結果。

當合約的開發者們實現了合約的主要邏輯,進行了單元測試后,開發者可將該合約項目編譯成WASM字節碼,部署到NEAR的測試鏈上,為最后部署到主網(MainNet)做準備。

1.NEAR網絡介紹

NEARProtocol作為一種協議,意味著可以存在有基于該協議的多種獨立網絡。NEAR協議所制定的規范與標準NEARProtocolSpecificationsandStandards指明了基于NEAR協議的不同鏈,其創世區塊配置GenesisConfig中chain_id各不相同。

我們常用的主要有如下三種網絡:

TestNet每一個智能合約項目最終都需要在區塊鏈網絡上運行,以實現項目的功能。然而,對于一個新項目來說,項目團隊往往會先將項目部署在測試網之后,開發團隊可以選擇將該合約正式地部署至主網中。LocalNetLocalNet不同于TestNet。LocalNet運行于本地,因此部署在該鏈上的合約與交易數據均不向外部網絡公開。如果在合約項目部署至TestNet或MainNet之前,開發者不希望泄漏任何該項目相關的重要信息,LocalNet將是一個不錯的選擇。

DWF Labs向Crust Network投資七位數資金:7月10日消息,去中心化存儲方案Crust Network宣布,已獲得DWF Labs的七位數資金。新資金將使Crust Network能夠進一步增強其基礎設施并擴大其在去中心化存儲領域的業務。Crust Network表示將于7月17日推出EVM存儲服務,為基于EVM的區塊鏈提供去中心化存儲解決方案。[2023/7/10 10:45:51]

2.NEARCLI安裝

NEARCLI(CommandLineInterface)是一個NodeJS命令行接口,它底層利用near-api-js連接到上述所介紹的網絡中,并與之交互。因此在安裝之前,我們需要首先安裝npm,隨后我們將在Linux中利用npm執行如下安裝命令安裝NEARCLI。

$sudonpminstall-gnear-cli?

執行如下命令可查看NEARCLI的安裝版本,并檢查是否安裝成功。

$near--version

3.在TestNet中部署合約

3.1.注冊TestNet賬戶

新用戶可在https://wallet.testnet.near.org頁面中注冊新的TestNet錢包,只需要輸入用戶名即完成注冊,例如statusmessage.testnet。

質押解決方案Chorus One將為年底前通過OPUS質押以太坊的用戶提供保險:6月29日消息,質押解決方案 Chorus One 于 DeFi 保險協議 Nexus Mutual 合作,為以太坊上的質押者提供保險,Chorus One 將為所有通過 OPUS(其面向機構的多鏈質押 API)質押以太坊的用戶提供基礎覆蓋,直至今年年底。[2023/6/29 22:08:59]

隨后在https://explorer.testnet.near.org中,我們可以搜索并查看有關TestNet中該賬戶的有關信息,如下所示:

在TestNet中,每一個新建賬戶中將含有200?的原生余額。

3.2.在NEARCLI中登錄該賬戶

由于我們已經安裝NEARCLI,且已申請了NEARTestNet中的用戶賬戶。下面可以嘗試在NAERCLI中登錄該賬戶:

$nearlogin

加密支付公司Utrust獲得葡萄牙央行的營業牌照:3月17日消息,Utrust聯合創始人兼首席戰略官Nuno Correia表示,總部位于葡萄牙的加密支付公司Utrust已獲得葡萄牙央行 (Banco de Portugal)頒發的牌照,可以作為虛擬資產服務運營商提供服務。Nuno Correia稱,Utrust是迄今為止唯一獲得葡萄牙銀行授權的全類別牌照。該牌照允許公司在法定資產和數字資產之間以及數字資產之間提供交易服務。(CoinDesk)[2022/3/17 14:01:34]

隨著上述命令的執行,NEARCLI將喚起一個鏈接,并需要用戶手動點擊登陸上述statusmessage.testnet賬戶。

3.3.查看賬戶相關信息

同時,我們可以通過NEARCLI查詢特定賬戶的相關信息

$nearstatestatusmessage.testnetAccountstatusmessage.testnet{amount:'199999959035075000000000000',block_hash:'8iomNEFNa4LQB54ehTPBGu8bBfotistoWrBcYJfxm8vA',block_height:68318068,code_hash:'11111111111111111111111111111111',locked:'0',storage_paid_at:0,storage_usage:264,formattedAmount:'199.999959035075'?}

美國法官稱加密騙局經營者John Michael Caruso必須繼續被拘留:根據法官Michelle H Burns 4月8日簽署的命令,欺詐性加密貨幣計劃Zima Digital Assets運營者John Michael Caruso關于重啟拘留聽證會的緊急動議被駁回。法院認為,被告沒有提供新的資料可以改變先前關于他應被拘留候審的裁決。

根據5月13日簽署的命令,法官John Tuchi同意此前的裁決,即Caruso必須繼續被拘留。新提供的任何信息都與法院權衡第3142(f)條所要求的內容無關,也不影響任何釋放條件是否能合理地確保Caruso今后出庭。COVID-19的影響與這個問題毫無關系。換言之,如果Burns法官至少以壓倒性優勢認定被告存在無法解決的逃跑風險,則疾病的出現及其對被告的潛在影響不會改變該風險或解決該風險的能力。(Financefeeds)[2020/5/14]

3.4.合約編譯與部署

在將合約部署之前,我們首先需要對合約進行編譯,如下命令可利用cargo編譯得到具體的WASM文件status_message.wasm.它通常位于項目的target/wasm32-unknown-unknown/release/目錄下。

$RUSTFLAGS='-Clink-arg=-s'cargo+stablebuild--targetwasm32-unknown-unknown--release

SPDR Gold Trust持倉較上日增加5.85噸 當前持倉量為1081.65噸:全球最大黃金ETF--SPDR Gold Trust持倉較上日增加5.85噸,當前持倉量為1081.65噸;全球最大白銀ETF--iShares Silver Trust持倉較上日增加144.98噸,當前持倉量為12994.58噸。[2020/5/9]

同時,我們可以給statusmessage.testnet創建一個子賬戶,名為contract01.statusmessage.testnet,用于合約的部署

$cdtarget/wasm32-unknown-unknown/release$exportMASTER_ACCOUNT=statusmessage.testnet$nearcreate-accountcontract01.$MASTER_ACCOUNT?????????????--initialBalance10?????????????--masterAccount$MASTER_ACCOUNTAccountcontract01.statusmessage.testnetfornetwork"testnet"wascreated.

接著我們便可以使用neardeploy命令來幫助我們部署該合約。

$neardeploy--accountIdcontract01.$MASTER_ACCOUNT\????????????--wasmFilestatus_message.wasm

若合約部署成功,我們可以獲得如下信息:

Startingdeployment.Accountid:contract01.statusmessage.testnet,node:(https://rpc.testnet.near.org),helper:(https://helper.testnet.near.org),file:status_message.wasmTransactionId4oDYA8wPLJuKwDumJxEGubeJBA9Ep13MLXSf34q9ydRmToseethetransactioninthetransactionexplorer,pleaseopenthisurlinyourbrowser(https://explorer.testnet.near.org/transactions/4oDYA8wPLJuKwDumJxEGubeJBA9Ep13MLXSf34q9ydRm)Donedeployingtocontract01.statusmessage.testnet

3.5調用合約函數

當我們成功部署合約至TestNet后,部署該合約的賬戶contract01.statusmessage.testnet,即為該合約的地址。為驗證TestNet中StatusMessage合約是否能夠正常運行。我們可以調用set_status來設定合約內置的屬性。

$nearcall--accountId$MASTER_ACCOUNT\???contract01.$MASTER\_ACCOUNTset\_status'{"message":"Hi!2021"}'

如下是調用該合約中函數set_status返回的信息

Schedulingacall:contract01.statusmessage.testnet.set_status({"message":"Hi!2021"})TransactTransactionIdE9dsw8H9ztDN18DDvXKTBPvBLWHew7TtuWsLgg6uvesNToseethetransactioninthetransactionexplorer,pleaseopenthisurlinyourbrowser(https://explorer.testnet.near.org/transactions/E9dsw8H9ztDN18DDvXKTBPvBLWHew7TtuWsLgg6uvesN)''

可見該筆StatusMessage合約函數調用交易能夠正常執行,并返回了具體的TransactionID,即E9dsw8H9ztDN18DDvXKTBPvBLWHew7TtuWsLgg6uvesN

3.6交易查詢

NEAR為社區提供了一個數據瀏覽查詢平臺NEARExplorer。用戶可以在該平臺中搜索指定網絡中的賬戶ID,交易哈希,交易區塊等實時鏈上信息。

利用該筆交易的ID可以在NEARExplorer查詢具體的交易細節。https://explorer.testnet.near.org/transactions/E9dsw8H9ztDN18DDvXKTBPvBLWHew7TtuWsLgg6uvesN

本期總結和預告

這一期中我們詳細的介紹了如何將一個智能合約編譯,并且部署到測試鏈上,接著如何調用指定的合約中的函數,并且通過explorer查詢特定交易的狀態。通過前三期的Rust智能合約養成日記,相信同學們大概知道如何從頭開始寫一個簡單的合約,并且將其部署。從下一期開始BlockSec將主要從安全的角度,向大家進一步展示如何編寫一個安全的智能合約。

Tags:NETNEARESTTESTVoxel X Network為啥near幣一直跌Stay In Destiny WorldTESTA

幣安幣
加密貨幣:監管機構正在對加密貨幣采取行動:數字身份是解決方案嗎?_加密貨幣持續下跌

監管機構正在逼近。為了滿足機構合規部門的要求,將市場職能拆分為各自的部分——托管、聚合器和主經紀商業務——是一回事。讓監管機構滿意是另一回事.

1900/1/1 0:00:00
ETF:外媒:近期或有5只比特幣期貨ETF準備推出,本周可能會推出2只_metfi幣怎么樣

據TheBlock10月18日報道,美國第一個比特幣交易所交易基金預計將在當地時間周二推出,近期將有大約5只比特幣期貨ETF準備推出,本周可能會推出2只.

1900/1/1 0:00:00
DIE:Diem回應美國參議員致信:Diem不是Facebook,與Novi試點無關_VSPACEX

美國參議院銀行委員會的五位民主黨參議員在10月19日致信Facebook首席執行官MarkZuckerburg,呼吁停止推出Diem和Novi.

1900/1/1 0:00:00
AVE:關停潮過后,NFT市場正在發生這些變化_NFT SolPad

從去年到現在,關于NFT的探討已經很多了,人們對它的認知也逐漸變得豐滿起來,行業也正漸漸地從Fomo式激進轉向理性態度,而在915后,NFT可能是唯一還能夠在國內市場有一定聲音和活躍度的板塊.

1900/1/1 0:00:00
OUT:YouTube頻道遭黑客入侵并更名,用于加密騙局直播_YOU

谷歌的威脅分析小組(TAG)分享的一份新報告強調了針對YouTube創作者的正在進行的釣魚運動,這通常導致頻道被破壞和出售,用于傳播加密貨幣詐騙.

1900/1/1 0:00:00
BOOK:Diem回應美國參議員質疑:Diem不是Facebook,與Novi試點無關_BOO

據Cointelegraph消息,針對美國參議員呼吁Facebook停止推出Diem和Novi一事,Diem回應稱,參議員們誤解了“Diem和Facebook之間的關系”.

1900/1/1 0:00:00
ads