diff --git a/packages/api/src/promise/SubmittableExtrinsic.ts b/packages/api/src/promise/SubmittableExtrinsic.ts index 9b794f05b5..15a7f3c703 100644 --- a/packages/api/src/promise/SubmittableExtrinsic.ts +++ b/packages/api/src/promise/SubmittableExtrinsic.ts @@ -26,7 +26,7 @@ export default class SubmittableExtrinsic extends Extrinsic { let events: Array | undefined = undefined; if (status.type === 'Finalised') { - const blockHash = status.value as Hash; + const blockHash = status.asFinalised; const signedBlock: SignedBlock = await this._api.rpc.chain.getBlock(blockHash); const allEvents: Array = await this._api.query.system.events.at(blockHash) as any; diff --git a/packages/api/src/rx/SubmittableExtrinsic.ts b/packages/api/src/rx/SubmittableExtrinsic.ts index c0d452d7cd..03c610dc96 100644 --- a/packages/api/src/rx/SubmittableExtrinsic.ts +++ b/packages/api/src/rx/SubmittableExtrinsic.ts @@ -9,7 +9,7 @@ import { ApiRxInterface } from './types'; import { Observable, of, combineLatest } from 'rxjs'; import { first, map, switchMap } from 'rxjs/operators'; -import { Extrinsic, ExtrinsicStatus, Hash, Index, Method } from '@polkadot/types/index'; +import { Extrinsic, ExtrinsicStatus, Index, Method } from '@polkadot/types/index'; import filterEvents from '../util/filterEvents'; @@ -30,7 +30,7 @@ export default class SubmittableExtrinsic extends Extrinsic { }); } - const blockHash = status.value as Hash; + const blockHash = status.asFinalised; return combineLatest( this._api.rpc.chain.getBlock(blockHash), diff --git a/packages/api/src/util/filterEvents.ts b/packages/api/src/util/filterEvents.ts index 69fe7e8e9c..686ce36c0a 100644 --- a/packages/api/src/util/filterEvents.ts +++ b/packages/api/src/util/filterEvents.ts @@ -2,7 +2,7 @@ // This software may be modified and distributed under the terms // of the Apache-2.0 license. See the LICENSE file for details. -import { EventRecord, Hash, SignedBlock, u32 } from '@polkadot/types/index'; +import { EventRecord, Hash, SignedBlock } from '@polkadot/types/index'; import l from './logging'; @@ -22,6 +22,6 @@ export default function filterEvents (extHash: Hash, { block: { extrinsics, head return allEvents.filter(({ phase }) => // only ApplyExtrinsic has the extrinsic index - phase.type === 'ApplyExtrinsic' && (phase.value as u32).eqn(index) + phase.type === 'ApplyExtrinsic' && phase.asApplyExtrinsic.eqn(index) ); } diff --git a/packages/types/src/AttestedCandidate.ts b/packages/types/src/AttestedCandidate.ts index ce7efd84dd..8b428e94f1 100644 --- a/packages/types/src/AttestedCandidate.ts +++ b/packages/types/src/AttestedCandidate.ts @@ -61,6 +61,20 @@ export class ValidityAttestation extends EnumType { Finalization }, value, index); } + + /** + * @description Returns the item as a [[ApplyExtrinsic]] + */ + get asApplyExtrinsic (): ApplyExtrinsic { + return this.value as ApplyExtrinsic; + } + + /** + * @description Returns the item as a [[Finalization]] + */ + get asFinalization (): Finalization { + return this.value as Finalization; + } } /** diff --git a/packages/types/src/ExtrinsicStatus.ts b/packages/types/src/ExtrinsicStatus.ts index 520e784825..739e76f7f1 100644 --- a/packages/types/src/ExtrinsicStatus.ts +++ b/packages/types/src/ExtrinsicStatus.ts @@ -81,4 +81,53 @@ export default class ExtrinsicStatus extends EnumType