Web3js

創建大量不同地址的合約

  • April 20, 2019

我正在開發一個性能測試,我在其中檢查網關在區塊鏈中查找契約所花費的時間。我正在使用 ganache-cli 來模擬區塊鏈,我的疑問是:

  1. 是否可以使用 truffle 一次生成 100 個合約?這些契約中的每一個應該具有不同的名稱還是都可以具有相同的名稱?

2)當我使用該truffle migrate命令時,我可以在執行 ganache 的終端中獲取每個合約的地址。如何使用 web3js 獲取我知道地址的契約?

在區塊鏈上沒有合約名稱之類的東西。部署的合約只有地址、餘額、nonce、字節碼和儲存。

您可以在一個交易中創建多個合約,如下所示:

contract Foo {
 // Some stuff to be deployed multiple times
}

contract Bar {
 event FooAddress (address indexed addr);

 // Deploy n instances of Foo contract and then self destruct
 constructor (uint256 n) public {
   while (n --> 0) {
     emit FooAddress (address (new Foo ()));
   }
   selfdestruct (msg.sender);
 }
}

FooAddress您可以通過從合約中查詢事件來獲取已部署合約的地址Bar

引用自:https://ethereum.stackexchange.com/questions/69906