質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Ethereum

Ethereum(イーサリアム)は、ビットコインに次いで時価総額が大きい仮想通貨もしくはそのブロックチェーン技術を指します。DApps やスマート・コントラクトの構築を目的としたプラットフォームであり、OSSで開発されています。

Q&A

0回答

554閲覧

web3.jsでSolidityで書いたcontractのmethodをcallして値を取得する方法を教えてください

DeepRoastBeans

総合スコア79

Ethereum

Ethereum(イーサリアム)は、ビットコインに次いで時価総額が大きい仮想通貨もしくはそのブロックチェーン技術を指します。DApps やスマート・コントラクトの構築を目的としたプラットフォームであり、OSSで開発されています。

0グッド

0クリップ

投稿2022/01/10 02:26

以下のcontaract をropstenネットワークにデプロイしました。そして、このコントラクトをweb3.jsで呼び出そうとしているのですが、web3.jsでcontractのメソッドを呼び出して値を取得する方法がわかりません。

solidity

1pragma solidity >= 0.4.0 < 0.7.0; 2 3contract Practice { 4 5 struct Client { 6 string name; 7 string gender; 8 uint256 weight; 9 uint256 height; 10 } 11 Client[] public clients; 12 13 function register(string memory _name, string memory _gender, uint256 _weight, uint256 _height) public { 14 clients.push(Client(_name, _gender, _weight, _height)); 15 } 16 17 function excesise() public view returns (uint256 newWeight){ 18 newWeight = clients[0].weight - 2; 19 return newWeight; 20 } 21 22}

index.html

javascript

1<script src="https://cdn.jsdelivr.net/gh/ethereum/web3.js/dist/web3.min.js"></script> 2 <script> 3 const web3 = new Web3(new Web3.providers.HttpProvider("https://ropsten.infura.io/v3/${id}")); 4 const address = "${contractAddress}"; 5 const abi = [${ABI}] 6 7 const contract = new web3.eth.Contract(abi, address); 8 contract.methods.register("tanaka", "", 65, 175); 9 const result = contract.methods.excesise.call(); 10 console.log(result); 11 </script>

上記を実行したところ、consoleには以下のように出力されます。本当は63と表示して欲しいです。
{arguments: Array(0), call: ƒ, send: ƒ, encodeABI: ƒ, estimateGas: ƒ, …}

contractをインスタンスを作った後、メソッドをcallして返却された値を取得するにはどうしたら良いのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問