UNPKG

@x5e/gink

Version:

an eventually consistent database

75 lines 3.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sleep = exports.addTrxns = exports.extendChainWithoutSign = exports.extendChain = exports.unbundle = exports.makeChainStart = exports.keyPair = exports.NEXT_TS2 = exports.START_MICROS2 = exports.MEDALLION2 = exports.NEXT_TS1 = exports.START_MICROS1 = exports.MEDALLION1 = void 0; const builders_1 = require("../implementation/builders"); const Decomposition_1 = require("../implementation/Decomposition"); const utils_1 = require("../implementation/utils"); exports.MEDALLION1 = 425579549941797; exports.START_MICROS1 = Date.parse("2022-02-19 23:24:50") * 1000; exports.NEXT_TS1 = Date.parse("2022-02-20 00:39:29") * 1000; exports.MEDALLION2 = 458510670893748; exports.START_MICROS2 = Date.parse("2022-02-20 00:38:21") * 1000; exports.NEXT_TS2 = Date.parse("2022-02-20 00:40:12") * 1000; exports.keyPair = utils_1.librariesReady.then(() => (0, utils_1.createKeyPair)()); async function makeChainStart(comment, medallion, chainStart) { const bundleBuilder = new builders_1.BundleBuilder(); bundleBuilder.setChainStart(chainStart); bundleBuilder.setTimestamp(chainStart); bundleBuilder.setMedallion(medallion); bundleBuilder.setComment(comment); bundleBuilder.setIdentity("test-chain-start"); bundleBuilder.setVerifyKey((await exports.keyPair).publicKey); return new Decomposition_1.Decomposition((0, utils_1.signBundle)(bundleBuilder.serializeBinary(), (await exports.keyPair).secretKey)); } exports.makeChainStart = makeChainStart; function unbundle(signed) { const inside = new Decomposition_1.Decomposition(signed); return inside.builder; } exports.unbundle = unbundle; async function extendChain(comment, previous, timestamp) { const bundleBuilder = new builders_1.BundleBuilder(); const parsedPrevious = previous.builder; bundleBuilder.setMedallion(parsedPrevious.getMedallion()); bundleBuilder.setPrevious(parsedPrevious.getTimestamp()); bundleBuilder.setChainStart(parsedPrevious.getChainStart()); bundleBuilder.setTimestamp(timestamp); // one millisecond later bundleBuilder.setComment(comment); const priorHash = previous.info.hashCode; (0, utils_1.ensure)(priorHash && priorHash.length === 32); bundleBuilder.setPriorHash(priorHash); return new Decomposition_1.Decomposition((0, utils_1.signBundle)(bundleBuilder.serializeBinary(), (await exports.keyPair).secretKey)); } exports.extendChain = extendChain; function extendChainWithoutSign(comment, previous, timestamp) { const bundleBuilder = new builders_1.BundleBuilder(); const parsedPrevious = previous.builder; bundleBuilder.setMedallion(parsedPrevious.getMedallion()); bundleBuilder.setPrevious(parsedPrevious.getTimestamp()); bundleBuilder.setChainStart(parsedPrevious.getChainStart()); bundleBuilder.setTimestamp(timestamp); // one millisecond later bundleBuilder.setComment(comment); const priorHash = previous.info.hashCode; (0, utils_1.ensure)(priorHash && priorHash.length === 32); bundleBuilder.setPriorHash(priorHash); return bundleBuilder; } exports.extendChainWithoutSign = extendChainWithoutSign; async function addTrxns(store) { const start1 = await makeChainStart("chain1,tx1", exports.MEDALLION1, exports.START_MICROS1); await store.addBundle(start1); const next1 = await extendChain("chain1,tx2", start1, exports.NEXT_TS1); await store.addBundle(next1); const start2 = await makeChainStart("chain2,tx1", exports.MEDALLION2, exports.START_MICROS2); await store.addBundle(start2); const next2 = await extendChain("chain2,2", start2, exports.NEXT_TS2); await store.addBundle(next2); } exports.addTrxns = addTrxns; async function sleep(ms) { return new Promise((resolve) => { setTimeout(resolve, ms); }); } exports.sleep = sleep; //# sourceMappingURL=test_utils.js.map