Skip to content

Latest commit

 

History

History
89 lines (54 loc) · 2.37 KB

前端集成.md

File metadata and controls

89 lines (54 loc) · 2.37 KB

前端集成

Arbitrum适用的工具集能让以太坊web开发者的前后端集成无缝衔接。

Arbitrum节点支持以太坊 JSON-RPC API;因此,主流的与以太坊通信的以太坊库也都能用来和Arbitrum通信,几乎不需要任何修改。

对于以太坊/Arbitrum『桥接』功能,也就是L1以太坊链于L2Arbitrum链之间的通信功能(如充值或提款等),我们提供了自己的库。

案例演示

请参考我们的教程的代码仓库获取客户端集成案例。

Arbitrum集成

Ethers.js

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.js

相似地,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')

以太坊/Arbitrum桥接

可以通过arb-ts库中的方法实现桥接,或者也可以直接连接至相关的合约。

  1. 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)

安全注意事项

合约部署