本文へスキップ
このページは英語からの機械翻訳を使用しており、誤りや不明瞭な表現が含まれている可能性があります。最も正確な情報については、オリジナルの英語版をご覧ください。頻繁な更新のため、一部のコンテンツはオリジナルの英語になっている可能性があります。Crowdinでの取り組みに参加して、このページの翻訳改善にご協力ください。 (Crowdin translation page, Contributing guide)

読む

スマートコントラクトの関数は、RPC API「Call」を使って呼び出すことができる。 ここで呼び出せるのは、コントラクトのステートを変更しないビュー関数に限られる。

Web3jとkaiaライブラリ(web3j-ext)から必要なクラスをインポートする。

Web3jを使用してKaiaブロックチェーンに接続し、URLを指定する。

秘密鍵を使ってKlayCredentialsを作成する。

contractのアドレスを指定する。

取引に必要なガス価格とガスの上限を設定する。

固定ガス価格ガス制限を持つガスプロバイダーを作成する。

コンタクトアドレスWeb3jインスタンス、*認証情報**、および**ガスプロバイダー**を使用して、契約をロードします。 このインスタンスを通じて、契約の読み書きができる。

コントラクトの counter.number().send() 関数を呼び出し、格納されている値を取得する。

ReadContractExample.java

package org.web3j.example.contracts;
import java.math.BigInteger;
import org.web3j.crypto.KlayCredentials;
import org.web3j.tx.response.PollingTransactionReceiptProcessor;
import org.web3j.tx.response.TransactionReceiptProcessor;
import org.web3j.example.keySample;
import org.web3j.protocol.http.HttpService;
import org.web3j.protocol.kaia.Web3j;
import org.web3j.tx.gas.StaticGasProvider;
public class ReadContractExample {
/**
* @throws Exception
*
*/
public static void run() throws Exception {
Web3j web3j = Web3j.build(new HttpService(keySample.BAOBAB_URL));
KlayCredentials credentials = KlayCredentials.create(keySample.LEGACY_KEY_privkey);
String contractAddr = "0x95Be48607498109030592C08aDC9577c7C2dD505";
BigInteger GAS_PRICE = BigInteger.valueOf(50000000000L);
BigInteger GAS_LIMIT = BigInteger.valueOf(6721950);
StaticGasProvider gasProvider = new StaticGasProvider(GAS_PRICE, GAS_LIMIT);
Counter counter = Counter.load(contractAddr, web3j, credentials.convertToCredentials(), gasProvider);
System.out.println("Contract Call(number) Result : " + counter.number().send());
}
}

output

❯ java ReadContractExample.java
契約呼び出し(番号) 結果 : 297

ページを改善してください。