Compare commits
71 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5d768d868a | ||
|
|
3435f825d9 | ||
|
|
51cc30532d | ||
|
|
19c60d111d | ||
|
|
e4775417fc | ||
|
|
c3ca8643ec | ||
|
|
6e3f51fdbd | ||
|
|
7ec226faa2 | ||
|
|
52caae1d59 | ||
|
|
895ba45aec | ||
|
|
c615bb44b2 | ||
|
|
9325a1c103 | ||
|
|
e456052358 | ||
|
|
b00f80b967 | ||
|
|
6c7776904a | ||
|
|
5c070d0e65 | ||
|
|
0c40d113b4 | ||
|
|
be1788b4e3 | ||
|
|
8668e6abb0 | ||
|
|
19e5755ef7 | ||
|
|
bc8dc2e375 | ||
|
|
e83a99ae96 | ||
|
|
c7aa861a3b | ||
|
|
4eba927ded | ||
|
|
beb386535f | ||
|
|
686d775011 | ||
|
|
d5db7a9676 | ||
|
|
f098c4d35d | ||
|
|
135f9dd617 | ||
|
|
b5b7f9af2f | ||
|
|
c319197e64 | ||
|
|
ef3a02540b | ||
|
|
ee303492e3 | ||
|
|
c825504826 | ||
|
|
aef5a88dd2 | ||
|
|
51d3566203 | ||
|
|
24426b7337 | ||
|
|
f41fb29e26 | ||
|
|
271bc416fc | ||
|
|
46821f0c15 | ||
|
|
e13e24d3df | ||
|
|
9559af90ad | ||
|
|
1e431f9140 | ||
|
|
d5d6191dfb | ||
|
|
0852a26312 | ||
|
|
e87ad01707 | ||
|
|
efb275ba99 | ||
|
|
bc49b1ded5 | ||
|
|
55e6427d57 | ||
|
|
96b44e29b5 | ||
|
|
d4bb931f37 | ||
|
|
59c4bf2765 | ||
|
|
8251807292 | ||
|
|
f34006e513 | ||
|
|
3ff0341ad5 | ||
|
|
a69ef92e31 | ||
|
|
81155eb292 | ||
|
|
9c00ac8bc4 | ||
|
|
65f88ef14a | ||
|
|
c52682bb70 | ||
|
|
2cc88a2a15 | ||
|
|
fbc38a731c | ||
|
|
9195c90b74 | ||
|
|
2010f73d81 | ||
|
|
ba31444df5 | ||
|
|
a0ba1efeb8 | ||
|
|
37177c412c | ||
|
|
4931504c1e | ||
|
|
6cbca55bb1 | ||
|
|
7155ff0b91 | ||
|
|
e94154ba4b |
1
.gitignore
vendored
1
.gitignore
vendored
@ -47,3 +47,4 @@ public/css/main.css
|
||||
README.html
|
||||
po/*
|
||||
!po/*.po
|
||||
*.codekit3
|
||||
|
||||
5
.travis.yml
Normal file
5
.travis.yml
Normal file
@ -0,0 +1,5 @@
|
||||
language: node_js
|
||||
node_js:
|
||||
- 'v8'
|
||||
install:
|
||||
- npm install
|
||||
@ -1,6 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
// var config = require('insight-config.json');
|
||||
// var config = require('flosight-config.json');
|
||||
|
||||
module.exports = function(grunt) {
|
||||
|
||||
@ -23,7 +23,7 @@ module.exports = function(grunt) {
|
||||
patterns: [
|
||||
{
|
||||
match: 'INSIGHT_API_PREFIX',
|
||||
replacement: '<%= pkg.insightConfig.apiPrefix %>'
|
||||
replacement: '<%= pkg.flosightConfig.apiPrefix %>'
|
||||
}
|
||||
],
|
||||
usePrefix: false
|
||||
@ -123,7 +123,7 @@ module.exports = function(grunt) {
|
||||
nggettext_compile: {
|
||||
all: {
|
||||
options: {
|
||||
module: 'insight'
|
||||
module: 'flosight'
|
||||
},
|
||||
files: {
|
||||
'public/src/js/translations.js': ['po/*.po']
|
||||
|
||||
38
README.md
38
README.md
@ -1,29 +1,29 @@
|
||||
# Insight UI
|
||||
# Flosight UI
|
||||
|
||||
A Bitcoin blockchain explorer web application service for [Bitcore Node](https://github.com/bitpay/bitcore-node) using the [Insight API](https://github.com/bitpay/insight-api).
|
||||
A Florincoin blockchain explorer web application service for [Flocore Node](https://github.com/bitpay/flocore-node) using the [Flosight API](https://github.com/bitpay/flosight-api).
|
||||
|
||||
## Quick Start
|
||||
|
||||
Please see the guide at [https://bitcore.io/guides/full-node](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 [Bitcore](https://github.com/bitpay/bitcore).
|
||||
Please see the guide at [https://flocore.io/guides/full-node](https://flocore.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 [Flocore](https://github.com/bitpay/flocore).
|
||||
|
||||
## Getting Started
|
||||
|
||||
To manually install all of the necessary components, you can run these commands:
|
||||
|
||||
```bash
|
||||
npm install -g bitcore-node
|
||||
bitcore-node create mynode
|
||||
npm install -g flocore-node
|
||||
flocore-node create mynode
|
||||
cd mynode
|
||||
bitcore-node install insight-api
|
||||
bitcore-node install insight-ui
|
||||
bitcore-node start
|
||||
flocore-node install flosight-api
|
||||
flocore-node install flosight-ui
|
||||
flocore-node start
|
||||
```
|
||||
|
||||
Open a web browser to `http://localhost:3001/insight/`
|
||||
Open a web browser to `http://localhost:3001/flosight/`
|
||||
|
||||
## Development
|
||||
|
||||
To build Insight UI locally:
|
||||
To build Flosight UI locally:
|
||||
|
||||
```
|
||||
$ npm run build
|
||||
@ -37,25 +37,25 @@ $ npm run watch
|
||||
|
||||
## Changing routePrefix and apiPrefix
|
||||
|
||||
By default, the `insightConfig` in `package.json` is:
|
||||
By default, the `flosightConfig` in `package.json` is:
|
||||
|
||||
```json
|
||||
"insightConfig": {
|
||||
"apiPrefix": "insight-api",
|
||||
"routePrefix": "insight"
|
||||
"flosightConfig": {
|
||||
"apiPrefix": "flosight-api",
|
||||
"routePrefix": "flosight"
|
||||
}
|
||||
```
|
||||
|
||||
To change these routes, first make your changes to `package.json`, for example:
|
||||
|
||||
```json
|
||||
"insightConfig": {
|
||||
"flosightConfig": {
|
||||
"apiPrefix": "api",
|
||||
"routePrefix": ""
|
||||
}
|
||||
```
|
||||
|
||||
Then rebuild the `insight-ui` service:
|
||||
Then rebuild the `flosight-ui` service:
|
||||
|
||||
```
|
||||
$ npm run build
|
||||
@ -63,7 +63,7 @@ $ npm run build
|
||||
|
||||
## Multilanguage support
|
||||
|
||||
Insight UI uses [angular-gettext](http://angular-gettext.rocketeer.be) for multilanguage support.
|
||||
Flosight UI uses [angular-gettext](http://angular-gettext.rocketeer.be) for multilanguage support.
|
||||
|
||||
To enable a text to be translated, add the ***translate*** directive to html tags. See more details [here](http://angular-gettext.rocketeer.be/dev-guide/annotate/). Then, run:
|
||||
|
||||
@ -88,11 +88,11 @@ compile***.
|
||||
|
||||
## Note
|
||||
|
||||
For more details about the [Insight API](https://github.com/bitpay/insight-api) configuration and end-points, go to [Insight API GitHub repository](https://github.com/bitpay/insight-api).
|
||||
For more details about the [Flosight API](https://github.com/bitpay/flosight-api) configuration and end-points, go to [Flosight API GitHub repository](https://github.com/bitpay/flosight-api).
|
||||
|
||||
## Contribute
|
||||
|
||||
Contributions and suggestions are welcomed at the [Insight UI GitHub repository](https://github.com/bitpay/insight-ui).
|
||||
Contributions and suggestions are welcomed at the [Flosight UI GitHub repository](https://github.com/bitpay/flosight-ui).
|
||||
|
||||
|
||||
## License
|
||||
|
||||
@ -1,48 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
var BaseService = require('./service');
|
||||
var inherits = require('util').inherits;
|
||||
var fs = require('fs');
|
||||
var pkg = require('../package');
|
||||
|
||||
var InsightUI = function(options) {
|
||||
BaseService.call(this, options);
|
||||
// we don't use the options object for routePrefix and apiPrefix, since the
|
||||
// client must be rebuilt with the proper options. A future version of
|
||||
// Bitcore should allow for a service "build" step to make this better.
|
||||
this.apiPrefix = pkg.insightConfig.apiPrefix;
|
||||
this.routePrefix = pkg.insightConfig.routePrefix;
|
||||
};
|
||||
|
||||
InsightUI.dependencies = ['insight-api'];
|
||||
|
||||
inherits(InsightUI, BaseService);
|
||||
|
||||
InsightUI.prototype.start = function(callback) {
|
||||
this.indexFile = this.filterIndexHTML(fs.readFileSync(__dirname + '/../public/index-template.html', {encoding: 'utf8'}));
|
||||
setImmediate(callback);
|
||||
};
|
||||
|
||||
InsightUI.prototype.getRoutePrefix = function() {
|
||||
return this.routePrefix;
|
||||
};
|
||||
|
||||
InsightUI.prototype.setupRoutes = function(app, express) {
|
||||
var self = this;
|
||||
app.use(express.static(__dirname + '/../public'));
|
||||
// if not in found, fall back to indexFile (404 is handled client-side)
|
||||
app.use(function(req, res, next) {
|
||||
res.setHeader('Content-Type', 'text/html');
|
||||
res.send(self.indexFile);
|
||||
});
|
||||
};
|
||||
|
||||
InsightUI.prototype.filterIndexHTML = function(data) {
|
||||
var transformed = data;
|
||||
if (this.routePrefix !== '') {
|
||||
transformed = transformed.replace('<base href="/"', '<base href="/' + this.routePrefix + '/"');
|
||||
}
|
||||
return transformed;
|
||||
};
|
||||
|
||||
module.exports = InsightUI;
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Insight",
|
||||
"version": "0.0.1",
|
||||
"name": "Flosight",
|
||||
"version": "5.0.0-beta.1",
|
||||
"dependencies": {
|
||||
"angular": "~1.2.13",
|
||||
"angular-resource": "~1.2.13",
|
||||
|
||||
61
flocore-node/index.js
Normal file
61
flocore-node/index.js
Normal file
@ -0,0 +1,61 @@
|
||||
'use strict';
|
||||
|
||||
var BaseService = require('./service');
|
||||
var inherits = require('util').inherits;
|
||||
var fs = require('fs');
|
||||
var exec = require('child_process').exec;
|
||||
var pkg = require('../package.json');
|
||||
|
||||
var FlosightUI = function(options) {
|
||||
BaseService.call(this, options);
|
||||
this.apiPrefix = options.apiPrefix || 'api';
|
||||
this.routePrefix = options.routePrefix || '';
|
||||
};
|
||||
|
||||
FlosightUI.dependencies = ['flosight-api'];
|
||||
|
||||
inherits(FlosightUI, BaseService);
|
||||
|
||||
FlosightUI.prototype.start = function(callback) {
|
||||
|
||||
var self = this;
|
||||
pkg.flosightConfig.apiPrefix = self.apiPrefix;
|
||||
pkg.flosightConfig.routePrefix = self.routePrefix;
|
||||
|
||||
// fs.writeFileSync(__dirname + '/../package.json', JSON.stringify(pkg, null, 2));
|
||||
// exec('cd ' + __dirname + '/../;' +
|
||||
// ' npm run install-and-build', function(err) {
|
||||
// if (err) {
|
||||
// return callback(err);
|
||||
// }
|
||||
// self.indexFile = self.filterIndexHTML(fs.readFileSync(__dirname + '/../public/index-template.html', {encoding: 'utf8'}));
|
||||
// callback();
|
||||
// });
|
||||
self.indexFile = self.filterIndexHTML(fs.readFileSync(__dirname + '/../public/index-template.html', {encoding: 'utf8'}));
|
||||
callback();
|
||||
|
||||
};
|
||||
|
||||
FlosightUI.prototype.getRoutePrefix = function() {
|
||||
return this.routePrefix;
|
||||
};
|
||||
|
||||
FlosightUI.prototype.setupRoutes = function(app, express) {
|
||||
var self = this;
|
||||
app.use(express.static(__dirname + '/../public'));
|
||||
// if not in found, fall back to indexFile (404 is handled client-side)
|
||||
app.use(function(req, res) {
|
||||
res.setHeader('Content-Type', 'text/html');
|
||||
res.send(self.indexFile);
|
||||
});
|
||||
};
|
||||
|
||||
FlosightUI.prototype.filterIndexHTML = function(data) {
|
||||
var transformed = data;
|
||||
if (this.routePrefix !== '') {
|
||||
transformed = transformed.replace('<base href="/"', '<base href="/' + this.routePrefix + '/"');
|
||||
}
|
||||
return transformed;
|
||||
};
|
||||
|
||||
module.exports = FlosightUI;
|
||||
@ -68,7 +68,7 @@ Service.prototype.start = function(done) {
|
||||
};
|
||||
|
||||
/**
|
||||
* Function to be called when bitcore-node is stopped
|
||||
* Function to be called when flocore-node is stopped
|
||||
*/
|
||||
Service.prototype.stop = function(done) {
|
||||
setImmediate(done);
|
||||
1499
package-lock.json
generated
Normal file
1499
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
54
package.json
54
package.json
@ -1,54 +1,36 @@
|
||||
{
|
||||
"name": "insight-ui",
|
||||
"description": "An open-source frontend for the Insight API. The Insight API provides you with a convenient, powerful and simple way to query and broadcast data on the bitcoin network and build your own services with it.",
|
||||
"version": "0.4.0",
|
||||
"repository": "git://github.com/bitpay/insight-ui.git",
|
||||
"contributors": [
|
||||
{
|
||||
"name": "Matias Alejo Garcia",
|
||||
"email": "ematiu@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Manuel Araoz",
|
||||
"email": "manuelaraoz@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Mario Colque",
|
||||
"email": "colquemario@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Gustavo Cortez",
|
||||
"email": "cmgustavo83@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Juan Ignacio Sosa Lopez",
|
||||
"email": "bechilandia@gmail.com"
|
||||
}
|
||||
],
|
||||
"name": "flosight-ui",
|
||||
"description": "An open-source frontend for the Flosight API. The Flosight API provides you with a convenient, powerful and simple way to query and broadcast data on the florincoin network and build your own services with it.",
|
||||
"version": "5.0.0-beta.72",
|
||||
"repository": "git://github.com/bitpay/flosight-ui.git",
|
||||
"bugs": {
|
||||
"url": "https://github.com/bitpay/insight-ui/issues"
|
||||
"url": "https://github.com/bitpay/flosight-ui/issues"
|
||||
},
|
||||
"homepage": "https://github.com/bitpay/insight-ui",
|
||||
"homepage": "https://github.com/bitpay/flosight-ui",
|
||||
"license": "MIT",
|
||||
"keywords": [
|
||||
"insight",
|
||||
"flosight",
|
||||
"blockchain",
|
||||
"blockexplorer",
|
||||
"bitcoin",
|
||||
"bitcore",
|
||||
"florincoin",
|
||||
"flocore",
|
||||
"front-end"
|
||||
],
|
||||
"bitcoreNode": "bitcore-node",
|
||||
"insightConfig": {
|
||||
"apiPrefix": "insight-api",
|
||||
"routePrefix": "insight"
|
||||
"flocoreNode": "flocore-node",
|
||||
"flosightConfig": {
|
||||
"apiPrefix": "api",
|
||||
"routePrefix": ""
|
||||
},
|
||||
"scripts": {
|
||||
"build": "bower install && grunt compile",
|
||||
"watch": "grunt"
|
||||
"prepublishOnly": "npm run build",
|
||||
"watch": "grunt",
|
||||
"install-and-build": "npm install && npm run build",
|
||||
"test": "mocha test"
|
||||
},
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"mocha": "^2.4.5",
|
||||
"bower": "~1.8.0",
|
||||
"grunt": "~0.4.2",
|
||||
"grunt-angular-gettext": "^0.2.15",
|
||||
|
||||
52
po/de_DE.po
52
po/de_DE.po
@ -1,6 +1,6 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Insight\n"
|
||||
"Project-Id-Version: Flosight\n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: Sascha Dückers <s.dueckers@gmail.com>\n"
|
||||
@ -22,35 +22,35 @@ msgstr "404 Seite nicht gefunden :("
|
||||
|
||||
#: public/views/index.html
|
||||
msgid ""
|
||||
"<strong>insight</strong> is an <a href=\"http://live.insight.is/\" target="
|
||||
"\"_blank\">open-source Bitcoin blockchain explorer</a> with complete REST "
|
||||
"<strong>flosight</strong> is an <a href=\"http://flocha.in/\" target="
|
||||
"\"_blank\">open-source Flo blockchain explorer</a> with complete REST "
|
||||
"and websocket APIs that can be used for writing web wallets and other apps "
|
||||
"that need more advanced blockchain queries than provided by bitcoind RPC. "
|
||||
"Check out the <a href=\"https://github.com/bitpay/insight-ui\" target=\"_blank"
|
||||
"that need more advanced blockchain queries than provided by Flod RPC. "
|
||||
"Check out the <a href=\"https://github.com/oipwg/flosight-ui\" target=\"_blank"
|
||||
"\">source code</a>."
|
||||
msgstr ""
|
||||
"<strong>insight</strong> ist ein <a href=\"http://live.insight.is/\" target="
|
||||
"\"_blank\">Open Source Bitcoin Blockchain Explorer</a> mit vollständigen "
|
||||
"<strong>flosight</strong> ist ein <a href=\"http://flocha.in/\" target="
|
||||
"\"_blank\">Open Source Flo Blockchain Explorer</a> mit vollständigen "
|
||||
"REST und Websocket APIs um eigene Wallets oder Applikationen zu "
|
||||
"implementieren. Hierbei werden fortschrittlichere Abfragen der Blockchain "
|
||||
"ermöglicht, bei denen die RPC des Bitcoind nicht mehr ausreichen. Der "
|
||||
"aktuelle <a href=\"https://github.com/bitpay/insight-ui\" target=\"_blank"
|
||||
"ermöglicht, bei denen die RPC des Flod nicht mehr ausreichen. Der "
|
||||
"aktuelle <a href=\"https://github.com/oipwg/flosight-ui\" target=\"_blank"
|
||||
"\">Quellcode</a> ist auf Github zu finden."
|
||||
|
||||
#: public/views/index.html
|
||||
msgid ""
|
||||
"<strong>insight</strong> is still in development, so be sure to report any "
|
||||
"<strong>flosight</strong> is still in development, so be sure to report any "
|
||||
"bugs and provide feedback for improvement at our <a href=\"https://github."
|
||||
"com/bitpay/insight/issues\" target=\"_blank\">github issue tracker</a>."
|
||||
"com/oipwg/flosight-ui/issues\" target=\"_blank\">github issue tracker</a>."
|
||||
msgstr ""
|
||||
"<strong>insight</strong> befindet sich aktuell noch in der Entwicklung. "
|
||||
"<strong>flosight</strong> befindet sich aktuell noch in der Entwicklung. "
|
||||
"Bitte sende alle gefundenen Fehler (Bugs) und Feedback zur weiteren "
|
||||
"Verbesserung an unseren <a href=\"https://github.com/bitpay/insight-ui/issues"
|
||||
"Verbesserung an unseren <a href=\"https://github.com/oipwg/flosight-ui/issues"
|
||||
"\" target=\"_blank\">Github Issue Tracker</a>."
|
||||
|
||||
#: public/views/index.html
|
||||
msgid "About"
|
||||
msgstr "Über insight"
|
||||
msgstr "Über flosight"
|
||||
|
||||
#: public/views/address.html
|
||||
msgid "Address"
|
||||
@ -69,8 +69,8 @@ msgid "Best Block"
|
||||
msgstr "Bester Block"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Bitcoin node information"
|
||||
msgstr "Bitcoin-Node Info"
|
||||
msgid "Flo node information"
|
||||
msgstr "Flo-Node Info"
|
||||
|
||||
#: public/views/block.html
|
||||
msgid "Block"
|
||||
@ -91,17 +91,17 @@ msgstr "Serialisierte Bytes"
|
||||
|
||||
#: public/views/includes/connection.html
|
||||
msgid ""
|
||||
"Can't connect to bitcoind to get live updates from the p2p network. (Tried "
|
||||
"connecting to bitcoind at {{host}}:{{port}} and failed.)"
|
||||
"Can't connect to flod to get live updates from the p2p network. (Tried "
|
||||
"connecting to flod at {{host}}:{{port}} and failed.)"
|
||||
msgstr ""
|
||||
"Es ist nicht möglich mit Bitcoind zu verbinden um live Aktualisierungen vom "
|
||||
"P2P Netzwerk zu erhalten. (Verbindungsversuch zu bitcoind an {{host}}:"
|
||||
"Es ist nicht möglich mit Flod zu verbinden um live Aktualisierungen vom "
|
||||
"P2P Netzwerk zu erhalten. (Verbindungsversuch zu flod an {{host}}:"
|
||||
"{{port}} ist fehlgeschlagen.)"
|
||||
|
||||
#: public/views/includes/connection.html
|
||||
msgid "Can't connect to insight server. Attempting to reconnect..."
|
||||
msgid "Can't connect to flosight server. Attempting to reconnect..."
|
||||
msgstr ""
|
||||
"Keine Verbindung zum insight-Server möglich. Es wird versucht die "
|
||||
"Keine Verbindung zum flosight-Server möglich. Es wird versucht die "
|
||||
"Verbindung neu aufzubauen..."
|
||||
|
||||
#: public/views/includes/connection.html
|
||||
@ -125,8 +125,8 @@ msgid "Connections to other nodes"
|
||||
msgstr "Verbindungen zu Nodes"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Current Blockchain Tip (insight)"
|
||||
msgstr "Aktueller Blockchain Tip (insight)"
|
||||
msgid "Current Blockchain Tip (flosight)"
|
||||
msgstr "Aktueller Blockchain Tip (flosight)"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Current Sync Status"
|
||||
@ -199,8 +199,8 @@ msgid "Last Block"
|
||||
msgstr "Letzter Block"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Last Block Hash (Bitcoind)"
|
||||
msgstr "Letzter Hash (Bitcoind)"
|
||||
msgid "Last Block Hash (Flod)"
|
||||
msgstr "Letzter Hash (Flod)"
|
||||
|
||||
#: public/views/index.html
|
||||
msgid "Latest Blocks"
|
||||
|
||||
50
po/es.po
50
po/es.po
@ -1,6 +1,6 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Insight\n"
|
||||
"Project-Id-Version: Flosight\n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: \n"
|
||||
@ -22,29 +22,29 @@ msgstr "404 Página no encontrada :("
|
||||
|
||||
#: public/views/index.html
|
||||
msgid ""
|
||||
"<strong>insight</strong> is an <a href=\"http://live.insight.is/\" target="
|
||||
"\"_blank\">open-source Bitcoin blockchain explorer</a> with complete REST "
|
||||
"<strong>flosight</strong> is an <a href=\"http://flocha.in/\" target="
|
||||
"\"_blank\">open-source Flo blockchain explorer</a> with complete REST "
|
||||
"and websocket APIs that can be used for writing web wallets and other apps "
|
||||
"that need more advanced blockchain queries than provided by bitcoind RPC. "
|
||||
"Check out the <a href=\"https://github.com/bitpay/insight-ui\" target=\"_blank"
|
||||
"that need more advanced blockchain queries than provided by flod RPC. "
|
||||
"Check out the <a href=\"https://github.com/oipwg/flosight-api\" target=\"_blank"
|
||||
"\">source code</a>."
|
||||
msgstr ""
|
||||
"<strong>insight</strong> es un <a href=\"http://live.insight.is/\" target="
|
||||
"\"_blank\">explorador de bloques de Bitcoin open-source</a> con un completo "
|
||||
"<strong>flosight</strong> es un <a href=\"http://flocha.in/\" target="
|
||||
"\"_blank\">explorador de bloques de Flo open-source</a> con un completo "
|
||||
"conjunto de REST y APIs de websockets que pueden ser usadas para escribir "
|
||||
"monederos de Bitcoins y otras aplicaciones que requieran consultar un "
|
||||
"monederos de Flos y otras aplicaciones que requieran consultar un "
|
||||
"explorador de bloques. Obtén el código en <a href=\"http://github.com/"
|
||||
"bitpay/insight\" target=\"_blank\">el repositorio abierto de Github</a>."
|
||||
"oipwg/flosight-api\" target=\"_blank\">el repositorio abierto de Github</a>."
|
||||
|
||||
#: public/views/index.html
|
||||
msgid ""
|
||||
"<strong>insight</strong> is still in development, so be sure to report any "
|
||||
"<strong>flosight</strong> is still in development, so be sure to report any "
|
||||
"bugs and provide feedback for improvement at our <a href=\"https://github."
|
||||
"com/bitpay/insight/issues\" target=\"_blank\">github issue tracker</a>."
|
||||
"com/oipwg/flosight-ui/issues\" target=\"_blank\">github issue tracker</a>."
|
||||
msgstr ""
|
||||
"<strong>insight</strong> esta en desarrollo aún, por ello agradecemos que "
|
||||
"<strong>flosight</strong> esta en desarrollo aún, por ello agradecemos que "
|
||||
"nos reporten errores o sugerencias para mejorar el software. <a href="
|
||||
"\"https://github.com/bitpay/insight-ui/issues\" target=\"_blank\">Github issue "
|
||||
"\"https://github.com/oipwg/flosight-ui/issues\" target=\"_blank\">Github issue "
|
||||
"tracker</a>."
|
||||
|
||||
#: public/views/index.html
|
||||
@ -68,8 +68,8 @@ msgid "Best Block"
|
||||
msgstr "Mejor Bloque"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Bitcoin node information"
|
||||
msgstr "Información del nodo Bitcoin"
|
||||
msgid "Flo node information"
|
||||
msgstr "Información del nodo Flo"
|
||||
|
||||
#: public/views/block.html
|
||||
msgid "Block"
|
||||
@ -90,15 +90,15 @@ msgstr "Bytes Serializados"
|
||||
|
||||
#: public/views/includes/connection.html
|
||||
msgid ""
|
||||
"Can't connect to bitcoind to get live updates from the p2p network. (Tried "
|
||||
"connecting to bitcoind at {{host}}:{{port}} and failed.)"
|
||||
"Can't connect to flod to get live updates from the p2p network. (Tried "
|
||||
"connecting to flod at {{host}}:{{port}} and failed.)"
|
||||
msgstr ""
|
||||
"No se pudo conectar a bitcoind para obtener actualizaciones en vivo de la "
|
||||
"red p2p. (Se intentó conectar a bitcoind de {{host}}:{{port}} y falló.)"
|
||||
"No se pudo conectar a flod para obtener actualizaciones en vivo de la "
|
||||
"red p2p. (Se intentó conectar a flod de {{host}}:{{port}} y falló.)"
|
||||
|
||||
#: public/views/includes/connection.html
|
||||
msgid "Can't connect to insight server. Attempting to reconnect..."
|
||||
msgstr "No se pudo conectar al servidor insight. Intentando re-conectar..."
|
||||
msgid "Can't connect to flosight server. Attempting to reconnect..."
|
||||
msgstr "No se pudo conectar al servidor flosight. Intentando re-conectar..."
|
||||
|
||||
#: public/views/includes/connection.html
|
||||
msgid "Can't connect to internet. Please, check your connection."
|
||||
@ -121,8 +121,8 @@ msgid "Connections to other nodes"
|
||||
msgstr "Conexiones a otros nodos"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Current Blockchain Tip (insight)"
|
||||
msgstr "Actual Blockchain Tip (insight)"
|
||||
msgid "Current Blockchain Tip (flosight)"
|
||||
msgstr "Actual Blockchain Tip (flosight)"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Current Sync Status"
|
||||
@ -195,8 +195,8 @@ msgid "Last Block"
|
||||
msgstr "Último Bloque"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Last Block Hash (Bitcoind)"
|
||||
msgstr "Último Bloque Hash (Bitcoind)"
|
||||
msgid "Last Block Hash (Flod)"
|
||||
msgstr "Último Bloque Hash (Flod)"
|
||||
|
||||
#: public/views/index.html
|
||||
msgid "Latest Blocks"
|
||||
|
||||
60
po/ja.po
60
po/ja.po
@ -21,28 +21,28 @@ msgstr "404 ページがみつかりません (´・ω・`)"
|
||||
|
||||
#: public/views/index.html
|
||||
msgid ""
|
||||
"<strong>insight</strong> is an <a href=\"http://live.insight.is/\" target="
|
||||
"\"_blank\">open-source Bitcoin blockchain explorer</a> with complete REST "
|
||||
"<strong>flosight</strong> is an <a href=\"http://flocha.in/\" target="
|
||||
"\"_blank\">open-source Flo blockchain explorer</a> with complete REST "
|
||||
"and websocket APIs that can be used for writing web wallets and other apps "
|
||||
"that need more advanced blockchain queries than provided by bitcoind RPC. "
|
||||
"Check out the <a href=\"https://github.com/bitpay/insight-ui\" target=\"_blank"
|
||||
"that need more advanced blockchain queries than provided by flod RPC. "
|
||||
"Check out the <a href=\"https://github.com/bitpay/flosight-api\" target=\"_blank"
|
||||
"\">source code</a>."
|
||||
msgstr ""
|
||||
"<strong>insight</strong>は、bitcoind RPCの提供するものよりも詳細なブロック"
|
||||
"<strong>flosight</strong>は、flod RPCの提供するものよりも詳細なブロック"
|
||||
"チェインへの問い合わせを必要とするウェブウォレットやその他のアプリを書くのに"
|
||||
"使える、完全なRESTおよびwebsocket APIを備えた<a href=\"http://live.insight."
|
||||
"is/\" target=\"_blank\">オープンソースのビットコインブロックエクスプローラ</"
|
||||
"a>です。<a href=\"https://github.com/bitpay/insight-ui\" target=\"_blank\">ソース"
|
||||
"使える、完全なRESTおよびwebsocket APIを備えた<a href=\"http://flocha.in"
|
||||
"/\" target=\"_blank\">オープンソースのビットコインブロックエクスプローラ</"
|
||||
"a>です。<a href=\"https://github.com/bitpay/flosight-api\" target=\"_blank\">ソース"
|
||||
"コード</a>を確認"
|
||||
|
||||
#: public/views/index.html
|
||||
msgid ""
|
||||
"<strong>insight</strong> is still in development, so be sure to report any "
|
||||
"<strong>flosight</strong> is still in development, so be sure to report any "
|
||||
"bugs and provide feedback for improvement at our <a href=\"https://github."
|
||||
"com/bitpay/insight/issues\" target=\"_blank\">github issue tracker</a>."
|
||||
"com/oipwg/flosight-ui/issues\" target=\"_blank\">github issue tracker</a>."
|
||||
msgstr ""
|
||||
"<strong>insight</strong>は現在開発中です。<a href=\"https://github.com/"
|
||||
"bitpay/insight/issues\" target=\"_blank\">githubのissueトラッカ</a>にてバグの"
|
||||
"<strong>flosight</strong>は現在開発中です。<a href=\"https://github.com/"
|
||||
"oipwg/flosight-ui/issues\" target=\"_blank\">githubのissueトラッカ</a>にてバグの"
|
||||
"報告や改善案の提案をお願いします。"
|
||||
|
||||
#: public/views/index.html
|
||||
@ -74,12 +74,12 @@ msgid "Best Block"
|
||||
msgstr "最良ブロック"
|
||||
|
||||
#: public/views/messages_verify.html
|
||||
msgid "Bitcoin comes with a way of signing arbitrary messages."
|
||||
msgstr "Bitcoinには任意のメッセージを署名する昨日が備わっています。"
|
||||
msgid "Flo comes with a way of signing arbitrary messages."
|
||||
msgstr "Floには任意のメッセージを署名する昨日が備わっています。"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Bitcoin node information"
|
||||
msgstr "Bitcoinノード情報"
|
||||
msgid "Flo node information"
|
||||
msgstr "Floノード情報"
|
||||
|
||||
#: public/views/block.html
|
||||
msgid "Block"
|
||||
@ -104,15 +104,15 @@ msgstr "シリアライズ後の容量 (バイト)"
|
||||
|
||||
#: public/views/includes/connection.html
|
||||
msgid ""
|
||||
"Can't connect to bitcoind to get live updates from the p2p network. (Tried "
|
||||
"connecting to bitcoind at {{host}}:{{port}} and failed.)"
|
||||
"Can't connect to flod to get live updates from the p2p network. (Tried "
|
||||
"connecting to flod at {{host}}:{{port}} and failed.)"
|
||||
msgstr ""
|
||||
"P2Pネットワークからライブ情報を取得するためにbitcoindへ接続することができませ"
|
||||
"P2Pネットワークからライブ情報を取得するためにflodへ接続することができませ"
|
||||
"んでした。({{host}}:{{port}} への接続を試みましたが、失敗しました。)"
|
||||
|
||||
#: public/views/includes/connection.html
|
||||
msgid "Can't connect to insight server. Attempting to reconnect..."
|
||||
msgstr "insight サーバに接続できません。再接続しています..."
|
||||
msgid "Can't connect to flosight server. Attempting to reconnect..."
|
||||
msgstr "flosight サーバに接続できません。再接続しています..."
|
||||
|
||||
#: public/views/includes/connection.html
|
||||
msgid "Can't connect to internet. Please, check your connection."
|
||||
@ -135,8 +135,8 @@ msgid "Connections to other nodes"
|
||||
msgstr "他ノードへの接続"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Current Blockchain Tip (insight)"
|
||||
msgstr "現在のブロックチェインのTip (insight)"
|
||||
msgid "Current Blockchain Tip (flosight)"
|
||||
msgstr "現在のブロックチェインのTip (flosight)"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Current Sync Status"
|
||||
@ -213,8 +213,8 @@ msgid "Last Block"
|
||||
msgstr "直前のブロック"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Last Block Hash (Bitcoind)"
|
||||
msgstr "直前のブロックのハッシュ値 (Bitcoind)"
|
||||
msgid "Last Block Hash (Flod)"
|
||||
msgstr "直前のブロックのハッシュ値 (Flod)"
|
||||
|
||||
#: public/views/index.html
|
||||
msgid "Latest Blocks"
|
||||
@ -426,17 +426,17 @@ msgstr "このアドレスに対するトランザクションはありません
|
||||
#: public/views/transaction_sendraw.html
|
||||
msgid ""
|
||||
"This form can be used to broadcast a raw transaction in hex format over\n"
|
||||
" the Bitcoin network."
|
||||
" the Flo network."
|
||||
msgstr ""
|
||||
"このフォームでは、16進数フォーマットの生のトランザクションをBitcoinネットワー"
|
||||
"このフォームでは、16進数フォーマットの生のトランザクションをFloネットワー"
|
||||
"ク上に配信することができます。"
|
||||
|
||||
#: public/views/messages_verify.html
|
||||
msgid ""
|
||||
"This form can be used to verify that a message comes from\n"
|
||||
" a specific Bitcoin address."
|
||||
" a specific Flo address."
|
||||
msgstr ""
|
||||
"このフォームでは、メッセージが特定のBitcoinアドレスから来たかどうかを検証する"
|
||||
"このフォームでは、メッセージが特定のFloアドレスから来たかどうかを検証する"
|
||||
"ことができます。"
|
||||
|
||||
#: public/views/status.html
|
||||
@ -453,7 +453,7 @@ msgstr "今日"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Total Amount"
|
||||
msgstr "Bitcoin総量"
|
||||
msgstr "Flo総量"
|
||||
|
||||
#: public/views/address.html
|
||||
msgid "Total Received"
|
||||
|
||||
2
public/css/main.min.css
vendored
2
public/css/main.min.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
@ -1,14 +1,14 @@
|
||||
<!doctype html>
|
||||
<html lang="en" data-ng-app="insight" data-ng-csp>
|
||||
<html lang="en" data-ng-app="flosight" data-ng-csp>
|
||||
<head>
|
||||
<base href="/" />
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||
<meta name="fragment" content="!">
|
||||
<title data-ng-bind="$root.title + $root.titleDetail + ' | Insight'">Insight</title>
|
||||
<meta name="keywords" content="bitcoins, transactions, blocks, address, block chain, best block, mining difficulty, hash serialized">
|
||||
<meta name="description" content="Bitcoin Insight. View detailed information on all bitcoin transactions and blocks.">
|
||||
<title data-ng-bind="$root.title + $root.titleDetail + ' | Flosight'">Flosight</title>
|
||||
<meta name="keywords" content="flo, transactions, blocks, address, block chain, best block, mining difficulty, hash serialized">
|
||||
<meta name="description" content="Flo Chain Explorer. View detailed information on all Flo transactions and blocks.">
|
||||
<link rel="shortcut icon" href="img/icons/favicon.ico" type="image/x-icon">
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Ubuntu:300,400,500,700,400italic">
|
||||
<link rel="stylesheet" href="css/main.min.css">
|
||||
@ -63,12 +63,32 @@
|
||||
<a href="tx/send" translate>broadcast transaction</a>
|
||||
]
|
||||
</div>
|
||||
<a class="insight m10v pull-right" target="_blank" href="http://insight.is">insight <small>API v{{version}}</small></a>
|
||||
<a class="flosight m10v pull-right" target="_blank" href="http://flosight.is">flosight <small>API v{{version}}</small></a>
|
||||
</div>
|
||||
</div>
|
||||
<script src="/socket.io/socket.io.js"></script>
|
||||
<script src="js/vendors.min.js"></script>
|
||||
<script src="js/angularjs-all.min.js"></script>
|
||||
<script src="js/clipboard.min.js"></script>
|
||||
<script src="js/main.min.js"></script>
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-119772748-2"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-119772748-2');
|
||||
</script>
|
||||
<script>
|
||||
var observer = new window.MutationObserver(function(mutations, observer) {
|
||||
var clipboard = new ClipboardJS('.btn-copy');
|
||||
});
|
||||
|
||||
observer.observe(document, {
|
||||
subtree: true,
|
||||
attributes: true
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
2
public/js/angularjs-all.min.js
vendored
2
public/js/angularjs-all.min.js
vendored
File diff suppressed because one or more lines are too long
7
public/js/clipboard.min.js
vendored
Executable file
7
public/js/clipboard.min.js
vendored
Executable file
File diff suppressed because one or more lines are too long
6
public/js/main.min.js
vendored
6
public/js/main.min.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/vendors.min.js
vendored
2
public/js/vendors.min.js
vendored
File diff suppressed because one or more lines are too long
@ -24,7 +24,7 @@ h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
|
||||
|
||||
/* Styling for the ngProgress itself */
|
||||
#ngProgress {
|
||||
background-color: #6C9032 !important;
|
||||
background-color: #306d8e !important;
|
||||
box-shadow: none !important;
|
||||
color: #373D42 !important;
|
||||
height: 3px !important;
|
||||
@ -103,7 +103,7 @@ margin-left: 0;
|
||||
}
|
||||
|
||||
.table-hover>tbody>tr:hover>td, .table-hover>tbody>tr:hover>th {
|
||||
background-color: #F0F7E2;
|
||||
background-color: #e8f6ff;
|
||||
}
|
||||
.navbar { min-height: 64px; }
|
||||
.navbar-default .navbar-toggle {
|
||||
@ -115,7 +115,7 @@ margin-left: 0;
|
||||
.navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus {background-color: #373D42;}
|
||||
|
||||
.navbar-default {
|
||||
background-color: #8DC429;
|
||||
background-color: #3d7c9f;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
}
|
||||
@ -128,7 +128,7 @@ margin-left: 0;
|
||||
}
|
||||
|
||||
.navbar-default .navbar-nav>.active>a, .navbar-default .navbar-nav>.active>a:focus {
|
||||
background-color: #6C9032;
|
||||
background-color: #406072;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
@ -148,7 +148,7 @@ margin-left: 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.insight {
|
||||
.flosight {
|
||||
font-family: 'Ubuntu', sans-serif;
|
||||
font-size: 34px;
|
||||
font-style: italic;
|
||||
@ -166,7 +166,7 @@ margin-left: 0;
|
||||
}
|
||||
|
||||
.navbar-form .form-control {
|
||||
background-color: #7CAD23;
|
||||
background-color: #376177;
|
||||
border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
@ -201,14 +201,14 @@ margin-left: 0;
|
||||
#search { color: #fff; }
|
||||
|
||||
#search::-webkit-input-placeholder {
|
||||
color: #BCDF7E;
|
||||
color: #87bfdd;
|
||||
font-family: 'Ubuntu', sans-serif;
|
||||
font-style: italic;
|
||||
font-weight: 100;
|
||||
}
|
||||
|
||||
#search::-moz-placeholder {
|
||||
color: #BCDF7E;
|
||||
color: #87bfdd;
|
||||
font-family: 'Ubuntu', sans-serif;
|
||||
font-weight: 100;
|
||||
}
|
||||
@ -216,7 +216,7 @@ margin-left: 0;
|
||||
.status {
|
||||
-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
background-color: #597338;
|
||||
background-color: #376177;
|
||||
border-radius: 3px;
|
||||
margin: 15px 0;
|
||||
padding: 8px 10px;
|
||||
@ -316,8 +316,8 @@ margin-left: 0;
|
||||
border-radius: 2px;
|
||||
}
|
||||
.btn-primary {
|
||||
background-color: #8DC429;
|
||||
border: 2px solid #76AF0F;
|
||||
background-color: #218bc4;
|
||||
border: 2px solid #0b71a8;
|
||||
}
|
||||
|
||||
.btn-primary:hover, .btn-primary:focus, .btn-primary:active,
|
||||
@ -363,7 +363,7 @@ margin-left: 0;
|
||||
}
|
||||
|
||||
.txvalues-primary {
|
||||
background-color: #8DC429;
|
||||
background-color: #2587bc;
|
||||
}
|
||||
|
||||
.txvalues-default {
|
||||
@ -386,7 +386,7 @@ margin-left: 0;
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
}
|
||||
.progress-bar-info { background-color: #8DC429; }
|
||||
.progress-bar-info { background-color: #2587bc; }
|
||||
|
||||
/* Set the fixed height of the footer here */
|
||||
#footer {
|
||||
@ -396,17 +396,17 @@ margin-left: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#footer a.insight {
|
||||
#footer a.flosight {
|
||||
font-size: 20px;
|
||||
text-decoration: none;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
#footer a.insight:hover {
|
||||
#footer a.flosight:hover {
|
||||
color: #fffffe;
|
||||
}
|
||||
|
||||
#footer a.insight small { font-size: 11px; }
|
||||
#footer a.flosight small { font-size: 11px; }
|
||||
.line-footer { border-top: 2px dashed #ccc; }
|
||||
|
||||
#footer .links {
|
||||
@ -535,6 +535,7 @@ margin-left: 0;
|
||||
width: 16px;
|
||||
outline: none;
|
||||
vertical-align: sub;
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
.btn-expand {
|
||||
@ -613,7 +614,7 @@ margin-left: 0;
|
||||
float: left;
|
||||
height: 45px;
|
||||
}
|
||||
#powered a.bitcore {
|
||||
#powered a.flocore {
|
||||
background-image: url('../img/logo.svg');
|
||||
background-size: 80px;
|
||||
width: 30%;
|
||||
@ -753,7 +754,7 @@ a.v_highlight_more {
|
||||
h3 {
|
||||
font-size: 18px;
|
||||
}
|
||||
.insight {
|
||||
.flosight {
|
||||
font-size: 30px;
|
||||
}
|
||||
.navbar-default .navbar-nav>li>a {
|
||||
@ -787,7 +788,7 @@ a.v_highlight_more {
|
||||
.navbar-default .navbar-brand {
|
||||
padding: 15px;
|
||||
}
|
||||
.insight {
|
||||
.flosight {
|
||||
font-size: 26px;
|
||||
}
|
||||
.navbar-nav>li>a {
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
'use strict';
|
||||
|
||||
var defaultLanguage = localStorage.getItem('insight-language') || 'en';
|
||||
var defaultCurrency = localStorage.getItem('insight-currency') || 'BTC';
|
||||
var defaultLanguage = localStorage.getItem('flosight-language') || 'en';
|
||||
var defaultCurrency = localStorage.getItem('flosight-currency') || 'FLO';
|
||||
|
||||
angular.module('insight',[
|
||||
angular.module('flosight',[
|
||||
'ngAnimate',
|
||||
'ngResource',
|
||||
'ngRoute',
|
||||
@ -13,27 +13,27 @@ angular.module('insight',[
|
||||
'monospaced.qrcode',
|
||||
'gettext',
|
||||
'angularMoment',
|
||||
'insight.system',
|
||||
'insight.socket',
|
||||
'insight.api',
|
||||
'insight.blocks',
|
||||
'insight.transactions',
|
||||
'insight.address',
|
||||
'insight.search',
|
||||
'insight.status',
|
||||
'insight.connection',
|
||||
'insight.currency',
|
||||
'insight.messages'
|
||||
'flosight.system',
|
||||
'flosight.socket',
|
||||
'flosight.api',
|
||||
'flosight.blocks',
|
||||
'flosight.transactions',
|
||||
'flosight.address',
|
||||
'flosight.search',
|
||||
'flosight.status',
|
||||
'flosight.connection',
|
||||
'flosight.currency',
|
||||
'flosight.messages'
|
||||
]);
|
||||
|
||||
angular.module('insight.system', []);
|
||||
angular.module('insight.socket', []);
|
||||
angular.module('insight.api', []);
|
||||
angular.module('insight.blocks', []);
|
||||
angular.module('insight.transactions', []);
|
||||
angular.module('insight.address', []);
|
||||
angular.module('insight.search', []);
|
||||
angular.module('insight.status', []);
|
||||
angular.module('insight.connection', []);
|
||||
angular.module('insight.currency', []);
|
||||
angular.module('insight.messages', []);
|
||||
angular.module('flosight.system', []);
|
||||
angular.module('flosight.socket', []);
|
||||
angular.module('flosight.api', []);
|
||||
angular.module('flosight.blocks', []);
|
||||
angular.module('flosight.transactions', []);
|
||||
angular.module('flosight.address', []);
|
||||
angular.module('flosight.search', []);
|
||||
angular.module('flosight.status', []);
|
||||
angular.module('flosight.connection', []);
|
||||
angular.module('flosight.currency', []);
|
||||
angular.module('flosight.messages', []);
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
'use strict';
|
||||
|
||||
//Setting up route
|
||||
angular.module('insight').config(function($routeProvider) {
|
||||
angular.module('flosight').config(function($routeProvider) {
|
||||
$routeProvider.
|
||||
when('/block/:blockHash', {
|
||||
templateUrl: 'views/block.html',
|
||||
title: 'Bitcoin Block '
|
||||
title: 'Flo Block '
|
||||
}).
|
||||
when('/block-index/:blockHeight', {
|
||||
controller: 'BlocksController',
|
||||
@ -17,7 +17,7 @@ angular.module('insight').config(function($routeProvider) {
|
||||
}).
|
||||
when('/tx/:txId/:v_type?/:v_index?', {
|
||||
templateUrl: 'views/transaction.html',
|
||||
title: 'Bitcoin Transaction '
|
||||
title: 'Flo Transaction '
|
||||
}).
|
||||
when('/', {
|
||||
templateUrl: 'views/index.html',
|
||||
@ -25,15 +25,15 @@ angular.module('insight').config(function($routeProvider) {
|
||||
}).
|
||||
when('/blocks', {
|
||||
templateUrl: 'views/block_list.html',
|
||||
title: 'Bitcoin Blocks solved Today'
|
||||
title: 'Flo Blocks solved Today'
|
||||
}).
|
||||
when('/blocks-date/:blockDate/:startTimestamp?', {
|
||||
templateUrl: 'views/block_list.html',
|
||||
title: 'Bitcoin Blocks solved '
|
||||
title: 'Flo Blocks solved '
|
||||
}).
|
||||
when('/address/:addrStr', {
|
||||
templateUrl: 'views/address.html',
|
||||
title: 'Bitcoin Address '
|
||||
title: 'Flo Address '
|
||||
}).
|
||||
when('/status', {
|
||||
templateUrl: 'views/status.html',
|
||||
@ -50,7 +50,7 @@ angular.module('insight').config(function($routeProvider) {
|
||||
});
|
||||
|
||||
//Setting HTML5 Location Mode
|
||||
angular.module('insight')
|
||||
angular.module('flosight')
|
||||
.config(function($locationProvider) {
|
||||
$locationProvider.html5Mode(true);
|
||||
$locationProvider.hashPrefix('!');
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('insight.address').controller('AddressController',
|
||||
angular.module('flosight.address').controller('AddressController',
|
||||
function($scope, $rootScope, $routeParams, $location, Global, Address, getSocket) {
|
||||
$scope.global = Global;
|
||||
|
||||
@ -8,7 +8,7 @@ angular.module('insight.address').controller('AddressController',
|
||||
var addrStr = $routeParams.addrStr;
|
||||
|
||||
var _startSocket = function() {
|
||||
socket.on('bitcoind/addresstxid', function(data) {
|
||||
socket.on('florincoind/addresstxid', function(data) {
|
||||
if (data.address === addrStr) {
|
||||
$rootScope.$broadcast('tx', data.txid);
|
||||
var base = document.querySelector('base');
|
||||
@ -16,11 +16,11 @@ angular.module('insight.address').controller('AddressController',
|
||||
beep.play();
|
||||
}
|
||||
});
|
||||
socket.emit('subscribe', 'bitcoind/addresstxid', [addrStr]);
|
||||
socket.emit('subscribe', 'florincoind/addresstxid', [addrStr]);
|
||||
};
|
||||
|
||||
var _stopSocket = function () {
|
||||
socket.emit('unsubscribe', 'bitcoind/addresstxid', [addrStr]);
|
||||
socket.emit('unsubscribe', 'florincoind/addresstxid', [addrStr]);
|
||||
};
|
||||
|
||||
socket.on('connect', function() {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('insight.blocks').controller('BlocksController',
|
||||
angular.module('flosight.blocks').controller('BlocksController',
|
||||
function($scope, $rootScope, $routeParams, $location, Global, Block, Blocks, BlockByHeight) {
|
||||
$scope.global = Global;
|
||||
$scope.loading = false;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('insight.connection').controller('ConnectionController',
|
||||
angular.module('flosight.connection').controller('ConnectionController',
|
||||
function($scope, $window, Status, getSocket, PeerSync) {
|
||||
|
||||
// Set initial values
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('insight.currency').controller('CurrencyController',
|
||||
angular.module('flosight.currency').controller('CurrencyController',
|
||||
function($scope, $rootScope, Currency) {
|
||||
$rootScope.currency.symbol = defaultCurrency;
|
||||
|
||||
@ -19,8 +19,21 @@ angular.module('insight.currency').controller('CurrencyController',
|
||||
var response;
|
||||
|
||||
if (this.symbol === 'USD') {
|
||||
response = _roundFloat((value * this.factor), 2);
|
||||
} else if (this.symbol === 'mBTC') {
|
||||
var USDValue = value * this.factor;
|
||||
response = USDValue.toFixed(2)
|
||||
|
||||
if (parseFloat(response) === 0)
|
||||
response = USDValue.toFixed(4)
|
||||
|
||||
if (parseFloat(response) === 0)
|
||||
response = USDValue.toFixed(6)
|
||||
|
||||
if (parseFloat(response) === 0)
|
||||
response = USDValue.toFixed(8)
|
||||
|
||||
if (parseFloat(response) === 0)
|
||||
response = 0;
|
||||
} else if (this.symbol === 'mFLO') {
|
||||
this.factor = 1000;
|
||||
response = _roundFloat((value * this.factor), 5);
|
||||
} else if (this.symbol === 'bits') {
|
||||
@ -41,13 +54,13 @@ angular.module('insight.currency').controller('CurrencyController',
|
||||
|
||||
$scope.setCurrency = function(currency) {
|
||||
$rootScope.currency.symbol = currency;
|
||||
localStorage.setItem('insight-currency', currency);
|
||||
localStorage.setItem('flosight-currency', currency);
|
||||
|
||||
if (currency === 'USD') {
|
||||
Currency.get({}, function(res) {
|
||||
$rootScope.currency.factor = $rootScope.currency.bitstamp = res.data.bitstamp;
|
||||
});
|
||||
} else if (currency === 'mBTC') {
|
||||
} else if (currency === 'mFLO') {
|
||||
$rootScope.currency.factor = 1000;
|
||||
} else if (currency === 'bits') {
|
||||
$rootScope.currency.factor = 1000000;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('insight.system').controller('FooterController',
|
||||
angular.module('flosight.system').controller('FooterController',
|
||||
function($scope, $route, $templateCache, gettextCatalog, amMoment, Version) {
|
||||
|
||||
$scope.defaultLanguage = defaultLanguage;
|
||||
@ -31,7 +31,7 @@ angular.module('insight.system').controller('FooterController',
|
||||
$scope.setLanguage = function(isoCode) {
|
||||
gettextCatalog.currentLanguage = $scope.defaultLanguage = defaultLanguage = isoCode;
|
||||
amMoment.changeLocale(isoCode);
|
||||
localStorage.setItem('insight-language', isoCode);
|
||||
localStorage.setItem('flosight-language', isoCode);
|
||||
var currentPageTemplate = $route.current.templateUrl;
|
||||
$templateCache.remove(currentPageTemplate);
|
||||
$route.reload();
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('insight.system').controller('HeaderController',
|
||||
function($scope, $rootScope, $modal, getSocket, Global, Block) {
|
||||
angular.module('flosight.system').controller('HeaderController',
|
||||
function($scope, $rootScope, $modal, getSocket, Global, Block, Status) {
|
||||
$scope.global = Global;
|
||||
|
||||
$rootScope.currency = {
|
||||
factor: 1,
|
||||
bitstamp: 0,
|
||||
symbol: 'BTC'
|
||||
symbol: 'FLO'
|
||||
};
|
||||
|
||||
$scope.menu = [{
|
||||
@ -25,6 +25,19 @@ angular.module('insight.system').controller('HeaderController',
|
||||
});
|
||||
};
|
||||
|
||||
$scope.getStatus = function(q) {
|
||||
Status.get({
|
||||
q: 'get' + q
|
||||
},
|
||||
function(d) {
|
||||
$scope.loaded = 1;
|
||||
angular.extend($scope, d);
|
||||
},
|
||||
function(e) {
|
||||
$scope.error = 'API ERROR: ' + e.data;
|
||||
});
|
||||
};
|
||||
|
||||
var _getBlock = function(hash) {
|
||||
Block.get({
|
||||
blockHash: hash
|
||||
|
||||
@ -3,16 +3,29 @@
|
||||
var TRANSACTION_DISPLAYED = 10;
|
||||
var BLOCKS_DISPLAYED = 5;
|
||||
|
||||
angular.module('insight.system').controller('IndexController',
|
||||
angular.module('flosight.system').controller('IndexController',
|
||||
function($scope, Global, getSocket, Blocks) {
|
||||
$scope.global = Global;
|
||||
|
||||
var _getBlocks = function() {
|
||||
var _getBlocks = function(loadTxs) {
|
||||
Blocks.get({
|
||||
limit: BLOCKS_DISPLAYED
|
||||
}, function(res) {
|
||||
$scope.blocks = res.blocks;
|
||||
$scope.blocksLength = res.length;
|
||||
|
||||
if (loadTxs) {
|
||||
TransactionsByBlock.get({
|
||||
block: res.blocks[0].hash
|
||||
}, function(txs){
|
||||
for (var i = txs.length; i > 0; i--){
|
||||
$scope.txs.unshift(txs[i]);
|
||||
if (parseInt($scope.txs.length, 10) >= parseInt(TRANSACTION_DISPLAYED, 10)) {
|
||||
$scope.txs = $scope.txs.splice(0, TRANSACTION_DISPLAYED);
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
@ -28,7 +41,7 @@ angular.module('insight.system').controller('IndexController',
|
||||
});
|
||||
|
||||
socket.on('block', function() {
|
||||
_getBlocks();
|
||||
_getBlocks(false);
|
||||
});
|
||||
};
|
||||
|
||||
@ -36,15 +49,13 @@ angular.module('insight.system').controller('IndexController',
|
||||
_startSocket();
|
||||
});
|
||||
|
||||
|
||||
|
||||
$scope.humanSince = function(time) {
|
||||
var m = moment.unix(time);
|
||||
return m.max().fromNow();
|
||||
};
|
||||
|
||||
$scope.index = function() {
|
||||
_getBlocks();
|
||||
_getBlocks(true);
|
||||
_startSocket();
|
||||
};
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('insight.messages').controller('VerifyMessageController',
|
||||
angular.module('flosight.messages').controller('VerifyMessageController',
|
||||
function($scope, $http, Api) {
|
||||
$scope.message = {
|
||||
address: '',
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('insight.system').controller('ScannerController',
|
||||
angular.module('flosight.system').controller('ScannerController',
|
||||
function($scope, $rootScope, $modalInstance, Global) {
|
||||
$scope.global = Global;
|
||||
|
||||
@ -112,7 +112,7 @@ angular.module('insight.system').controller('ScannerController',
|
||||
qrcode.callback = function(data) {
|
||||
_scanStop();
|
||||
|
||||
var str = (data.indexOf('bitcoin:') === 0) ? data.substring(8) : data;
|
||||
var str = (data.indexOf('flo:') === 0) ? data.substring(8) : data;
|
||||
console.log('QR code detected: ' + str);
|
||||
$searchInput
|
||||
.val(str)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('insight.search').controller('SearchController',
|
||||
angular.module('flosight.search').controller('SearchController',
|
||||
function($scope, $routeParams, $location, $timeout, Global, Block, Transaction, Address, BlockByHeight) {
|
||||
$scope.global = Global;
|
||||
$scope.loading = false;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('insight.status').controller('StatusController',
|
||||
angular.module('flosight.status').controller('StatusController',
|
||||
function($scope, $routeParams, $location, Global, Status, Sync, getSocket) {
|
||||
$scope.global = Global;
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('insight.transactions').controller('transactionsController',
|
||||
angular.module('flosight.transactions').controller('transactionsController',
|
||||
function($scope, $rootScope, $routeParams, $location, Global, Transaction, TransactionsByBlock, TransactionsByAddress) {
|
||||
$scope.global = Global;
|
||||
$scope.loading = false;
|
||||
@ -174,7 +174,7 @@ function($scope, $rootScope, $routeParams, $location, Global, Transaction, Trans
|
||||
|
||||
});
|
||||
|
||||
angular.module('insight.transactions').controller('SendRawTransactionController',
|
||||
angular.module('flosight.transactions').controller('SendRawTransactionController',
|
||||
function($scope, $http, Api) {
|
||||
$scope.transaction = '';
|
||||
$scope.status = 'ready'; // ready|loading|sent|error
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
|
||||
var ZeroClipboard = window.ZeroClipboard;
|
||||
|
||||
angular.module('insight')
|
||||
angular.module('flosight')
|
||||
.directive('scroll', function ($window) {
|
||||
return function(scope, element, attrs) {
|
||||
angular.element($window).bind('scroll', function() {
|
||||
@ -40,36 +40,31 @@ angular.module('insight')
|
||||
}
|
||||
};
|
||||
})
|
||||
.directive('clipCopy', function() {
|
||||
ZeroClipboard.config({
|
||||
moviePath: '/lib/zeroclipboard/ZeroClipboard.swf',
|
||||
trustedDomains: ['*'],
|
||||
allowScriptAccess: 'always',
|
||||
forceHandCursor: true
|
||||
});
|
||||
|
||||
.directive('dataClipboardText', function() {
|
||||
return {
|
||||
restric: 'A',
|
||||
scope: { clipCopy: '=clipCopy' },
|
||||
scope: { dataClipboardText: '=dataClipboardText' },
|
||||
template: '<div class="tooltip fade right in"><div class="tooltip-arrow"></div><div class="tooltip-inner">Copied!</div></div>',
|
||||
link: function(scope, elm) {
|
||||
var clip = new ZeroClipboard(elm);
|
||||
|
||||
clip.on('load', function(client) {
|
||||
var onMousedown = function(client) {
|
||||
client.setText(scope.clipCopy);
|
||||
};
|
||||
|
||||
client.on('mousedown', onMousedown);
|
||||
|
||||
scope.$on('$destroy', function() {
|
||||
client.off('mousedown', onMousedown);
|
||||
});
|
||||
var clip = new ClipboardJS(elm, {
|
||||
text: scope.dataClipboardText
|
||||
});
|
||||
|
||||
clip.on('noFlash wrongflash', function() {
|
||||
return elm.remove();
|
||||
});
|
||||
// clip.on('load', function(client) {
|
||||
// var onMousedown = function(client) {
|
||||
// client.setText(scope.clipCopy);
|
||||
// };
|
||||
|
||||
// client.on('mousedown', onMousedown);
|
||||
|
||||
// scope.$on('$destroy', function() {
|
||||
// client.off('mousedown', onMousedown);
|
||||
// });
|
||||
// });
|
||||
|
||||
// clip.on('noFlash wrongflash', function() {
|
||||
// return elm.remove();
|
||||
// });
|
||||
}
|
||||
};
|
||||
})
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('insight')
|
||||
angular.module('flosight')
|
||||
.filter('startFrom', function() {
|
||||
return function(input, start) {
|
||||
start = +start; //parse to int
|
||||
|
||||
@ -2,5 +2,5 @@
|
||||
|
||||
angular.element(document).ready(function() {
|
||||
// Init the app
|
||||
// angular.bootstrap(document, ['insight']);
|
||||
// angular.bootstrap(document, ['flosight']);
|
||||
});
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('insight.address').factory('Address',
|
||||
angular.module('flosight.address').factory('Address',
|
||||
function($resource, Api) {
|
||||
return $resource(Api.apiPrefix + '/addr/:addrStr/?noTxList=1', {
|
||||
addrStr: '@addStr'
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('insight.api')
|
||||
angular.module('flosight.api')
|
||||
.factory('Api',
|
||||
function() {
|
||||
return {
|
||||
apiPrefix: '/insight-api'
|
||||
apiPrefix: '/api'
|
||||
}
|
||||
});
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('insight.blocks')
|
||||
angular.module('flosight.blocks')
|
||||
.factory('Block',
|
||||
function($resource, Api) {
|
||||
return $resource(Api.apiPrefix + '/block/:blockHash', {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('insight.currency').factory('Currency',
|
||||
angular.module('flosight.currency').factory('Currency',
|
||||
function($resource, Api) {
|
||||
return $resource(Api.apiPrefix + '/currency');
|
||||
});
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
'use strict';
|
||||
|
||||
//Global service for global variables
|
||||
angular.module('insight.system')
|
||||
angular.module('flosight.system')
|
||||
.factory('Global',[
|
||||
function() {
|
||||
}
|
||||
|
||||
@ -53,7 +53,7 @@ ScopedSocket.prototype.emit = function(event, data, callback) {
|
||||
socket.emit.apply(socket, args);
|
||||
};
|
||||
|
||||
angular.module('insight.socket').factory('getSocket',
|
||||
angular.module('flosight.socket').factory('getSocket',
|
||||
function($rootScope) {
|
||||
var socket = io.connect(null, {
|
||||
'reconnect': true,
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('insight.status')
|
||||
angular.module('flosight.status')
|
||||
.factory('Status',
|
||||
function($resource, Api) {
|
||||
return $resource(Api.apiPrefix + '/status', {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('insight.transactions')
|
||||
angular.module('flosight.transactions')
|
||||
.factory('Transaction',
|
||||
function($resource, Api) {
|
||||
return $resource(Api.apiPrefix + '/tx/:txId', {
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -1,6 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('insight.api')
|
||||
angular.module('flosight.api')
|
||||
.factory('Api',
|
||||
function() {
|
||||
return {
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
<div class="container" data-ng-if="!hideSNavbar">
|
||||
<div class="col-md-8 text-left">
|
||||
<h3 translate>Address</h3> {{address.addrStr}}
|
||||
<span class="btn-copy" clip-copy="address.addrStr"></span>
|
||||
<button class="btn-copy" data-clipboard-text="{{address.addrStr}}"></button>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<span class="txvalues txvalues-primary"><strong translate>Final Balance</strong> {{$root.currency.getConvertion(address.balance) || address.balance + ' BTC' }}</span>
|
||||
@ -25,7 +25,7 @@
|
||||
<div class="well well-sm ellipsis">
|
||||
<strong translate>Address</strong>
|
||||
<span class="text-muted">{{address.addrStr}}</span>
|
||||
<span class="btn-copy" clip-copy="address.addrStr"></span>
|
||||
<button class="btn-copy" data-clipboard-text="{{address.addrStr}}"></button>
|
||||
</div>
|
||||
<h2 translate>Summary <small>confirmed</small></h2>
|
||||
<div class="row" data-ng-hide="!address.addrStr">
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
<strong>Hash</strong> {{block.hash}}
|
||||
</p>
|
||||
<div class="col-md-1 text-left">
|
||||
<span class="btn-copy" clip-copy="block.hash"></span>
|
||||
<button class="btn-copy" data-clipboard-text="{{block.hash}}"></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -39,7 +39,7 @@
|
||||
<div class="well well-sm ellipsis">
|
||||
<strong>BlockHash</strong>
|
||||
<span class="txid text-muted">{{block.hash}}</span>
|
||||
<span class="btn-copy" clip-copy="block.hash"></span>
|
||||
<button class="btn-copy" data-clipboard-text="{{block.hash}}"></button>
|
||||
</div>
|
||||
<h2 translate>Summary</h2>
|
||||
<div class="row">
|
||||
@ -75,7 +75,7 @@
|
||||
<td><strong>Merkle Root</strong></td>
|
||||
<td class="text-right text-muted">
|
||||
<div class="ellipsis">
|
||||
<span class="btn-copy" clip-copy="block.merkleroot"></span>
|
||||
<button class="btn-copy" data-clipboard-text="{{block.merkleroot}}"></button>
|
||||
<span>{{block.merkleroot}}</span>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
@ -7,11 +7,11 @@
|
||||
<strong translate>Error!</strong>
|
||||
|
||||
<p data-ng-show="!apiOnline" translate>
|
||||
Can't connect to bitcoind to get live updates from the p2p network. (Tried connecting to bitcoind at {{host}}:{{port}} and failed.)
|
||||
Can't connect to flod to get live updates from the p2p network. (Tried connecting to flod at {{host}}:{{port}} and failed.)
|
||||
</p>
|
||||
|
||||
<p data-ng-show="!serverOnline" translate>
|
||||
Can't connect to insight server. Attempting to reconnect...
|
||||
Can't connect to flosight server. Attempting to reconnect...
|
||||
</p>
|
||||
|
||||
<p data-ng-show="!clienteOnline" translate>
|
||||
|
||||
@ -6,10 +6,10 @@
|
||||
<a data-ng-click="setCurrency('USD')" data-ng-class="{active: currency.symbol == 'USD'}">USD</a>
|
||||
</li>
|
||||
<li>
|
||||
<a data-ng-click="setCurrency('BTC')" data-ng-class="{active: currency.symbol == 'BTC'}">BTC</a>
|
||||
<a data-ng-click="setCurrency('FLO')" data-ng-class="{active: currency.symbol == 'FLO'}">FLO</a>
|
||||
</li>
|
||||
<li>
|
||||
<a data-ng-click="setCurrency('mBTC')" data-ng-class="{active: currency.symbol == 'mBTC'}">mBTC</a>
|
||||
<a data-ng-click="setCurrency('mFLO')" data-ng-class="{active: currency.symbol == 'mFLO'}">mFLO</a>
|
||||
</li>
|
||||
<li>
|
||||
<a data-ng-click="setCurrency('bits')" data-ng-class="{active: currency.symbol == 'bits'}">bits</a>
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="insight navbar-brand" href=".">insight</a>
|
||||
<a class="flosight navbar-brand" href="." data-ng-init="getStatus('Info')">flosight <sub data-ng-hide="info.network === 'livenet'" style="font-size: 35%">({{info.network}})</sub></a>
|
||||
</div>
|
||||
<div class="navbar-collapse collapse" collapse="$root.isCollapsed">
|
||||
<ul class="nav navbar-nav">
|
||||
|
||||
@ -44,6 +44,7 @@
|
||||
<tr>
|
||||
<th>Hash</th>
|
||||
<th class="text-right" translate>Value Out</th>
|
||||
<th class="text-right" translate>floData</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@ -53,6 +54,7 @@
|
||||
<a class="ellipsis" href="tx/{{tx.txid}}">{{tx.txid}}</a>
|
||||
</td>
|
||||
<td class="text-right"><span class="ellipsis">{{$root.currency.getConvertion(tx.valueOut) || tx.valueOut + ' BTC'}}</span></td>
|
||||
<td class="text-right"><span class="ellipsis">{{tx.floData}}</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@ -61,14 +63,14 @@
|
||||
|
||||
<div class="col-xs-12 col-md-4 col-gray">
|
||||
<h2 translate>About</h2>
|
||||
<p translate><strong>insight</strong> is an <a href="https://insight.is/"
|
||||
target="_blank">open-source Bitcoin blockchain explorer</a> with complete REST and websocket APIs that can be used for writing web wallets and other apps that need more advanced blockchain queries than provided by bitcoind RPC. Check out the <a href="https://github.com/bitpay/insight-ui" target="_blank">source code</a>.</p>
|
||||
<p translate><strong>insight</strong> is still in development, so be sure to report any bugs and provide feedback for improvement at our <a href="https://github.com/bitpay/insight-ui/issues" target="_blank">github issue tracker</a>.</p>
|
||||
<p translate><strong>flosight</strong> is an <a href="https://flocha.in/"
|
||||
target="_blank">open-source Flo blockchain explorer</a> with complete REST and websocket APIs that can be used for writing web wallets and other apps that need more advanced blockchain queries than provided by flod RPC. Check out the <a href="https://github.com/oipwg/flosight-ui" target="_blank">source code</a>.</p>
|
||||
<p translate><strong>flosight</strong> is still in development, so be sure to report any bugs and provide feedback for improvement at our <a href="https://github.com/oipwg/flosight-ui/issues" target="_blank">github issue tracker</a>.</p>
|
||||
<div id="powered" class="row">
|
||||
<div class="powered-text">
|
||||
<small class="text-muted" translate>Powered by</small>
|
||||
</div>
|
||||
<a href="http://bitcore.io" target="_blank" class="bitcore" title="Bitcore"></a>
|
||||
<a href="http://bitcore.io" target="_blank" class="flocore" title="Bitcore"></a>
|
||||
<a href="http://angularjs.org" target="_blank" class="angularjs" title="AngularJS"></a>
|
||||
<a href="https://code.google.com/p/leveldb/" target="_blank" class="leveldb" title="LevelDB"></a>
|
||||
<a href="http://nodejs.org" target="_blank" class="nodejs" title="NodeJs"></a>
|
||||
|
||||
@ -70,11 +70,10 @@
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-4 col-gray">
|
||||
<p translate>
|
||||
Bitcoin comes with a way of signing arbitrary messages.
|
||||
Flo comes with a way of signing arbitrary messages.
|
||||
</p>
|
||||
<p translate>
|
||||
This form can be used to verify that a message comes from
|
||||
a specific Bitcoin address.
|
||||
This form can be used to verify that a message comes from a specific Flo address.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -63,11 +63,11 @@
|
||||
<thead data-ng-include src="'views/includes/infoStatus.html'"></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td translate>Last Block Hash (Bitcoind)</td>
|
||||
<td translate>Last Block Hash (Flod)</td>
|
||||
<td class="text-right ellipsis"><a href="block/{{lastblockhash}}">{{lastblockhash}}</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td translate>Current Blockchain Tip (insight)</td>
|
||||
<td translate>Current Blockchain Tip (flosight)</td>
|
||||
<td class="text-right ellipsis"><a href="block/{{syncTipHash}}">{{syncTipHash}}</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
@ -76,7 +76,7 @@
|
||||
</div> <!-- END OF COL-8 -->
|
||||
|
||||
<div class="col-xs-12 col-md-4 col-gray">
|
||||
<h2 translate>Bitcoin node information</h2>
|
||||
<h2 translate>Flo node information</h2>
|
||||
<table class="table" data-ng-controller="StatusController" data-ng-init="getStatus('Info')">
|
||||
<thead data-ng-include src="'views/includes/infoStatus.html'"></thead>
|
||||
<tbody>
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
<h3 translate>Transaction</h3>
|
||||
<div class="ellipsis">
|
||||
<small>{{tx.txid}}</small>
|
||||
<span class="btn-copy" clip-copy="tx.txid"></span>
|
||||
<button class="btn-copy" data-clipboard-text="{{tx.txid}}"></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-lg-5 text-right">
|
||||
@ -43,7 +43,7 @@
|
||||
<div class="well well-sm ellipsis">
|
||||
<strong translate>Transaction</strong>
|
||||
<span class="txid text-muted">{{tx.txid}}</span>
|
||||
<span class="btn-copy" clip-copy="tx.txid"></span>
|
||||
<button class="btn-copy" data-clipboard-text="{{tx.txid}}"></button>
|
||||
</div>
|
||||
<h2 translate>Summary</h2>
|
||||
<table class="table" style="table-layout: fixed">
|
||||
@ -82,7 +82,7 @@
|
||||
<td><strong>Coinbase</strong></td>
|
||||
<td class="text-muted text-right">
|
||||
<div class="ellipsis">
|
||||
<span class="btn-copy ng-isolate-scope" clip-copy="tx.vin[0].coinbase"></span>
|
||||
<button class="btn-copy ng-isolate-scope" data-clipboard-text="{{tx.vin[0].coinbase}}"></button>
|
||||
<span class="ng-binding">{{tx.vin[0].coinbase}}</span>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
<span class="glyphicon glyphicon-plus-sign" data-ng-class="{'glyphicon-minus-sign': itemsExpanded}"></span>
|
||||
</a>
|
||||
<a href="tx/{{tx.txid}}">{{tx.txid}}</a>
|
||||
<span class="btn-copy" clip-copy="tx.txid"></span>
|
||||
<button class="btn-copy" data-clipboard-text="{{tx.txid}}"></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-5 col-md-4 text-right text-muted">
|
||||
@ -39,7 +39,7 @@
|
||||
</div>
|
||||
<div class="ellipsis">
|
||||
<span data-ng-show="vin.notAddr">{{vin.addr}}</span>
|
||||
<span class="text-muted" title="Current Bitcoin Address" data-ng-show="vin.addr == $root.currentAddr">{{vin.addr}}</span>
|
||||
<span class="text-muted" title="Current Flo Address" data-ng-show="vin.addr == $root.currentAddr">{{vin.addr}}</span>
|
||||
<a href="address/{{vin.addr}}" data-ng-show="!vin.notAddr && vin.addr != $root.currentAddr">{{vin.addr}}</a>
|
||||
</div>
|
||||
<div data-ng-show="vin.unconfirmedInput" class="text-danger"> <span class="glyphicon glyphicon-warning-sign"></span> (Input unconfirmed)</div>
|
||||
@ -95,7 +95,7 @@
|
||||
<p><strong>scriptSig</strong></p>
|
||||
<div data-ng-repeat="item in vin.scriptSig.asm | split:' '" class="">
|
||||
<p class="col-md-11 ellipsis text-muted">{{item}}</p>
|
||||
<p class="btn-copy" clip-copy="item"></p>
|
||||
<button class="btn-copy" data-clipboard-text="{{item}}"></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -137,7 +137,7 @@
|
||||
|
||||
<div class="ellipsis">
|
||||
<span data-ng-show="vout.notAddr">{{vout.addr}}</span>
|
||||
<span class="text-muted" title="Current Bitcoin Address" data-ng-show="address == $root.currentAddr" data-ng-repeat="address in vout.addr.split(',')">{{vout.addr}}</span>
|
||||
<span class="text-muted" title="Current Flo Address" data-ng-show="address == $root.currentAddr" data-ng-repeat="address in vout.addr.split(',')">{{vout.addr}}</span>
|
||||
<a href="address/{{address}}" data-ng-show="!vout.notAddr && address != $root.currentAddr" data-ng-repeat="address in vout.addr.split(',')">{{address}}</a>
|
||||
</div>
|
||||
</div>
|
||||
@ -175,7 +175,7 @@
|
||||
<div class="small">
|
||||
<p><strong>scriptPubKey</strong></p>
|
||||
<span class="col-md-11 text-muted ellipsis">{{vout.scriptPubKey.asm}}</span>
|
||||
<span class="btn-copy col-md-1" clip-copy="vout.scriptPubKey.asm"></span>
|
||||
<button class="btn-copy col-md-1" data-clipboard-text="{{vout.scriptPubKey.asm}}"></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -194,18 +194,27 @@
|
||||
|
||||
<div class="well well-sm bgwhite ellipsis" data-ng-if="itemsExpanded && !block.hash && tx.blockhash">
|
||||
<strong translate>Included in Block</strong> <a class="text-muted" href="block/{{tx.blockhash}}">{{tx.blockhash}}</a>
|
||||
<span class="btn-copy" clip-copy="tx.blockhash"></span>
|
||||
<button class="btn-copy" data-clipboard-text="{{tx.blockhash}}"></button>
|
||||
</div>
|
||||
|
||||
<div class="line-top row" data-ng-hide="!tx">
|
||||
<div class="col-xs-6 col-sm-4 col-md-4">
|
||||
<span data-ng-show="!tx.isCoinBase && !isNaN(parseFloat(tx.fees))"
|
||||
class="txvalues txvalues-default"><span translate>Fee</span>: {{$root.currency.getConvertion(tx.fees) || tx.fees + 'BTC'}} </span>
|
||||
class="txvalues txvalues-default"><span translate>Fee</span>: {{$root.currency.getConvertion(tx.fees) || tx.fees + 'FLO'}} </span>
|
||||
</div>
|
||||
<div class="col-xs-6 col-sm-8 col-md-8 text-right">
|
||||
<span data-ng-show="tx.confirmations" class="txvalues
|
||||
txvalues-success">{{tx.confirmations}} <span translate>Confirmations</span></span>
|
||||
<span data-ng-show="!tx.confirmations" class="txvalues txvalues-danger" translate>Unconfirmed Transaction!</span>
|
||||
<span class="txvalues txvalues-primary">{{$root.currency.getConvertion(tx.valueOut) || tx.valueOut + ' BTC' }}</span>
|
||||
<span class="txvalues txvalues-primary">{{$root.currency.getConvertion(tx.valueOut) || tx.valueOut + ' FLO' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="line-top row" style="margin-top: 15px;" data-ng-hide="tx.floData === ''">
|
||||
<div class="col-12">
|
||||
<div class="well well-sm" style="margin: 0px 10px">
|
||||
<strong>floData: </strong>
|
||||
<span class="text-muted ng-binding" style="word-break: break-all">{{tx.floData}}</span>
|
||||
<button class="btn-copy" data-clipboard-text="{{tx.floData}}"></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -47,8 +47,7 @@
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-4 col-gray">
|
||||
<p translate>
|
||||
This form can be used to broadcast a raw transaction in hex format over
|
||||
the Bitcoin network.
|
||||
This form can be used to broadcast a raw transaction in hex format over the Flo network.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
4
test/test.js
Normal file
4
test/test.js
Normal file
@ -0,0 +1,4 @@
|
||||
describe('should test', function() {
|
||||
it('test', function() {
|
||||
});
|
||||
});
|
||||
Loading…
Reference in New Issue
Block a user