Arbitrum支持标准的EVM合约部署。这意味着标准的Solidity合约能够使用既有的开发者工具就可部署在Arbitrum链上。
要部署合约,先将开发者工具指向Arbitrum链上。虽然这应该比较简单直接,我们还是为一些build系统提供了一些说明,后续还有更多。如果你使用的build系统没有列于此并对其配置有问题,请在Discord上向我们反馈。
要讲现有的hardhat配置直接移植,只需要在hardhat.config.ts
中加入Arbitrum RPC url:
module.exports = {
solidity: '0.7.3',
networks: {
arbitrum: {
url: 'https://rinkeby.arbitrum.io/rpc',
gasPrice: 0,
},
},
}
请参考宠物商店案例。
移植现有truffle配置:
- 首先在工程中添加
arb-ethers-web3-bridge
:
yarn add --dev arb-ethers-web3-bridge
- 编辑
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/'
- 在
module.exports
中添加arbitrum
网络:
module.exports = {
arbitrum: {
provider: function () {
return new HDWalletProvider(mnemonic, arbProviderUrl)
)
},
network_id: '*',
},
},
}
现在整个truffle工程已经设置完毕,运行migrate以部署合约:
truffle migrate --reset --network arbitrum
对于版本Truffle低于 0.5.x, 还需要一下操作:
-
在truffle-config.js上从 arb-ethers-web3-bridge 导入 wraProvider
const wrapProvider = require('arb-ethers-web3-bridge').wrapProvider
-
返回 wrappedProver
module.exports = { arbitrum: { provider: function () { // return wrapped provider: return wrapProvider( new HDWalletProvider(mnemonic, arbProviderUrl) ) }, network_id: '*', }, }, }
← 前端集成
→ 有用的地址