@ledgerhq/coin-filecoin
Version:
Ledger Filecoin Coin integration
67 lines • 2.95 kB
JavaScript
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
;