Rust 和 Elixir 如何读取以太坊和其他 EVM 智能合约:函数式编程和区块链

Rust 和 Elixir 如何读取以太坊和其他 EVM 智能合约:函数式编程和区块链

未标题-3

图片

本系列将重点介绍两种函数式编程语言:Rust&Elixir。本篇分享函数式编程的思想和实践。

在这篇文章中将展示Elixir&Rust读取以太坊智能合约的功能。重要的是,该程序不仅在以太坊上工作,而且还在任何支持EVM的区块链上工作,例如,Polkadot上的Moonbeam !@_@

0x01 Ethereumex & ExABI

我更喜欢 Elixir 的两个存储库是 Ethereumex:用于以太坊区块链的 Elixir JSON-RPC 客户端。

ExABI:Solidity的应用程序二进制接口(ABI)描述了如何将二进制数据转换为Solidity编程语言能够理解的类型。

ABI 小贴士:

ABI(应用程序二进制接口)是计算机科学中两个程序模块之间的接口。

它与API(应用程序接口)非常相似,API是代码接口的可读表示形式。ABI定义了用于与二进制合约交互的方法和结构,就像API那样,只是在更低的层次上。

.abi文件包含了json格式的函数接口和事件的描述。

这是 HelloWorld.sol 的示例 ABI:

[{
 "constant": true,
 "inputs": [],
 "name": "get",
 "outputs": [{
     "name": "",
     "type": "string"
   }
 ],
 "payable": false,
 "stateMutability": "view",
 "type": "function"
}]

Ethereumex 的配置

首先,让我们将 Ethereumex 添加到 mix.exs 中的 depsand 应用领域!

# mix.exs:
def application do
  [
    mod: {TaiShang.Application, []},
    extra_applications: [:logger, :runtime_tools, :ethereumex]
  ]
end
……
defp deps do
	[
		 {:ethereumex, "~> 0.7.0"}
	]
end

然后,在config/config.exs中。将以太坊协议主机参数添加到配置文件中:

# config.exs
config :ethereumex,
  url: "http://localhost:8545" # node url

Tx结构

在 Elixir 中显示

通过代码很容易理解Elixir中的Struct。<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值