Arbitrum适用的工具集能让以太坊web开发者的前后端集成无缝衔接。
Arbitrum节点支持以太坊 JSON-RPC API;因此,主流的与以太坊通信的以太坊库也都能用来和Arbitrum通信,几乎不需要任何修改。
对于以太坊/Arbitrum『桥接』功能,也就是L1以太坊链于L2Arbitrum链之间的通信功能(如充值或提款等),我们提供了自己的库。
请参考我们的教程的代码仓库获取客户端集成案例。
Ether-js与Arbitrum链的通信是与在以太坊上完全一致的(见文档);只需要将其provider指向Arbitrum节点并初始化即可。
例如,通过已经通过自定义RPC URL连接到Arbitrum节点的Metamask:
import * as ethers from 'ethers'
const arbProvider = new ethers.providers.Web3Provider(window.ethereum)
或者通过Arbitrum节点URL直接初始化provider
import * as ethers from 'ethers'
const arbProvider = new ethers.providers.JsonRpcProvider(
'http://ArbNodeUrl.com'
)
相似地,Web3 provider也可以直接通过Arbitrum节点url初始化: https://web3js.readthedocs.io/en/v1.2.11/index.html
import * as Web3 from 'web3'
var arbWeb3Provider = new Web3('http://ArbNodeUrl.com')
可以通过arb-ts
库中的方法实现桥接,或者也可以直接连接至相关的合约。
- arb-ts 安装:
yarn add arb-ts ethers-js
使用(Ethers-js wallets/providers):
import { providers, Wallet } from 'ethers'
import { Bridge } from 'arb-ts'
const l1Provider = new providers.JsonRpcProvider('http://EthNodeUrl.com')
const l2Provider = new providers.JsonRpcProvider('http://ArbNodeUrl.com')
const l1Signer = new Wallet('0xmyprivatekey!!', l1Provider)
const l2Signer = new Wallet('0xmyprivatekey!!', l2Provider)
const bridge = new Bridge(
'0xL1EthErc20BridgeAddress',
'0xl2ArbTokenBridgeAddress',
l1Signer,
l2Signer
)
请参考library文档或tests用例。
(请注意,老的arb-provider-ethers
已经过期;推荐使用arb-ts)
← 安全注意事项
→ 合约部署