基于区块链的毕业设计ethcontract-rs – 埃塞俄比亚卢比

本文提供基于区块链的毕业设计国外最新区块链项目源码下载,包括solidity,eth,fabric等blockchain区块链,基于区块链的毕业设计ethcontract-rs – 埃塞俄比亚卢比 是一篇很好的国外资料

ethcontract-rs - 埃塞俄比亚卢比 ethcontract-rs - 埃塞俄比亚卢比 ethcontract-rs - 埃塞俄比亚卢比 ethcontract-rs - 埃塞俄比亚卢比

ethcontract-rs

Crate used for generating code for Ethereum smart contracts. It provides a function procedural macro that generates safe bindings for contract interaction based on the contract ABI.

Getting Started

Add a dependency to the ethcontract crate in your Cargo.toml:

[dependencies] ethcontract = "..."

Then generate a struct for interacting with the smart contract with a type-safe API:

ethcontract::contract!("path/to/truffle/build/contract/Contract.json");

This will generate a new struct ContractName with contract generated methods for interacting with contract functions in a type-safe way.

Minimum Supported Rust Version

The minimum supported Rust version is 1.42.

Generator API

As an alternative to the procedural macro, a generator API is provided for generating contract bindings from build.rs scripts. More information can be found in the ethcontract-generate README.

Running the Examples

In order to run local examples you will additionally need:

  • NodeJS LTS
  • Yarn

For all examples, the smart contracts must first be built:

cd examples/truffle yarn && yarn build

Truffle Examples

Truffle examples rely on the local truffle development server. In a separate terminal run:

cd examples/truffle yarn start

ABI:

The abi example deploys a simple contract and performs various eth_calls to illustrate how Solidity types are mapped to Rust types by ethcontract.

cargo run --example abi

Async/Await:

The async example deploys an ERC20 token and interacts with the contract with various accounts.

cargo run --example async

Manual Deployments:

The deployments example illustrates how the deployments parameter can be specified when generating a contract with the ethcontract::contract! macro. This can be useful for specifying addresses in testing environments that are deterministic but either not included, or inaccurate in the artifact’s networks property (when for example the contract is developed upstream, but a separate testnet deployment wants to be used).

cargo run --example deployments

Events:

The events example illustrates how to listen to logs emitted by smart contract events.

cargo run --example events

Generator API (with build.rs script):

The generator example (actually a separate crate to be able to have a build script) demonstrates how the generator API can be used for creating type-safe bindings to a smart contract with a build.rs build script.

cargo run --package examples-generate

Contract Linking:

The linked example deploys a library and a contract that links to it then makes a method call.

cargo run --example linked

Rinkeby Example

There is a provided example that runs with Rinkeby and Infura. Running this example is a little more involved to run because it requires a private key with funds on Rinkeby (for gas) as well as an Infura project ID in order to connect to a node. Parameters are provided to the Rinkeby example by environment variables:

export PK="private key" export INFURA_PROJECT_ID="Infura project ID" cargo run --example rinkeby

Mainnet Examples

Sources:

This example generates contract bindings from online sources:

  • A verified contract on Etherscan
  • An npmjs contract

It also queries some contract state with Infura. Running this example requires an Infura project ID in order to connect to a node. Parameters are provided to the example by environment variables:

export INFURA_PROJECT_ID="Infura project ID" cargo run --example sources

Past Events:

This example retrieves the entire event history of token OWL contract and prints the total number of events since deployment.

Note the special handling of the tokenOWLProxy contract and how it is cast into a tokenOWL instance using Contract’s with_transaction feature.

export INFURA_PROJECT_ID="Infura project ID" cargo run --example past_events

Sample Contracts Documentation

We added some samples of generated contracts from our sample contract collection gated behind a feature. This feature is only intended to be used for document generation. In order to view the documentation for these contracts you need to first build the contracts and then generate documentation for the crate with the samples feature enabled:

(cd examples/truffle; yarn && yarn build) cargo doc --features samples --open

This will open a browser at the documentation root. Look under the samples module for the sample contracts to get a feel for how the generated types look.


<ethcontract-rs><ethcontract-rs><ethcontract-rs><ethcontract-rs><ethcontract-rs><ethcontract-rs><ethcontract-rs>

用于生成以太坊eth智能合约代码的板条箱。它提供了一个函数过程宏,该宏基于契约ABI为契约交互生成安全绑定。

在您的货物.toml用法:

然后使用类型安全API生成一个用于与智能协定交互的结构:

这将生成一个新的struct ContractName,其中包含以类型安全方式与协定函数交互的协定生成方法。

支持的最小生锈版本为1.42。

作为过程宏的替代方法,提供了一个生成器API,用于从中生成契约绑定构建.rs脚本。更多信息可以在ethcontract generate自述文件中找到。

为了运行本地示例,您还需要:

对于所有示例,必须首先构建智能合约:

Truffle示例依赖于本地Truffle开发服务器。在一个单独的终端运行中:

abi示例部署了一个简单的协定并执行了各种eth_调用,以说明如何通过ethcontract将Solidity类型映射到Rust类型。

这个异步示例部署了一个ERC20令牌,并使用各种帐户与契约进行交互。

部署示例说明了在使用ethcontract::contract生成协定时如何指定deployments参数!宏。这对于在测试环境中指定确定的地址非常有用,但是这些地址要么不包括在工件的networks属性中,要么不准确(例如,当契约是在上游开发的,但是需要使用单独的testnet部署时)。

事件示例说明了如何侦听智能合约事件发出的日志。

