Coder Social home page Coder Social logo

explorer's Introduction

Solana

Solana Explorer

Development

  • pnpm dev
    Runs the app in the development mode.
    Open http://localhost:3000 to view it in the browser.

    The page will reload if you make edits.
    You will also see any lint errors in the console.

  • pnpm test
    Launches the test runner in the interactive watch mode.

Disclaimer

All claims, content, designs, algorithms, estimates, roadmaps, specifications, and performance measurements described in this project are done with the Solana Foundation's ("SF") best efforts. It is up to the reader to check and validate their accuracy and truthfulness. Furthermore nothing in this project constitutes a solicitation for investment.

Any content produced by SF or developer resources that SF provides, are for educational and inspiration purposes only. SF does not encourage, induce or sanction the deployment, integration or use of any such applications (including the code comprising the Solana blockchain protocol) in violation of applicable laws or regulations and hereby prohibits any such deployment, integration or use. This includes use of any such applications by the reader (a) in violation of export control or sanctions laws of the United States or any other applicable jurisdiction, (b) if the reader is located in or ordinarily resident in a country or territory subject to comprehensive sanctions administered by the U.S. Office of Foreign Assets Control (OFAC), or (c) if the reader is or is working on behalf of a Specially Designated National (SDN) or a person subject to similar blocking or denied party prohibitions.

The reader should be aware that U.S. export control and sanctions laws prohibit U.S. persons (and other persons that are subject to such laws) from transacting with persons in certain countries and territories or that are on the SDN list. As a project based primarily on open-source software, it is possible that such sanctioned persons may nevertheless bypass prohibitions, obtain the code comprising the Solana blockchain protocol (or other project code or applications) and deploy, integrate, or otherwise use it. Accordingly, there is a risk to individuals that other persons using the Solana blockchain protocol may be sanctioned persons and that transactions with such persons would be a violation of U.S. export controls and sanctions law. This risk applies to individuals, organizations, and other ecosystem participants that deploy, integrate, or use the Solana blockchain protocol code directly (e.g., as a node operator), and individuals that transact on the Solana blockchain through light clients, third party interfaces, and/or wallet software.

explorer's People

Contributors

aletna avatar arrowana avatar bartosz-lipinski avatar carllin avatar criesofcarrots avatar denispalab avatar dependabot-preview[bot] avatar dependabot[bot] avatar dr497 avatar jnwng avatar joeaba avatar joncinque avatar jstarry avatar kevzettler avatar kilimnik avatar losman0s avatar mcintyre94 avatar microwavedcola1 avatar mvines avatar ngundotra avatar nick-brown avatar nvsriram avatar ojshua avatar rmshea avatar roederw avatar sebastianbor avatar steveluscher avatar terranmoccasin avatar tpompon avatar yihau avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

explorer's Issues

Blockhash is ambiguous on transaction details page

On transaction details:
Because it comes immediately after the "Block" number, the "Blockhash" reads as though it is the blockhash for that block, even though it is actually the recent blockhash submitted with the transaction.

Change the label to be more clear. "Recent blockhash" or "Transaction recent blockhash" might be enough?

Sync chosen cluster with browser url

Problem

Clicking on the "Accounts" or "Transactions" tab clears the url params. It's important to keep the cluster or clusterUrl param so that if a user shares the current url, the explorer will connect to the correct cluster

Transaction erroneously shows Not Found

Most of the time when I click the "View on Explorer" link in Break for a Pending transaction, the explorer page shows the transaction is not found, even though it is found on refresh.
Sometimes the webpage seems to flash the correct transaction details, but then reverts to Not Found.
Sometimes this also happens when inputting the url manually. Url is in this format:
https://explorer.solana.com/tx/SQAaeoU5Ba9Ga38cpLTcTcqnUYjERsEJNyHgnjoXWMXgBbzfPSaA9ojfwfeBX71d853teDuQJ146scEfvqLiXgf?cluster=testnet

It doesn't seem to matter how many confirmations the transaction has, although it seems somewhat less frequent for finalized transactions.

Firefox, MacOS

image

After clicking "Try Again":
image

The transaction details for a non-transfer is ugly

STR:

  1. Create a stake account, like solana create-stake-account ~/stake16WnfUdP4uYZTuBr3ezc6MxS4GUd74jK6tkdDC.json 0.1 (or perform other non-system transfer transaction)
  2. Check the details in the explorer:
    image

No top 20 list for total supply

Problem

Top 20 list is for the circulating supply. Some, such as CoinMarketCap, are more interested in a top 20 list of the total supply, where we can label those accounts as Team, Foundation, Private Investor, etc.

Proposed Solution

Default the top 20 list to total supply, and instead offer a filter for the circulating supply.

Confusing title in Top 20 list

Problem

The title "Active accounts" is causing confusion. Particularly, those HODLing, but in the circulating supply are surprised to see themselves labeled "most active".

Proposed Solution

A title like, "largest accounts on the circulating supply".

Add Transaction detail page

Problem

Transaction details are not easily shareable if you input a signature in the UI

