UNPKG

@ledgerhq/coin-filecoin

Version:
67 lines 2.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.expectedToFieldForTokenTransfer = exports.getAccountUnit = exports.calculateEstimatedFees = exports.getBufferFromString = exports.methodToString = exports.isValidBase64 = exports.isValidHex = exports.BotScenario = exports.AccountType = exports.Methods = void 0; const network_1 = require("../network"); var Methods; (function (Methods) { Methods[Methods["Transfer"] = 0] = "Transfer"; Methods[Methods["ERC20Transfer"] = 1] = "ERC20Transfer"; Methods[Methods["InvokeEVM"] = 3844450837] = "InvokeEVM"; })(Methods || (exports.Methods = Methods = {})); var AccountType; (function (AccountType) { AccountType["Account"] = "Account"; AccountType["TokenAccount"] = "TokenAccount"; })(AccountType || (exports.AccountType = AccountType = {})); var BotScenario; (function (BotScenario) { BotScenario["DEFAULT"] = "default"; BotScenario["ETH_RECIPIENT"] = "eth-recipient"; BotScenario["F4_RECIPIENT"] = "f4-recipient"; BotScenario["TOKEN_TRANSFER"] = "token-transfer"; })(BotScenario || (exports.BotScenario = BotScenario = {})); const validHexRegExp = new RegExp(/^(0x)?[a-fA-F0-9]+$/); const validBase64RegExp = new RegExp(/^(?:[A-Za-z\d+/]{4})*(?:[A-Za-z\d+/]{3}=|[A-Za-z\d+/]{2}==)?$/); // TODO Filecoin - Use the new package @zondax/ledger-utils instead const isValidHex = (msg) => validHexRegExp.test(msg) && msg.length % 2 === 0; exports.isValidHex = isValidHex; const isValidBase64 = (msg) => validBase64RegExp.test(msg); exports.isValidBase64 = isValidBase64; const methodToString = (method) => { switch (method) { case Methods.Transfer: return "Transfer"; case Methods.InvokeEVM: return "InvokeEVM (3844450837)"; case Methods.ERC20Transfer: return "ERC20 Transfer"; default: return "Unknown"; } }; exports.methodToString = methodToString; const getBufferFromString = (message) => (0, exports.isValidHex)(message) ? Buffer.from(message, "hex") : (0, exports.isValidBase64)(message) ? Buffer.from(message, "base64") : Buffer.from(message); exports.getBufferFromString = getBufferFromString; const calculateEstimatedFees = (gasFeeCap, gasLimit) => gasFeeCap.multipliedBy(gasLimit); exports.calculateEstimatedFees = calculateEstimatedFees; function getAccountUnit(account) { if (account.type === AccountType.TokenAccount) { return account.token.units[0]; } return account.currency.units[0]; } exports.getAccountUnit = getAccountUnit; const expectedToFieldForTokenTransfer = (recipient) => { let value = recipient; const equivalent = (0, network_1.getEquivalentAddress)(value); if (equivalent && value !== equivalent) { value += ` / ${equivalent}`; } return value; }; exports.expectedToFieldForTokenTransfer = expectedToFieldForTokenTransfer; //# sourceMappingURL=utils.js.map