@bsv/wallet-toolbox
Version:
BRC100 conforming wallet, wallet storage and wallet signer components
119 lines • 4.72 kB
JavaScript
;
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