UNPKG

@ledgerhq/live-common

Version:
157 lines • 6.23 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); const banner_1 = require("./banner"); const preloadedData = __importStar(require("@ledgerhq/coin-near/preload")); const logic = __importStar(require("@ledgerhq/coin-near/logic")); const bignumber_js_1 = require("bignumber.js"); const ledgerValidator = { validatorAddress: "ledgerbyfigment.poolv1.near", tokens: "1048915930081658334880682687527", commission: 0.05, }; const expensiveValidator = { validatorAddress: "vcap.poolv1.near", tokens: "25189185052249274302209542299", commission: 0.1, }; const cheapValidator = { validatorAddress: "meduza.poolv1.near", tokens: "25456182690919428871460833604", commission: 0.02, }; const account = { type: "Account", id: "js:2:near:d812a582d0b30c1a13041fd564e5f0c4325804b1dd2447d63ab6b9a424747363:nearbip44h", used: true, seedIdentifier: "ed25519:DewDMzsc2cnMYBrALESrf3vKWLp3zBB4HJnPoyvPL945", derivationMode: "nearbip44h", index: 1, freshAddress: "d812a582d0b30c1a13041fd564e5f0c4325804b1dd2447d63ab6b9a424747363", freshAddressPath: "44'/397'/0'/0'/1'", blockHeight: 85373729, creationDate: new Date("2022-12-08T09:42:54.396Z"), balance: new bignumber_js_1.BigNumber("3.10368633212077468946995e+23"), spendableBalance: new bignumber_js_1.BigNumber("1.265872509685649e+23"), operations: [], operationsCount: 3, pendingOperations: [], currency: { type: "CryptoCurrency", id: "near", coinType: 397, name: "NEAR", managerAppName: "NEAR", ticker: "NEAR", scheme: "near", color: "#000", family: "near", units: [], explorerViews: [], keywords: ["near"], }, lastSyncDate: new Date("2023-02-16T19:43:17.615Z"), swapHistory: [], balanceHistoryCache: { HOUR: { balances: [], latestDate: 1676574000000, }, DAY: { balances: [], latestDate: 1676505600000, }, WEEK: { balances: [], latestDate: 1676160000000, }, }, nearResources: { stakedBalance: new bignumber_js_1.BigNumber("1.29802125309300073830514e+23"), pendingBalance: new bignumber_js_1.BigNumber("0"), availableBalance: new bignumber_js_1.BigNumber("0"), storageUsageBalance: new bignumber_js_1.BigNumber("5.182e+22"), stakingPositions: [], }, }; const validators = [expensiveValidator, cheapValidator, ledgerValidator]; const validatorsMap = { storageCost: new bignumber_js_1.BigNumber("10000000000000000000"), gasPrice: new bignumber_js_1.BigNumber("100000000"), createAccountCostSend: new bignumber_js_1.BigNumber("99607375000"), createAccountCostExecution: new bignumber_js_1.BigNumber("99607375000"), transferCostSend: new bignumber_js_1.BigNumber("115123062500"), transferCostExecution: new bignumber_js_1.BigNumber("115123062500"), addKeyCostSend: new bignumber_js_1.BigNumber("101765125000"), addKeyCostExecution: new bignumber_js_1.BigNumber("101765125000"), receiptCreationSend: new bignumber_js_1.BigNumber("108059500000"), receiptCreationExecution: new bignumber_js_1.BigNumber("108059500000"), validators, }; describe("near/banner", () => { afterEach(() => { jest.restoreAllMocks(); }); it("should not display the banner is account is", async () => { jest.spyOn(preloadedData, "getCurrentNearPreloadData").mockReturnValue(validatorsMap); jest.spyOn(logic, "canStake").mockReturnValue(false); const result = (0, banner_1.getAccountBannerState)(account); expect(result).toStrictEqual({ display: false, redelegate: false, validatorId: "", ledgerValidator, }); }); it("should return display delegate mode is account is not empty", async () => { jest.spyOn(preloadedData, "getCurrentNearPreloadData").mockReturnValue(validatorsMap); jest.spyOn(logic, "canUnstake").mockReturnValue(true); const result = (0, banner_1.getAccountBannerState)(account); expect(result).toStrictEqual({ display: true, redelegate: false, validatorId: "", ledgerValidator, }); }); it("should return display redelegate mode when deactive is an action", async () => { const badValidator = { staked: new bignumber_js_1.BigNumber("1.29802125309300073830514e+23"), available: new bignumber_js_1.BigNumber("1"), pending: new bignumber_js_1.BigNumber("0"), validatorId: "vcap.poolv1.near", }; jest.spyOn(preloadedData, "getCurrentNearPreloadData").mockReturnValue(validatorsMap); account.nearResources?.stakingPositions.push(badValidator); const result = (0, banner_1.getAccountBannerState)(account); expect(result).toStrictEqual({ display: true, redelegate: true, validatorId: "vcap.poolv1.near", ledgerValidator, }); }); }); //# sourceMappingURL=banner.test.js.map