Skip to content

bergauz/explorer

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

980 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoChain Block Explorer

CircleCI

Simple interface for exploring the GoChain blockchain.

Local installation

Clone the repo

git clone https://github.com/gochain-io/explorer

Download Nodejs and npm if you don't have them

Install dependencies:

npm install

Install mongodb:

MacOS:

brew install mongodb
mongod --config /usr/local/etc/mongod.conf

Ubuntu: sudo apt-get install -y mongodb-org

Running

> grabber help
NAME:
   grabber - Grabber populates a mongo database with explorer data.

USAGE:
   grabber [global options] command [command options] [arguments...]

VERSION:
   0.0.0

COMMANDS:
     help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --rpc-url value, -u value         rpc api url (default: "https://rpc.gochain.io")
   --mongo-url value, -m value       mongo connection url (default: "127.0.0.1:27017")
   --mongo-dbname value, --db value  mongo database name (default: "blocks")
   --log value, -l value             loglevel debug/info/warn/fatal (default: "info")
   --start-from value, -s value      refill from this block (default: 0)
   --help, -h                        show help
   --version, -v                     print the version
> server help
NAME:
   server - Server serves the explorer web interface, backed by a mongo database.

USAGE:
   server [global options] command [command options] [arguments...]

VERSION:
   0.0.0

COMMANDS:
     help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --rpc-url value, -u value         rpc api url (default: "https://rpc.gochain.io")
   --mongo-url value, -m value       mongo connection url (default: "127.0.0.1:27017")
   --mongo-dbname value, --db value  mongo database name (default: "blocks")
   --log value, -l value             loglevel debug/info/warn/fatal, default is Info (default: "info")
   --dist value, -d value            folder that should be served (default: "../dist/explorer/")
   --recaptcha value, -r value       secret key for google recaptcha v3
   --help, -h                        show help
   --version, -v                     print the version

Docker

Build:

make docker

Run:

docker run --net=host gochain/explorer grabber [flags]
docker run --net=host gochain/explorer server [flags]
  • take in account that mongo should be running on same host (--net=host)

Block explorer API

General endpoints

Get stats

GET /api/stats

Parameters: NONE

Response:

{  
   "updated_at":"2019-01-04T16:17:18.457Z",
   "total_transactions_count":828310654,
   "last_week_transactions_count":19939999,
   "last_day_transactions_count":2856095
}

Get the list of the most recent blocks

GET /api/blocks

Parameters:

  • limit - amount of items in the response
  • skip - number of items to skip

Response:

{
  "blocks": [
    {
      "number": 3265580,
      "created_at": "2019-01-04T16:23:39Z",
      "miner": "0x6E2CAD5118b75420f7D73cfbD6db072523De8366",
      "tx_count": 0,
      "extra_data": "GoChain 5\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"
    },
    {
      "number": 3265579,
      "created_at": "2019-01-04T16:23:34Z",
      "miner": "0x7AeCEB5D345a01F8014a4320aB1F3D467c0C086a",
      "tx_count": 25,
      "extra_data": "GoChain 1\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"
    }
  ]
}

Get specific block details

GET /api/blocks/{block_number}

Parameters:

  • block_number

Response:

{
  "number": 3265579,
  "gas_limit": 136500000,
  "hash": "0x5c08a62b590c597713dcc8c68a1647ba086330c8bdf208543533367378622f38",
  "created_at": "2019-01-04T16:23:34Z",
  "parent_hash": "0x215f85d89767a89428649f64bacf135cf7491c96d0d8278fd7b912a900eaf914",
  "tx_hash": "0x61a1c5d1609a3edb582fbbc32b64298ae5010fe99da039f4d7f5ff680559bcb8",
  "gas_used": "525000",
  "nonce": "0",
  "miner": "0x7AeCEB5D345a01F8014a4320aB1F3D467c0C086a",
  "tx_count": 25,
  "difficulty": 5,
  "total_difficulty": 0,
  "sha3_uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
  "extra_data": "GoChain 1\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"
}

Get the specific block transactons

GET /api/blocks/{block_number}/transactions

Parameters:

  • block_number
  • limit - amount of items in the response
  • skip - number of items to skip

Response:

{
  "transactions": [
    {
      "tx_hash": "0x9e5580ba859c11a4be5f62907d54063b23ccf5a9ca996b4d2a49f34005ff06dd",
      "to": "0x44D63da717F5Cb2f74B3CFa9e02d633479CB1100",
      "from": "0xB93901B9413a08DA4E90a2264d12B3eadB8dCA82",
      "contract_address": "",
      "value": "13",
      "gas_price": "3970867867",
      "gas_fee": "988825516240340",
      "gas_limit": 249020,
      "block_number": 3265579,
      "nonce": "180319",
      "block_hash": "0x5c08a62b590c597713dcc8c68a1647ba086330c8bdf208543533367378622f38",
      "created_at": "2019-01-04T16:23:34Z",
      "input_data": ""
    }
  ]
}

Get the specific address details

GET /api/address/{address_hash}

Parameters:

  • address_hash

Response:

{
  "address": "0x1997eF6BeE5d61979E63d0c6b40F6d185Ab1156D",
  "balance": "0.000000000000000000",
  "balance_wei": "0",
  "updated_at": "2019-05-11T00:53:47.478+06:00",
  "token_name": "Example Fixed Supply Token",
  "token_symbol": "FIXED",
  "decimals": 18,
  "total_supply": "1000000000000000000000000",
  "contract": true,
  "erc_types": ["Go20","Go20Detailed"],
  "interfaces": null,
  "number_of_transactions": 3,
  "number_of_token_holders": 3,
  "number_of_internal_transactions": 2,
}

