@onekeyfe/blockchain-link
Version:
High-level javascript interface for blockchain communication
81 lines (80 loc) • 2.43 kB
JavaScript
;
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;