fibercrypto / fibercrypto/skyxcommons

[api] Get history to address

Open
#12 0 comments 0 reactions 0 assignees 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/to/{address}?take=integer&[afterHash=string]

Should return completed transactions that transfer fund to 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 those 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 Blockchain.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/to/', methods=['GET'])
def get_history_to_address(address):
"""
Returns completed transactions that transfer fund to the address
"""

if not exists_address_transfer_observation_to(address):
return make_response(jsonify(build_error('No content: transactions to 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'.lower())
if afterhash is None:
afterhash = ''

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

response = items if take == 0 else items[0:take]

return jsonify(response)
```

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.