生成器示例(实际上是一个单独的机箱,可以有一个构建脚本)演示了如何使用生成器API创建到智能合约的类型安全绑定构建.rs构建脚本。

链接的示例部署一个库和一个链接到它的协定,然后进行方法调用。

提供了一个使用Rinkeby和Infura的示例。运行这个例子要运行得稍微复杂一些,因为它需要一个带有Rinkeby资金的私钥(用于gas)以及Infura项目ID,以便连接到一个节点。参数由环境变量提供给Rinkeby示例:

此示例从联机源生成契约绑定:

它还使用Infura查询某些契约状态。运行此示例需要Infura项目ID才能连接到节点。

请注意tokenOWLProxy契约的特殊处理,以及如何使用contract的with_transaction特性将其强制转换为tokenOWL实例。

我们添加了一些从我们的示例合同集合生成的合同的示例,这些合同被封闭在一个功能之后。此功能仅用于生成文档。为了查看这些合同的文档,您需要先构建合同,然后在启用示例功能的情况下为板条箱生成文档:

这将在文档根目录下打开一个浏览器。在samples模块下查看示例契约,以了解生成的类型的外观。

ethcontract rs

入门

运行示例

生成器API

运行示例

Truffle示例

ABI:

异步/等待:

手动部署:

事件:

生成器API(带构建.rs脚本):

合同链接:

Rinkeby示例

ethcontract rs

Crate used for generating code for Ethereum smart contracts. It provides a function procedural macro that generates safe bindings for contract interaction based on the contract ABI.

入门

用于生成以太坊eth智能合约代码的板条箱。它提供了一个函数过程宏,该宏基于契约ABI为契约交互生成安全绑定。

[dependencies] ethcontract = "..."

在您的货物.toml用法:

ethcontract::contract!("path/to/truffle/build/contract/Contract.json");

然后使用类型安全API生成一个用于与智能协定交互的结构:

运行示例

这将生成一个新的struct ContractName,其中包含以类型安全方式与协定函数交互的协定生成方法。

生成器API

支持的最小生锈版本为1.42。

运行示例

作为过程宏的替代方法,提供了一个生成器API,用于从中生成契约绑定构建.rs脚本。更多信息可以在ethcontract generate自述文件中找到。

  • NodeJS LTS
  • Yarn

为了运行本地示例,您还需要:

cd examples/truffle yarn && yarn build

Truffle示例

对于所有示例,必须首先构建智能合约:

cd examples/truffle yarn start

ABI:

Truffle示例依赖于本地Truffle开发服务器。在一个单独的终端运行中:

cargo run --example abi

异步/等待:

abi示例部署了一个简单的协定并执行了各种eth_调用,以说明如何通过ethcontract将Solidity类型映射到Rust类型。

cargo run --example async

手动部署:

这个异步示例部署了一个ERC20令牌,并使用各种帐户与契约进行交互。

cargo run --example deployments

事件:

部署示例说明了在使用ethcontract::contract生成协定时如何指定deployments参数!宏。这对于在测试环境中指定确定的地址非常有用,但是这些地址要么不包括在工件的networks属性中,要么不准确(例如,当契约是在上游开发的,但是需要使用单独的testnet部署时)。

cargo run --example events

生成器API(带构建.rs脚本):

事件示例说明了如何侦听智能合约事件发出的日志。

cargo run --package examples-generate

合同链接:

生成器示例(实际上是一个单独的机箱,可以有一个构建脚本)演示了如何使用生成器API创建到智能合约的类型安全绑定构建.rs构建脚本。

cargo run --example linked

Rinkeby示例

链接的示例部署一个库和一个链接到它的协定,然后进行方法调用。

export PK="private key" export INFURA_PROJECT_ID="Infura project ID" cargo run --example rinkeby

Mainnet Examples

Sources:

提供了一个使用Rinkeby和Infura的示例。运行这个例子要运行得稍微复杂一些,因为它需要一个带有Rinkeby资金的私钥(用于gas)以及Infura项目ID,以便连接到一个节点。参数由环境变量提供给Rinkeby示例:

  • A verified contract on Etherscan
  • An npmjs contract

此示例从联机源生成契约绑定:

export INFURA_PROJECT_ID="Infura project ID" cargo run --example sources

Past Events:

它还使用Infura查询某些契约状态。运行此示例需要Infura项目ID才能连接到节点。

请注意tokenOWLProxy契约的特殊处理,以及如何使用contract的with_transaction特性将其强制转换为tokenOWL实例。

export INFURA_PROJECT_ID="Infura project ID" cargo run --example past_events

Sample Contracts Documentation

我们添加了一些从我们的示例合同集合生成的合同的示例,这些合同被封闭在一个功能之后。此功能仅用于生成文档。为了查看这些合同的文档,您需要先构建合同,然后在启用示例功能的情况下为板条箱生成文档:

(cd examples/truffle; yarn && yarn build) cargo doc --features samples --open

这将在文档根目录下打开一个浏览器。在samples模块下查看示例契约,以了解生成的类型的外观。

部分转自网络,侵权联系删除区块链源码网

www.interchains.cc

https://www.interchains.cc/17003.html

区块链毕设网(www.interchains.cc)全网最靠谱的原创区块链毕设代做网站 部分资料来自网络,侵权联系删除! 最全最大的区块链源码站 !
区块链知识分享网, 以太坊dapp资源网, 区块链教程, fabric教程下载, 区块链书籍下载, 区块链资料下载, 区块链视频教程下载, 区块链基础教程, 区块链入门教程, 区块链资源 » 基于区块链的毕业设计ethcontract-rs – 埃塞俄比亚卢比

提供最优质的资源集合

立即查看 了解详情