2_合约部署

Arbitrum支持标准的EVM合约部署。这意味着标准的Solidity合约能够使用既有的开发者工具就可部署在Arbitrum链上。

要部署合约,先将开发者工具指向Arbitrum链上。虽然这应该比较简单直接,我们还是为一些build系统提供了一些说明,后续还有更多。如果你使用的build系统没有列于此并对其配置有问题,请在Discord上向我们反馈。

Hardhat

要讲现有的hardhat配置直接移植,只需要在hardhat.config.ts中加入Arbitrum RPC url:

  1. module.exports = {
  2. solidity: '0.7.3',
  3. networks: {
  4. arbitrum: {
  5. url: 'https://rinkeby.arbitrum.io/rpc',
  6. gasPrice: 0,
  7. },
  8. },
  9. }

Truffle

移植现有truffle配置:

  1. 首先在工程中添加arb-ethers-web3-bridge

    1. yarn add --dev arb-ethers-web3-bridge
  2. 编辑truffle-config.js中的内容:

  • arb-ethers-web3-bridge 中导入 wrapProvider,并在文件顶端设置mnemonic以及指向Arbitrum聚合器的节点。 ``` const wrapProvider = require(‘arb-ethers-web3-bridge’).wrapProvider const HDWalletProvider = require(‘@truffle/hdwallet-provider’)

const mnemonic = ‘jar deny prosper gasp flush glass core corn alarm treat leg smart’ const arbProviderUrl = ‘http://localhost:8547/

  1. * `module.exports`中添加`arbitrum`网络:
  1. module.exports = {
  2. arbitrum: {
  3. provider: function () {
  4. // return wrapped provider:
  5. return wrapProvider(
  6. new HDWalletProvider(mnemonic, arbProviderUrl)
  7. )
  8. },
  9. network_id: '*',
  10. gasPrice: 0,
  11. },
  12. },
  13. }

```

现在整个truffle工程已经设置完毕,运行migrate以部署合约: truffle migrate --reset --network arbitrum

1_前端集成 3_ArbSys预编译合约