@ixily/activ
Version:
Alpha Capture Trade Idea Verification. Blockchain ownership proven trade ideas and strategies.
54 lines • 2.26 kB
JavaScript
;
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