mirror of
https://github.com/BlueWallet/BlueWallet.git
synced 2024-11-20 18:21:57 +01:00
37 lines
1.6 KiB
JavaScript
37 lines
1.6 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.encodeUR = void 0;
|
|
var miniCbor_1 = require("./miniCbor");
|
|
var bc_bech32_1 = require("bc-bech32");
|
|
var utils_1 = require("./utils");
|
|
var composeUR = function (payload, type) {
|
|
if (type === void 0) { type = 'bytes'; }
|
|
return "ur:" + type + "/" + payload;
|
|
};
|
|
var composeDigest = function (payload, digest) {
|
|
return digest + "/" + payload;
|
|
};
|
|
var composeSequencing = function (payload, index, total) {
|
|
return index + 1 + "of" + total + "/" + payload;
|
|
};
|
|
var composeHeadersToFragments = function (fragments, digest, type) {
|
|
if (type === void 0) { type = 'bytes'; }
|
|
if (fragments.length === 1) {
|
|
return [composeUR(fragments[0])];
|
|
}
|
|
else {
|
|
return fragments.map(function (f, index) {
|
|
return utils_1.compose3(function (payload) { return composeUR(payload, type); }, function (payload) { return composeSequencing(payload, index, fragments.length); }, function (payload) { return composeDigest(payload, digest); })(f);
|
|
});
|
|
}
|
|
};
|
|
exports.encodeUR = function (payload, fragmentCapacity) {
|
|
if (fragmentCapacity === void 0) { fragmentCapacity = 200; }
|
|
var cborPayload = miniCbor_1.encodeSimpleCBOR(payload);
|
|
var bc32Payload = bc_bech32_1.encodeBc32Data(cborPayload);
|
|
var digest = utils_1.sha256Hash(Buffer.from(cborPayload, 'hex')).toString('hex');
|
|
var bc32Digest = bc_bech32_1.encodeBc32Data(digest);
|
|
var fragments = bc32Payload.match(new RegExp('.{1,' + fragmentCapacity + '}', 'g'));
|
|
return composeHeadersToFragments(fragments, bc32Digest, 'bytes');
|
|
};
|
|
//# sourceMappingURL=encodeUR.js.map
|