1 | import { InvalidFormatError, IOHelper } from '@neo-one/client-common-esnext-esm';
|
2 | import { BlockBase } from './BlockBase';
|
3 | import { BinaryReader, utils } from './utils';
|
4 | export class Header extends BlockBase {
|
5 | constructor() {
|
6 | super(...arguments);
|
7 | this.sizeExclusive = utils.lazy(() => IOHelper.sizeOfUInt8);
|
8 | }
|
9 | static deserializeWireBase(options) {
|
10 | const { reader } = options;
|
11 | const blockBase = super.deserializeBlockBaseWireBase(options);
|
12 | if (reader.readUInt8() !== 0) {
|
13 | throw new InvalidFormatError();
|
14 | }
|
15 | return new this({
|
16 | version: blockBase.version,
|
17 | previousHash: blockBase.previousHash,
|
18 | merkleRoot: blockBase.merkleRoot,
|
19 | timestamp: blockBase.timestamp,
|
20 | index: blockBase.index,
|
21 | consensusData: blockBase.consensusData,
|
22 | nextConsensus: blockBase.nextConsensus,
|
23 | script: blockBase.script,
|
24 | });
|
25 | }
|
26 | static deserializeWire(options) {
|
27 | return this.deserializeWireBase({
|
28 | context: options.context,
|
29 | reader: new BinaryReader(options.buffer),
|
30 | });
|
31 | }
|
32 | serializeWireBase(writer) {
|
33 | super.serializeWireBase(writer);
|
34 | writer.writeUInt8(0);
|
35 | }
|
36 | async serializeJSON(context) {
|
37 | return super.serializeBlockBaseJSON(context);
|
38 | }
|
39 | }
|
40 |
|
41 | //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkhlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRCLGtCQUFrQixFQUFFLFFBQVEsRUFBVyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BILE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sYUFBYSxDQUFDO0FBUXRELE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBTzlDLE1BQU0sT0FBTyxNQUFPLFNBQVEsU0FBUztJQUFyQzs7UUEyQnFCLGtCQUFhLEdBQWlCLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBVTFGLENBQUM7SUFwQ1EsTUFBTSxDQUFDLG1CQUFtQixDQUFDLE9BQW1DO1FBQ25FLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDM0IsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlELElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUM1QixNQUFNLElBQUksa0JBQWtCLEVBQUUsQ0FBQztTQUNoQztRQUVELE9BQU8sSUFBSSxJQUFJLENBQUM7WUFDZCxPQUFPLEVBQUUsU0FBUyxDQUFDLE9BQU87WUFDMUIsWUFBWSxFQUFFLFNBQVMsQ0FBQyxZQUFZO1lBQ3BDLFVBQVUsRUFBRSxTQUFTLENBQUMsVUFBVTtZQUNoQyxTQUFTLEVBQUUsU0FBUyxDQUFDLFNBQVM7WUFDOUIsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLO1lBQ3RCLGFBQWEsRUFBRSxTQUFTLENBQUMsYUFBYTtZQUN0QyxhQUFhLEVBQUUsU0FBUyxDQUFDLGFBQWE7WUFDdEMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNO1NBQ3pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUFDLE9BQStCO1FBQzNELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO1lBQzlCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztZQUN4QixNQUFNLEVBQUUsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztTQUN6QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBSU0saUJBQWlCLENBQUMsTUFBb0I7UUFDM0MsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVNLEtBQUssQ0FBQyxhQUFhLENBQUMsT0FBNkI7UUFDdEQsT0FBTyxLQUFLLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0MsQ0FBQztDQUNGIiwiZmlsZSI6Im5lby1vbmUtbm9kZS1jb3JlL3NyYy9IZWFkZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCaW5hcnlXcml0ZXIsIEhlYWRlckpTT04sIEludmFsaWRGb3JtYXRFcnJvciwgSU9IZWxwZXIsIFVJbnQyNTYgfSBmcm9tICdAbmVvLW9uZS9jbGllbnQtY29tbW9uLWVzbmV4dC1lc20nO1xuaW1wb3J0IHsgQmxvY2tCYXNlLCBCbG9ja0Jhc2VBZGQgfSBmcm9tICcuL0Jsb2NrQmFzZSc7XG5pbXBvcnQge1xuICBEZXNlcmlhbGl6ZVdpcmVCYXNlT3B0aW9ucyxcbiAgRGVzZXJpYWxpemVXaXJlT3B0aW9ucyxcbiAgU2VyaWFsaXphYmxlSlNPTixcbiAgU2VyaWFsaXphYmxlV2lyZSxcbiAgU2VyaWFsaXplSlNPTkNvbnRleHQsXG59IGZyb20gJy4vU2VyaWFsaXphYmxlJztcbmltcG9ydCB7IEJpbmFyeVJlYWRlciwgdXRpbHMgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IHR5cGUgSGVhZGVyQWRkID0gQmxvY2tCYXNlQWRkO1xuZXhwb3J0IGludGVyZmFjZSBIZWFkZXJLZXkge1xuICByZWFkb25seSBoYXNoT3JJbmRleDogVUludDI1NiB8IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIEhlYWRlciBleHRlbmRzIEJsb2NrQmFzZSBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZVdpcmU8SGVhZGVyPiwgU2VyaWFsaXphYmxlSlNPTjxIZWFkZXJKU09OPiB7XG4gIHB1YmxpYyBzdGF0aWMgZGVzZXJpYWxpemVXaXJlQmFzZShvcHRpb25zOiBEZXNlcmlhbGl6ZVdpcmVCYXNlT3B0aW9ucyk6IEhlYWRlciB7XG4gICAgY29uc3QgeyByZWFkZXIgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgYmxvY2tCYXNlID0gc3VwZXIuZGVzZXJpYWxpemVCbG9ja0Jhc2VXaXJlQmFzZShvcHRpb25zKTtcbiAgICBpZiAocmVhZGVyLnJlYWRVSW50OCgpICE9PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEZvcm1hdEVycm9yKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyB0aGlzKHtcbiAgICAgIHZlcnNpb246IGJsb2NrQmFzZS52ZXJzaW9uLFxuICAgICAgcHJldmlvdXNIYXNoOiBibG9ja0Jhc2UucHJldmlvdXNIYXNoLFxuICAgICAgbWVya2xlUm9vdDogYmxvY2tCYXNlLm1lcmtsZVJvb3QsXG4gICAgICB0aW1lc3RhbXA6IGJsb2NrQmFzZS50aW1lc3RhbXAsXG4gICAgICBpbmRleDogYmxvY2tCYXNlLmluZGV4LFxuICAgICAgY29uc2Vuc3VzRGF0YTogYmxvY2tCYXNlLmNvbnNlbnN1c0RhdGEsXG4gICAgICBuZXh0Q29uc2Vuc3VzOiBibG9ja0Jhc2UubmV4dENvbnNlbnN1cyxcbiAgICAgIHNjcmlwdDogYmxvY2tCYXNlLnNjcmlwdCxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZGVzZXJpYWxpemVXaXJlKG9wdGlvbnM6IERlc2VyaWFsaXplV2lyZU9wdGlvbnMpOiBIZWFkZXIge1xuICAgIHJldHVybiB0aGlzLmRlc2VyaWFsaXplV2lyZUJhc2Uoe1xuICAgICAgY29udGV4dDogb3B0aW9ucy5jb250ZXh0LFxuICAgICAgcmVhZGVyOiBuZXcgQmluYXJ5UmVhZGVyKG9wdGlvbnMuYnVmZmVyKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBzaXplRXhjbHVzaXZlOiAoKSA9PiBudW1iZXIgPSB1dGlscy5sYXp5KCgpID0+IElPSGVscGVyLnNpemVPZlVJbnQ4KTtcblxuICBwdWJsaWMgc2VyaWFsaXplV2lyZUJhc2Uod3JpdGVyOiBCaW5hcnlXcml0ZXIpOiB2b2lkIHtcbiAgICBzdXBlci5zZXJpYWxpemVXaXJlQmFzZSh3cml0ZXIpO1xuICAgIHdyaXRlci53cml0ZVVJbnQ4KDApO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNlcmlhbGl6ZUpTT04oY29udGV4dDogU2VyaWFsaXplSlNPTkNvbnRleHQpOiBQcm9taXNlPEhlYWRlckpTT04+IHtcbiAgICByZXR1cm4gc3VwZXIuc2VyaWFsaXplQmxvY2tCYXNlSlNPTihjb250ZXh0KTtcbiAgfVxufVxuIl19
|