Allow ExtrinsicEra to construct via instance (#1136)

This commit is contained in:
Jaco Greeff
2019-07-16 15:50:36 +02:00
committed by GitHub
parent e56a3dd373
commit ca53fbc2a6
2 changed files with 14 additions and 7 deletions
@@ -19,6 +19,13 @@ describe('ExtrinsicEra', (): void => {
expect(extrinsicEra.asMortalEra.phase.toNumber()).toEqual(20000);
});
it('decoded from an existing ExtrinsicEra', (): void => {
const extrinsicEra = new ExtrinsicEra(new ExtrinsicEra(new Uint8Array([78, 156])));
expect(extrinsicEra.asMortalEra.period.toNumber()).toEqual(32768);
expect(extrinsicEra.asMortalEra.phase.toNumber()).toEqual(20000);
});
it('encode an Extrinsic Era from Object with blocknumber & period as mortal instance', (): void => {
const extrinsicEra = new ExtrinsicEra({ current: 1400, period: 200 });
+7 -7
View File
@@ -192,8 +192,10 @@ export default class ExtrinsicEra extends Enum implements IExtrinsicEra {
}
// eslint-disable-next-line @typescript-eslint/ban-types
private static decodeExtrinsicEra (value: MortalMethod | MortalEnumDef | ImmortalEnumDef | Uint8Array | string = new Uint8Array()): Uint8Array | Object | undefined {
if (isHex(value)) {
private static decodeExtrinsicEra (value: IExtrinsicEra | MortalMethod | MortalEnumDef | ImmortalEnumDef | Uint8Array | string = new Uint8Array()): Uint8Array | Object | undefined {
if (value instanceof ExtrinsicEra) {
return ExtrinsicEra.decodeExtrinsicEra(value.toU8a());
} else if (isHex(value)) {
return ExtrinsicEra.decodeExtrinsicEra(hexToU8a(value));
} else if (isU8a(value)) {
if (!value.length || value[0] === 0) {
@@ -263,10 +265,8 @@ export default class ExtrinsicEra extends Enum implements IExtrinsicEra {
* @param isBare true when the value has none of the type-specific prefixes (internal)
*/
public toU8a (isBare?: boolean): Uint8Array {
if (this.index === 0) {
return this.asImmortalEra.toU8a(isBare);
} else {
return this.asMortalEra.toU8a(isBare);
}
return this.isMortalEra
? this.asMortalEra.toU8a(isBare)
: this.asImmortalEra.toU8a(isBare);
}
}