[WIP] feat(neighbors): add neighbors transforms (in/out) #14
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request implements the initial part of Add transforms related to transactions and neighbors #10.
Currently, only the "To input addresses" transform has been implemented. Is this in line with what you had in mind?
While testing, I noticed that the Tatum transform only retrieves the first 25 input addresses. For example, when querying the default BTC address created in Maltego using the Blockchain.com Explorer, there are dozens of pages of input addresses available. However, the Tatum transform seems to return only the first page.
While trying to implement this functionality using the GraphSense Python API wrapper, I encountered issues with pagination. According to the documentation, the list_address_neighbors method should support pagination via page and pagesize parameters. However, the method only returns an object with the neighbors key, and regardless of the parameters provided, it never returns pagination data such as next_page.
As a result, the API call can take a very long time to execute (I waited up to one minute before cancelling the request).
To address this issue, I believe we have two options:
Wait for the GraphSense team to fix their API or confirm the expected behavior
Bypass the Python API wrapper and make raw HTTP requests directly to the API
On another note, I also noticed that the Tatum input addresses transform does not take into account change addresses. For example, if an address A sends 0.3 BTC but there is a change address and only 0.2 BTC is sent to address B, Tatum will add the input address and indicate that the amount sent to address B is 0.3 BTC even if there is a change address. Is it the expected behavior?