Git Product home page Git Product logo

insight-ui's Introduction

Insight UI

A Dash blockchain explorer web application service for Dashcore Node using Insight API.

Quick Start

Please see the guide at https://bitcore.io/guides/full-node for information about getting a block explorer running. This is only the front-end component of the block explorer, and is packaged together with all of the necessary components in Dashcore.

Getting Started

To manually install all of the necessary components, you can run these commands:

npm install -g @dashevo/dashcore-node
dashcore-node create mynode
cd mynode
dashcore-node install @dashevo/insight-api
dashcore-node install @dashevo/insight-ui
dashcore-node start

Open a web browser to http://localhost:3001/insight/

Development

To run Insight UI Dash locally in development mode:

Install dependencies:

$ npm install

To download bower dependencies, compile and minify the web application's assets:

$ npm run build

There is a convenient Gruntfile.js for automation during editing the code

$ npm run watch

Multilanguage support

Insight UI Dash uses angular-gettext for multilanguage support.

To enable a text to be translated, add the translate directive to html tags. See more details here. Then, run:

npm run build

This action will create a template.pot file in po/ folder. You can open it with some PO editor (Poedit). Read this guide to learn how to edit/update/import PO files from a generated POT file. PO file will be generated inside po/ folder.

If you make new changes, simply run grunt compile again to generate a new .pot template and the angular javascript js/translations.js. Then (if use Poedit), open .po file and choose update from POT File from Catalog menu.

Finally changes your default language from public/src/js/config

gettextCatalog.currentLanguage = 'es';

This line will take a look at any *.po files inside po/ folder, e.g. po/es.po, po/nl.po. After any change do not forget to run grunt compile.

Note

For more details about the Insight API configuration and end-points, go to Insight API GitHub repository.

Contribute

Contributions and suggestions are welcomed at the Insight UI Dash GitHub repository.

License

(The MIT License)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

insight-ui's People

Contributors

alex-werner avatar andrewfhart avatar antouhou avatar bechi avatar braydonf avatar cmgustavo avatar codegenieur avatar cofresi avatar dabura667 avatar eveiv avatar gilemon avatar ionux avatar kamuelafranco avatar kleetus avatar koirikivi avatar maraoz avatar markin-io avatar martindale avatar matiu avatar nmarley avatar pnagurny avatar pshenmic avatar sandakersmann avatar shumkov avatar snogcel avatar strophy avatar tagawa avatar udjinm6 avatar wozz avatar yemel 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

Watchers

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

insight-ui's Issues

Merchant panel

UI nice, but how I can see and control my wallet information (see transactions, address, do received...) with web?

Thanks.

deprecated package

instruction on readme call for:

➜  npm install -g dashcore-node
npm ERR! code E404
npm ERR! 404 Not Found: dashcore-node@latest

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/mmm/.npm/_logs/2018-08-16T20_37_16_784Z-debug.log

which is 404 as you can see above. What is the recomended way to install dashcore-node ?

ref: https://github.com/dashevo/insight-ui#getting-started

Support for Instant Send

What:

IS transactions appear as unconfirmed in Red until they are included in the first block.

Expected:

IS transactions should be displayed as confirmed by Instant Send

How to reproduce:

1 - make a IS transaction
2 - get the tx id
3 - paste tx into insight.dash.org/insight search box
4 - the transaction details will be displayed, but as unconfirmed transaction.

Reasonale

IS is a flag feature of DASH. It speaks poorly if the official block explorer still doesn't support it after years.

Search bar not working properly

If you paste in this address: XkbRp5aT5vGnYi7obCGvmX2FAQV34u6Dfw, it just continually tries to load something.

Looks like the problem is that it's attempting to parse an address as a block based on the API endpoint it's trying to hit.

https://insight.dash.org/insight-api/block/XkbRp5aT5vGnYi7obCGvmX2FAQV34u6Dfw

^^ Pulled from console error log

RPC bad connection broke insight

Hi all,
When I try to coonect RPC with bad Port, :3001/insight is can't open page, dash core is work, because gen. address.
Any ideas?
Because if bad guys try to connect with my IP and incorrectly port, they down insight.

Thanks

Error with search bar

Hey guys!

I got same error: #20 in search bar. I trying search address but i see UI trying search block and I see 404 error in console: ".../insight-api/block/MUKtt1tiVmihethhgXVn5PMusyRPwJ61eM 404 (Not Found)".
This example address for my coin: MUKtt1tiVmihethhgXVn5PMusyRPwJ61eM
I use insight-ui for my coin based on Dash.
I snifed traffic from insight-api to my coind, and I see what coind return error with code: 500.
Traffic screenshot:
screenshot_20190221_230303
Can because of that be a problem with the search?

I use:
insight-api v2.0.1
insight-ui 2.0.0

Thanks! Best regards!

bitcore-node-dash start error

Hello,

So I have set everything properly, I launched 2 insight versions for BTC and LTC.
All required libraries, dependencies are met, when I start the node, I get this error.

bitcore-node-dash start

[2017-07-14T16:29:27.544Z] info: Using config: /home/ubuntu/insight/bitcore-node-dash.json
[2017-07-14T16:29:27.545Z] info: Using network: livenet
[2017-07-14T16:29:27.546Z] info: Starting bitcoind
[2017-07-14T16:29:27.548Z] info: Using bitcoin config file: /home/ubuntu/insight/data/dash.conf
[2017-07-14T16:29:27.551Z] info: Starting dash process
[2017-07-14T16:29:27.561Z] error: Error: spawn /home/ubuntu/.nvm/versions/node/v4.8.4/lib/node_modules/bitcore-node-dash/lib/scaffold/data/dashd ENOENT
    at exports._errnoException (util.js:907:11)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:189:32)
    at onErrorNT (internal/child_process.js:363:16)
    at nextTickCallbackWith2Args (node.js:511:9)
    at process._tickCallback (node.js:425:17)

