UNPKG

@ixily/activ

Version:

Alpha Capture Trade Idea Verification. Blockchain ownership proven trade ideas and strategies.

54 lines 2.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.decomposeUniqueStrategyReference = exports.getUniqueStrategyReference = exports.uniqueKeySplit = exports.uniqueKeyJoin = void 0; const BufferB = require('buffer/').Buffer; const utils_1 = require("ethers/lib/utils"); const compress = (str) => { return utils_1.base58.encode(BufferB.from(str, 'utf8')); }; const decompress = (str) => { return BufferB.from(utils_1.base58.decode(str)).toString('utf8'); }; // Join Unique Keys With Fast Zip Hash and a solid simple separator const uniqueKeyJoin = (keys) => { const preProcessedKeys = keys.map((key) => { return key.replace('|x', '|:x'); }); const joinedKeys = preProcessedKeys.join('|x'); return compress(joinedKeys); }; exports.uniqueKeyJoin = uniqueKeyJoin; // undo the above operation and return the keys after unzip and split const uniqueKeySplit = (uniqueKey) => { try { const unzipped = decompress(uniqueKey); const split = unzipped.split('|x'); const postProcessedKeys = split.map((key) => { return key.replace('|:x', '|x'); }); return postProcessedKeys; } catch (e) { throw new Error(`uniqueKeySplit Error: Are u sure this is a valid uniqueKey? ${uniqueKey}`); } }; exports.uniqueKeySplit = uniqueKeySplit; const getUniqueStrategyReference = (chain, contractAddress, creatorAddress, strategyKey) => { return (0, exports.uniqueKeyJoin)([chain, contractAddress, creatorAddress, strategyKey]); }; exports.getUniqueStrategyReference = getUniqueStrategyReference; const decomposeUniqueStrategyReference = (uniqueStrategyReference) => { const decomposed = (0, exports.uniqueKeySplit)(uniqueStrategyReference); if (decomposed[1] === undefined) { throw new Error('decomposeUniqueStrategyReference Error: Are u sure this is a valid uniqueStrategyReference? ' + uniqueStrategyReference); } return { chain: decomposed[0], contractAddress: decomposed[1], creatorAddress: decomposed[2], strategyKey: decomposed[3], }; }; exports.decomposeUniqueStrategyReference = decomposeUniqueStrategyReference; //# sourceMappingURL=unique-key-mixer.tool.js.map