Skip to content

Commit

Permalink
Merge 8eb19a6 into 92d9921
Browse files Browse the repository at this point in the history
  • Loading branch information
jacogr committed Oct 29, 2018
2 parents 92d9921 + 8eb19a6 commit a1a737a
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 25 deletions.
4 changes: 2 additions & 2 deletions packages/types/src/Digest.spec.ts
Expand Up @@ -15,8 +15,8 @@ describe('Digest', () => {

expect(log.type).toBe('Seal');
expect(log.value.toJSON()).toEqual([
256802739,
'0x7f8635f18fc5ecb82b39eca5b44b7e824e24870e2452ff4e71759ca673b422cbdc767fbb8bf9f7ab2a9b883ad14e62f56ae0c48ed405575a71bbb1e9d5c69301'
256804359,
'0x2c0e0ee8a5d1a073da3f8db002b8eaebcd7b1a7eb25662e09f9ef0ac58d96bf17896256cd5f0bc672f96aab49fe5163ca5cb4c1a0f047dc39e89cd4a9eb2ea05'
]);
});
});
26 changes: 13 additions & 13 deletions packages/types/src/Header.spec.ts
Expand Up @@ -2,12 +2,15 @@
// This software may be modified and distributed under the terms
// of the ISC license. See the LICENSE file for details.

import BN from 'bn.js';

import Header from './Header';
import json from './json/Header.001.json';
import json1 from './json/Header.001.json';
import json2 from './json/Header.002.json';

describe('Header', () => {
it('decodes an actual JSON response', () => {
const header = new Header(json.result);
const header = new Header(json1.result);

expect(
header.blockNumber.toNumber()
Expand All @@ -26,17 +29,14 @@ describe('Header', () => {
).toEqual('[]');
});

it('creates actual valid hash', () => {
it('creates a valid hash (incl. digest & compact)', () => {
const header = new Header(json2.result);

expect(
header.hash.toHex()
).toEqual('0x63ccfdc044d3ff4c915ad01c0d57d2ff807f4eb7d60cd41584917363bc83a99f');
expect(
new Header({
digest: {
logs: []
},
extrinsicsRoot: '0xfd068a7f7315e1c5529945ddd80b650abfc1643be9a79f0468673617a7c0af41',
number: 338571,
parentHash: '0x20946c40c54af3bf76a93e313d51bdcb14ee9e783cde9565d0f8c0d72727e512',
stateRoot: '0x6980a37d9297765aed7a67bb0147afa34ec6db387e79c096feb1708294399abd'
}).hash.toHex()
).toEqual('0xfefcdd5287d017f240b816bd6c43cb9f254164adb90350f2d3f3303f604b5a61');
header.blockNumber.toBn()
).toEqual(new BN(2918));
});
});
5 changes: 3 additions & 2 deletions packages/types/src/Header.ts
Expand Up @@ -6,6 +6,7 @@ import { AnyNumber, AnyU8a } from './types';

import { blake2AsU8a } from '@polkadot/util-crypto';

import Compact from './codec/Compact';
import Struct from './codec/Struct';

import BlockNumber from './BlockNumber';
Expand All @@ -25,15 +26,15 @@ export default class Header extends Struct {
constructor (value?: HeaderValue | Uint8Array) {
super({
parentHash: Hash,
number: BlockNumber,
number: Compact.with(BlockNumber),
stateRoot: Hash,
extrinsicsRoot: Hash,
digest: Digest
}, value);
}

get blockNumber (): BlockNumber {
return this.get('number') as BlockNumber;
return (this.get('number') as Compact).raw as BlockNumber;
}

get digest (): Digest {
Expand Down
6 changes: 5 additions & 1 deletion packages/types/src/Moment.ts
Expand Up @@ -3,7 +3,7 @@
// of the ISC license. See the LICENSE file for details.

import BN from 'bn.js';
import { bnToBn, bnToU8a, isString, isU8a, u8aToBn } from '@polkadot/util';
import { bnToBn, bnToHex, bnToU8a, isString, isU8a, u8aToBn } from '@polkadot/util';

import { AnyNumber } from './types';
import Base from './codec/Base';
Expand Down Expand Up @@ -52,6 +52,10 @@ export default class Moment extends Base<Date> {
return this.raw.getTime();
}

toHex (): string {
return bnToHex(this.toBn(), BITLENGTH);
}

toJSON (): any {
return this.toNumber();
}
Expand Down
2 changes: 1 addition & 1 deletion packages/types/src/codec/Compact.ts
Expand Up @@ -31,7 +31,7 @@ const MAX_U32 = new BN(2).pow(new BN(32 - 2)).subn(1);
// nn nn nn 11 [ / zz zz zz zz ]{4 + n}
//
// Note: we use *LOW BITS* of the LSB in LE encoding to encode the 2 bit key.
export default class Compact extends Base<UInt> {
export default class Compact extends Base<UInt | Moment> {
constructor (Type: Constructor<UInt | Moment>, value: AnyNumber = 0) {
super(Compact.decodeCompact(Type, value));
}
Expand Down
12 changes: 6 additions & 6 deletions packages/types/src/json/Header.002.json
Expand Up @@ -5,16 +5,16 @@
"logs": [
{
"Seal": [
256802739,
"0x7f8635f18fc5ecb82b39eca5b44b7e824e24870e2452ff4e71759ca673b422cbdc767fbb8bf9f7ab2a9b883ad14e62f56ae0c48ed405575a71bbb1e9d5c69301"
256804359,
"0x2c0e0ee8a5d1a073da3f8db002b8eaebcd7b1a7eb25662e09f9ef0ac58d96bf17896256cd5f0bc672f96aab49fe5163ca5cb4c1a0f047dc39e89cd4a9eb2ea05"
]
}
]
},
"extrinsicsRoot": "0x48ef05ba1bd0d2c5b313a573b4584955819950e4412f88291c575ae66f9c4481",
"number": 1982,
"parentHash": "0x17430eedcdba0d19cbccb67480e0f6a1dc5dfca9d3e627238237184f1519abc6",
"stateRoot": "0xefc509cd3c747799770a824fb4331ab7ed6a99c5d873b84ee3428a42d7df14be"
"extrinsicsRoot": "0x1da0d30001d07991baef3c5c65234c2e88bec659dc0d7138a7e7267e2bacbeb7",
"number": 2918,
"parentHash": "0xb58e4d84c2e0db1cdc8c8830aa719015f8c855f29a0dff2b158a160f29f73ba0",
"stateRoot": "0x22f6f5b6992ab87ea5f52b2732ed9e22a88643ed3a97251986857633687fbc54"
},
"id": 1
}

0 comments on commit a1a737a

Please sign in to comment.