UNPKG

@airgap/coinlib-core

Version:

The @airgap/coinlib-core is a protocol agnostic library to prepare, sign and broadcast cryptocurrency transactions.

1,140 lines (1,139 loc) 56.9 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; 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; }; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.decodeTxBytes = exports.encodeTxBytes = exports.prepareSignBytes = void 0; var long_1 = __importDefault(require("long")); var minimal_js_1 = __importDefault(require("protobufjs/minimal.js")); var base64js = __importStar(require("base64-js")); function isTsProtoGeneratedType(type) { return typeof type.fromPartial === 'function'; } var MsgSend = { encode: function (message, writer) { if (writer === void 0) { writer = minimal_js_1.default.Writer.create(); } if (message.fromAddress !== '') { writer.uint32(10).string(message.fromAddress); } if (message.toAddress !== '') { writer.uint32(18).string(message.toAddress); } for (var _i = 0, _a = message.amount; _i < _a.length; _i++) { var v = _a[_i]; Coin.encode(v, writer.uint32(26).fork()).ldelim(); } return writer; }, decode: function (input, length) { var reader = input instanceof minimal_js_1.default.Reader ? input : new minimal_js_1.default.Reader(input); var end = length === undefined ? reader.len : reader.pos + length; var message = __assign({}, baseMsgSend); message.amount = []; while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: message.fromAddress = reader.string(); break; case 2: message.toAddress = reader.string(); break; case 3: message.amount.push(Coin.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON: function (object) { var _a; var message = __assign({}, baseMsgSend); message.fromAddress = object.fromAddress !== undefined && object.fromAddress !== null ? String(object.fromAddress) : ''; message.toAddress = object.toAddress !== undefined && object.toAddress !== null ? String(object.toAddress) : ''; message.amount = ((_a = object.amount) !== null && _a !== void 0 ? _a : []).map(function (e) { return Coin.fromJSON(e); }); return message; }, toJSON: function (message) { var obj = {}; message.fromAddress !== undefined && (obj.fromAddress = message.fromAddress); message.toAddress !== undefined && (obj.toAddress = message.toAddress); if (message.amount) { obj.amount = message.amount.map(function (e) { return (e ? Coin.toJSON(e) : undefined); }); } else { obj.amount = []; } return obj; }, fromPartial: function (object) { var _a, _b, _c; var message = __assign({}, baseMsgSend); message.fromAddress = (_a = object.fromAddress) !== null && _a !== void 0 ? _a : ''; message.toAddress = (_b = object.toAddress) !== null && _b !== void 0 ? _b : ''; message.amount = ((_c = object.amount) === null || _c === void 0 ? void 0 : _c.map(function (e) { return Coin.fromPartial(e); })) || []; return message; } }; var MsgWithdrawDelegatorReward = { encode: function (message, writer) { if (writer === void 0) { writer = minimal_js_1.default.Writer.create(); } if (message.delegatorAddress !== '') { writer.uint32(10).string(message.delegatorAddress); } if (message.validatorAddress !== '') { writer.uint32(18).string(message.validatorAddress); } return writer; }, decode: function (input, length) { var reader = input instanceof minimal_js_1.default.Reader ? input : new minimal_js_1.default.Reader(input); var end = length === undefined ? reader.len : reader.pos + length; var message = __assign({}, baseMsgWithdrawDelegatorReward); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: message.delegatorAddress = reader.string(); break; case 2: message.validatorAddress = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON: function (object) { var message = __assign({}, baseMsgWithdrawDelegatorReward); message.delegatorAddress = object.delegatorAddress !== undefined && object.delegatorAddress !== null ? String(object.delegatorAddress) : ''; message.validatorAddress = object.validatorAddress !== undefined && object.validatorAddress !== null ? String(object.validatorAddress) : ''; return message; }, toJSON: function (message) { var obj = {}; message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress); message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress); return obj; }, fromPartial: function (object) { var _a, _b; var message = __assign({}, baseMsgWithdrawDelegatorReward); message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : ''; message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : ''; return message; } }; var baseSignDoc = { chainId: '', accountNumber: long_1.default.UZERO }; var SignDoc = { encode: function (message, writer) { if (writer === void 0) { writer = minimal_js_1.default.Writer.create(); } if (message.bodyBytes.length !== 0) { writer.uint32(10).bytes(message.bodyBytes); } if (message.authInfoBytes.length !== 0) { writer.uint32(18).bytes(message.authInfoBytes); } if (message.chainId !== '') { writer.uint32(26).string(message.chainId); } if (!message.accountNumber.isZero()) { writer.uint32(32).uint64(message.accountNumber); } return writer; }, decode: function (input, length) { var reader = input instanceof minimal_js_1.default.Reader ? input : new minimal_js_1.default.Reader(input); var end = length === undefined ? reader.len : reader.pos + length; var message = __assign({}, baseSignDoc); message.bodyBytes = new Uint8Array(); message.authInfoBytes = new Uint8Array(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: message.bodyBytes = reader.bytes(); break; case 2: message.authInfoBytes = reader.bytes(); break; case 3: message.chainId = reader.string(); break; case 4: message.accountNumber = reader.uint64(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON: function (object) { var message = __assign({}, baseSignDoc); message.bodyBytes = object.bodyBytes !== undefined && object.bodyBytes !== null ? bytesFromBase64(object.bodyBytes) : new Uint8Array(); message.authInfoBytes = object.authInfoBytes !== undefined && object.authInfoBytes !== null ? bytesFromBase64(object.authInfoBytes) : new Uint8Array(); message.chainId = object.chainId !== undefined && object.chainId !== null ? String(object.chainId) : ''; message.accountNumber = object.accountNumber !== undefined && object.accountNumber !== null ? long_1.default.fromString(object.accountNumber) : long_1.default.UZERO; return message; }, toJSON: function (message) { var obj = {}; message.bodyBytes !== undefined && (obj.bodyBytes = base64FromBytes(message.bodyBytes !== undefined ? message.bodyBytes : new Uint8Array())); message.authInfoBytes !== undefined && (obj.authInfoBytes = base64FromBytes(message.authInfoBytes !== undefined ? message.authInfoBytes : new Uint8Array())); message.chainId !== undefined && (obj.chainId = message.chainId); message.accountNumber !== undefined && (obj.accountNumber = (message.accountNumber || long_1.default.UZERO).toString()); return obj; }, fromPartial: function (object) { var _a, _b, _c; var message = __assign({}, baseSignDoc); message.bodyBytes = (_a = object.bodyBytes) !== null && _a !== void 0 ? _a : new Uint8Array(); message.authInfoBytes = (_b = object.authInfoBytes) !== null && _b !== void 0 ? _b : new Uint8Array(); message.chainId = (_c = object.chainId) !== null && _c !== void 0 ? _c : ''; message.accountNumber = object.accountNumber !== undefined && object.accountNumber !== null ? long_1.default.fromValue(object.accountNumber) : long_1.default.UZERO; return message; } }; var baseMsgUndelegate = { delegatorAddress: '', validatorAddress: '' }; var MsgUndelegate = { encode: function (message, writer) { if (writer === void 0) { writer = minimal_js_1.default.Writer.create(); } if (message.delegatorAddress !== '') { writer.uint32(10).string(message.delegatorAddress); } if (message.validatorAddress !== '') { writer.uint32(18).string(message.validatorAddress); } if (message.amount !== undefined) { Coin.encode(message.amount, writer.uint32(26).fork()).ldelim(); } return writer; }, decode: function (input, length) { var reader = input instanceof minimal_js_1.default.Reader ? input : new minimal_js_1.default.Reader(input); var end = length === undefined ? reader.len : reader.pos + length; var message = __assign({}, baseMsgUndelegate); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: message.delegatorAddress = reader.string(); break; case 2: message.validatorAddress = reader.string(); break; case 3: message.amount = Coin.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON: function (object) { var message = __assign({}, baseMsgUndelegate); message.delegatorAddress = object.delegatorAddress !== undefined && object.delegatorAddress !== null ? String(object.delegatorAddress) : ''; message.validatorAddress = object.validatorAddress !== undefined && object.validatorAddress !== null ? String(object.validatorAddress) : ''; message.amount = object.amount !== undefined && object.amount !== null ? Coin.fromJSON(object.amount) : undefined; return message; }, toJSON: function (message) { var obj = {}; message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress); message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress); message.amount !== undefined && (obj.amount = message.amount ? Coin.toJSON(message.amount) : undefined); return obj; }, fromPartial: function (object) { var _a, _b; var message = __assign({}, baseMsgUndelegate); message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : ''; message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : ''; message.amount = object.amount !== undefined && object.amount !== null ? Coin.fromPartial(object.amount) : undefined; return message; } }; var baseMsgDelegate = { delegatorAddress: '', validatorAddress: '' }; var MsgDelegate = { encode: function (message, writer) { if (writer === void 0) { writer = minimal_js_1.default.Writer.create(); } if (message.delegatorAddress !== '') { writer.uint32(10).string(message.delegatorAddress); } if (message.validatorAddress !== '') { writer.uint32(18).string(message.validatorAddress); } if (message.amount !== undefined) { Coin.encode(message.amount, writer.uint32(26).fork()).ldelim(); } return writer; }, decode: function (input, length) { var reader = input instanceof minimal_js_1.default.Reader ? input : new minimal_js_1.default.Reader(input); var end = length === undefined ? reader.len : reader.pos + length; var message = __assign({}, baseMsgDelegate); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: message.delegatorAddress = reader.string(); break; case 2: message.validatorAddress = reader.string(); break; case 3: message.amount = Coin.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON: function (object) { var message = __assign({}, baseMsgDelegate); message.delegatorAddress = object.delegatorAddress !== undefined && object.delegatorAddress !== null ? String(object.delegatorAddress) : ''; message.validatorAddress = object.validatorAddress !== undefined && object.validatorAddress !== null ? String(object.validatorAddress) : ''; message.amount = object.amount !== undefined && object.amount !== null ? Coin.fromJSON(object.amount) : undefined; return message; }, toJSON: function (message) { var obj = {}; message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress); message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress); message.amount !== undefined && (obj.amount = message.amount ? Coin.toJSON(message.amount) : undefined); return obj; }, fromPartial: function (object) { var _a, _b; var message = __assign({}, baseMsgDelegate); message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : ''; message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : ''; message.amount = object.amount !== undefined && object.amount !== null ? Coin.fromPartial(object.amount) : undefined; return message; } }; var defaultRegistryTypes = [ ['/cosmos.bank.v1beta1.MsgSend', MsgSend], ['/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward', MsgWithdrawDelegatorReward], ['/cosmos.staking.v1beta1.MsgUndelegate', MsgUndelegate], ['/cosmos.staking.v1beta1.MsgDelegate', MsgDelegate] ]; function isTxBodyEncodeObject(encodeObject) { return encodeObject.typeUrl === '/cosmos.tx.v1beta1.TxBody'; } var lookupType = function (typeUrl) { var types = new Map(__spreadArray([], defaultRegistryTypes, true)); return types.get(typeUrl); }; var lookupTypeWithError = function (typeUrl) { var type = lookupType(typeUrl); if (!type) { throw new Error("Unregistered type url: ".concat(typeUrl)); } return type; }; var encode = function (encodeObject) { var value = encodeObject.value, typeUrl = encodeObject.typeUrl; if (isTxBodyEncodeObject(encodeObject)) { return encodeTxBody(value); } var type = lookupTypeWithError(typeUrl); var instance = isTsProtoGeneratedType(type) ? type.fromPartial(value) : type.create(value); return type.encode(instance).finish(); }; var encodeAsAny = function (encodeObject) { var binaryValue = encode(encodeObject); return Any.fromPartial({ typeUrl: encodeObject.typeUrl, value: binaryValue }); }; var encodeTxBody = function (txBodyFields) { var wrappedMessages = txBodyFields.messages.map(function (message) { return encodeAsAny(message); }); var txBody = TxBody.fromPartial(__assign(__assign({}, txBodyFields), { messages: wrappedMessages })); return TxBody.encode(txBody).finish(); }; var PubKey = { encode: function (message, writer) { if (writer === void 0) { writer = minimal_js_1.default.Writer.create(); } if (message.key.length !== 0) { writer.uint32(10).bytes(message.key); } return writer; }, decode: function (input, length) { var reader = input instanceof minimal_js_1.default.Reader ? input : new minimal_js_1.default.Reader(input); var end = length === undefined ? reader.len : reader.pos + length; var message = __assign({}, basePubKey); message.key = new Uint8Array(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: message.key = reader.bytes(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON: function (object) { var message = __assign({}, basePubKey); message.key = object.key !== undefined && object.key !== null ? bytesFromBase64(object.key) : new Uint8Array(); return message; }, toJSON: function (message) { var obj = {}; message.key !== undefined && (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array())); return obj; }, fromPartial: function (object) { var _a; var message = __assign({}, basePubKey); message.key = (_a = object.key) !== null && _a !== void 0 ? _a : new Uint8Array(); return message; } }; function toBase64(data) { return base64js.fromByteArray(data); } function fromBase64(base64String) { if (!base64String.match(/^[a-zA-Z0-9+/]*={0,2}$/)) { throw new Error('Invalid base64 string format'); } return base64js.toByteArray(base64String); } var encodePubkey = function (pubKey) { var pubkeyProto = PubKey.fromPartial({ key: fromBase64(pubKey.value) }); return Any.fromPartial({ typeUrl: '/cosmos.crypto.secp256k1.PubKey', value: Uint8Array.from(PubKey.encode(pubkeyProto).finish()) }); }; function encodeSecp256k1Pubkey(pubKey) { if (pubKey.length !== 33 || (pubKey[0] !== 0x02 && pubKey[0] !== 0x03)) { throw new Error('Public key must be compressed secp256k1, i.e. 33 bytes starting with 0x02 or 0x03'); } return { type: 'tendermint/PubKeySecp256k1', value: toBase64(pubKey) }; } function signModeToJSON(object) { switch (object) { case SignMode.SIGN_MODE_UNSPECIFIED: return 'SIGN_MODE_UNSPECIFIED'; case SignMode.SIGN_MODE_DIRECT: return 'SIGN_MODE_DIRECT'; case SignMode.SIGN_MODE_TEXTUAL: return 'SIGN_MODE_TEXTUAL'; case SignMode.SIGN_MODE_LEGACY_AMINO_JSON: return 'SIGN_MODE_LEGACY_AMINO_JSON'; default: return 'UNKNOWN'; } } var SignMode; (function (SignMode) { /** * SIGN_MODE_UNSPECIFIED - SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be * rejected */ SignMode[SignMode["SIGN_MODE_UNSPECIFIED"] = 0] = "SIGN_MODE_UNSPECIFIED"; /** * SIGN_MODE_DIRECT - SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is * verified with raw bytes from Tx */ SignMode[SignMode["SIGN_MODE_DIRECT"] = 1] = "SIGN_MODE_DIRECT"; /** * SIGN_MODE_TEXTUAL - SIGN_MODE_TEXTUAL is a future signing mode that will verify some * human-readable textual representation on top of the binary representation * from SIGN_MODE_DIRECT */ SignMode[SignMode["SIGN_MODE_TEXTUAL"] = 2] = "SIGN_MODE_TEXTUAL"; /** * SIGN_MODE_LEGACY_AMINO_JSON - SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses * Amino JSON and will be removed in the future */ SignMode[SignMode["SIGN_MODE_LEGACY_AMINO_JSON"] = 127] = "SIGN_MODE_LEGACY_AMINO_JSON"; SignMode[SignMode["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; })(SignMode || (SignMode = {})); var signModeFromJSON = function (object) { switch (object) { case 0: case 'SIGN_MODE_UNSPECIFIED': return SignMode.SIGN_MODE_UNSPECIFIED; case 1: case 'SIGN_MODE_DIRECT': return SignMode.SIGN_MODE_DIRECT; case 2: case 'SIGN_MODE_TEXTUAL': return SignMode.SIGN_MODE_TEXTUAL; case 127: case 'SIGN_MODE_LEGACY_AMINO_JSON': return SignMode.SIGN_MODE_LEGACY_AMINO_JSON; case -1: case 'UNRECOGNIZED': default: return SignMode.UNRECOGNIZED; } }; var Int53 = /** @class */ (function () { function Int53(input) { if (Number.isNaN(input)) { throw new Error('Input is not a number'); } if (!Number.isInteger(input)) { throw new Error('Input is not an integer'); } if (input < Number.MIN_SAFE_INTEGER || input > Number.MAX_SAFE_INTEGER) { throw new Error('Input not in int53 range: ' + input.toString()); } this.data = input; } Int53.fromString = function (str) { if (!str.match(/^-?[0-9]+$/)) { throw new Error('Invalid string format'); } return new Int53(Number.parseInt(str, 10)); }; Int53.prototype.toNumber = function () { return this.data; }; Int53.prototype.toString = function () { return this.data.toString(); }; return Int53; }()); var ModeInfo_Single = { encode: function (message, writer) { if (writer === void 0) { writer = minimal_js_1.default.Writer.create(); } if (message.mode !== 0) { writer.uint32(8).int32(message.mode); } return writer; }, decode: function (input, length) { var reader = input instanceof minimal_js_1.default.Reader ? input : new minimal_js_1.default.Reader(input); var end = length === undefined ? reader.len : reader.pos + length; var message = __assign({}, baseModeInfo_Single); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: message.mode = reader.int32(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON: function (object) { var message = __assign({}, baseModeInfo_Single); message.mode = object.mode !== undefined && object.mode !== null ? signModeFromJSON(object.mode) : 0; return message; }, toJSON: function (message) { var obj = {}; message.mode !== undefined && (obj.mode = signModeToJSON(message.mode)); return obj; }, fromPartial: function (object) { var _a; var message = __assign({}, baseModeInfo_Single); message.mode = (_a = object.mode) !== null && _a !== void 0 ? _a : 0; return message; } }; var baseMsgWithdrawDelegatorReward = { delegatorAddress: '', validatorAddress: '' }; var baseSignerInfo = { sequence: long_1.default.UZERO }; var baseFee = { gasLimit: long_1.default.UZERO, payer: '', granter: '' }; var baseMsgSend = { fromAddress: '', toAddress: '' }; var baseModeInfo_Single = { mode: 0 }; var baseTxRaw = {}; var basePubKey = {}; var baseModeInfo = {}; var baseAuthInfo = {}; var baseAny = { typeUrl: '' }; var baseTxBody = { memo: '', timeoutHeight: long_1.default.UZERO }; var baseCoin = { denom: '', amount: '' }; var ModeInfo = { encode: function (message, writer) { if (writer === void 0) { writer = minimal_js_1.default.Writer.create(); } if (message.single !== undefined) { ModeInfo_Single.encode(message.single, writer.uint32(10).fork()).ldelim(); } return writer; }, decode: function (input, length) { var reader = input instanceof minimal_js_1.default.Reader ? input : new minimal_js_1.default.Reader(input); var end = length === undefined ? reader.len : reader.pos + length; var message = __assign({}, baseModeInfo); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: message.single = ModeInfo_Single.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON: function (object) { var message = __assign({}, baseModeInfo); message.single = object.single !== undefined && object.single !== null ? ModeInfo_Single.fromJSON(object.single) : undefined; return message; }, toJSON: function (message) { var obj = {}; message.single !== undefined && (obj.single = message.single ? ModeInfo_Single.toJSON(message.single) : undefined); return obj; }, fromPartial: function (object) { var message = __assign({}, baseModeInfo); message.single = object.single !== undefined && object.single !== null ? ModeInfo_Single.fromPartial(object.single) : undefined; return message; } }; var SignerInfo = { encode: function (message, writer) { if (writer === void 0) { writer = minimal_js_1.default.Writer.create(); } if (message.publicKey !== undefined) { Any.encode(message.publicKey, writer.uint32(10).fork()).ldelim(); } if (message.modeInfo !== undefined) { ModeInfo.encode(message.modeInfo, writer.uint32(18).fork()).ldelim(); } if (!message.sequence.isZero()) { writer.uint32(24).uint64(message.sequence); } return writer; }, decode: function (input, length) { var reader = input instanceof minimal_js_1.default.Reader ? input : new minimal_js_1.default.Reader(input); var end = length === undefined ? reader.len : reader.pos + length; var message = __assign({}, baseSignerInfo); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: message.publicKey = Any.decode(reader, reader.uint32()); break; case 2: message.modeInfo = ModeInfo.decode(reader, reader.uint32()); break; case 3: message.sequence = reader.uint64(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON: function (object) { var message = __assign({}, baseSignerInfo); message.publicKey = object.publicKey !== undefined && object.publicKey !== null ? Any.fromJSON(object.publicKey) : undefined; message.modeInfo = object.modeInfo !== undefined && object.modeInfo !== null ? ModeInfo.fromJSON(object.modeInfo) : undefined; message.sequence = object.sequence !== undefined && object.sequence !== null ? long_1.default.fromString(object.sequence) : long_1.default.UZERO; return message; }, toJSON: function (message) { var obj = {}; message.publicKey !== undefined && (obj.publicKey = message.publicKey ? Any.toJSON(message.publicKey) : undefined); message.modeInfo !== undefined && (obj.modeInfo = message.modeInfo ? ModeInfo.toJSON(message.modeInfo) : undefined); message.sequence !== undefined && (obj.sequence = (message.sequence || long_1.default.UZERO).toString()); return obj; }, fromPartial: function (object) { var message = __assign({}, baseSignerInfo); message.publicKey = object.publicKey !== undefined && object.publicKey !== null ? Any.fromPartial(object.publicKey) : undefined; message.modeInfo = object.modeInfo !== undefined && object.modeInfo !== null ? ModeInfo.fromPartial(object.modeInfo) : undefined; message.sequence = object.sequence !== undefined && object.sequence !== null ? long_1.default.fromValue(object.sequence) : long_1.default.UZERO; return message; } }; var Coin = { encode: function (message, writer) { if (writer === void 0) { writer = minimal_js_1.default.Writer.create(); } if (message.denom !== '') { writer.uint32(10).string(message.denom); } if (message.amount !== '') { writer.uint32(18).string(message.amount); } return writer; }, decode: function (input, length) { var reader = input instanceof minimal_js_1.default.Reader ? input : new minimal_js_1.default.Reader(input); var end = length === undefined ? reader.len : reader.pos + length; var message = __assign({}, baseCoin); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: message.denom = reader.string(); break; case 2: message.amount = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON: function (object) { var message = __assign({}, baseCoin); message.denom = object.denom !== undefined && object.denom !== null ? String(object.denom) : ''; message.amount = object.amount !== undefined && object.amount !== null ? String(object.amount) : ''; return message; }, toJSON: function (message) { var obj = {}; message.denom !== undefined && (obj.denom = message.denom); message.amount !== undefined && (obj.amount = message.amount); return obj; }, fromPartial: function (object) { var _a, _b; var message = __assign({}, baseCoin); message.denom = (_a = object.denom) !== null && _a !== void 0 ? _a : ''; message.amount = (_b = object.amount) !== null && _b !== void 0 ? _b : ''; return message; } }; var Fee = { encode: function (message, writer) { if (writer === void 0) { writer = minimal_js_1.default.Writer.create(); } for (var _i = 0, _a = message.amount; _i < _a.length; _i++) { var v = _a[_i]; Coin.encode(v, writer.uint32(10).fork()).ldelim(); } if (!message.gasLimit.isZero()) { writer.uint32(16).uint64(message.gasLimit); } if (message.payer !== '') { writer.uint32(26).string(message.payer); } if (message.granter !== '') { writer.uint32(34).string(message.granter); } return writer; }, decode: function (input, length) { var reader = input instanceof minimal_js_1.default.Reader ? input : new minimal_js_1.default.Reader(input); var end = length === undefined ? reader.len : reader.pos + length; var message = __assign({}, baseFee); message.amount = []; while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: message.amount.push(Coin.decode(reader, reader.uint32())); break; case 2: message.gasLimit = reader.uint64(); break; case 3: message.payer = reader.string(); break; case 4: message.granter = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON: function (object) { var _a; var message = __assign({}, baseFee); message.amount = ((_a = object.amount) !== null && _a !== void 0 ? _a : []).map(function (e) { return Coin.fromJSON(e); }); message.gasLimit = object.gasLimit !== undefined && object.gasLimit !== null ? long_1.default.fromString(object.gasLimit) : long_1.default.UZERO; message.payer = object.payer !== undefined && object.payer !== null ? String(object.payer) : ''; message.granter = object.granter !== undefined && object.granter !== null ? String(object.granter) : ''; return message; }, toJSON: function (message) { var obj = {}; if (message.amount) { obj.amount = message.amount.map(function (e) { return (e ? Coin.toJSON(e) : undefined); }); } else { obj.amount = []; } message.gasLimit !== undefined && (obj.gasLimit = (message.gasLimit || long_1.default.UZERO).toString()); message.payer !== undefined && (obj.payer = message.payer); message.granter !== undefined && (obj.granter = message.granter); return obj; }, fromPartial: function (object) { var _a, _b, _c; var message = __assign({}, baseFee); message.amount = ((_a = object.amount) === null || _a === void 0 ? void 0 : _a.map(function (e) { return Coin.fromPartial(e); })) || []; message.gasLimit = object.gasLimit !== undefined && object.gasLimit !== null ? long_1.default.fromValue(object.gasLimit) : long_1.default.UZERO; message.payer = (_b = object.payer) !== null && _b !== void 0 ? _b : ''; message.granter = (_c = object.granter) !== null && _c !== void 0 ? _c : ''; return message; } }; var AuthInfo = { encode: function (message, writer) { if (writer === void 0) { writer = minimal_js_1.default.Writer.create(); } for (var _i = 0, _a = message.signerInfos; _i < _a.length; _i++) { var v = _a[_i]; SignerInfo.encode(v, writer.uint32(10).fork()).ldelim(); } if (message.fee !== undefined) { Fee.encode(message.fee, writer.uint32(18).fork()).ldelim(); } return writer; }, decode: function (input, length) { var reader = input instanceof minimal_js_1.default.Reader ? input : new minimal_js_1.default.Reader(input); var end = length === undefined ? reader.len : reader.pos + length; var message = __assign({}, baseAuthInfo); message.signerInfos = []; while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: message.signerInfos.push(SignerInfo.decode(reader, reader.uint32())); break; case 2: message.fee = Fee.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON: function (object) { var _a; var message = __assign({}, baseAuthInfo); message.signerInfos = ((_a = object.signerInfos) !== null && _a !== void 0 ? _a : []).map(function (e) { return SignerInfo.fromJSON(e); }); message.fee = object.fee !== undefined && object.fee !== null ? Fee.fromJSON(object.fee) : undefined; return message; }, toJSON: function (message) { var obj = {}; if (message.signerInfos) { obj.signerInfos = message.signerInfos.map(function (e) { return (e ? SignerInfo.toJSON(e) : undefined); }); } else { obj.signerInfos = []; } message.fee !== undefined && (obj.fee = message.fee ? Fee.toJSON(message.fee) : undefined); return obj; }, fromPartial: function (object) { var _a; var message = __assign({}, baseAuthInfo); message.signerInfos = ((_a = object.signerInfos) === null || _a === void 0 ? void 0 : _a.map(function (e) { return SignerInfo.fromPartial(e); })) || []; message.fee = object.fee !== undefined && object.fee !== null ? Fee.fromPartial(object.fee) : undefined; return message; } }; var Any = { encode: function (message, writer) { if (writer === void 0) { writer = minimal_js_1.default.Writer.create(); } if (message.typeUrl !== '') { writer.uint32(10).string(message.typeUrl); } if (message.value.length !== 0) { writer.uint32(18).bytes(message.value); } return writer; }, decode: function (input, length) { var reader = input instanceof minimal_js_1.default.Reader ? input : new minimal_js_1.default.Reader(input); var end = length === undefined ? reader.len : reader.pos + length; var message = __assign({}, baseAny); message.value = new Uint8Array(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: message.typeUrl = reader.string(); break; case 2: message.value = reader.bytes(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON: function (object) { var message = __assign({}, baseAny); message.typeUrl = object.typeUrl !== undefined && object.typeUrl !== null ? String(object.typeUrl) : ''; message.value = object.value !== undefined && object.value !== null ? bytesFromBase64(object.value) : new Uint8Array(); return message; }, toJSON: function (message) { var obj = {}; message.typeUrl !== undefined && (obj.typeUrl = message.typeUrl); message.value !== undefined && (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array())); return obj; }, fromPartial: function (object) { var _a, _b; var message = __assign({}, baseAny); message.typeUrl = (_a = object.typeUrl) !== null && _a !== void 0 ? _a : ''; message.value = (_b = object.value) !== null && _b !== void 0 ? _b : new Uint8Array(); return message; } }; var TxBody = { encode: function (message, writer) { if (writer === void 0) { writer = minimal_js_1.default.Writer.create(); } for (var _i = 0, _a = message.messages; _i < _a.length; _i++) { var v = _a[_i]; Any.encode(v, writer.uint32(10).fork()).ldelim(); } if (message.memo !== '') { writer.uint32(18).string(message.memo); } if (!message.timeoutHeight.isZero()) { writer.uint32(24).uint64(message.timeoutHeight); } for (var _b = 0, _c = message.extensionOptions; _b < _c.length; _b++) { var v = _c[_b]; Any.encode(v, writer.uint32(8186).fork()).ldelim(); } for (var _d = 0, _e = message.nonCriticalExtensionOptions; _d < _e.length; _d++) { var v = _e[_d]; Any.encode(v, writer.uint32(16378).fork()).ldelim(); } return writer; }, decode: function (input, length) { var reader = input instanceof minimal_js_1.default.Reader ? input : new minimal_js_1.default.Reader(input); var end = length === undefined ? reader.len : reader.pos + length; var message = __assign({}, baseTxBody); message.messages = []; message.extensionOptions = []; message.nonCriticalExtensionOptions = []; while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: message.messages.push(Any.decode(reader, reader.uint32())); break; case 2: message.memo = reader.string(); break; case 3: message.timeoutHeight = reader.uint64(); break; case 1023: message.extensionOptions.push(Any.decode(reader, reader.uint32())); break; case 2047: message.nonCriticalExtensionOptions.push(Any.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON: function (object) { var _a, _b, _c; var message = __assign({}, baseTxBody); message.messages = ((_a = object.messages) !== null && _a !== void 0 ? _a : []).map(function (e) { return Any.fromJSON(e); }); message.memo = object.memo !== undefined && object.memo !== null ? String(object.memo) : ''; message.timeoutHeight = object.timeoutHeight !== undefined && object.timeoutHeight !== null ? long_1.default.fromString(object.timeoutHeight) : long_1.default.UZERO; message.extensionOptions = ((_b = object.extensionOptions) !== null && _b !== void 0 ? _b : []).map(function (e) { return Any.fromJSON(e); }); message.nonCriticalExtensionOptions = ((_c = object.nonCriticalExtensionOptions) !== null && _c !== void 0 ? _c : []).map(function (e) { return Any.fromJSON(e); }); return message; }, toJSON: function (message) { var obj = {}; if (message.messages) { obj.messages = message.messages.map(function (e) { return (e ? Any.toJSON(e) : undefined); }); } else { obj.messages = []; } message.memo !== undefined && (obj.memo = message.memo); message.timeoutHeight !== undefined && (obj.timeoutHeight = (message.timeoutHeight || long_1.default.UZERO).toString()); if (message.extensionOptions) { obj.extensionOptions = message.extensionOptions.map(function (e) { return (e ? Any.toJSON(e) : undefined); }); } else { obj.extensionOptions = []; } if (message.nonCriticalExtensionOptions) { obj.nonCriticalExtensionOptions = message.nonCriticalExtensionOptions.map(function (e) { return (e ? Any.toJSON(e) : undefined); }); } else { obj.nonCriticalExtensionOptions = []; } return obj; }, fromPartial: function (object) { var _a, _b, _c, _d; var message = __assign({}, baseTxBody); message.messages = ((_a = object.messages) === null || _a === void 0 ? void 0 : _a.map(function (e) { return Any.fromPartial(e); })) || []; message.memo = (_b = object.memo) !== null && _b !== void 0 ? _b : ''; message.timeoutHeight = object.timeoutHeight !== undefined && object.timeoutHeight !== null ? long_1.default.fromValue(object.timeoutHeight) : long_1.default.UZERO; message.extensionOptions = ((_c = object.extensionOptions) === null || _c === void 0 ? void 0 : _c.map(function (e) { return Any.fromPartial(e); })) || []; message.nonCriticalExtensionOptions = ((_d = object.nonCriticalExtensionOptions) === null || _d === void 0 ? void 0 : _d.map(function (e) { return Any.fromPartial(e); })) || []; return message; } }; var TxRaw = { encode: function (message, writer) { if (writer === void 0) { writer = minimal_js_1.default.Writer.create(); } if (message.bodyBytes.length !== 0) { writer.uint32(10).bytes(message.bodyBytes); } if (message.authInfoBytes.length !== 0) { writer.uint32(18).bytes(message.authInfoBytes); } for (var _i = 0, _a = message.signatures; _i < _a.length; _i++) { var v = _a[_i]; writer.uint32(26).bytes(v); } return writer; }, decode: function (input, length) { var reader = input instanceof minimal_js_1.default.Reader ? input : new minimal_js_1.default.Reader(input); var end = length === undefined ? reader.len : reader.pos + length; var message = __assign({}, baseTxRaw); message.signatures = []; message.bodyBytes = new Uint8Array(); message.authInfoBytes = new Uint8Array(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: message.bodyBytes = reader.bytes(); break; case 2: message.authInfoBytes = reader.bytes(); break; case 3: