Giter VIP home page Giter VIP logo

stellarexplorer's Introduction

Stellar Explorer

Node.js CI Run e2e tests against production

A ledger explorer for Stellar.

Deployments:

Resources

Lists

Resource URI
Operations /operations
Transactions /txs
Ledgers /ledgers
Payments /payments
Trades /trades
Effects /effects
Liquidity Pools /effects
Claimable Balances /effects

Directory

Resource URI
Assets /assets
Anchors /anchors
Exchanges /exchanges

Accounts

Resource URI
by Federated address /account/stellar*fed.network
by Public address /account/GAREELUB43IRHWEASCFBLKHURCGMHE5IF6XSE7EXDLACYHGRHM43RFOX
by Multiplexed address /account/MDZ464OWNGEL4X2DE6JPLEARO2WJ4AGCBN3XM7E4ZSLPHRBV6AZB6AAAAAAAAAAAAGW4M

Tabs

Resource URI
Balances Tab /account/stellar*fed.network#balances
Payments Tab /account/stellar*fed.network#payments
Offers Tab /account/stellar*fed.network#offers
Trades Tab /account/stellar*fed.network#trades
Effects Tab /account/stellar*fed.network#effects
Operations Tab /account/stellar*fed.network#operations
Transactions Tab /account/stellar*fed.network#transactions
Signing Tab /account/stellar*fed.network#signing
Flags Tab /account/stellar*fed.network#flags
Data Tab /account/stellar*fed.network#data

Search

Resource URI
Federated address /search/steexp*fed.network
Public address /search/GAREELUB43IRHWEASCFBLKHURCGMHE5IF6XSE7EXDLACYHGRHM43RFOX
Multiplexed address /search/MDZ464OWNGEL4X2DE6JPLEARO2WJ4AGCBN3XM7E4ZSLPHRBV6AZB6AAAAAAAAAAAAGW4M
Ledger /search/10000000
Transaction /search/26a568681712a44a515b2c90dcfaadb3ed2c40dc60254638407937bee4767071
Asset Code /search/NGN
Anchor Name /search/ripplefox
Anchor Name (Partial) /search/fox

Misc

Resource URI
Transaction /tx/26a568681712a44a515b2c90dcfaadb3ed2c40dc60254638407937bee4767071
Ledger /ledger/10000000
Anchor /anchor/apay.io
Asset /asset/NGN

Exploring Private / Local Development Networks

steexp will connect to a local horizon instance at http://localhost:8000 by default. If your running a local private network for development this is quite handy for browsing your changes to the ledger.

Alternatively you can run locally connecting to the testnet or public network horizon instances. To do this define these aliases to localhost:

127.0.1.1  testnet.local     # for steexp use testnet horizon
127.0.1.1  publicnet.local   # for steexp use mainnet horizon
127.0.1.1  futurenet.local   # for steexp use future horizon

Use 127.0.0.1 instead of 127.0.1.1 when the above doesn't work.

Navigate to http://testnet.local:3000, http://futurenet.local:3000 or http://publicnet.local:3000 to select the network your interesting in exploring.

Development

See the section Exploring Private / Local Development Networks for connecting to different backend networks. By default steexp will look for a local instance of horizon.

Start

npm i && npm run dev

Test

npm i && npm test

or

You can run test with Jest Preview with the following command. You can see the result at http://locahost:3336 for test using React Testing Library along with Jest Preview.

npm run test:preview

or

You can run test and Jest Preview separately as follows (this is basically same as the previous one).

npm run jest-preview

npm test
or
npm run test:watch

E2E Test

npm run test:e2e

Run the test in UI mode:

npm run test:e2e:ui

Show HTML test reports:

npm run test:e2e:report

Build

npm i && npm run build

Languages

Use the language selector in the top right corner to change the language.

Translation files are here: https://github.com/chatch/stellarexplorer/tree/master/src/languages

Submit pull requests with new languages or languages fixes there.

Scripts

Fetch and restructure centralized exchanges data

npx ts-node scripts/restructure-centralized-exchanges-json.ts

stellarexplorer's People

Contributors

aanupam23 avatar alexouille123 avatar chatch avatar cmichi avatar d13daw avatar danielheyman avatar dependabot[bot] avatar efishdew avatar fracek avatar jp-ryuji avatar leighmcculloch avatar manran avatar miraclealex avatar mubashirsiddique avatar ronnyfahrudin avatar s-a-y avatar stellarstyler 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  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

stellarexplorer's Issues

Fix travis build - supress warnings in 'npm run build' step

Travis build is currently failing due to warnings coming out of processing the dependent module 'stellar-base' and it's dependency 'bindings':

Critical dependencies:
76:22-40 the request of a dependency is an expression
76:43-53 the request of a dependency is an expression

