Expose callIndex on extrinsics (lookups) (#206)

* Expose callId on extrinsics (lookups)

* Expose call meta

* s/callId/callIndex/
This commit is contained in:
Jaco Greeff
2018-10-05 09:21:14 +02:00
committed by GitHub
parent 2bc61b30b3
commit 427c38ee21
6 changed files with 31 additions and 11 deletions
+1 -1
View File
@@ -21,7 +21,7 @@
"test": "jest --coverage"
},
"devDependencies": {
"@polkadot/dev": "^0.20.21",
"@polkadot/dev": "^0.20.24",
"@polkadot/ts": "^0.1.30"
},
"dependencies": {
+1
View File
@@ -7,6 +7,7 @@ import { FunctionMetadata } from '@polkadot/types/Metadata';
export interface ExtrinsicFunction {
(...args: any[]): UncheckedMortalExtrinsic,
callIndex: Uint8Array,
meta: FunctionMetadata,
method: string;
section: string;
@@ -19,6 +19,7 @@ export default function createDescriptor (
index: number,
meta: FunctionMetadata
): ExtrinsicFunction {
const callIndex = new Uint8Array([index, meta.id.toNumber()]);
let extrinsicFn: any;
// If the extrinsic function has an argument of type `Origin`, we ignore it
@@ -32,15 +33,12 @@ export default function createDescriptor (
throw new Error(`Extrinsic ${section}.${method} expects ${expectedArgs.length.valueOf()} arguments, got ${args.length}.`);
}
const call = new Call(
new Uint8Array([index, meta.id.toNumber()]),
meta,
args
);
const call = new Call(callIndex, meta, args);
return new UncheckedMortalExtrinsic(call);
};
extrinsicFn.callIndex = callIndex;
extrinsicFn.meta = meta;
extrinsicFn.method = method;
extrinsicFn.section = section;
+6 -2
View File
@@ -11,11 +11,15 @@ export default class CallIndex extends U8aFixed {
super(value, 16);
}
get callIndex (): Uint8Array {
return this.raw;
}
get methodIndex (): number {
return this.raw[1];
return this.callIndex[1];
}
get sectionIndex (): number {
return this.raw[0];
return this.callIndex[0];
}
}
@@ -10,6 +10,7 @@ import u8aConcat from '@polkadot/util/u8a/concat';
import Address from './Address';
import Call from './Call';
import Extrinsic from './Extrinsic';
import { FunctionMetadata } from './Metadata';
import SignaturePayload from './SignaturePayload';
import TransactionSignature from './TransactionSignature';
@@ -55,6 +56,22 @@ export default class UncheckedMortalExtrinsic extends Extrinsic {
return this._signature;
}
get meta (): FunctionMetadata {
return this._call.meta;
}
get callIndex (): Uint8Array {
return this._call.callIndex;
}
get methodIndex (): number {
return this._call.methodIndex;
}
get sectionIndex (): number {
return this._call.sectionIndex;
}
sign (signerPair: KeyringPair, nonce: AnyNumber, blockHash: AnyU8a): UncheckedMortalExtrinsic {
const signature = this.createSignature(this._call, signerPair, nonce, blockHash);
+3 -3
View File
@@ -1170,9 +1170,9 @@
version "1.1.0"
resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.0.tgz#50c1e2260ac0ed9439a181de3725a0168d59c48a"
"@polkadot/dev@^0.20.21":
version "0.20.21"
resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.20.21.tgz#81d707d5aeb4b32e22fea1e1653ab238c77eefeb"
"@polkadot/dev@^0.20.24":
version "0.20.24"
resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.20.24.tgz#e88af950aa4e0e1a549d0a4860b2b3f8d63ce723"
dependencies:
"@babel/cli" "^7.0.0"
"@babel/core" "^7.0.0"