@glitterprotocol/glitter-sdk
Version:
The JavaScript SDK for Glitter
134 lines • 5.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SignatureV2 = exports.SignMode = void 0;
var PublicKey_1 = require("./PublicKey");
var Tx_1 = require("./Tx");
var CompactBitArray_1 = require("./CompactBitArray");
var signing_1 = require("@glitterprotocol/glitter.proto/cosmos/tx/signing/v1beta1/signing");
var multisig_1 = require("@glitterprotocol/glitter.proto/cosmos/crypto/multisig/v1beta1/multisig");
var buffer_1 = require("buffer");
var signing_2 = require("@glitterprotocol/glitter.proto/cosmos/tx/signing/v1beta1/signing");
Object.defineProperty(exports, "SignMode", { enumerable: true, get: function () { return signing_2.SignMode; } });
var SignatureV2 = /** @class */ (function () {
function SignatureV2(public_key, data, sequence) {
this.public_key = public_key;
this.data = data;
this.sequence = sequence;
}
SignatureV2.fromData = function (data) {
return new SignatureV2(PublicKey_1.PublicKey.fromData(data.public_key), SignatureV2.Descriptor.fromData(data.data), Number.parseInt(data.sequence));
};
SignatureV2.prototype.toData = function () {
return {
public_key: this.public_key.toData(),
data: this.data.toData(),
sequence: this.sequence.toFixed(),
};
};
SignatureV2.fromAmino = function (data) {
return new SignatureV2(PublicKey_1.PublicKey.fromAmino(data.pub_key), new SignatureV2.Descriptor(new SignatureV2.Descriptor.Single(SignatureV2.SignMode.SIGN_MODE_LEGACY_AMINO_JSON, data.signature)), 0);
};
return SignatureV2;
}());
exports.SignatureV2 = SignatureV2;
(function (SignatureV2) {
SignatureV2.SignMode = signing_1.SignMode;
var Descriptor = /** @class */ (function () {
function Descriptor(data) {
data instanceof Descriptor.Single
? (this.single = data)
: (this.multi = data);
}
Descriptor.fromData = function (data) {
if (data.single) {
return new Descriptor(Descriptor.Single.fromData(data.single));
}
if (data.multi) {
return new Descriptor(Descriptor.Multi.fromData(data.multi));
}
throw new Error('must be one of single or multi');
};
Descriptor.prototype.toData = function () {
if (this.single) {
return {
single: this.single.toData(),
};
}
if (this.multi) {
return {
multi: this.multi.toData(),
};
}
throw new Error('must be one of single or multi');
};
Descriptor.prototype.toModeInfoAndSignature = function () {
if (this.single) {
var sigData = this.single;
return [
new Tx_1.ModeInfo(new Tx_1.ModeInfo.Single(sigData.mode)),
buffer_1.Buffer.from(sigData.signature, 'base64'),
];
}
if (this.multi) {
var sigData = this.multi;
var modeInfos = [];
var signatures = [];
for (var _i = 0, _a = sigData.signatures; _i < _a.length; _i++) {
var signature = _a[_i];
var _b = signature.toModeInfoAndSignature(), modeInfo = _b[0], sigBytes = _b[1];
modeInfos.push(modeInfo);
signatures.push(sigBytes);
}
var multisigBytes = multisig_1.MultiSignature.encode(multisig_1.MultiSignature.fromPartial({
signatures: signatures,
})).finish();
return [
new Tx_1.ModeInfo(new Tx_1.ModeInfo.Multi(sigData.bitarray, modeInfos)),
multisigBytes,
];
}
throw new Error('invalid signature descriptor');
};
return Descriptor;
}());
SignatureV2.Descriptor = Descriptor;
(function (Descriptor) {
var Single = /** @class */ (function () {
function Single(mode, signature) {
this.mode = mode;
this.signature = signature;
}
Single.fromData = function (data) {
return new Single((0, signing_1.signModeFromJSON)(data.mode), data.signature);
};
Single.prototype.toData = function () {
var _a = this, mode = _a.mode, signature = _a.signature;
return {
mode: (0, signing_1.signModeToJSON)(mode),
signature: signature,
};
};
return Single;
}());
Descriptor.Single = Single;
var Multi = /** @class */ (function () {
function Multi(bitarray, signatures) {
this.bitarray = bitarray;
this.signatures = signatures;
}
Multi.fromData = function (data) {
return new Multi(CompactBitArray_1.CompactBitArray.fromData(data.bitarray), data.signatures.map(function (v) { return Descriptor.fromData(v); }));
};
Multi.prototype.toData = function () {
return {
bitarray: this.bitarray.toData(),
signatures: this.signatures.map(function (sig) { return sig.toData(); }),
};
};
return Multi;
}());
Descriptor.Multi = Multi;
})(Descriptor = SignatureV2.Descriptor || (SignatureV2.Descriptor = {}));
})(SignatureV2 = exports.SignatureV2 || (exports.SignatureV2 = {}));
exports.SignatureV2 = SignatureV2;
//# sourceMappingURL=SignatureV2.js.map