Created on 29th May 2022
•
A public blockchain is what it is 'public', So the movement of funds to different wallets documented gives it an extra layer of transparency and security.
Currently, there aren't tools like breadcrumbs on the solana chain, Indexers are still a hassle to get your hands on in this space. Especially tools like this are the need of the hour when things like Luna happen.
So this script runs for a particular wallet and indexes all the spl token transactions that happened, It also provides a graphql layer on top to query relevant data.
PS. Also with modifications to this script, you can really put out data from the transaction parsed as you please.
ex. You could find to which address the tokens were transferred to, etc.
The schema of tables that get populated looks like
| mint | blocktime | amt | diff | sol_change | txn_hash |
The returned data looks like this for a particular token address of a given wallet.
As shown below in the result returned from hasura, we can see the wallet had
199.817177
and there was a200
credit to this account at said date (blocktime
) and it's corresponding hash (txn_hash
), The updated balance is399.817177
in the following transaction and it goes on...{ "amt": 199.817177, "diff": 200.00000000000003, "sol_change": 0, "blocktime": 1639582020, "txn_hash": "4rodPm1e6FWAa3YNUJB3tkeEQ8NBzvtpdxK6AMxYzY3m7vZ3xvqeycU4VEE5VB82BrcKiyFAo3wCyaksKewdjmcY" },{ "amt": 399.817177, "diff": -200.00000000000003, "sol_change": 0, "blocktime": 1639582169, "txn_hash": "4X2cw9JbM85cUk8pRBCcb7TCsxpLb5qLr6HPjZTCRQ6sigdDmhsGGigzaSgJthhXzacpzXrHZAFPg4a6RJ9hq7ub" },
This is a hacky solution that pulls data from an RPC node. This would definitely require more testing to be robust and be really used in production.
There are times when a transaction gets repeatedly returned basically leading to duplicate calls. This can be troublesome as it can lead to huge RPC loads that could even lead to your app getting blacklisted because of spam.
Also, this is a one-time setup to modify the script to pull data of your interest from the fetched parsed transaction, In this case, it is focused more on just the funds moving in and out of a given wallet address.
This is still a WIP and needs refinement for mainstream adoption.
Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.