Proposed Change

  1. Update the url when a tx is clicked: /tx/signature_hash
  2. Keep list view on /transactions route
  3. Show transaction detail on /tx/signature_hash (also applies to /transaction, /txn
  4. Instead of showing tx details in a modal, show them in a full page

Transaction history for deleted accounts is not accessible

STR:

  1. Transact with an account
  2. Drain the account of all lamports

Now you can't see any of the account transactions in the explorer.

eg:
image
even though:

$ solana transaction-history 7bEc4uCz4mECXwynU5iR5Xr5A8tbWJ5Nyx7YWfvUmaZE
Transactions affecting 7bEc4uCz4mECXwynU5iR5Xr5A8tbWJ5Nyx7YWfvUmaZE within slots [11945508,11955508]
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
38 transactions found

Explorer hits "Instruction type incorrect; not a SystemInstruction" on multi-sig txn

The following transaction splits a stake account, sets new stake and withdraw authorities, and performs a system transfer. All instructions went through on the network without issue, but when I try to view the transaction details on the explorer, I land at a blank page, which @mvines states is due to the explorer hitting: https://github.com/solana-labs/solana-web3.js/blob/57a37920d19ba6b629aed4aaf99d1b600dee1ceb/src/system-program.js#L181

Transaction details:

Slot: 9554716
Recent Blockhash: 2E6Tr3Y6S35zjXiEYuYkyL4nL4bf5EV9PHHiqmSniHDm
Signature 0: 3DuuBYU4mV61dthRVfZqY55f7ibJ8Bchdf4r7CVSfdQpCUcPugwmrQ3UTFnJ62wRWMKHkDqvwQbb5DBoB6tigTGj
Signature 1: 4RfZgfyWJDk3Zud8wthhdfNCPMmqbq6Cd6aiACc6MoHFczRs1pSgaLNKGBNVVrxufnKMj9sggm2rqTjsPYvf4Qqp
MessageHeader { num_required_signatures: 2, num_readonly_signed_accounts: 0, num_readonly_unsigned_accounts: 3 }
Account 0: 8BysFka59zd31FeEGG43mT2JwvV5b7cfQ2w5LyzisX6h
Account 1: 2B8zYf3m84JqUWTEGt9EjcURwCrc3td2sKdJcKQjMhoN
Account 2: BGTp8YMcYycWNHYLrfACMHB3MTox5pCJPdW92smEgH6h
Account 3: 4zbJwmtLTjY8uTTET65BFcPZpSYqS3kVD8MnQtmHjatf
Account 4: SysvarC1ock11111111111111111111111111111111
Account 5: 11111111111111111111111111111111
Account 6: Stake11111111111111111111111111111111111111
Instruction 0
  Program: 11111111111111111111111111111111 (5)
  Account 0: 2B8zYf3m84JqUWTEGt9EjcURwCrc3td2sKdJcKQjMhoN (1)
  Allocate { space: 200 }
Instruction 1
  Program: 11111111111111111111111111111111 (5)
  Account 0: 2B8zYf3m84JqUWTEGt9EjcURwCrc3td2sKdJcKQjMhoN (1)
  Assign { program_id: Stake11111111111111111111111111111111111111 }
Instruction 2
  Program: Stake11111111111111111111111111111111111111 (6)
  Account 0: BGTp8YMcYycWNHYLrfACMHB3MTox5pCJPdW92smEgH6h (2)
  Account 1: 2B8zYf3m84JqUWTEGt9EjcURwCrc3td2sKdJcKQjMhoN (1)
  Account 2: 8BysFka59zd31FeEGG43mT2JwvV5b7cfQ2w5LyzisX6h (0)
  Split(100000000)
Instruction 3
  Program: Stake11111111111111111111111111111111111111 (6)
  Account 0: 2B8zYf3m84JqUWTEGt9EjcURwCrc3td2sKdJcKQjMhoN (1)
  Account 1: SysvarC1ock11111111111111111111111111111111 (4)
  Account 2: 8BysFka59zd31FeEGG43mT2JwvV5b7cfQ2w5LyzisX6h (0)
  Authorize(4zbJwmtLTjY8uTTET65BFcPZpSYqS3kVD8MnQtmHjatf, Staker)
Instruction 4
  Program: Stake11111111111111111111111111111111111111 (6)
  Account 0: 2B8zYf3m84JqUWTEGt9EjcURwCrc3td2sKdJcKQjMhoN (1)
  Account 1: SysvarC1ock11111111111111111111111111111111 (4)
  Account 2: 8BysFka59zd31FeEGG43mT2JwvV5b7cfQ2w5LyzisX6h (0)
  Authorize(4zbJwmtLTjY8uTTET65BFcPZpSYqS3kVD8MnQtmHjatf, Withdrawer)
Instruction 5
  Program: 11111111111111111111111111111111 (5)
  Account 0: 8BysFka59zd31FeEGG43mT2JwvV5b7cfQ2w5LyzisX6h (0)
  Account 1: 4zbJwmtLTjY8uTTET65BFcPZpSYqS3kVD8MnQtmHjatf (3)
  Transfer { lamports: 1000000000 }
Status: Ok
  Fee: 0.00001 SOL
  Account 0 balance: 8.99918 SOL -> 7.99917 SOL
  Account 1 balance: 0 SOL -> 0.1 SOL
  Account 2 balance: 10 SOL -> 9.9 SOL
  Account 3 balance: 0 SOL -> 1 SOL
  Account 4 balance: 0.000000001 SOL
  Account 5 balance: 0.000000001 SOL
  Account 6 balance: 0.000000001 SOL

Failing explorer link:
http://explorer.solana.com/tx/3DuuBYU4mV61dthRVfZqY55f7ibJ8Bchdf4r7CVSfdQpCUcPugwmrQ3UTFnJ62wRWMKHkDqvwQbb5DBoB6tigTGj

Add top level search bar

Problem

The input textbox is really small on mobile because it's part of the transaction/account table. Searching is a very common operation and should be front and center

Proposed Design

  • Pull the input textbox out and turn it into search bar

Screenshot 2020-04-06 21 29 14

Inspiration: http://localhost:3000/profile-projects.html (DashKit)

Make transactions in an account transaction history clickable

I looked up an account and found a transaction,
image

but now I need to copy-n-paste that 5pWRMSRP2vBkWo238B557VujNqcGM4A122dHqvVCM77QeAx3e7b9DVhbZuFdq7fqEMK4MNFD5RQX8qpXAaTVFXgA into a different part of the explorer to view it. Ideally there'd be an inline button or link that takes me to the transaction details

Can't see that locked up stake accounts aren't part of circulating supply

Problem

When viewing an account, there's no indication that it is locked up and therefore not part of the circulating supply.

Proposed Solution

Add an indicator, perhaps in an "Account Details" dialog. Something that mimics the information currently available in the output of solana stake-account <ACCOUNT_ADDRESS>.

Cache supply adjustment transactions in explorer codebase

Problem

Currently, explorer transaction data persists for ~30 days. We would like to persist transactions related to the recent supply adjustment.

Proposed Solution

Cache the following six transactions in explorer codebase for persistent retrieval.

uQf4pS38FjRF294QFEXizhYkZFjSR9ZSBvvV6MV5b4VpdfRnK3PY9TWZ2qHMQKtte3XwKVLcWqsTF6wL9NEZMty
DYrfStEEzbV5sftX8LgUa54Nwnc5m5E1731cqBtiiC66TeXgKpfqZEQTuFY3vhHZ2K1BsaFM3X9FqisR28EtZr8
3bLx2PLpkxCxJA5P7HVe8asFdSWXVAh1DrxfkqWE9bWvPRxXE2hqwj1vuSC858fUw3XAGQcHbJknhtNdxY2sehab
3fE8xNgyxbwbvA5MX3wM87ahDDgCVEaaMMSa8UCWWNxojaRYBgrQyiKXLSxcryMWb7sEyVLBWyqUaRWnQCroSqjY
5PWymGjKV7T1oqeqGn139EHFyjNM2dnNhHCUcfD2bmdj8cfF95HpY1uJ84W89c4sJQnmyZxXcYrcjumx2jHUvxZQ
5K4KuqTTRNtzfpxWiwnkePzGfsa3tBEmpMy7vQFR3KWFAZNVY9tvoSaz1Yt5dKxcgsZPio2EsASVDGbQB1HvirGD

Add disclaimer about history limits

Problem

Users get really concerned when their past transactions are not queryable. This is due to our nodes only storing a few days of transaction history

Proposed Solution

Add a disclaimer when transactions are not found stating that this may be due to incomplete history

Account lookup: getSignatureStatuses can fail on "too many inputs"

STR:
I searched for a random validator identity on mainnet-beta: FopTvQaGp6K5FadWKZtsLJmrX7gnNGFS2fQ7rv5KHyE1
Account lookup failed.
image

Looks like getConfirmedSignaturesForAddress queried the max slots (10k) and passed all those signatures (~9500) into a getSignatureStatuses query, which failed on "too many inputs". getSignatureStatuses is capped at 256 inputs, so this request needs to be split into batches.
That said, do we need to load so many confirmed signatures at once? Wondering about lazy-loading. Would we need an rpc for the most recent confirmed signatures for address, limited by number of signatures instead of number of slots?

Explorer doesn't show details for transfer instructions

Problem

Explorer does not show from and to addresses and amount transferred for system transfer instructions

Proposed Changes

  • Query getConfirmedBlock RPC endpoint to get the transaction details for a rooted block
  • Search for system instructions
  • Decode system instruction type and filter for transfers
  • Decode transfer instruction

Copy tooltips cutoff, not copying

There are lots of things in the Account and Transaction details screens that pop up a "Copy" tooltip on hover.

  1. The copy-on-click doesn't actually seem to copy anything to clipboard; Firefox 76 and Chrome 81, macOS
  2. The tooltip gets cutoff by some content frames:
    image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.