UNPKG

@onekeyfe/blockchain-link

Version:

High-level javascript interface for blockchain communication

81 lines (80 loc) 2.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.transformTransaction = exports.transformError = exports.transformServerInfo = void 0; var errors_1 = require("ripple-lib/dist/npm/common/errors"); var errors_2 = require("../../constants/errors"); var transformServerInfo = function (payload) { return { name: 'Ripple', shortcut: 'xrp', testnet: false, version: payload.buildVersion, decimals: 6, blockHeight: payload.validatedLedger.ledgerVersion, blockHash: payload.validatedLedger.hash, }; }; exports.transformServerInfo = transformServerInfo; var transformError = function (error) { if (error instanceof errors_1.RippleError) { var code = error.name === 'TimeoutError' ? 'websocket_timeout' : 'websocket_error_message'; if (error.data) { return new errors_2.CustomError(code, error.name + " " + error.data.error_message); } return new errors_2.CustomError(code, error.toString()); } return error; }; exports.transformError = transformError; var transformTransaction = function (descriptor, tx) { if (tx.TransactionType !== 'Payment') { return { type: 'unknown', txid: tx.hash, amount: '0', fee: '0', blockTime: tx.date, blockHeight: tx.ledger_index, blockHash: tx.hash, targets: [], tokens: [], details: { vin: [], vout: [], size: 0, totalInput: '0', totalOutput: '0', }, }; } var type = tx.Account === descriptor ? 'sent' : 'recv'; var addresses = [tx.Destination]; var amount = tx.Amount; var fee = tx.Fee; return { type: type, txid: tx.hash, blockTime: tx.date, blockHeight: tx.ledger_index, blockHash: tx.hash, amount: amount, fee: fee, targets: [ { addresses: addresses, isAddress: true, amount: amount, n: 0, }, ], tokens: [], details: { vin: [], vout: [], size: 0, totalInput: '0', totalOutput: '0', }, }; }; exports.transformTransaction = transformTransaction;