Add isInBlock, isRetracted (...) to status enum (#1852)
This commit is contained in:
@@ -62,7 +62,7 @@ export default class Blueprint<ApiType extends ApiTypes> extends BaseWithTx<ApiT
|
||||
private createResult = (result: SubmittableResult): BlueprintCreateResult<ApiType> => {
|
||||
let contract: Contract<ApiType> | undefined;
|
||||
|
||||
if (result.isFinalized) {
|
||||
if (result.isInBlock) {
|
||||
const record = result.findRecord('contract', 'Instantiated');
|
||||
|
||||
if (record) {
|
||||
|
||||
@@ -58,7 +58,7 @@ export default class Code<ApiType extends ApiTypes> extends BaseWithTx<ApiType>
|
||||
private createResult = (result: SubmittableResultImpl): CodePutCodeResult<ApiType> => {
|
||||
let blueprint: Blueprint<ApiType> | undefined;
|
||||
|
||||
if (result.isFinalized) {
|
||||
if (result.isInBlock) {
|
||||
const record = result.findRecord('contract', 'CodeStored');
|
||||
|
||||
if (record) {
|
||||
|
||||
@@ -107,7 +107,7 @@ export function decorateMethod <Method extends AnyFunction> (method: Method): Me
|
||||
* )
|
||||
* // subscribe to overall result
|
||||
* .subscribe(({ status }) => {
|
||||
* if (status.isFinalized) {
|
||||
* if (status.isInBlock) {
|
||||
* console.log('Completed at block hash', status.asFinalized.toHex());
|
||||
* }
|
||||
* });
|
||||
|
||||
@@ -16,17 +16,21 @@ export default class SubmittableResult implements SubmittableResultImpl {
|
||||
}
|
||||
|
||||
public get isCompleted (): boolean {
|
||||
return this.isError || this.isFinalized;
|
||||
return this.isError || this.status.isInBlock || this.status.isFinalized;
|
||||
}
|
||||
|
||||
public get isError (): boolean {
|
||||
return this.status.isDropped || this.status.isInvalid || this.status.isUsurped;
|
||||
return this.status.isDropped || this.status.isFinalityTimeout || this.status.isInvalid || this.status.isRetracted || this.status.isUsurped;
|
||||
}
|
||||
|
||||
public get isFinalized (): boolean {
|
||||
return this.status.isFinalized;
|
||||
}
|
||||
|
||||
public get isInBlock (): boolean {
|
||||
return this.status.isInBlock;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description Filters EventRecords for the specified method & section (there could be multiple)
|
||||
*/
|
||||
|
||||
@@ -256,11 +256,13 @@ export default function createClass <ApiType extends ApiTypes> ({ api, apiType,
|
||||
}
|
||||
|
||||
private _statusObservable (status: ExtrinsicStatus): Observable<SubmittableResultImpl> {
|
||||
if (!status.isFinalized) {
|
||||
if (!status.isFinalized && !status.isInBlock) {
|
||||
return of(new SubmittableResult({ status }));
|
||||
}
|
||||
|
||||
const blockHash = status.asFinalized;
|
||||
const blockHash = status.isInBlock
|
||||
? status.asInBlock
|
||||
: status.asFinalized;
|
||||
|
||||
return combineLatest([
|
||||
this._api.rpc.chain.getBlock(blockHash),
|
||||
|
||||
@@ -14,6 +14,7 @@ export interface SubmittableResultImpl {
|
||||
readonly isCompleted: boolean;
|
||||
readonly isError: boolean;
|
||||
readonly isFinalized: boolean;
|
||||
readonly isInBlock: boolean;
|
||||
|
||||
filterRecords (section: string, method: string): EventRecord[];
|
||||
findRecord (section: string, method: string): EventRecord | undefined;
|
||||
|
||||
@@ -11,7 +11,7 @@ export const logEvents = (done: () => {}): (r: SubmittableResult) => void =>
|
||||
({ events, status }: SubmittableResult): void => {
|
||||
console.log('Transaction status:', status.type);
|
||||
|
||||
if (status.isFinalized) {
|
||||
if (status.isInBlock) {
|
||||
console.log('Completed at block hash', status.value.toHex());
|
||||
console.log('Events:');
|
||||
|
||||
|
||||
@@ -21,9 +21,12 @@ export default {
|
||||
_enum: {
|
||||
Future: 'Null',
|
||||
Ready: 'Null',
|
||||
Broadcast: 'Vec<Text>',
|
||||
InBlock: 'Hash',
|
||||
Retracted: 'Hash',
|
||||
FinalityTimeout: 'Hash',
|
||||
Finalized: 'Hash',
|
||||
Usurped: 'Hash',
|
||||
Broadcast: 'Vec<Text>',
|
||||
Dropped: 'Null',
|
||||
Invalid: 'Null'
|
||||
}
|
||||
|
||||
@@ -31,12 +31,18 @@ export interface ExtrinsicOrHash extends Enum {
|
||||
export interface ExtrinsicStatus extends Enum {
|
||||
readonly isFuture: boolean;
|
||||
readonly isReady: boolean;
|
||||
readonly isBroadcast: boolean;
|
||||
readonly asBroadcast: Vec<Text>;
|
||||
readonly isInBlock: boolean;
|
||||
readonly asInBlock: Hash;
|
||||
readonly isRetracted: boolean;
|
||||
readonly asRetracted: Hash;
|
||||
readonly isFinalityTimeout: boolean;
|
||||
readonly asFinalityTimeout: Hash;
|
||||
readonly isFinalized: boolean;
|
||||
readonly asFinalized: Hash;
|
||||
readonly isUsurped: boolean;
|
||||
readonly asUsurped: Hash;
|
||||
readonly isBroadcast: boolean;
|
||||
readonly asBroadcast: Vec<Text>;
|
||||
readonly isDropped: boolean;
|
||||
readonly isInvalid: boolean;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user