@neo-one/node-protocol
Version:
NEO•ONE NEO node and consensus protocol.
33 lines (31 loc) • 4.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const client_common_1 = require("@neo-one/client-common");
const node_core_1 = require("@neo-one/node-core");
const InventoryType_1 = require("./InventoryType");
class InvPayload {
constructor({ type, hashes }) {
this.serializeWire = client_common_1.createSerializeWire(this.serializeWireBase.bind(this));
this.type = type;
this.hashes = hashes;
}
static deserializeWireBase({ reader }) {
const type = InventoryType_1.assertInventoryType(reader.readUInt8());
const hashes = reader.readArray(() => reader.readUInt256());
return new this({ type, hashes });
}
static deserializeWire(options) {
return this.deserializeWireBase({
context: options.context,
reader: new node_core_1.BinaryReader(options.buffer),
});
}
serializeWireBase(writer) {
writer.writeUInt8(this.type);
writer.writeArray(this.hashes, (value) => {
writer.writeUInt256(value);
});
}
}
exports.InvPayload = InvPayload;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkludlBheWxvYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwREFBcUg7QUFDckgsa0RBQXNHO0FBQ3RHLG1EQUFxRTtBQU1yRSxNQUFhLFVBQVU7SUFtQnJCLFlBQW1CLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBaUI7UUFGbEMsa0JBQWEsR0FBa0IsbUNBQW1CLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBR3BHLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFyQk0sTUFBTSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsTUFBTSxFQUE4QjtRQUN0RSxNQUFNLElBQUksR0FBRyxtQ0FBbUIsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNyRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRTVELE9BQU8sSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU0sTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUErQjtRQUMzRCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztZQUM5QixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87WUFDeEIsTUFBTSxFQUFFLElBQUksd0JBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1NBQ3pDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFXTSxpQkFBaUIsQ0FBQyxNQUFvQjtRQUMzQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN2QyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBOUJELGdDQThCQyIsImZpbGUiOiJuZW8tb25lLW5vZGUtcHJvdG9jb2wvc3JjL3BheWxvYWQvSW52UGF5bG9hZC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJpbmFyeVdyaXRlciwgY3JlYXRlU2VyaWFsaXplV2lyZSwgU2VyaWFsaXphYmxlV2lyZSwgU2VyaWFsaXplV2lyZSwgVUludDI1NiB9IGZyb20gJ0BuZW8tb25lL2NsaWVudC1jb21tb24nO1xuaW1wb3J0IHsgQmluYXJ5UmVhZGVyLCBEZXNlcmlhbGl6ZVdpcmVCYXNlT3B0aW9ucywgRGVzZXJpYWxpemVXaXJlT3B0aW9ucyB9IGZyb20gJ0BuZW8tb25lL25vZGUtY29yZSc7XG5pbXBvcnQgeyBhc3NlcnRJbnZlbnRvcnlUeXBlLCBJbnZlbnRvcnlUeXBlIH0gZnJvbSAnLi9JbnZlbnRvcnlUeXBlJztcbmV4cG9ydCBpbnRlcmZhY2UgSW52UGF5bG9hZEFkZCB7XG4gIHJlYWRvbmx5IHR5cGU6IEludmVudG9yeVR5cGU7XG4gIHJlYWRvbmx5IGhhc2hlczogcmVhZG9ubHkgVUludDI1NltdO1xufVxuXG5leHBvcnQgY2xhc3MgSW52UGF5bG9hZCBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZVdpcmU8SW52UGF5bG9hZD4ge1xuICBwdWJsaWMgc3RhdGljIGRlc2VyaWFsaXplV2lyZUJhc2UoeyByZWFkZXIgfTogRGVzZXJpYWxpemVXaXJlQmFzZU9wdGlvbnMpOiBJbnZQYXlsb2FkIHtcbiAgICBjb25zdCB0eXBlID0gYXNzZXJ0SW52ZW50b3J5VHlwZShyZWFkZXIucmVhZFVJbnQ4KCkpO1xuICAgIGNvbnN0IGhhc2hlcyA9IHJlYWRlci5yZWFkQXJyYXkoKCkgPT4gcmVhZGVyLnJlYWRVSW50MjU2KCkpO1xuXG4gICAgcmV0dXJuIG5ldyB0aGlzKHsgdHlwZSwgaGFzaGVzIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZVdpcmUob3B0aW9uczogRGVzZXJpYWxpemVXaXJlT3B0aW9ucyk6IEludlBheWxvYWQge1xuICAgIHJldHVybiB0aGlzLmRlc2VyaWFsaXplV2lyZUJhc2Uoe1xuICAgICAgY29udGV4dDogb3B0aW9ucy5jb250ZXh0LFxuICAgICAgcmVhZGVyOiBuZXcgQmluYXJ5UmVhZGVyKG9wdGlvbnMuYnVmZmVyKSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSB0eXBlOiBJbnZlbnRvcnlUeXBlO1xuICBwdWJsaWMgcmVhZG9ubHkgaGFzaGVzOiByZWFkb25seSBVSW50MjU2W107XG4gIHB1YmxpYyByZWFkb25seSBzZXJpYWxpemVXaXJlOiBTZXJpYWxpemVXaXJlID0gY3JlYXRlU2VyaWFsaXplV2lyZSh0aGlzLnNlcmlhbGl6ZVdpcmVCYXNlLmJpbmQodGhpcykpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcih7IHR5cGUsIGhhc2hlcyB9OiBJbnZQYXlsb2FkQWRkKSB7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLmhhc2hlcyA9IGhhc2hlcztcbiAgfVxuXG4gIHB1YmxpYyBzZXJpYWxpemVXaXJlQmFzZSh3cml0ZXI6IEJpbmFyeVdyaXRlcik6IHZvaWQge1xuICAgIHdyaXRlci53cml0ZVVJbnQ4KHRoaXMudHlwZSk7XG4gICAgd3JpdGVyLndyaXRlQXJyYXkodGhpcy5oYXNoZXMsICh2YWx1ZSkgPT4ge1xuICAgICAgd3JpdGVyLndyaXRlVUludDI1Nih2YWx1ZSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==