@glitterprotocol/glitter-sdk
Version:
The JavaScript SDK for Glitter
301 lines • 13.3 kB
JavaScript
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ModeInfo = exports.SignerInfo = exports.AuthInfo = exports.TxBody = exports.Tx = void 0;
var PublicKey_1 = require("./PublicKey");
var signing_1 = require("@glitterprotocol/glitter.proto/cosmos/tx/signing/v1beta1/signing");
var tx_1 = require("@glitterprotocol/glitter.proto/cosmos/tx/v1beta1/tx");
var CompactBitArray_1 = require("./CompactBitArray");
var Msg_1 = require("./Msg");
var Fee_1 = require("./Fee");
var Long = __importStar(require("long"));
var buffer_1 = require("buffer");
var SignatureV2_1 = require("./SignatureV2");
var Tx = /** @class */ (function () {
function Tx(body, auth_info, signatures) {
this.body = body;
this.auth_info = auth_info;
this.signatures = signatures;
}
Tx.fromAmino = function (data, isClassic) {
var signatures = data.value.signatures.map(function (s) { return SignatureV2_1.SignatureV2.fromAmino(s); });
return new Tx(new TxBody(data.value.msg.map(function (m) { return Msg_1.Msg.fromAmino(m, isClassic); }), data.value.memo, Number.parseInt(data.value.timeout_height)), new AuthInfo([], Fee_1.Fee.fromAmino(data.value.fee)), signatures.map(function (s) { var _a; return ((_a = s.data.single) === null || _a === void 0 ? void 0 : _a.signature) || ''; }));
};
Tx.fromData = function (data, isClassic) {
return new Tx(TxBody.fromData(data.body, isClassic), AuthInfo.fromData(data.auth_info), data.signatures);
};
Tx.prototype.toData = function (isClassic) {
return {
body: this.body.toData(isClassic),
auth_info: this.auth_info.toData(),
signatures: this.signatures,
};
};
Tx.unpackAny = function (anyProto, isClassic) {
return this.fromProto(tx_1.Tx.decode(anyProto.value), isClassic);
};
Tx.fromProto = function (proto, isClassic) {
return new Tx(TxBody.fromProto(proto.body, isClassic), AuthInfo.fromProto(proto.authInfo), proto.signatures.map(function (sig) { return buffer_1.Buffer.from(sig).toString('base64'); }));
};
Tx.prototype.toProto = function (isClassic) {
var data = tx_1.Tx.fromPartial({
body: this.body.toProto(isClassic),
authInfo: this.auth_info.toProto(),
signatures: this.signatures.map(function (s) { return buffer_1.Buffer.from(s, 'base64'); }),
});
return data;
};
Tx.prototype.toBytes = function (isClassic) {
return tx_1.Tx.encode(this.toProto(isClassic)).finish();
};
Tx.fromBuffer = function (buf, isClassic) {
return Tx.fromProto(tx_1.Tx.decode(buf), isClassic);
};
Tx.prototype.appendEmptySignatures = function (signers) {
var _this = this;
signers.forEach(function (signer) {
var signerInfo;
if (signer.publicKey) {
if (signer.publicKey instanceof PublicKey_1.LegacyAminoMultisigPublicKey) {
signerInfo = new SignerInfo(signer.publicKey, signer.sequenceNumber, new ModeInfo(new ModeInfo.Multi(CompactBitArray_1.CompactBitArray.fromBits(signer.publicKey.pubkeys.length), [])));
}
else {
signerInfo = new SignerInfo(signer.publicKey, signer.sequenceNumber, new ModeInfo(new ModeInfo.Single(ModeInfo.SignMode.SIGN_MODE_DIRECT)));
}
}
else {
signerInfo = new SignerInfo(new PublicKey_1.SimplePublicKey(''), signer.sequenceNumber, new ModeInfo(new ModeInfo.Single(ModeInfo.SignMode.SIGN_MODE_DIRECT)));
}
_this.auth_info.signer_infos.push(signerInfo);
_this.signatures.push('');
});
};
Tx.prototype.clearSignatures = function () {
this.auth_info.signer_infos = [];
this.signatures = [];
};
Tx.prototype.appendSignatures = function (signatures) {
for (var _i = 0, signatures_1 = signatures; _i < signatures_1.length; _i++) {
var signature = signatures_1[_i];
var _a = signature.data.toModeInfoAndSignature(), modeInfo = _a[0], sigBytes = _a[1];
this.signatures.push(buffer_1.Buffer.from(sigBytes).toString('base64'));
this.auth_info.signer_infos.push(new SignerInfo(signature.public_key, signature.sequence, modeInfo));
}
};
return Tx;
}());
exports.Tx = Tx;
var TxBody = /** @class */ (function () {
function TxBody(messages, memo, timeout_height) {
this.messages = messages;
this.memo = memo;
this.timeout_height = timeout_height;
}
TxBody.fromData = function (data, isClassic) {
return new TxBody(data.messages.map(function (m) { return Msg_1.Msg.fromData(m, isClassic); }), data.memo, Number.parseInt(data.timeout_height));
};
TxBody.prototype.toData = function (isClassic) {
var _a, _b;
return {
memo: (_a = this.memo) !== null && _a !== void 0 ? _a : '',
messages: this.messages.map(function (m) { return m.toData(isClassic); }),
timeout_height: ((_b = this.timeout_height) !== null && _b !== void 0 ? _b : 0).toFixed(),
};
};
TxBody.fromProto = function (proto, isClassic) {
return new TxBody(proto.messages.map(function (m) { return Msg_1.Msg.fromProto(m, isClassic); }), proto.memo, proto.timeoutHeight.toNumber());
};
TxBody.prototype.toProto = function (isClassic) {
var _a;
return tx_1.TxBody.fromPartial({
memo: this.memo,
messages: this.messages.map(function (m) { return m.packAny(isClassic); }),
timeoutHeight: Long.fromNumber((_a = this.timeout_height) !== null && _a !== void 0 ? _a : 0),
});
};
TxBody.prototype.toBytes = function (isClassic) {
return tx_1.TxBody.encode(this.toProto(isClassic)).finish();
};
return TxBody;
}());
exports.TxBody = TxBody;
var AuthInfo = /** @class */ (function () {
function AuthInfo(signer_infos, fee) {
this.signer_infos = signer_infos;
this.fee = fee;
}
AuthInfo.fromData = function (data) {
return new AuthInfo(data.signer_infos.map(function (s) { return SignerInfo.fromData(s); }), Fee_1.Fee.fromData(data.fee));
};
AuthInfo.prototype.toData = function () {
return {
fee: this.fee.toData(),
signer_infos: this.signer_infos.map(function (info) { return info.toData(); }),
};
};
AuthInfo.fromProto = function (proto) {
return new AuthInfo(proto.signerInfos.map(function (s) { return SignerInfo.fromProto(s); }), Fee_1.Fee.fromProto(proto.fee));
};
AuthInfo.prototype.toProto = function () {
return tx_1.AuthInfo.fromPartial({
fee: this.fee.toProto(),
signerInfos: this.signer_infos.map(function (info) { return info.toProto(); }),
});
};
AuthInfo.prototype.toBytes = function () {
return tx_1.AuthInfo.encode(this.toProto()).finish();
};
return AuthInfo;
}());
exports.AuthInfo = AuthInfo;
var SignerInfo = /** @class */ (function () {
function SignerInfo(public_key, sequence, mode_info) {
this.public_key = public_key;
this.sequence = sequence;
this.mode_info = mode_info;
}
SignerInfo.fromData = function (data) {
var _a;
return new SignerInfo(PublicKey_1.PublicKey.fromData((_a = data.public_key) !== null && _a !== void 0 ? _a : new PublicKey_1.SimplePublicKey('').toData()), Number.parseInt(data.sequence), ModeInfo.fromData(data.mode_info));
};
SignerInfo.prototype.toData = function () {
var _a = this, public_key = _a.public_key, sequence = _a.sequence, mode_info = _a.mode_info;
return {
mode_info: mode_info.toData(),
public_key: (public_key === null || public_key === void 0 ? void 0 : public_key.toData()) || null,
sequence: sequence.toFixed(),
};
};
SignerInfo.fromProto = function (proto) {
var _a;
return new SignerInfo(PublicKey_1.PublicKey.fromProto((_a = proto.publicKey) !== null && _a !== void 0 ? _a : new PublicKey_1.SimplePublicKey('').packAny()), proto.sequence.toNumber(), ModeInfo.fromProto(proto.modeInfo));
};
SignerInfo.prototype.toProto = function () {
var _a = this, public_key = _a.public_key, sequence = _a.sequence, mode_info = _a.mode_info;
return tx_1.SignerInfo.fromPartial({
modeInfo: mode_info.toProto(),
publicKey: public_key === null || public_key === void 0 ? void 0 : public_key.packAny(),
sequence: Long.fromNumber(sequence),
});
};
return SignerInfo;
}());
exports.SignerInfo = SignerInfo;
var ModeInfo = /** @class */ (function () {
function ModeInfo(mode_info) {
if (mode_info instanceof ModeInfo.Single) {
this.single = mode_info;
}
else {
this.multi = mode_info;
}
}
ModeInfo.fromData = function (data) {
if (data.single) {
return new ModeInfo(ModeInfo.Single.fromData(data.single));
}
if (data.multi) {
return new ModeInfo(ModeInfo.Multi.fromData(data.multi));
}
throw new Error('must be one of single or multi');
};
ModeInfo.prototype.toData = function () {
var _a, _b;
return {
single: (_a = this.single) === null || _a === void 0 ? void 0 : _a.toData(),
multi: (_b = this.multi) === null || _b === void 0 ? void 0 : _b.toData(),
};
};
ModeInfo.fromProto = function (proto) {
var singleMode = proto.single;
var multiMode = proto.multi;
return new ModeInfo(singleMode
? ModeInfo.Single.fromProto(singleMode)
: ModeInfo.Multi.fromProto(multiMode));
};
ModeInfo.prototype.toProto = function () {
var _a, _b;
return tx_1.ModeInfo.fromPartial({
multi: (_a = this.multi) === null || _a === void 0 ? void 0 : _a.toProto(),
single: (_b = this.single) === null || _b === void 0 ? void 0 : _b.toProto(),
});
};
return ModeInfo;
}());
exports.ModeInfo = ModeInfo;
(function (ModeInfo) {
ModeInfo.SignMode = signing_1.SignMode;
var Single = /** @class */ (function () {
function Single(mode) {
this.mode = mode;
}
Single.fromData = function (data) {
return new Single((0, signing_1.signModeFromJSON)(data.mode));
};
Single.prototype.toData = function () {
return {
mode: (0, signing_1.signModeToJSON)(this.mode),
};
};
Single.fromProto = function (proto) {
return new Single(proto.mode);
};
Single.prototype.toProto = function () {
return tx_1.ModeInfo_Single.fromPartial({
mode: this.mode,
});
};
return Single;
}());
ModeInfo.Single = Single;
var Multi = /** @class */ (function () {
function Multi(bitarray, modeInfos) {
this.bitarray = bitarray;
this.modeInfos = modeInfos;
}
Multi.fromData = function (proto) {
return new Multi(CompactBitArray_1.CompactBitArray.fromData(proto.bitarray), proto.mode_infos.map(function (m) { return ModeInfo.fromData(m); }));
};
Multi.prototype.toData = function () {
return {
bitarray: this.bitarray.toData(),
mode_infos: this.modeInfos.map(function (m) { return m.toData(); }),
};
};
Multi.fromProto = function (proto) {
return new Multi(CompactBitArray_1.CompactBitArray.fromProto(proto.bitarray), proto.modeInfos.map(function (m) { return ModeInfo.fromProto(m); }));
};
Multi.prototype.toProto = function () {
return tx_1.ModeInfo_Multi.fromPartial({
bitarray: this.bitarray.toProto(),
modeInfos: this.modeInfos.map(function (m) { return m.toProto(); }),
});
};
return Multi;
}());
ModeInfo.Multi = Multi;
})(ModeInfo = exports.ModeInfo || (exports.ModeInfo = {}));
exports.ModeInfo = ModeInfo;
//# sourceMappingURL=Tx.js.map