@funded-labs/plug-controller
Version:
Internet Computer Plug wallet's controller
33 lines (32 loc) • 1.64 kB
JavaScript
;
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;