UNPKG

@bsv/wallet-toolbox

Version:

BRC100 conforming wallet, wallet storage and wallet signer components

119 lines 4.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const TestUtilsWalletStorage_1 = require("../../../../test/utils/TestUtilsWalletStorage"); const WalletLogger_1 = require("../../../WalletLogger"); const StorageServer_1 = require("../StorageServer"); const WalletError_1 = require("../../../sdk/WalletError"); describe('StorageClient tests', () => { jest.setTimeout(99999999); let server; let client; let logSpy; let capturedLogs = []; let errorSpy; let capturedErrors = []; beforeAll(async () => { logSpy = jest.spyOn(console, 'log').mockImplementation((...args) => { capturedLogs.push(args.map(String).join(' ')); }); errorSpy = jest.spyOn(console, 'error').mockImplementation((...args) => { capturedErrors.push(args.map(String).join(' ')); }); server = await createStorageServer(); client = await TestUtilsWalletStorage_1._tu.createTestWalletWithStorageClient({ rootKeyHex: server.setup.rootKey.toHex(), endpointUrl: 'http://localhost:8042', chain: server.setup.chain }); }); afterAll(async () => { //console.log('All captured logs:', capturedLogs); //console.log('All captured errors:', capturedErrors); logSpy.mockRestore(); errorSpy.mockRestore(); await client.wallet.destroy(); await server.server.close(); await server.setup.wallet.destroy(); }); test('0 repeatable createAction', async () => { const storageClient = client.storage.getActive(); const u = await storageClient.findOrInsertUser(server.setup.identityKey); expect(u).toBeTruthy(); }); test('1 repeatable createAction', async () => { const wallet = client.wallet; //wallet.makeLogger = () => console wallet.makeLogger = () => new WalletLogger_1.WalletLogger(); wallet.randomVals = [0.1, 0.2, 0.3, 0.7, 0.8, 0.9]; const root = '02135476'; const kp = TestUtilsWalletStorage_1._tu.getKeyPair(root.repeat(8)); const createArgs = { description: `repeatable`, outputs: [ { satoshis: 45, lockingScript: TestUtilsWalletStorage_1._tu.getLockP2PKH(kp.address).toHex(), outputDescription: 'pay echo' } ], options: { randomizeOutputs: false, signAndProcess: true, noSend: true } }; const cr = await wallet.createAction(createArgs); expect(cr.txid === '4f428a93c43c2d120204ecdc06f7916be8a5f4542cc8839a0fd79bd1b44582f3'); }); test('1a error createAction', async () => { if (TestUtilsWalletStorage_1._tu.noEnv('main')) return; const wallet = client.wallet; //wallet.makeLogger = () => console wallet.makeLogger = () => new WalletLogger_1.WalletLogger(); wallet.randomVals = [0.1, 0.2, 0.3, 0.7, 0.8, 0.9]; const root = '02135476'; const kp = TestUtilsWalletStorage_1._tu.getKeyPair(root.repeat(8)); const createArgs = { description: `error`, outputs: [ { satoshis: 45, lockingScript: TestUtilsWalletStorage_1._tu.getLockP2PKH(kp.address).toHex(), outputDescription: 'pay echo' } ], options: { randomizeOutputs: false, signAndProcess: true, noSend: false, acceptDelayedBroadcast: false } }; try { const cr = await wallet.createAction(createArgs); expect(cr.txid === '4f428a93c43c2d120204ecdc06f7916be8a5f4542cc8839a0fd79bd1b44582f3'); } catch (eu) { const e = WalletError_1.WalletError.fromUnknown(eu); expect(e.code).toBe('WERR_REVIEW_ACTIONS'); } }); }); async function createStorageServer() { const setup = await TestUtilsWalletStorage_1._tu.createLegacyWalletSQLiteCopy('StorageClientTest'); const options = { port: Number(8042), wallet: setup.wallet, monetize: false, adminIdentityKeys: [], calculateRequestPrice: async () => { return 0; // Monetize your server here! Price is in satoshis. }, makeLogger: (log) => new WalletLogger_1.WalletLogger(log) }; const server = new StorageServer_1.StorageServer(setup.activeStorage, options); server.start(); return { setup, server }; } //# sourceMappingURL=StorageClient.test.js.map