Skip to content

Commit 3e99a14

Browse files
committed
substrate: add .at() method to generated classes (#324)
1 parent 938b773 commit 3e99a14

File tree

18 files changed

+917
-165
lines changed

18 files changed

+917
-165
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"changes": [
3+
{
4+
"packageName": "@subsquid/scale-type-system",
5+
"comment": "export more utility types",
6+
"type": "minor"
7+
}
8+
],
9+
"packageName": "@subsquid/scale-type-system"
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"changes": [
3+
{
4+
"packageName": "@subsquid/substrate-runtime",
5+
"comment": "add `.hasStorage()` method",
6+
"type": "minor"
7+
}
8+
],
9+
"packageName": "@subsquid/substrate-runtime"
10+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"changes": [
3+
{
4+
"packageName": "@subsquid/substrate-typegen",
5+
"comment": "add `.at()` method on generated classes",
6+
"type": "minor"
7+
},
8+
{
9+
"packageName": "@subsquid/substrate-typegen",
10+
"comment": "add `index.ts` to pallet modules",
11+
"type": "minor"
12+
},
13+
],
14+
"packageName": "@subsquid/substrate-typegen"
15+
}

substrate/scale-type-system/src/dsl.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ import {
1818
UnknownType
1919
} from './types/primitives'
2020
import {GetStructType, StructType} from './types/struct'
21-
import {TupleType} from './types/tuple'
21+
import {TupleType, GetTupleType} from './types/tuple'
2222
import {UnionType} from './types/union'
2323

2424

25-
export {GetType, ExternalEnum, ValueCase}
25+
export {GetType, ExternalEnum, ValueCase, GetEnumType, GetTupleType, GetStructType}
2626

2727

2828
const numberType = new NumberType()

substrate/scale-type-system/src/types/tuple.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@ import {BaseType, ScaleType, Type, TypeChecker} from '../type-checker'
55
import {GetType} from '../type-util'
66

77

8-
export type GetTupleType<T> = {
9-
[I in keyof T]: GetType<T[I]>
10-
}
8+
export type GetTupleType<T> = T extends readonly [infer A, ...infer R] ? [GetType<A>, ...GetTupleType<R>] : []
119

1210

1311
export class TupleType<T extends readonly Type[]> extends BaseType<GetTupleType<T>> {

substrate/substrate-runtime/src/runtime/runtime.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -424,6 +424,11 @@ export class Runtime {
424424
return this.checkType(def.type, ty)
425425
}
426426

427+
hasStorage(name: QualifiedName): boolean {
428+
let qn = parseQualifiedName(name)
429+
return !!this.description.storage[qn[0]]?.items[qn[1]]
430+
}
431+
427432
checkStorageType(
428433
name: QualifiedName,
429434
modifier: StorageItem['modifier'] | StorageItem['modifier'][],

0 commit comments

Comments
 (0)