LoginSignup
0
0

More than 5 years have passed since last update.

ブロックチェーン上の情報をGETする方法(gethの場合)

Last updated at Posted at 2018-12-07

はじめに

初投稿です。
今回は、BCからデータを吸い取る方法を載せます。

コード

多分見れば、分かりますw
実行環境として
Gethを使用しています。
ビットコインの場合はまた違うと思います。

bcCheck.js
var Web3 = require('web3');
var web3 = new Web3();
web3.setProvider(new web3.providers.HttpProvider('http://localhost:8545'));

var blockNumber = web3.eth.blockNumber;
console.log("blockNumber:  " + blockNumber);

for(var i = 0;i <blockNumber;i++){
  if(web3.eth.getTransactionFromBlock(i) != null){
    var getInputSlice = web3.eth.getTransactionFromBlock(i).input.substr(0,10);
    if(getInputSlice == "0x42f09166"){
      var getInput = web3.eth.getTransactionFromBlock(i).input

      console.log("getInput:  " + i  + ":  " + JSON.stringify(getInput));
    }
    console.log("getInput:  " + i  + ":  " + JSON.stringify(getInputSlice));
  }
}

コード説明

ここでweb3でGethと接続する

var Web3 = require('web3');
var web3 = new Web3();
web3.setProvider(new web3.providers.HttpProvider('http://localhost:8545'));

(web3.eth.getTransactionFromBlock(i) != null)でそのブロックにトランザクションがあるかどうかが分かる。

トランザクションがないブロックにはinputがないため
ここで、(web3.eth.getTransactionFromBlock(i).input != null)と書くと、エラーが出る。

for(var i = 0;i <blockNumber;i++){
  if(web3.eth.getTransactionFromBlock(i) != null){
    var getInputSlice = web3.eth.getTransactionFromBlock(i).input.substr(0,10);
    if(getInputSlice == "0x42f09166"){
      var getInput = web3.eth.getTransactionFromBlock(i).input

      console.log("getInput:  " + i  + ":  " + JSON.stringify(getInput));
    }
    console.log("getInput:  " + i  + ":  " + JSON.stringify(getInputSlice));
  }
}

終わり

今回はこれくらいで終わりです。
分かりにくかったらすいません。
何か疑問点があれば、質問などしてくれたら返事します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0