UNPKG

@ledgerhq/coin-mina

Version:
194 lines 6.73 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createMockSignerContext = exports.mockDeviceId = exports.createMockUnsignedTransaction = exports.createMockTransaction = exports.createMockAccount = exports.createMockAccountInfo = exports.createMockTxn = exports.mockBlockInfo = exports.mockAccountData = void 0; const currencies_1 = require("@ledgerhq/cryptoassets/lib/currencies"); const bignumber_js_1 = __importDefault(require("bignumber.js")); // Mock account data exports.mockAccountData = { blockHeight: 123, balance: new bignumber_js_1.default(1000), spendableBalance: new bignumber_js_1.default(900), }; // Mock block info exports.mockBlockInfo = { block: { block_identifier: { index: 123, hash: "block_hash" }, parent_block_identifier: { index: 122, hash: "parent_block_hash" }, timestamp: 1672531200000, }, }; /** * Creates a mock Rosetta transaction for testing */ const createMockTxn = (options) => { const { type, senderAddress, receiverAddress, amount = "1000", fee = "100", memo = "test memo", status, } = options; const operations = []; if (type !== "REDELEGATE") { // Add fee operation for payment transactions operations.push({ type: "fee_payment", amount: { value: fee, currency: { symbol: "MINA", decimals: 9 } }, status, account: { address: senderAddress, metadata: { token_id: "MINA" } }, operation_identifier: { index: 0 }, }); operations.push({ type: "payment_source_dec", status, account: { address: senderAddress, metadata: { token_id: "MINA" } }, operation_identifier: { index: 1 }, }); operations.push({ type: "payment_receiver_inc", amount: { value: amount, currency: { symbol: "MINA", decimals: 9 } }, status, account: { address: receiverAddress, metadata: { token_id: "MINA" } }, operation_identifier: { index: 2 }, }); } else { // Delegate change operation operations.push({ type: "delegate_change", status, account: { address: senderAddress, metadata: { token_id: "MINA" } }, operation_identifier: { index: 0 }, }); } return { transaction: { transaction_identifier: { hash: "tx_hash" }, operations, metadata: { memo }, }, block_identifier: { index: 123, hash: "block_hash" }, timestamp: 1672531200000, }; }; exports.createMockTxn = createMockTxn; /** * Creates a mock account info object for testing */ const createMockAccountInfo = () => ({ address: "test_address", index: 0, derivationPath: "m/44'/12586'/0'/0/0", initialAccount: { operations: [], type: "Account", id: "account_id", seedIdentifier: "seed_identifier", derivationMode: "minabip44", index: 0, freshAddress: "fresh_address", freshAddressPath: "fresh_address_path", used: true, balance: new bignumber_js_1.default(1000), spendableBalance: new bignumber_js_1.default(900), creationDate: new Date(), blockHeight: 123, currency: (0, currencies_1.getCryptoCurrencyById)("mina"), operationsCount: 0, pendingOperations: [], lastSyncDate: new Date(), subAccounts: [], balanceHistoryCache: { HOUR: { latestDate: null, balances: [] }, DAY: { latestDate: null, balances: [] }, WEEK: { latestDate: null, balances: [] }, }, swapHistory: [], syncHash: undefined, nfts: [], }, currency: (0, currencies_1.getCryptoCurrencyById)("mina"), derivationMode: "minabip44", }); exports.createMockAccountInfo = createMockAccountInfo; /** * Creates a mock Mina account for testing */ const createMockAccount = (overrides) => ({ id: "mock_account_id", freshAddress: "B62qiVhtBtqakq8sNTHdCTXn6tETSK6gtsmNHRn1WdLqjGLpsHbw1xc", freshAddressPath: "44'/12586'/0'/0/0", type: "Account", seedIdentifier: "seed_identifier", derivationMode: "minabip44", index: 0, used: true, balance: new bignumber_js_1.default(1000), spendableBalance: new bignumber_js_1.default(900), creationDate: new Date(), blockHeight: 123, currency: (0, currencies_1.getCryptoCurrencyById)("mina"), operationsCount: 0, pendingOperations: [], lastSyncDate: new Date(), subAccounts: [], balanceHistoryCache: { HOUR: { latestDate: null, balances: [] }, DAY: { latestDate: null, balances: [] }, WEEK: { latestDate: null, balances: [] }, }, swapHistory: [], syncHash: undefined, nfts: [], operations: [], ...overrides, }); exports.createMockAccount = createMockAccount; /** * Creates a mock Mina transaction for testing */ const createMockTransaction = (overrides) => ({ family: "mina", amount: new bignumber_js_1.default(1000), recipient: "B62qr5cXFjdnZXYxP5dEwRY7wENxcod4Q2oLxUDiq1QrBXZZyxMH8q4", fees: { fee: new bignumber_js_1.default(10), accountCreationFee: new bignumber_js_1.default(0), }, memo: "test memo", nonce: 1, ...overrides, }); exports.createMockTransaction = createMockTransaction; /** * Creates a mock unsigned transaction for testing */ const createMockUnsignedTransaction = (account = (0, exports.createMockAccount)(), transaction = (0, exports.createMockTransaction)()) => ({ txType: 0, senderAccount: 0, senderAddress: account.freshAddress, receiverAddress: transaction.recipient, amount: transaction.amount.toNumber(), fee: transaction.fees.fee.toNumber(), nonce: transaction.nonce, memo: transaction.memo, networkId: 1, }); exports.createMockUnsignedTransaction = createMockUnsignedTransaction; /** * Creates a mock device ID for testing */ exports.mockDeviceId = "mock_device_id"; /** * Creates a mock signer context for testing */ const createMockSignerContext = (signatureResponse = { returnCode: "0x9000", signature: "mock_raw_signature", }) => jest.fn().mockImplementation((deviceId, cb) => { const mockSigner = { getAddress: jest.fn(), signTransaction: jest.fn().mockResolvedValue(signatureResponse), }; return cb(mockSigner); }); exports.createMockSignerContext = createMockSignerContext; // ... existing code ... //# sourceMappingURL=fixtures.js.map