UNPKG

@funded-labs/plug-controller

Version:

Internet Computer Plug wallet's controller

33 lines (32 loc) 1.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.formatIcpTransaccion = exports.MILI_PER_SECOND = void 0; const tokens_1 = require("../../../constants/tokens"); exports.MILI_PER_SECOND = 1000000; const formatIcpTransaccion = (accountId, rosettaTransaction) => { const { operations, metadata: { timestamp }, transaction_identifier: { hash }, } = rosettaTransaction; const transaction = { details: { status: 'COMPLETED', fee: {} } }; operations.forEach(operation => { const value = BigInt(operation.amount.value); const amount = value.toString(); if (operation.type === 'FEE') { transaction.details.fee.amount = amount; transaction.details.fee.currency = operation.amount.currency; return; } if (value >= 0) transaction.details.to = operation.account.address; if (value <= 0) transaction.details.from = operation.account.address; if (transaction.details.status === 'COMPLETED' && operation.status !== 'COMPLETED') transaction.details.status = operation.status; transaction.type = transaction.details.to === accountId ? 'RECEIVE' : 'SEND'; transaction.details.amount = amount; transaction.details.currency = operation.amount.currency; transaction.details.canisterId = tokens_1.TOKENS.ICP.canisterId; }); return Object.assign(Object.assign({}, transaction), { caller: transaction.details.from, hash, timestamp: timestamp / exports.MILI_PER_SECOND }); }; exports.formatIcpTransaccion = formatIcpTransaccion;