Lesson 6 capture3 コントラクトへのアクセス
Web3.jsがコントラクトにアクセスするため、必要となるもは コントラクトの アドレス と ABI 。
コントラクトアドレス
コントラクトをデプロイすると、有効なイーサリアム上の固定アドレスが与えられる。
デプロイ後にスマートコントラクトにアクセスするためにはこのアドレスをコピーしておくことが必要。
ABI
コンパイル時に生成されコントラクトのメソッドをJSON形式で表していて、関数コールをコントラクトが理解できるようフォーマットする方法を、Web3.jsに教える。
コントラクトアドレスに加えてABIをコピーして保存しておかなくてはならない。
Web3.jsコントラクトのインスタンス化
// myContractをインスタンス化
var myContract = new web3js.eth.Contract(myABI, myContractAddress);
prev
-
クリプトゾンビLesson 6 capture2 Web3プロバイダ
Lesson 6 capture2 Web3プロバイダ Web3プロバイダ Web3プロバイダはどのノードに読み書きを処理させるかを働き掛けるかをコードに教える。 従来のウェブアプリでAPIコールをす ...
NEXT
-
クリプトゾンビLesson 6 capture4 コントラクトの関数呼び出し
Lesson 6 capture4 コントラクトの関数呼び出し Web3.jsは、コントラクト関数を呼び出すための2つのメソッドをもつ。 状態を変更しない(今の状態を呼び出したり、固定の値を呼び出す) ...
Web3.jsコントラクトのインスタンス化
// myContractをインスタンス化
var myContract = new web3js.eth.Contract(myABI, myContractAddress);
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>CryptoZombies front-end</title> <script language="javascript" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script language="javascript" type="text/javascript" src="web3.min.js"></script> <script language="javascript" type="text/javascript" src="cryptozombies_abi.js"></script> </head> <body> <script> var cryptoZombies; function startApp() { var cryptoZombiesAddress = "YOUR_CONTRACT_ADDRESS"; cryptoZombies = new web3js.eth.Contract(cryptoZombiesABI, cryptoZombiesAddress); } function getZombieDetails(id) { return cryptoZombies.methods.zombies(id).call(); } // 1. ここで`zombieToOwner`を定義する // 2. ここで`getZombiesByOwner`を定義する window.addEventListener('load', function() { // Checking if Web3 has been injected by the browser (Mist/MetaMask) if (typeof web3 !== 'undefined') { // Use Mist/MetaMask's provider web3js = new Web3(web3.currentProvider); } else { // Handle the case where the user doesn't have Metamask installed // Probably show them a message prompting them to install Metamask } // Now you can start your app & access web3 freely: startApp() }) </script> </body> </html>