UNPKG

@coolwallet/sol

Version:
61 lines (60 loc) 12.9 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.VersionedTransaction = void 0; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var BufferLayout = _interopRequireWildcard(require("@solana/buffer-layout")); var _assert = _interopRequireDefault(require("./assert")); var _message = require("../message"); var shortvec = _interopRequireWildcard(require("./shortvec-encoding")); var _commonLayout = require("./commonLayout"); var _params = require("../config/params"); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } var VersionedTransaction = /*#__PURE__*/function () { function VersionedTransaction(message, signatures) { (0, _classCallCheck2["default"])(this, VersionedTransaction); if (signatures === undefined) { throw new Error('Signatures are required'); } (0, _assert["default"])(signatures.length === message.header.numRequiredSignatures, 'Expected signatures length to be equal to the number of required signatures'); this.signatures = signatures; this.message = message; } (0, _createClass2["default"])(VersionedTransaction, [{ key: "serialize", value: function serialize() { var serializedMessage = this.message.serialize(); var encodedSignaturesLength = Array(); shortvec.encodeLength(encodedSignaturesLength, this.signatures.length); var transactionLayout = BufferLayout.struct([BufferLayout.blob(encodedSignaturesLength.length, 'encodedSignaturesLength'), BufferLayout.seq((0, _commonLayout.SignatureLayout)(), this.signatures.length, 'signatures'), BufferLayout.blob(serializedMessage.length, 'serializedMessage')]); var serializedTransaction = new Uint8Array(2048); var serializedTransactionLength = transactionLayout.encode({ encodedSignaturesLength: new Uint8Array(encodedSignaturesLength), signatures: this.signatures, serializedMessage: serializedMessage }, serializedTransaction); return serializedTransaction.slice(0, serializedTransactionLength); } }], [{ key: "deserialize", value: function deserialize(serializedTransaction) { var byteArray = (0, _toConsumableArray2["default"])(serializedTransaction); var signatures = []; var signaturesLength = shortvec.decodeLength(byteArray); for (var i = 0; i < signaturesLength; i++) { signatures.push(new Uint8Array(byteArray.splice(0, _params.SIGNATURE_LENGTH_IN_BYTES))); } var message = _message.VersionedMessage.deserialize(new Uint8Array(byteArray)); return new VersionedTransaction(message, signatures); } }]); return VersionedTransaction; }(); exports.VersionedTransaction = VersionedTransaction; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCdWZmZXJMYXlvdXQiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9tZXNzYWdlIiwic2hvcnR2ZWMiLCJfY29tbW9uTGF5b3V0IiwiX3BhcmFtcyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJWZXJzaW9uZWRUcmFuc2FjdGlvbiIsIm1lc3NhZ2UiLCJzaWduYXR1cmVzIiwiX2NsYXNzQ2FsbENoZWNrMiIsInVuZGVmaW5lZCIsIkVycm9yIiwiYXNzZXJ0IiwibGVuZ3RoIiwiaGVhZGVyIiwibnVtUmVxdWlyZWRTaWduYXR1cmVzIiwiX2NyZWF0ZUNsYXNzMiIsInZhbHVlIiwic2VyaWFsaXplIiwic2VyaWFsaXplZE1lc3NhZ2UiLCJlbmNvZGVkU2lnbmF0dXJlc0xlbmd0aCIsIkFycmF5IiwiZW5jb2RlTGVuZ3RoIiwidHJhbnNhY3Rpb25MYXlvdXQiLCJzdHJ1Y3QiLCJibG9iIiwic2VxIiwiU2lnbmF0dXJlTGF5b3V0Iiwic2VyaWFsaXplZFRyYW5zYWN0aW9uIiwiVWludDhBcnJheSIsInNlcmlhbGl6ZWRUcmFuc2FjdGlvbkxlbmd0aCIsImVuY29kZSIsInNsaWNlIiwiZGVzZXJpYWxpemUiLCJieXRlQXJyYXkiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwic2lnbmF0dXJlc0xlbmd0aCIsImRlY29kZUxlbmd0aCIsImkiLCJwdXNoIiwic3BsaWNlIiwiU0lHTkFUVVJFX0xFTkdUSF9JTl9CWVRFUyIsIlZlcnNpb25lZE1lc3NhZ2UiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3ZlcnNpb25lZFRyYW5zYWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIEJ1ZmZlckxheW91dCBmcm9tICdAc29sYW5hL2J1ZmZlci1sYXlvdXQnO1xuaW1wb3J0IGFzc2VydCBmcm9tICcuL2Fzc2VydCc7XG5pbXBvcnQgeyBWZXJzaW9uZWRNZXNzYWdlIH0gZnJvbSAnLi4vbWVzc2FnZSc7XG5leHBvcnQgdHlwZSBUcmFuc2FjdGlvblZlcnNpb24gPSAnbGVnYWN5JyB8IDA7XG5pbXBvcnQgKiBhcyBzaG9ydHZlYyBmcm9tICcuL3Nob3J0dmVjLWVuY29kaW5nJztcbmltcG9ydCB7IFNpZ25hdHVyZUxheW91dCB9IGZyb20gJy4vY29tbW9uTGF5b3V0JztcbmltcG9ydCB7IFNJR05BVFVSRV9MRU5HVEhfSU5fQllURVMgfSBmcm9tICcuLi9jb25maWcvcGFyYW1zJztcblxuZXhwb3J0IGNsYXNzIFZlcnNpb25lZFRyYW5zYWN0aW9uIHtcbiAgc2lnbmF0dXJlczogQXJyYXk8VWludDhBcnJheT47XG4gIG1lc3NhZ2U6IFZlcnNpb25lZE1lc3NhZ2U7XG5cbiAgY29uc3RydWN0b3IobWVzc2FnZTogVmVyc2lvbmVkTWVzc2FnZSwgc2lnbmF0dXJlczogQXJyYXk8VWludDhBcnJheT4pIHtcbiAgICBpZiAoc2lnbmF0dXJlcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NpZ25hdHVyZXMgYXJlIHJlcXVpcmVkJyk7XG4gICAgfVxuICAgIGFzc2VydChcbiAgICAgIHNpZ25hdHVyZXMubGVuZ3RoID09PSBtZXNzYWdlLmhlYWRlci5udW1SZXF1aXJlZFNpZ25hdHVyZXMsXG4gICAgICAnRXhwZWN0ZWQgc2lnbmF0dXJlcyBsZW5ndGggdG8gYmUgZXF1YWwgdG8gdGhlIG51bWJlciBvZiByZXF1aXJlZCBzaWduYXR1cmVzJyxcbiAgICApO1xuICAgIHRoaXMuc2lnbmF0dXJlcyA9IHNpZ25hdHVyZXM7XG4gICAgXG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTtcbiAgfVxuXG4gIHN0YXRpYyBkZXNlcmlhbGl6ZShzZXJpYWxpemVkVHJhbnNhY3Rpb246IFVpbnQ4QXJyYXkpOiBWZXJzaW9uZWRUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgYnl0ZUFycmF5ID0gWy4uLnNlcmlhbGl6ZWRUcmFuc2FjdGlvbl07XG5cbiAgICBjb25zdCBzaWduYXR1cmVzID0gW107XG4gICAgY29uc3Qgc2lnbmF0dXJlc0xlbmd0aCA9IHNob3J0dmVjLmRlY29kZUxlbmd0aChieXRlQXJyYXkpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2lnbmF0dXJlc0xlbmd0aDsgaSsrKSB7XG4gICAgICBzaWduYXR1cmVzLnB1c2goXG4gICAgICAgIG5ldyBVaW50OEFycmF5KGJ5dGVBcnJheS5zcGxpY2UoMCwgU0lHTkFUVVJFX0xFTkdUSF9JTl9CWVRFUykpLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBtZXNzYWdlID0gVmVyc2lvbmVkTWVzc2FnZS5kZXNlcmlhbGl6ZShuZXcgVWludDhBcnJheShieXRlQXJyYXkpKTtcbiAgICByZXR1cm4gbmV3IFZlcnNpb25lZFRyYW5zYWN0aW9uKG1lc3NhZ2UsIHNpZ25hdHVyZXMpO1xuICB9XG4gIFxuICBzZXJpYWxpemUoKTogVWludDhBcnJheSB7XG4gICAgY29uc3Qgc2VyaWFsaXplZE1lc3NhZ2UgPSB0aGlzLm1lc3NhZ2Uuc2VyaWFsaXplKCk7XG5cbiAgICBjb25zdCBlbmNvZGVkU2lnbmF0dXJlc0xlbmd0aCA9IEFycmF5PG51bWJlcj4oKTtcbiAgICBzaG9ydHZlYy5lbmNvZGVMZW5ndGgoZW5jb2RlZFNpZ25hdHVyZXNMZW5ndGgsIHRoaXMuc2lnbmF0dXJlcy5sZW5ndGgpO1xuXG4gICAgY29uc3QgdHJhbnNhY3Rpb25MYXlvdXQgPSBCdWZmZXJMYXlvdXQuc3RydWN0PHtcbiAgICAgIGVuY29kZWRTaWduYXR1cmVzTGVuZ3RoOiBVaW50OEFycmF5O1xuICAgICAgc2lnbmF0dXJlczogQXJyYXk8VWludDhBcnJheT47XG4gICAgICBzZXJpYWxpemVkTWVzc2FnZTogVWludDhBcnJheTtcbiAgICB9PihbXG4gICAgICBCdWZmZXJMYXlvdXQuYmxvYihcbiAgICAgICAgZW5jb2RlZFNpZ25hdHVyZXNMZW5ndGgubGVuZ3RoLFxuICAgICAgICAnZW5jb2RlZFNpZ25hdHVyZXNMZW5ndGgnLFxuICAgICAgKSxcbiAgICAgIEJ1ZmZlckxheW91dC5zZXEoXG4gICAgICAgIFNpZ25hdHVyZUxheW91dCgpLFxuICAgICAgICB0aGlzLnNpZ25hdHVyZXMubGVuZ3RoLFxuICAgICAgICAnc2lnbmF0dXJlcycsXG4gICAgICApLFxuICAgICAgQnVmZmVyTGF5b3V0LmJsb2Ioc2VyaWFsaXplZE1lc3NhZ2UubGVuZ3RoLCAnc2VyaWFsaXplZE1lc3NhZ2UnKSxcbiAgICBdKTtcblxuICAgIGNvbnN0IHNlcmlhbGl6ZWRUcmFuc2FjdGlvbiA9IG5ldyBVaW50OEFycmF5KDIwNDgpO1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRUcmFuc2FjdGlvbkxlbmd0aCA9IHRyYW5zYWN0aW9uTGF5b3V0LmVuY29kZShcbiAgICAgIHtcbiAgICAgICAgZW5jb2RlZFNpZ25hdHVyZXNMZW5ndGg6IG5ldyBVaW50OEFycmF5KGVuY29kZWRTaWduYXR1cmVzTGVuZ3RoKSxcbiAgICAgICAgc2lnbmF0dXJlczogdGhpcy5zaWduYXR1cmVzLFxuICAgICAgICBzZXJpYWxpemVkTWVzc2FnZSxcbiAgICAgIH0sXG4gICAgICBzZXJpYWxpemVkVHJhbnNhY3Rpb24sXG4gICAgKTtcblxuICAgIHJldHVybiBzZXJpYWxpemVkVHJhbnNhY3Rpb24uc2xpY2UoMCwgc2VyaWFsaXplZFRyYW5zYWN0aW9uTGVuZ3RoKTtcbiAgfVxufVxuIl0sIm1hcHBp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QUFDLEVBQ0R0QyxZQUFZLENBQUNtRCxHQUFHLENBQ2QsSUFBQUMsNkJBQWUsRUFBQyxDQUFDLEVBQ2pCLElBQUksQ0FBQ25CLFVBQVUsQ0FBQ0ssTUFBTSxFQUN0QixZQUNGLENBQUMsRUFDRHRDLFlBQVksQ0FBQ2tELElBQUksQ0FBQ04saUJBQWlCLENBQUNOLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxDQUNqRSxDQUFDO01BRUYsSUFBTWUscUJBQXFCLEdBQUcsSUFBSUMsVUFBVSxDQUFDLElBQUksQ0FBQztNQUNsRCxJQUFNQywyQkFBMkIsR0FBR1AsaUJBQWlCLENBQUNRLE1BQU0sQ0FDMUQ7UUFDRVgsdUJBQXVCLEVBQUUsSUFBSVMsVUFBVSxDQUFDVCx1QkFBdUIsQ0FBQztRQUNoRVosVUFBVSxFQUFFLElBQUksQ0FBQ0EsVUFBVTtRQUMzQlcsaUJBQWlCLEVBQWpCQTtNQUNGLENBQUMsRUFDRFMscUJBQ0YsQ0FBQztNQUVELE9BQU9BLHFCQUFxQixDQUFDSSxLQUFLLENBQUMsQ0FBQyxFQUFFRiwyQkFBMkIsQ0FBQztJQUNwRTtFQUFDO0lBQUE5QixHQUFBO0lBQUFpQixLQUFBLEVBakRELFNBQUFnQixZQUFtQkwscUJBQWlDLEVBQXdCO01BQzFFLElBQU1NLFNBQVMsT0FBQUMsbUJBQUEsYUFBT1AscUJBQXFCLENBQUM7TUFFNUMsSUFBTXBCLFVBQVUsR0FBRyxFQUFFO01BQ3JCLElBQU00QixnQkFBZ0IsR0FBR3ZELFFBQVEsQ0FBQ3dELFlBQVksQ0FBQ0gsU0FBUyxDQUFDO01BQ3pELEtBQUssSUFBSUksQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHRixnQkFBZ0IsRUFBRUUsQ0FBQyxFQUFFLEVBQUU7UUFDekM5QixVQUFVLENBQUMrQixJQUFJLENBQ2IsSUFBSVYsVUFBVSxDQUFDSyxTQUFTLENBQUNNLE1BQU0sQ0FBQyxDQUFDLEVBQUVDLGlDQUF5QixDQUFDLENBQy9ELENBQUM7TUFDSDtNQUVBLElBQU1sQyxPQUFPLEdBQUdtQyx5QkFBZ0IsQ0FBQ1QsV0FBVyxDQUFDLElBQUlKLFVBQVUsQ0FBQ0ssU0FBUyxDQUFDLENBQUM7TUFDdkUsT0FBTyxJQUFJNUIsb0JBQW9CLENBQUNDLE9BQU8sRUFBRUMsVUFBVSxDQUFDO0lBQ3REO0VBQUM7RUFBQSxPQUFBRixvQkFBQTtBQUFBO0FBQUFxQyxPQUFBLENBQUFyQyxvQkFBQSxHQUFBQSxvQkFBQSIsImlnbm9yZUxpc3QiOltdfQ==