Allow ExtrinsicEra to construct via instance (#1136)
This commit is contained in:
@@ -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 });
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user