Prototype Pollution

Summary:
Prototype Pollution is a vulnerability affecting JavaScript. Prototype Pollution refers to the ability to inject properties into existing JavaScript language construct prototypes, such as objects. JavaScript allows all Object attributes to be altered, including their magical attributes such as proto, constructor and prototype. An attacker manipulates these attributes to overwrite, or pollute, a JavaScript application object prototype of the base object by injecting other values. Properties on the Object.prototype are then inherited by all the JavaScript objects through the prototype chain. When that happens, this leads to either denial of service by triggering JavaScript exceptions, or it tampers with the application source code to force the code path that the attacker injects, thereby leading to remote code execution.

Title - Prototype pollution attack[CVE-2019-10768]

Vulnerable URL:-https://explorer.dash.org/insight/

Steps To Reproduce:
1.Create/signup your account and check angularjs
2.Open console and put this payload
angular.merge({}, JSON.parse('{"proto": {"xxx": "polluted"}}'));
console.log(({}).xxx);

References:-
https://security.snyk.io/vuln/SNYK-JS-ANGULAR-534884
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-10768

Impact:-
Then it will let the attacker get access to sensitive information by polluting the scope with the isAdmin property. If the attacker changes some existing attribute to an unexpected return type (say toString attribute to return type integer) it will cause your application to crash (Denial of Service) or if you are using your server for code execution like node.js exec or eval then it might even lead to Remote code execution(RCE)

Fix:
Freeze the prototype— use Object.freeze (Object.prototype).

Require schema validation of JSON input.

Avoid using unsafe recursive merge functions.

Consider using objects without prototypes (for example, Object.create(null)), breaking the prototype chain and preventing pollution.

As a best practice use Map instead of Object.

Transaction - Displaying a wrong transaction do not warn us

If we decide to look up for a random non-existant transaction (/insight/tx/0000000001219cb882504216cb0b89de6567483e7a6a3bce45026b26fca9ff17 for instance), we do not have anything warning us about it.

We are only left with this :
image

There is a flashMessage that is being triggered in the Transaction.get method that seems to not be displayed.
Which seems to be linked to the logic being broken, it appears that many method such as Transaction.get(), expect failureCallback to be called on exception such as a status page being 404.
What really happens is that it goes into the successCallback that do not expect thoses and fails.

Some investigation is needed.

bitcore-node-dash Installation error

Hi

Please help me.
Whenever i am installing bitcore-node-dash i am getting this error.


[email protected] preinstall /home/afzal/.nvm/versions/node/v4.8.4/lib/node_modules/bitcore-node-dash
> ./scripts/download

sh: 1: ./scripts/download: Permission denied
npm ERR! Linux 3.16.0-30-generic
npm ERR! argv "/home/afzal/.nvm/versions/node/v4.8.4/bin/node" "/home/afzal/.nvm/versions/node/v4.8.4/bin/npm" "install" "-g" "bitcore-node-dash"
npm ERR! node v4.8.4
npm ERR! npm  v2.15.11
npm ERR! code ELIFECYCLE

npm ERR! [email protected] preinstall: `./scripts/download`
npm ERR! Exit status 126
npm ERR! 
npm ERR! Failed at the [email protected] preinstall script './scripts/download'.
npm ERR! This is most likely a problem with the bitcore-node-dash package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     ./scripts/download
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs bitcore-node-dash
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! 
npm ERR!     npm owner ls bitcore-node-dash
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/afzal/npm-debug.log

Status page not showing correct information

Looks like the initial sync Start Date is broken.

It also appears that the Initial Blockchain Height and Synced Blocks are also broken, or not displaying the correct information for each data point.

image

Funds didnt get to the receiver

I used dash to transfer some funds but its been days now but still no funds added...i dont know how this will be handle but pls do handle it. Thanks

Verify message not working

The network response from https://insight.dash.org/insight-api/messages/verify is {"result": true}, but the site just keeps displaying "Loading...". Apparently this is a Javascript error, the following is shown in the browser console (Firefox 68).

TypeError: "$http.post(...).success is not a function"
    verify https://insight.dash.org/insight/js/main.min.js:3
    Angular 7
        recurse
        e
        $eval
        $apply
        compile
        sg
        d
angularjs-all.min.js:3:57395
    Angular 6
        e
        get
        $apply
        compile
        sg
        d

🐛 [bug] [easy] v18 breaks instant send

I'm getting this from https://insight.dash.org when trying to use Instant Send:

Second argument must be numeric (maxfeerate) and no longer supports a boolean. To allow a transaction with high fees, set maxfeerate to 0.. Code:-8

The request looks like this:

let reqObj = {
  method: "POST",
  url: `${baseUrl}/insight-api-dash/tx/sendix`,
  form: {
    rawtx: hexTx,
  },
};

Since I'm sending a hex tx and the error message is about positional arguments to a function call, which makes me think that Dash Insight is out of sync with the latest deployed version of dashd or some such, on the Dash Insight server.

It stopped working Sunday, ostensibly when Dash Insight was upgraded to v18?

It sounds like there's somewhere that maxfeerate is set to false and instead needs to be set to 0.

Rate limitation override

I have a python program to make many JSON requests at http://localhost:3001/insight-api/tx/
However after a while I won't get any more replies, but get
{'status': 429, 'error': 'Rate limit exceeded'}
Also dashcore-node log shows
warn: Rate limited: { name: '::ffff:127.0.0.1', type: 'normal', visits: 10801 }
Only way to recover is to kill the node and restart it.
Any way to get around this?

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.