remix-ideでdeployするとcreation of BrandVerification pending...で止まる
解決したいこと
ubuntuでgethと接続した状態でremix-ideを起動し、コードを正常にデプロイしたいです。
解決方法を教えてください。
発生している問題・エラー
ubuntuでgethと接続した状態でremix-ideを起動し、コードをデプロイしたのですが、Deploy & Run TransactionsタグのDeployed Contractsの下に表示されるCurrently you have no contract instances to interact with.は消えず、コンソールにはcreation of BrandVerification pending...状態で止まっています。
該当するソースコード
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract BrandVerification {
struct Product {
string serialNumber;
address[] owners;
}
mapping(string => Product) private products;
// ブランド品を登録
function registerProduct(string memory _serialNumber) public {
require(products[_serialNumber].owners.length == 0, "Product already registered");
products[_serialNumber].serialNumber = _serialNumber;
products[_serialNumber].owners.push(msg.sender);
}
// 真正性を確認
function verifyProduct(string memory _serialNumber) public view returns (bool) {
return products[_serialNumber].owners.length > 0;
}
// 所有権を移転
function transferOwnership(string memory _serialNumber, address newOwner) public {
require(products[_serialNumber].owners.length > 0, "Product not registered");
require(products[_serialNumber].owners[products[_serialNumber].owners.length - 1] == msg.sender, "Not the owner");
products[_serialNumber].owners.push(newOwner);
}
// 流通履歴を取得
function getHistory(string memory _serialNumber) public view returns (address[] memory) {
return products[_serialNumber].owners;
}
}
remix-ideとethereumノードの接続方法
-
ubuntuで端末を立ち上げ、gethを起動
$ geth --networkid "15" --nodiscover --datadir "./" --mine --unlock (アドレス) --allow-insecure-unlock --http --http.addr "127.0.0.1" --http.port "8545" --http.corsdomain "*" console 2>> ./geth.log
-
新たに端末を立ち上げremix-ideを起動
$ docker pull remixproject/remix-ide:latest $ docker run -p 8080:80 remixproject/remix-ide:latest
-
ブラウザ(firefox)で以下を実行
http://localhost:8080 -
remix-ide内のDeploy & Run TransactionsタグのEnvironmentでweb3 providerを選択し、以下を指定
http://127.0.0.1:8545 -
Deploy & Run TransactionsタグのAccountでgethのアカウントが表示されていることから接続はできていると思う
自分で試したこと
gethとsolidityの互換性を保つため、gethのv1.10.25にあわせ、
solc v0.4.0として上記コードをバージョンに合わせて書き換え実行したが、結果は同じ。
0