Suppress it by using CI=false before the 'npm run build' line. This feature has just recently been enabled in create-react-app so apply this after upgrading (see #1)

Clean up mobile views

Some pretty crazy formatting, wrapping, etc. when I view it on a standard sized android mobile.

Ensure everything fits neatly. Avoid scrolling etc.

Fix allow trust operation formatting

Currently reads like this "Trust Mobius issuing MOBIAuthorize true" for authorize=true and just "MOBIAuthorize" for the end part when false.

There should be space between asset code and authorize. Additionally that authorize is set to true or false should be clearer.

Change to read like this:
"Trust Mobius issuing MOBI [authorize: true]"
"Trust Mobius issuing MOBI [authorize: false]"

Page is re-rendering twice on language switch and on network switch

State is updated on switch, the logic waits for the state update to be re-rendered (this is first visible reload) before then initiating a page reload (which is the second visible reload).

Language switcher - this doesn't need to reload the page at all, it's sufficient to update the state and everything will rerender in the new language accordingly

Network switcher - this does need to reload in order to switch domains (steexp.com <---> testnet.steexp.com) however it doesn't need to wait for a rerender from state update. So change the logic to setState then immediately invoke a page reload.

Setup progressive web app

Add manifest.json
Set icon, theme colors, etc.
Go through the progressive webapp checklist and setup everything
Test with Lighthouse npm script
Test on mobile devices

Remove redundant data from some views

There are a few but do an audit.

For example:

  • ledger is displayed in every row in the transaction list on the ledger page
  • source account re-rendered on lists on the account page

Reduce distribution size

Uncompressed the full distribution with required dependencies is 1.45MB.

Try get this down a bit by analysing the bundled dependencies.

Don't always redirect in remote server error handling

If an entity not found error is returned from the remote server then redirect to the 404 page otherwise log the error and/or display it to the screen and stay on the page the error occured on. Currently it's redirecting all server errors to the 404 page.

Run Lighthouse and make improvements

Run the lighthouse report against the site. There are a quite a few things that can be improved including performance hacks and progressive web app tweaks.

Stream fails in chromium after a period of time

Streams on the home page work fine for a while and then after a period of about 10 minutes there are repeated failures trying to get a new stream.

Needs investigation as I couldn't figure out what was happening when I saw it.

For now I'm putting a timeout on streams where they will be disabled after 3 minutes. A page reload will restart them.

Externalise the anchors and exchanges data

We shouldn't need to redeploy the app whenever this metadata changes or when a new anchor launches.

Serve these files from somewhere or just make available on a seperate github project that can be fetched from the app ...

It might makes sense to generate most of this from a script that parses the server.toml files ... Have a script that runs periodically and checks if data has changed too.

Render operation time directly from the operation record

Currently i'm deriving the operation time from the transaction time which requires a server call to grab this. One for each distinct transaction in the operations list. From memory this was because the time was not available in the record however looking at operations it is now there under 'created_at'.

Jest tests fail after dependencies installed with 'yarn install'

If dependencies are installed with "npm install" the tests run fine.

However if installed with "yarn install" they will fail with module resolution failures:

======================================================================

Cannot find module 'stellar-base' from 'account_response.js'
  
  at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:179:17)
  at Object.<anonymous> (node_modules/stellar-sdk/lib/account_response.js:13:19)

FAIL src/lib/tests/utils.test.js
โ— Test suite failed to run

Cannot find module 'stellar-base' from 'account_response.js'
  
  at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:179:17)
  at Object.<anonymous> (node_modules/stellar-sdk/lib/account_response.js:13:19)

=====================================================================

It's not clear to me why this is as "stellar-base" is there under node_modules and require("stellar-base") statement seems fine.

Take a look at jest code and issues ...

Indicate when the view is out of sync with the server

It would be nice to indicate the sync is happening whilst it's happing and to flag the data shown is stale.

Maybe a green light / red light sitting in the panel header.

Because if you load the page for the first time after a couple of days it will show data from a couple of days ago as if it's fresh. Then if you wait a few seconds it will rerender with the latest data. But there is not indication that is what is happening.

Put Operations in a Table

Visually: tables are easier to read. Each row is seperated by a line so it's easy to scan across.
Consistency: Transactions and Ledger are displayed inside table.
Responsive: Table components resize better.

Upgrade react-scripts to 1.0.0 then latest

Upgrading to 1.0.0 breaks the production build (npm run build):

Module not found: Error: Can't resolve 'babel-runtime/helpers/interop-require' in '/home/hatch/projects/stellar/graph/node_modules/js-xdr/lib'

The following code in js-xdr/lib/*.js files is probably where this issue is:

var _interopRequire = require('babel-runtime/helpers/interop-require')[
'default'
]

Link both the distribution and issuer account for anchors

Currently anchors list supports just one account per anchor.
Rearrange so we can attach and identify both issuer and distributer.
Account page for each should show the anchor logo.
Anchor page shows the issuer or both issuer and distribution account addresses.

Add Trades View

List /trades in a new top level view
List trades for account in a new tab on account view

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.