cityofzion / neo-scan Goto Github PK
View Code? Open in Web Editor NEWBlockchain explorer for NEO
Home Page: https://neoscan.io
License: MIT License
Blockchain explorer for NEO
Home Page: https://neoscan.io
License: MIT License
@lucianoengel can you rename the repository to follow the informal standard for the case ?
something like: neoscan, neo-scan or neo-explorer
Unit tests are not implemented.
Environment:
Win 10 Home (64 bit) Version 1709 Build 16299.371
Browser:
Chrome 66.0.3359.139 (64 bit)
Description:
In most cases I'm getting internal server error after going to transaction pages. While going through "Last 5 Transactions" section and opening each transaction it seems that some of them works and some don't. I've found three different states of transaction pages:
Examples:
https://neoscan.io/transaction/20a75e9da1d7d1d9a5a73f9fd75a510cc78831a69fdc0d6ce1c5185d96f19a79
the transaction have not transfered tokens
The API has not the function of get historic wallet amount. How can I get historic wallet amount?
Create a functional Elixir neo VM, as neo-python. A wrapper is fine.
http://testnet-api.wallet.cityofzion.io/v2/address/claims/ALfnhLg7rUyL6Jr98bzzoxz5J7m64fbR4s
{
"address": "ALfnhLg7rUyL6Jr98bzzoxz5J7m64fbR4s",
"claims": [
{
"claim": 232522,
"end": 867240,
"index": 0,
"start": 844201,
"sysfee": 48210,
"txid": "4536a2539babf4b4b29e308bc396dc23e407232a5ae88a5ca028d47bd80653c2",
"value": 1
}
],
"net": "TestNet",
"total_claim": 232522,
"total_unspent_claim": 108267556
}
https://neoscan-testnet.io/api/test_net/v1/get_claimable/ALfnhLg7rUyL6Jr98bzzoxz5J7m64fbR4s
{
"claimable": [
{
"value": 1,
"unclaimed": 0.00232514,
"txid": "4536a2539babf4b4b29e308bc396dc23e407232a5ae88a5ca028d47bd80653c2",
"start_height": 844201,
"n": 0,
"end_height": 867240
}
],
"address": "ALfnhLg7rUyL6Jr98bzzoxz5J7m64fbR4s"
}
Note the difference in claim
and unclaimed
. They should have the same numbers. I believe that neoscan is wrong because the NEO node is rejecting my tx created by the neoscan data.
Have not tried to claim gas with neonDB data tho. I will leave this in this state for as long as possible.
Add support for unclaimed gas calculation.
Python Reference: https://github.com/CityOfZion/neon-wallet-db/blob/master/api/util.py
The outputs on neoscan is ordered incorrectly.
Doing a POST to a NEO node for tx 60e2711319c1453d8de0ca8268b6ba9ced1d0c0c581c49d26e6efd4b75dccb24
yields:
{
"vout": [
{
"n": 0,
"asset": "0x602c79718b16e442de58778e148d0b1084e3b2dffd5de6b7b16cee7969282de7",
"value": "0.1",
"address": "ALq7AWrhAueN6mJNqk6FHJjnsEoPRytLdW"
},
{
"n": 1,
"asset": "0x602c79718b16e442de58778e148d0b1084e3b2dffd5de6b7b16cee7969282de7",
"value": "0.005554",
"address": "ALq7AWrhAueN6mJNqk6FHJjnsEoPRytLdW"
}
],
...
}
However, on neoscan, it is displayed as:
This is not important to a normal end-user as the order would not matter to them. However, on the technical side, the coins are referenced by their txid and their index in this vout
list. Thus, it would be good for it to be in the order specified for this to be useful for devs to look at.
Similarly, this could be done for the inputs. (so far I havnt have a use for that but consistency is nice)
TLDR: Please display the outputs as they are ordered in the transaction vout
as it is important to the developer.
Start implementation of the design concept
Explorer_Concepts_01.pdf
Environment:
Win 10 Home (64 bit) Version 1709 Build 16299.371
Browsers:
Chrome 66.0.3359.139 (64 bit)
Microsoft Edge 41.16299.371.0 (16.16299)
Example url:
https://neoscan.io/address/AQqGGzkDmKChdBx3Jtx1MiZHhn8hvTsxi9
Description:
Names of currencies are not visible in drop-down under graph. They're visible after hovering on them with mouse.
All CoZ repos need to have an MIT license.
mix credo --strict
Thx for this project.
I'm not very familiar to docker so I follow the guide which works well locally
docker-compose up -d
docker exec -it neoscan_phoenix_1 sh
cd /data
mix deps.get
mix ecto.create && mix ecto.migrate
Then I got an error The database for Neoscan.Repo couldn't be created: an exception was raised:
which seems to require neoscan_*
in postgres docker.
Then the question is:
How can I create the db in docker.
Thx again.
API has told me to get the transactions and balances of the specific address. But I want to get the historical address amount. For example, there are 1000000 addresses or 10000 addresses in 15th, Jan, 2018.
elixirc_options: [
warnings_as_errors: true
],
I sent 4.64224 GAS, on 2018-03-29 | 18:23:56, from Binance to Kucoin at AceWB7eDJsDZiJ99cUx6xbE341B9hs1v8s and it still has only 4 confirmations from 6 minimum required. Txid:89b27789d08720386e738d3661d022e52826aa0097c9add798c0516981fdb328
https://neoscan.io/transaction/89b27789d08720386e738d3661d022e52826aa0097c9add798c0516981fdb328
In some cases the chart isn't showing correctly.
For ex: https://neoscan.io/address/Aesadb7bQWWHRPqikF9ikZgTMRf8DpQdTe
Google Chrome Version 65.0.3325.181
My address: AR4iFxFdbjTkHKtStSKRvu5bgXXBcpZx9D
During testing for neon-js, I noticed that the claim numbers are wrong for neoscan.
https://neoscan.io/api/main_net/v1/get_claimable/ATsmYxUsJaU1AcZm3RCcTAhrvYUNMPaCvq:
{
"claimable": [
{
"value": 825,
"unclaimed": 6.50298,
"txid": "9adfbd49621c45bae64e8f11e2cd9a42c5330d9f39220390d6b7b5081bf606f6",
"start_height": 1485981,
"n": 0,
"end_height": 1584386
},
{
"value": 30,
"unclaimed": 0.0208548,
"txid": "d24f3a0d7d62d08165b30be5a0352f1bcf883be6cee182c125bc2138c2a17ceb",
"start_height": 1575820,
"n": 0,
"end_height": 1584386
},
{
"value": 25,
"unclaimed": 0.175424,
"txid": "bae94b0741a1982b0a1d1246fcfa62f88e3b746f89856f91efcd3db6b519e790",
"start_height": 1496799,
"n": 0,
"end_height": 1584386
},
{
"value": 29,
"unclaimed": 0.13658043,
"txid": "8d287bee9482a64e4b5034feddfb12611229bc7e7ebefbea8830dba73ff6f3b7",
"start_height": 1525639,
"n": 0,
"end_height": 1584386
}
],
"address": "ATsmYxUsJaU1AcZm3RCcTAhrvYUNMPaCvq"
}
http://api.wallet.cityofzion.io/v2/address/claims/ATsmYxUsJaU1AcZm3RCcTAhrvYUNMPaCvq
{
"address": "ATsmYxUsJaU1AcZm3RCcTAhrvYUNMPaCvq",
"claims": [
{
"claim": 650291400,
"end": 1584386,
"index": 0,
"start": 1485981,
"sysfee": 992,
"txid": "9adfbd49621c45bae64e8f11e2cd9a42c5330d9f39220390d6b7b5081bf606f6",
"value": 825
},
{
"claim": 17542200,
"end": 1584386,
"index": 0,
"start": 1496799,
"sysfee": 992,
"txid": "bae94b0741a1982b0a1d1246fcfa62f88e3b746f89856f91efcd3db6b519e790",
"value": 25
},
{
"claim": 13657811,
"end": 1584386,
"index": 0,
"start": 1525639,
"sysfee": 983,
"txid": "8d287bee9482a64e4b5034feddfb12611229bc7e7ebefbea8830dba73ff6f3b7",
"value": 29
},
{
"claim": 2085240,
"end": 1584386,
"index": 0,
"start": 1575820,
"sysfee": 980,
"txid": "d24f3a0d7d62d08165b30be5a0352f1bcf883be6cee182c125bc2138c2a17ceb",
"value": 30
}
],
"net": "MainNet",
"total_claim": 683576651,
"total_unspent_claim": 36360
}
I would assume neon-wallet-db is giving the correct numbers because I have counter checked it with neo-gui:
Just discovered negative balances on two of our smart contract addresses:
https://neoscan.io/address/AZXKdEc2M73qeQMmPj2zmKJFDWmzQf8Gyr
https://neoscan.io/address/AepnUu5Aq4rhgejET6QFegxFR1HDScbTyK
They're showing negative balances of -33,232,532.0
and -1.26292e7
, respectively. Those are actually the total supply values for the NRVE and NRV tokens, so it looks like neoscan is treating the mint operations as debits from a 0 balance.
It shouldn't need the setInterval() function on apps/neoscan_web/assets/js/home_app.js
window.onload = function () {
if (window.location.pathname === '/') {
let payload = {
blocks: [],
transactions: []
}
let home = new HomeSocket(payload)
setInterval(function () {
Inferno.render((
<List class='collection' sync={false} data={home.payload.blocks} rowHeight={15} rowRender={blockRow} />
), blocksContainer)
Inferno.render((
<List class='collection' sync={false} data={home.payload.transactions} rowHeight={15} rowRender={transactionRow} />
), transactionsContainer)
}, 500)
home.connect()
}
}
In order to build claimTransactions easily, I will need the following information:
The amt of gas claimable can be calculated by taking the difference between the block that generated the coin and the block that spent the coin.
EG:
http://testnet-api.wallet.cityofzion.io/v2/address/claims/ALq7AWrhAueN6mJNqk6FHJjnsEoPRytLdW
The total_claim
property at the end is useful but not necessary.
It's awesome that neoscan supports NEP-5 tokens now. Nice work! One added touch that would be nice is if you displayed the token symbol next to the balance since people will be used to seeing the symbol (and not necessarily always the token name). I think it's cool having the token name as the header as you have right now, but it might be a nice added touch to show the symbol next to the balance displayed. 👍
If we search for neo-scan on google first link is the github project.
We should add the basics meta title and description.
From my visual inspection (haven't looked into the code), it seems like neo-scan displays no decimal places for fees.
Because of that I see an issue for example with displaying following tx: https://neoscan.io/transaction/c920b2192e74eda4ca6140510813aa40fef1767d00c152aa6f8027c24bdf14f2
In: 40
Out 39.999
Net fee displays zero but is 0.001.
This is a transaction with 2560inputs :)
This is a transaction with 1000 outputs :)
The list of inputs/outputs cuts off at about 15th item on the list without any way to look at the rest. Inspecting the HTML shows that the rest of the list actually exists but is just hidden.
When there's too many connection_timeouts the monitor starts killing nodes without testing. Probably related with the GenStage consumer recursively trying to fetch the data from the available nodes. On restarting the server, the monitor refill the nodes list and they seem fine.
As of December 10, 2017 CoZ moved its NEO community chat from slack to discord. The neoscan_web app needs to be updated to reflect this: https://www.reddit.com/r/NEO/comments/7is3oz/neo_slack_moving_to_discord/
I attempted this on my own, but there appears to be some non-standard knowledge involved with how the svg is generated, and how .po
files are generated from .pot
. Seems like low-hanging fruit for the original contributor @lucianoengel
Environment:
Win 10 Home (64 bit) Version 1709 Build 16299.371
Browser:
Chrome 66.0.3359.139 (64 bit)
Example url:
https://neoscan-testnet.io/address/AK6SD7ZuZZkNPDi5SX9WkeELReob6tPBXQ
Description:
Getting internal server error after going to my personal address page.
Trying to run latest master in docker connected to the privnet image and seeing this:
In console it seems to index all the blocks tho..
Also at http://localhost:4000/transactions/1 I see:
BadMapError at GET /transactions/1
expected a map, got: nil
We noticed that one of our balances isn't displaying correctly on neoscan:
https://neoscan.io/address/AZXKdEc2M73qeQMmPj2zmKJFDWmzQf8Gyr
It's short 1 NEO. Neoscan is currently showing a balance of 361 NEO, but the actual balance is 362 (and a local neo-python node confirms this). I've tracked it down to block 1,952,187, which apparently didn't get processed fully:
https://neoscan.io/block/64f9b553f89b48305f8d4bc4879624d4abb35659830f2c4ce856fc7e4dce037b
It reports 29 transactions in the block (which is correct), but page 2 of transactions shows no results:
https://neoscan.io/block/64f9b553f89b48305f8d4bc4879624d4abb35659830f2c4ce856fc7e4dce037b/2
In particular, here's our transaction that is missing, which is throwing off the address balance:
https://neoscan.io/transaction/6eda62442a3f5ae98f6520b6118760060ec7e0a4480729e0f6c9aa59e747ae39
Note that this transaction does not show up in the address' transaction list, as you'd probably expect since that transaction seems to not have been imported properly.
The current blockchain synchronization process uses a GenStage pipeline as follows:
The problem is that a block don't have a maximum transactions count, neither transactions have a maximum number of inputs or outputs. Blocks with a great amount of transactions or with big transactions therefore flood memory with too many operations. A good pipeline design I believe, should ask for a maximum demand of addresses to update, which would ask for outputs, inputs and claims, which would ask for transactions and them for blocks. However, each stage doesn't know how many transactions/blocks it should ask for to fulfill the demand, so there must be a queue for each.
Improve the current state of elixir vm by creating an script builder for InvokeScrip calls.
example in JS: https://github.com/CityOfZion/neon-js/blob/master/src/sc/ScriptBuilder.js
Should be able to make a sucessfull rpc InvokeScript call for any token information.
pls add method for transactions get_last_transactions_by_address
In order to build a transaction, unspent information is required.
Environment:
Win 10 Home (64 bit) Version 1709 Build 16299.371
Browser:
Chrome 66.0.3359.139 (64 bit)
Example url:
https://neoscan-testnet.io/addresses/1
Description:
Getting internal server error after going to addresses page.
Environment:
Win 10 Home (64 bit) Version 1709 Build 16299.371
Browser:
Chrome 66.0.3359.139 (64 bit)
Example url:
https://neoscan-testnet.io/transactions/1
Description:
Getting internal server error after going to transactions page.
add option to export all tx from an address, for tax purposes
Consider solutions for testnet support.
-Dual DB;
-Prefix Tables;
-Individual Applications;
-Others?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.