Get the specific address transactions

GET /api/address/{address_hash}/transactions

Parameters:

  • address_hash
  • limit - amount of items in the response
  • skip - number of items to skip
  • from_time/to_time - filter for the transaction list (by created_at time)

Response:

{
  "transactions": [
    {
      "tx_hash": "0x9e5580ba859c11a4be5f62907d54063b23ccf5a9ca996b4d2a49f34005ff06dd",
      "to": "0x44D63da717F5Cb2f74B3CFa9e02d633479CB1100",
      "from": "0xB93901B9413a08DA4E90a2264d12B3eadB8dCA82",
      "contract_address": "",
      "value": "13",
      "gas_price": "3970867867",
      "gas_fee": "988825516240340",
      "gas_limit": 249020,
      "block_number": 3265579,
      "nonce": "180319",
      "block_hash": "0x5c08a62b590c597713dcc8c68a1647ba086330c8bdf208543533367378622f38",
      "created_at": "2019-01-04T16:23:34Z",
      "input_data": ""
    }
  ]
}

Get the specific contracts token holders (for go20 compatible contracts)

GET /api/address/{address_hash}/holders

Parameters:

  • address_hash
  • limit - amount of items in the response
  • skip - number of items to skip

Response:

{
  "token_holders": [
    {
      "contract_address": "0x7bb44320d4af20D259Ef6DD259bF00E246ed052c",
      "token_holder_address": "0x744062E05485c94e92F5FeDB8E4067fcA01709e1",
      "balance": "1000000000000000000000",
      "balance_int": 1000,
      "updated_at": "2018-12-16T15:04:58.088Z"
    },
    {
      "contract_address": "0x7bb44320d4af20D259Ef6DD259bF00E246ed052c",
      "token_holder_address": "0x9E049291f70B917cd332420d29afDea9F4d76696",
      "balance": "0",
      "balance_int": 0,
      "updated_at": "2018-12-16T15:04:58.257Z"
    },
    {
      "contract_address": "0x7bb44320d4af20D259Ef6DD259bF00E246ed052c",
      "token_holder_address": "0x0000000000000000000000000000000000000000",
      "balance": "0",
      "balance_int": 0,
      "updated_at": "2018-12-12T17:49:10.073Z"
    }
  ]
}

Get the specific contracts internal transactions (for go20 compatible contracts)

GET /api/address/{address_hash}/internal_transactions

Parameters:

  • address_hash
  • limit - amount of items in the response
  • skip - number of items to skip
  • from_address - the transaction source address
  • to_address - the transaction destination address

Response:

{
  "internal_transactions": [
    {
      "contract_address": "0x7bb44320d4af20D259Ef6DD259bF00E246ed052c",
      "from_address": "0x9E049291f70B917cd332420d29afDea9F4d76696",
      "to_address": "0x744062E05485c94e92F5FeDB8E4067fcA01709e1",
      "value": "1000000000000000000000",
      "block_number": 2420510,
      "transaction_hash": "0xcc543bab87ce87be04c873cc38c4f7cf627aaa33d9fe8934be155ea89a5d07e2",
      "updated_at": "2018-12-16T15:04:57.918Z",
      "created_at": "0001-01-01T00:00:00Z"
    },
    {
      "contract_address": "0x7bb44320d4af20D259Ef6DD259bF00E246ed052c",
      "from_address": "0x0000000000000000000000000000000000000000",
      "to_address": "0x9E049291f70B917cd332420d29afDea9F4d76696",
      "value": "1000000000000000000000",
      "block_number": 2420503,
      "transaction_hash": "0x551b40fa88303e7b9e013da1b2d83a1a6d6f7677cbade8ae8027293004279841",
      "updated_at": "2018-12-12T17:49:09.107Z",
      "created_at": "0001-01-01T00:00:00Z"
    }
  ]
}

Get the specific contracts details (where available)

GET /api/address/{address_hash}/contract

Parameters:

  • address_hash

Response:

{}

Get the specific transaction details

GET /api/transaction/{tx_hash}

Parameters:

  • tx_hash

Response:

{
  "tx_hash": "0x0533322f4b48030bbc38498cfc4847b0bca7511454a351ce1bc700ad8eeb0ad7",
  "to": "0xeA224a724c08Ea862959AfE293C647c8671638f2",
  "from": "0x47ccA4785443B68a7363bF8b7995F95C46eb45a7",
  "contract_address": "0x0000000000000000000000000000000000000000",
  "value": "18",
  "gas_price": "2125437567",
  "gas_fee": "44634188907000",
  "gas_limit": 257573,
  "block_number": 3265557,
  "nonce": "153174",
  "block_hash": "0x565359100c9fd6418e6bf6395714728836ec9fbc0e3819f067cfe2a41059d01c",
  "created_at": "2019-01-04T16:21:44Z",
  "input_data": ""
}

Get the richlist

GET /api/richlist

Parameters:

  • limit - amount of items in the response
  • skip - number of items to skip

Response:

{
  "total_supply": "1022860075.000000000000000000",
  "circulating_supply": "63410232.031792708000000000",
  "rankings": [
    {
      "address": "0x78cb510135787f42a23aD46998eB16B756111559",
      "balance": "19983424.526977560219899047",
      "balance_wei": "19983424526977560219899047",
      "updated_at": "2019-02-04T16:28:28.72Z",
      "total_supply": "0",
      "contract": false,
      "number_of_transactions": 0
    }
  ]
}

About

GoChain Block Explorer

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 41.2%
  • CSS 24.5%
  • TypeScript 19.4%
  • HTML 10.8%
  • JavaScript 3.5%
  • Shell 0.4%
  • Other 0.2%