a0475ab17e
### Summary Tracking issue: https://github.com/wormhole-foundation/wormhole-explorer/issues/385 This pull request implements a new endpoint, `GET /api/v1/transactions`, which will be consumed by the wormhole explorer UI. The endpoint returns a paginated list of transactions, in which each element contains a brief overview of the transaction (ID, txHash, status, etc.). It exposes offset-based pagination via the parameters `page` and `pageSize`. Also, results can be obtained for a specific address by using the `address` query parameter. The response model looks like this: ```json { "transactions": [ { "id": "1/5ec18c34b47c63d17ab43b07b9b2319ea5ee2d163bce2e467000174e238c8e7f/12965", "timestamp": "2023-06-08T19:30:19Z", "txHash": "a302c4ab2d6b9a6003951d2e91f8fdbb83cfa20f6ffb588b95ef0290aab37066", "originChain": 1, "status": "ongoing" }, { "id": "22/0000000000000000000000000000000000000000000000000000000000000001/18308", "timestamp": "2023-06-08T19:17:14Z", "txHash": "00000000000000000000000000000000000000000000000000000000000047e7", "originChain": 22, "destinationAddress": "0x00000000000000000000000067e8a40816a983fbe3294aaebd0cc2391815b86b", "destinationChain": 5, "tokenAmount": "0.12", "usdAmount": "0.12012", "symbol": "USDC", "status": "completed" }, ... ] } ``` ### Limitations of the current implementation 1. Doesn't return the total number of results (this may result in a performance issue when we filter by address) 2. Can only filter by receiver address (we don't have sender information in the database yet) |
||
---|---|---|
.. | ||
docs | ||
handlers | ||
internal | ||
middleware | ||
response | ||
routes | ||
rpc | ||
types | ||
.gitignore | ||
Dockerfile | ||
Makefile | ||
README.md | ||
go.mod | ||
go.sum | ||
main.go |
README.md
API
How to build
make build
Config
You will need to set some env variables with the prefix WORMSCAN
- WORMSCAN_DB_MONGO
- WORMSCAN_DB_NAME
- WORMSCAN_PORT
for example:
WORMSCAN_DB_URL=mongodb://localhost:27017/wormhole WORMSCAN_PORT=5555 ./api
API Documentation
Documentation is automagically generated via swaggo using annotations on code
and placed inside doc/
folder.
To install swag tool run this
go install github.com/swaggo/swag/cmd/swag@latest
To generate or update the doc run:
make doc