npm.io
0.0.29 • Published 6 months ago

@evmexplorer/blockscout

Licence
MIT
Version
0.0.29
Deps
0
Size
51 kB
Vulns
0
Weekly
0
Stars
2

EVMExplorer-Blockscout

EVM Explorer TypeScript Blockscout v2 sdk.

Install

npm install @evmexplorer/blockscout

or

yarn add @evmexplorer/blockscout

Using EVMExplorer-Blockscout SDK

Fetching a Transaction

To fetch a transaction on Ethereum mainnet as demonstrated on Ethereum Stack Oveflow answer:

import type { TransactionBlockscout } from '@evmexplorer/blockscout';
import { fetchTransactionBlockscout } from '@evmexplorer/blockscout';

const data: TransactionBlockscout = await fetchTransactionBlockscout(
  '0xdc7ddf3d0e53532eeeda7a7a99c88255ccee5a3b4404441278cbbd79b4c85086',
);

console.log(data);
Output

The fetchTransactionBlockscout function returns an object with the following properties:

{
  priority_fee: '70439166556560',
  tx_burnt_fee: '676806248593230',
  raw_input: '0xa22cb4650000000000000000000000001e0049783f008a0085193e00003d00cd54003c710000000000000000000000000000000000000000000000000000000000000001',
  result: 'success',
  hash: '0xdc7ddf3d0e53532eeeda7a7a99c88255ccee5a3b4404441278cbbd79b4c85086',
  max_fee_per_gas: '15917702655',
  revert_reason: null,
  confirmation_duration: [0, 12000],
  type: 2,
  token_transfers_overflow: false,
  confirmations: 47513,
  position: 72,
  max_priority_fee_per_gas: '1267119384',
  transaction_tag: null,
  created_contract: null,
  value: '0',
  tx_types: ['contract_call'],
  from:
    {
      ens_domain_name: null,
      hash: '0xA3b711752f08980F4a71777217FA81304aEB8ee7',
      implementations: [],
      is_contract: false,
      is_scam: false,
      is_verified: false,
      metadata: null,
      name: null,
      private_tags: [],
      proxy_type: null,
      public_tags: [],
      watchlist_names: [],
    },
  gas_used: '55590',
  status: 'ok',
  to:
    {
      ens_domain_name: null,
      hash: '0x22C1f6050E56d2876009903609a2cC3fEf83B415',
      implementations: [[Object]],
      is_contract: true,
      is_scam: false,
      is_verified: true,
      metadata: { tags: [Array] },
      name: 'AdminUpgradeabilityProxy',
      private_tags: [],
      proxy_type: 'eip1967',
      public_tags: [],
      watchlist_names: [],
    },
  authorization_list: [],
  method: 'setApprovalForAll',
  fee: { type: 'actual', value: '747245415149790' },
  tx_tag: null,
  actions: [],
  gas_limit: '73310',
  gas_price: '13442083381',
  decoded_input:
    {
      method_call: 'setApprovalForAll(address to, bool approved)',
      method_id: 'a22cb465',
      parameters: [[Object], [Object]],
    },
  has_error_in_internal_txs: false,
  token_transfers: [],
  base_fee_per_gas: '12174963997',
  timestamp: '2024-12-08T17:44:23.000000Z',
  nonce: 464,
  block: 21359346,
  transaction_types: ['contract_call'],
  exchange_rate: '3859.75',
  block_number: 21359346,
  has_error_in_internal_transactions: false,
}

You can also go over the transaction visually at EVM Explorer transaction page.

Fetching Vitalik's Address Tokens

You can also query the blockchain address token balances as demonstrated on Stack Overflow. For example, let's query Vitalik's balances:

export type { AddressTokens } from "@evmexplorer/blockscout";
export { fetchTokensAddress } from "@evmexplorer/blockscout";

const data: AddressTokens = await fetchTokensAddress(
  '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045',
);
console.log(data.length)
console.log(data[0])
Address Tokens Output
6081
{
  token: {
    address: '0x28561B8A2360F463011c16b6Cc0B0cbEF8dbBcad',
    circulating_market_cap: '75858317.61202328',
    decimals: '9',
    exchange_rate: '0.00017784',
    holders: '14334',
    icon_url: 'https://assets.coingecko.com/coins/images/50348/small/1000000612.jpg?1727248974',
    name: 'MOO DENG',
    symbol: 'MOODENG',
    total_supply: '420690000000000000000',
    type: 'ERC-20',
    volume_24h: '10219755.637613483'
  },
  token_id: null,
  token_instance: null,
  value: '30000105889157756560'
}

Vitalik has 6081 tokens. The first token in the array of all 6081 tokens is Moo Deng token.

Fetching Latest Block Transactions

You can also query the latest block transactions with Ethers provider as demonstrated on Stack Overflow.

import { fetchBlockTransactionsBlockscout } from '@evmexplorer/blockscout';
const block = await provider.getBlock();
const data = await fetchBlockTransactionsBlockscout(block);

More information

EVM Explorer - Tracking Smart Contract Transaction Data

Blockscout - Ethereum API documentation

Blockscout - REST API Endpoints