fibercrypto / fibercrypto/skyxcommons

[api] Get history from address

Open
#15 0 comments 0 reactions 1 assignee Claimed by @AntiD2ta View on GitHub
Dominant language
No language data
Stars
0
Forks
1
PR merge metrics
No merged PRs in 30d

Description

[GET] /api/transactions/history/from/{address}?take=integer&[afterHash=string]

Should return completed transactions that transfer fund from the `address` and that were broadcasted after the transaction with the `hash` equal to the `afterHash` .
If `afterHash` is empty, transactions should be read from the beginning.
Should include all transactions broadcasted even if not going through `/transaction/broadcast/*` API endpoints.
If there are no transactions to return, empty array should be returned. Amount of the returned transactions should not exceed `take` .

Response:

```js
[
{
// Operation ID.
// Can be empty.
// Should be not empty for transactions that
// broadcasted using this API
“operationId”: “guid”,
// Transaction moment as ISO 8601 in UTC
“timestamp”: “datetime”,
// Source address
“fromAddress”: “string”,
// Destination address
“toAddress”: “string”,
// Asset ID e.g. SKY
“assetId”: “string”
// Amount without fee. Is integer as string, aligned
// to the asset accuracy. Actual value can be
// calculated as
// x = sourceAmount * (10 ^ asset.Accuracy)
“amount”: “string”,
// Transaction hash as base64 string
“hash”: “string”
}
]
```

Python implementation

```py

@api.route('/transactions/history/from/', methods=['GET'])
def get_history_from_address(address):
"""
Returns completed transactions that transfer fund from the address
"""

if not exists_address_transfer_observation_from(address):
return make_response(jsonify(build_error('No content. transactions from the address are not observed')), 204)

take = request.args.get('take')
if take is None:
take = 0
else:
take = int(take)

afterhash = request.args.get('afterHash')
if afterhash is None:
afterhash = ""

update_index()
items = get_transactions_from(address, take, afterhash)

if 'error' in items:
return make_response(jsonify(build_error(items['error'])), items['status'])

return jsonify(items)

```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.