Skip to content

[api] Get history from address #15

@olemis

Description

@olemis

[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:

[
{
// 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

@api.route('/transactions/history/from/<string:address>', 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)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions