链资讯 链资讯
Ctrl+D收藏链资讯

Rust智能合约养成日记: 合约部署,函数调用,及explorer使用

作者:

时间:

往期回顾:

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将是一个不错的选择。

Trust Wallet宣布与Instagram NFT达成合作伙伴关系:金色财经报道,加密钱包服务Trust Wallet宣布已经与科技巨头Meta合作,将在Instagram上支持以太坊和Polygon NFT。根据Trust Wallet钱包官方社交媒体披露,他们是本次Instagram NFT项目的“主合作伙伴钱包”(main partner wallet)。据此前消息,Meta已经宣布与Coinbase Wallet和Dapper Labs整合并将在100多个国家/地区推出NFT。(web3wire)[2022/8/7 12:07:37]

2.NEARCLI安装

NEARCLI(CommandLineInterface)是一个NodeJS命令行接口,它底层利用near-api-js连接到上述所介绍的网络中,并与之交互。因此在安装之前,我们需要首先安装npm,随后我们将在Linux中利用npm执行如下安装命令安装NEARCLI。

$sudonpminstall-gnear-cli?

执行如下命令可查看NEARCLI的安装版本,并检查是否安装成功。

$near--version

3.在TestNet中部署合约

Negentropy Capital联合BikeRush向Boring Games Studio投资200万美元:6月6日消息,Negentropy Capital 联合 Ride-to-Earn 项目 BikeRush 向新加坡游戏工作室 Boring Games Studio 投资 200 万美元,将共同打造 P2E 策略卡牌和足球经营类游戏,同时近期将推出的 HeroRush 卡牌策略游戏将融合 BikeRush 已有的 Token 经济模型,持续扩大 BikeRush 的 Web3 正向外部性生态系统。[2022/6/6 4:06:34]

3.1.注册TestNet账户

新用户可在https://wallet.testnet.near.org页面中注册新的TestNet钱包,只需要输入用户名即完成注册,例如statusmessage.testnet。

随后在https://explorer.testnet.near.org中,我们可以搜索并查看有关TestNet中该账户的有关信息,如下所示:

Trusted computing将开展NFT相关业务:据官方消息,Trusted computing(TCP)宣布在NFT领域进行多项开发,综合数据隐私属性推出NFT市场平台 、NFT挖矿 、NFT生成工具等。[2021/10/22 20:49:30]

在TestNet中,每一个新建账户中将含有200?的原生余额。

3.2.在NEARCLI中登录该账户

由于我们已经安装NEARCLI,且已申请了NEARTestNet中的用户账户。下面可以尝试在NAERCLI中登录该账户:

$nearlogin

随着上述命令的执行,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'?}

TrustBase首批Grant基金正式推出,Grant申请面向全球开放:据官方消息,5月14日,TrustBase Grant首批20万美元资助金到位,地址正式对外公布。TrustBase Grant首批基金将持续扩充到100万美元,每一个获得Grant的项目可以得到最高价值30000美元的资助。现在TrustBase Grant申请已面向全球开放,欢迎更多的开发者和团队申请Grant,为TrustBase生态系统增加具有价值的技术搭建,帮助增强 Polkadot提供高级功能,扩展Web 3.0系统。

TrustBase Grant由Subscript技术社区发起,HECO生态战略合作支持,TrustBase基金会提供百万资金支持,每个通过Grant的项目将获得资金、技术和生态的支持。在初期,TrustBase将在HECO建立Pool,专门为通过Grant项目提供资产应用场景。[2021/5/15 22:06:18]

3.4.合约编译与部署

在将合约部署之前,我们首先需要对合约进行编译,如下命令可利用cargo编译得到具体的WASM文件status_message.wasm.它通常位于项目的target/wasm32-unknown-unknown/release/目录下。

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

TrustWallet以太坊报价疑似出现问题:加密货币钱包软件TrustWallet以太坊报价疑似出现问题,报价突破3800美元,而以太坊现价在3500美元左右(金十)[2021/5/7 21:35:27]

同时,我们可以给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将主要从安全的角度,向大家进一步展示如何编写一个安全的智能合约。

标签:USTCOINOINCOItrustwallet怎么购买ParallelCoinBobcoinnewyorkcoin

欧易交易所app下载热门资讯
区块链:区块链权限专栏 | 谁允许你访问了?_BOOK

作为一种去中心化的分布式系统,区块链系统在生产环境中会受到网络条件、节点规模、监管政策等多方面因素的影响,因此系统需要解决运维与合规问题,以保证分布式系统线上运行的安全与稳定.

COIN:纽约市当选市长:将致力于使纽约市更“加密友好”_ParallelCoin

据TheBlock消息,近日在美国纽约市市长竞选中胜出的EricAdams表示,他希望使纽约市成为“加密友好城市”,并注意到最近迈阿密的CityCoins项目取得了成功.

COI:巴比特晚间要闻一览_OIN

1.宾夕法尼亚大学沃顿商学院与Coinbase合作,接受加密货币支付其在线区块链课程费用2.FATF发布加密货币最新监管指南.

NEAR:Diem回应美国参议员致信:Diem不是Facebook,与Novi试点无关_ACE

美国参议院银行委员会的五位民主党参议员在10月19日致信Facebook首席执行官MarkZuckerburg,呼吁停止推出Diem和Novi.

VAS:以太坊基金会等团队推出追踪“Sign-In with Ethereum”进展的网站login.xyz_HETH价格

巴比特讯,10月19日,以太坊基金会、以太坊域名系统ENS、数字身份认证公司Spruce共同推出追踪“Sign-InwithEthereum”进展的网站login.xyz.

加密货币:FATF发布终版加密货币指南,包括对DeFi和NFT进行澄清_VAS

本文来自The?Block,原文作者:AislinnKeelyOdaily星球日报译者?|念银思唐摘要:-金融行动特别工作组今天向公众发布了最终确定的加密货币指南.