介绍
eth-contract-signed-tx-deployer 是一个使用 TypeScript 编写的 npm 包,可以帮助开发人员在以太坊区块链上完成合约的部署,并且通过签名的交易保证合约的安全性。本文将介绍该包的使用方法。
安装
安装该包的命令如下:
npm install eth-contract-signed-tx-deployer
使用方法
参考代码如下:
-- -------------------- ---- ------- ------ - --------- ---------- ------ - ---- --------- ------ - --------- ---------------- - ---- ---------------------------------- ----- -------- ---------------- - -- --- -------- - --- ------ ----- -------- - --- ----------------------------------- ------------------- ----- ------ - --- -------------------------- ---------- -- --- -------- ----- -------- - --- ---------------- ---------- -- ---- --- - -------- ----- ----------- - ------ ----- -------- - ------- -- ---- ----- --------- -------- - ----- ---------------------------- --------- --- - --------- ------- --- --------------------- -------- -- -------- ---------------------- -
以上代码首先导入了 "ethers" 和 "eth-contract-signed-tx-deployer" 两个模块,然后使用 InfuraProvider 和 Wallet 分别创建了以太坊区块链节点连接实例和钱包实例。注意:对于很多开发者来说,“YOUR_INFURA_KEY”和“YOUR_PRIVATE_KEY”需要通过申请来获得。
接着,通过 Deployer 类实例化了一个 deployer 对象。之后,根据合约的 ABI 和 bytecode,使用 deployer.deploy
方法来部署合约。其中, gasLimit
参数是可选的,指定了交易所使用的 gas 上限,通常设置为 6000000 就够用了。
最后,通过 console.log
方法输出合约地址,并结束部署。
深入解析
- signed-tx 的作用是什么?
signed-tx 签名的交易在以太坊网络中属于一种保证交易是合法且安全的方式。每一个交易都会被签名,并且签名者必须要有名义上的交易内容的控制权限。当交易上链后,交易记录会被永久的保存在区块链上,因此其他节点可以用公钥对交易进行验证,从而保证它的完整性和安全性。
- deployer 是如何工作的?
deployer 类是 eth-contract-signed-tx-deployer 包的核心,它包含下面几个主要方法:
deploy
: 部署合约,该方法会创建一个签名的交易来执行部署所需要的操作,并在交易上链后返回新部署合约的实例。sendTransaction
: 发送交易,该方法会创建一个签名的交易,该交易会在以太坊网络上被广播,如果成功,返回该交易的哈希值。getTransactionReceipt
: 获取交易收据,该方法通过交易号来获取交易收据,返回该交易的详细信息,比如交易状态和 gas 消耗等。
结语
eth-contract-signed-tx-deployer 包将合约的部署和签名交易的处理打包在了一起,大大简化了合约的部署工作,提高了合约的安全性。本文介绍了这个 npm 包的用法和原理,推荐大家在开发以太坊 DAPP 时使用该包来进行合约部署和交易的处理。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60065f8b238a385564ab6e36