@subsquid/portal-client 0.3.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/lib/client.d.ts +40 -18
  2. package/lib/client.d.ts.map +1 -1
  3. package/lib/client.js +166 -188
  4. package/lib/client.js.map +1 -1
  5. package/lib/query/common/data.d.ts +21 -0
  6. package/lib/query/common/data.d.ts.map +1 -0
  7. package/lib/query/common/data.js +3 -0
  8. package/lib/query/common/data.js.map +1 -0
  9. package/lib/query/common/query.d.ts +7 -0
  10. package/lib/query/common/query.d.ts.map +1 -0
  11. package/lib/query/common/query.js +3 -0
  12. package/lib/query/common/query.js.map +1 -0
  13. package/lib/query/evm/data.d.ts +159 -0
  14. package/lib/query/evm/data.d.ts.map +1 -0
  15. package/lib/query/evm/data.js +3 -0
  16. package/lib/query/evm/data.js.map +1 -0
  17. package/lib/query/evm/fields.d.ts +50 -0
  18. package/lib/query/evm/fields.d.ts.map +1 -0
  19. package/lib/query/evm/fields.js +3 -0
  20. package/lib/query/evm/fields.js.map +1 -0
  21. package/lib/query/evm/index.d.ts +4 -0
  22. package/lib/query/evm/index.d.ts.map +1 -0
  23. package/lib/query/evm/index.js +7 -0
  24. package/lib/query/evm/index.js.map +1 -0
  25. package/lib/query/evm/query.d.ts +54 -0
  26. package/lib/query/evm/query.d.ts.map +1 -0
  27. package/lib/query/evm/query.js +3 -0
  28. package/lib/query/evm/query.js.map +1 -0
  29. package/lib/query/evm/schema.d.ts +322 -0
  30. package/lib/query/evm/schema.d.ts.map +1 -0
  31. package/lib/query/evm/schema.js +224 -0
  32. package/lib/query/evm/schema.js.map +1 -0
  33. package/lib/query/index.d.ts +576 -8
  34. package/lib/query/index.d.ts.map +1 -1
  35. package/lib/query/index.js +15 -24
  36. package/lib/query/index.js.map +1 -1
  37. package/lib/query/solana/data.d.ts +115 -0
  38. package/lib/query/solana/data.d.ts.map +1 -0
  39. package/lib/query/solana/data.js +3 -0
  40. package/lib/query/solana/data.js.map +1 -0
  41. package/lib/query/solana/fields.d.ts +31 -0
  42. package/lib/query/solana/fields.d.ts.map +1 -0
  43. package/lib/query/solana/fields.js +3 -0
  44. package/lib/query/solana/fields.js.map +1 -0
  45. package/lib/query/solana/index.d.ts +4 -0
  46. package/lib/query/solana/index.d.ts.map +1 -0
  47. package/lib/query/solana/index.js +7 -0
  48. package/lib/query/solana/index.js.map +1 -0
  49. package/lib/query/solana/query.d.ts +74 -0
  50. package/lib/query/solana/query.d.ts.map +1 -0
  51. package/lib/query/solana/query.js +3 -0
  52. package/lib/query/solana/query.js.map +1 -0
  53. package/lib/query/solana/schema.d.ts +160 -0
  54. package/lib/query/solana/schema.d.ts.map +1 -0
  55. package/lib/query/solana/schema.js +130 -0
  56. package/lib/query/solana/schema.js.map +1 -0
  57. package/lib/query/substrate/data.d.ts +98 -0
  58. package/lib/query/substrate/data.d.ts.map +1 -0
  59. package/lib/query/substrate/data.js +3 -0
  60. package/lib/query/substrate/data.js.map +1 -0
  61. package/lib/query/substrate/fields.d.ts +22 -0
  62. package/lib/query/substrate/fields.d.ts.map +1 -0
  63. package/lib/query/substrate/fields.js +3 -0
  64. package/lib/query/substrate/fields.js.map +1 -0
  65. package/lib/query/substrate/index.d.ts +4 -0
  66. package/lib/query/substrate/index.d.ts.map +1 -0
  67. package/lib/query/substrate/index.js +7 -0
  68. package/lib/query/substrate/index.js.map +1 -0
  69. package/lib/query/substrate/query.d.ts +50 -0
  70. package/lib/query/substrate/query.d.ts.map +1 -0
  71. package/lib/query/substrate/query.js +3 -0
  72. package/lib/query/substrate/query.js.map +1 -0
  73. package/lib/query/substrate/schema.d.ts +102 -0
  74. package/lib/query/substrate/schema.d.ts.map +1 -0
  75. package/lib/query/substrate/schema.js +88 -0
  76. package/lib/query/substrate/schema.js.map +1 -0
  77. package/lib/query/type-util.d.ts +13 -0
  78. package/lib/query/type-util.d.ts.map +1 -0
  79. package/lib/query/type-util.js +3 -0
  80. package/lib/query/type-util.js.map +1 -0
  81. package/lib/query/util.d.ts +5 -0
  82. package/lib/query/util.d.ts.map +1 -0
  83. package/lib/query/util.js +23 -0
  84. package/lib/query/util.js.map +1 -0
  85. package/lib/util.d.ts +19 -0
  86. package/lib/util.d.ts.map +1 -0
  87. package/lib/util.js +57 -0
  88. package/lib/util.js.map +1 -0
  89. package/package.json +3 -3
  90. package/src/client.ts +231 -247
  91. package/src/query/common/data.ts +24 -0
  92. package/src/query/common/query.ts +6 -0
  93. package/src/query/evm/data.ts +182 -0
  94. package/src/query/evm/fields.ts +105 -0
  95. package/src/query/evm/index.ts +3 -0
  96. package/src/query/evm/query.ts +59 -0
  97. package/src/query/evm/schema.ts +277 -0
  98. package/src/query/index.ts +19 -36
  99. package/src/query/solana/data.ts +132 -0
  100. package/src/query/solana/fields.ts +42 -0
  101. package/src/query/solana/index.ts +3 -0
  102. package/src/query/solana/query.ts +89 -0
  103. package/src/query/solana/schema.ts +164 -0
  104. package/src/query/substrate/data.ts +101 -0
  105. package/src/query/substrate/fields.ts +30 -0
  106. package/src/query/substrate/index.ts +3 -0
  107. package/src/query/substrate/query.ts +60 -0
  108. package/src/query/substrate/schema.ts +114 -0
  109. package/src/query/type-util.ts +25 -0
  110. package/src/query/util.ts +23 -0
  111. package/src/util.ts +56 -0
  112. package/lib/query/common.d.ts +0 -56
  113. package/lib/query/common.d.ts.map +0 -1
  114. package/lib/query/common.js +0 -16
  115. package/lib/query/common.js.map +0 -1
  116. package/lib/query/evm.d.ts +0 -267
  117. package/lib/query/evm.d.ts.map +0 -1
  118. package/lib/query/evm.js +0 -245
  119. package/lib/query/evm.js.map +0 -1
  120. package/lib/query/solana.d.ts +0 -224
  121. package/lib/query/solana.d.ts.map +0 -1
  122. package/lib/query/solana.js +0 -121
  123. package/lib/query/solana.js.map +0 -1
  124. package/lib/query/substrate.d.ts +0 -173
  125. package/lib/query/substrate.d.ts.map +0 -1
  126. package/lib/query/substrate.js +0 -71
  127. package/lib/query/substrate.js.map +0 -1
  128. package/src/query/common.ts +0 -83
  129. package/src/query/evm.ts +0 -677
  130. package/src/query/solana.ts +0 -438
  131. package/src/query/substrate.ts +0 -288
@@ -0,0 +1,114 @@
1
+ import {
2
+ ANY,
3
+ ANY_OBJECT,
4
+ array,
5
+ BIG_NAT,
6
+ BOOLEAN,
7
+ BYTES,
8
+ constant,
9
+ NAT,
10
+ nullable,
11
+ object,
12
+ oneOf,
13
+ option,
14
+ STRING,
15
+ withDefault,
16
+ } from '@subsquid/util-internal-validation'
17
+ import {isEmpty, project} from '../util'
18
+ import type {FieldSelection} from './fields'
19
+
20
+ export function patchQueryFields(fields: FieldSelection): FieldSelection {
21
+ fields = {...fields}
22
+
23
+ let {number, hash, ...block} = (fields.block as any) ?? {}
24
+ fields.block = {
25
+ ...block,
26
+ number: true,
27
+ hash: true,
28
+ }
29
+
30
+ return fields
31
+ }
32
+
33
+ export function getBlockSchema(fields: FieldSelection) {
34
+ return object({
35
+ header: getBlockHeaderSchema(fields.block),
36
+ extrinsics: withDefault([], array(getExtrinsicSchema(fields.extrinsic))),
37
+ calls: withDefault([], array(getCallSchema(fields.call))),
38
+ events: withDefault([], array(getEventSchema(fields.event))),
39
+ })
40
+ }
41
+
42
+ function getBlockHeaderSchema(fields: FieldSelection['block']) {
43
+ return object({
44
+ number: NAT,
45
+ hash: BYTES,
46
+ ...project(fields, {
47
+ parentHash: BYTES,
48
+ stateRoot: BYTES,
49
+ extrinsicsRoot: BYTES,
50
+ digest: object({
51
+ logs: array(BYTES),
52
+ }),
53
+ specName: STRING,
54
+ specVersion: NAT,
55
+ implName: STRING,
56
+ implVersion: NAT,
57
+ timestamp: option(NAT),
58
+ validator: option(BYTES),
59
+ }),
60
+ })
61
+ }
62
+
63
+ const ExtrinsicSignature = object({
64
+ address: BYTES,
65
+ signature: ANY_OBJECT,
66
+ signedExtensions: ANY_OBJECT,
67
+ })
68
+
69
+ function getExtrinsicSchema(fields: FieldSelection['extrinsic']) {
70
+ return object(
71
+ project(fields, {
72
+ index: NAT,
73
+ version: NAT,
74
+ signature: option(ExtrinsicSignature),
75
+ fee: option(BIG_NAT),
76
+ tip: option(BIG_NAT),
77
+ error: nullable(ANY),
78
+ success: option(BOOLEAN),
79
+ hash: option(BYTES),
80
+ })
81
+ )
82
+ }
83
+
84
+ function getCallSchema(fields: FieldSelection['call']) {
85
+ return object(
86
+ project(fields, {
87
+ extrinsicIndex: NAT,
88
+ address: array(NAT),
89
+ name: STRING,
90
+ args: ANY,
91
+ origin: option(ANY),
92
+ error: nullable(ANY),
93
+ success: option(BOOLEAN),
94
+ })
95
+ )
96
+ }
97
+
98
+ function getEventSchema(fields: FieldSelection['event']) {
99
+ return object(
100
+ project(fields, {
101
+ index: NAT,
102
+ name: STRING,
103
+ args: ANY,
104
+ phase: oneOf({
105
+ Initialization: constant('Initialization'),
106
+ ApplyExtrinsic: constant('ApplyExtrinsic'),
107
+ Finalization: constant('Finalization'),
108
+ }),
109
+ extrinsicIndex: option(NAT),
110
+ callAddress: option(array(NAT)),
111
+ topics: array(BYTES),
112
+ })
113
+ )
114
+ }
@@ -0,0 +1,25 @@
1
+ export type Simplify<T> = {
2
+ [K in keyof T]: T[K]
3
+ } & {}
4
+
5
+
6
+ export type Selector<Fields extends string | number | symbol> = {
7
+ [P in Fields]?: boolean
8
+ }
9
+
10
+
11
+ export type Select<T, F> = T extends any ? Simplify<Pick<T, Extract<keyof T, F>>> : never
12
+
13
+
14
+ export type GetFields<F> = keyof {
15
+ [K in keyof F as true extends F[K] ? K : never]: true
16
+ }
17
+
18
+
19
+ export type AddPrefix<Prefix extends string, S extends string> = `${Prefix}${Capitalize<S>}`
20
+
21
+
22
+ export type RemovePrefix<Prefix extends string, T>
23
+ = T extends `${Prefix}${infer S}`
24
+ ? Uncapitalize<S>
25
+ : never
@@ -0,0 +1,23 @@
1
+
2
+ export function project<T extends object, F extends { [K in keyof T]?: boolean }>(
3
+ fields: F | undefined,
4
+ obj: T
5
+ ): Partial<T> {
6
+ if (fields == null) return {}
7
+ let result: Partial<T> = {}
8
+ let key: keyof T
9
+ for (key in obj) {
10
+ if (fields[key]) {
11
+ result[key] = obj[key]
12
+ }
13
+ }
14
+ return result
15
+ }
16
+
17
+
18
+ export function isEmpty(obj: object): boolean {
19
+ for (let _ in obj) {
20
+ return false
21
+ }
22
+ return true
23
+ }
package/src/util.ts ADDED
@@ -0,0 +1,56 @@
1
+ import {createFuture, type Future} from '@subsquid/util-internal'
2
+
3
+ export class Timer {
4
+ private timeout?: any
5
+
6
+ constructor(private ms: number, private cb: () => void) {}
7
+
8
+ start(ms?: number): void {
9
+ if (this.timeout != null) return
10
+ this.timeout = setTimeout(() => {
11
+ this.timeout = undefined
12
+ this.cb()
13
+ }, ms ?? this.ms)
14
+ }
15
+
16
+ stop(): void {
17
+ if (this.timeout == null) return
18
+ clearTimeout(this.timeout)
19
+ this.timeout = undefined
20
+ }
21
+
22
+ reset(): void {
23
+ this.stop()
24
+ this.start()
25
+ }
26
+ }
27
+
28
+ export class Semaphore {
29
+ private future?: Future<void>
30
+
31
+ constructor(private isReady: boolean) {}
32
+
33
+ wait(): Promise<void> | void {
34
+ if (this.isReady) return
35
+ this.future = this.future || createFuture()
36
+ return this.future.promise()
37
+ }
38
+
39
+ ready(): void {
40
+ this.isReady = true
41
+ this.future?.resolve()
42
+ this.future = undefined
43
+ }
44
+
45
+ unready(): void {
46
+ this.isReady = false
47
+ }
48
+
49
+ reject(err: Error) {
50
+ let future = this.future
51
+ if (future) {
52
+ this.future = undefined
53
+ future.reject(err)
54
+ }
55
+ }
56
+ }
@@ -1,56 +0,0 @@
1
- import { Validator } from '@subsquid/util-internal-validation';
2
- /**
3
- * @example '0x0123456789abcdef'
4
- */
5
- export type Hex = string & {};
6
- /**
7
- * @example '123456789ABCDEFGHIJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
8
- */
9
- export type Base58 = string & {};
10
- /**
11
- * @example '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/='
12
- */
13
- export type Base64 = string & {};
14
- export type Simplify<T> = {
15
- [K in keyof T]: T[K];
16
- } & {};
17
- export type ConditionalKeys<T, V> = {
18
- [Key in keyof T]-?: T[Key] extends V ? (T[Key] extends never ? (V extends never ? Key : never) : Key) : never;
19
- }[keyof T];
20
- export type ConditionalPick<T, V> = Simplify<Pick<T, ConditionalKeys<T, V>>>;
21
- export type ConditionalOmit<T, V> = Simplify<Omit<T, ConditionalKeys<T, V>>>;
22
- export type Selector<Props extends PropertyKey = PropertyKey, Required extends Props = never> = Simplify<{
23
- [P in Exclude<Props, Required>]?: boolean;
24
- } & {
25
- [P in Required]-?: boolean;
26
- }>;
27
- export type Select<T, S> = S extends any ? {
28
- [K in keyof T as K extends keyof S ? (true extends S[K] ? K : never) : never]: T[K];
29
- } : never;
30
- export type Selection = {
31
- [P in string]?: boolean | Selection;
32
- };
33
- export type Trues<T extends Selection> = Simplify<{
34
- [K in keyof T]-?: [T[K] & {}] extends [Selection] ? Trues<T[K] & {}> : true;
35
- }>;
36
- export type Selected<T, K extends keyof T> = NonNullable<T[K]>;
37
- export type SelectionOf<T> = {
38
- [K in keyof T]?: T[K] extends object ? true | SelectionOf<T[K]> : true;
39
- };
40
- export type PortalQuery = {
41
- fromBlock?: number;
42
- toBlock?: number;
43
- parentBlockHash?: string;
44
- [key: string]: unknown;
45
- };
46
- export type PortalBlock = {
47
- header: {
48
- number: number;
49
- hash: string;
50
- };
51
- };
52
- export declare function project<T, S extends keyof T>(obj: T, fields: Selector<S> | undefined): Partial<T>;
53
- export type ObjectValidatorShape<T> = Simplify<{
54
- [K in keyof T as [T[K]] extends [undefined] ? never : K]-?: Validator<T[K], any>;
55
- }>;
56
- //# sourceMappingURL=common.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/query/common.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.project = project;
4
- function project(obj, fields) {
5
- let result = {};
6
- if (fields == null)
7
- return result;
8
- let key;
9
- for (key in obj) {
10
- if (!fields[key])
11
- continue;
12
- result[key] = obj[key];
13
- }
14
- return result;
15
- }
16
- //# sourceMappingURL=common.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/query/common.ts"],"names":[],"mappings":";;AAqEA,0BASC;AATD,SAAgB,OAAO,CAAuB,GAAM,EAAE,MAA+B;IACjF,IAAI,MAAM,GAAG,EAAgB,CAAA;IAC7B,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,MAAM,CAAA;IACjC,IAAI,GAAY,CAAA;IAChB,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,CAAE,MAAM,CAAC,GAAG,CAAa;YAAE,SAAQ;QACvC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IACD,OAAO,MAAM,CAAA;AACjB,CAAC"}
@@ -1,267 +0,0 @@
1
- import { Validator } from '@subsquid/util-internal-validation';
2
- import { Select, Selector, Trues, Hex, ConditionalOmit, Simplify, PortalQuery, type Selected } from './common';
3
- type AddPrefix<Prefix extends string, S> = S extends string ? `${Prefix}${Capitalize<S>}` : never;
4
- type RemovePrefix<Prefix extends string, T> = T extends `${Prefix}${infer S}` ? Uncapitalize<S> : never;
5
- type RemoveKeysPrefix<Prefix extends string, T> = {
6
- [K in keyof T as RemovePrefix<Prefix, K>]: T[K];
7
- };
8
- export type BlockHeaderFields = {
9
- number: number;
10
- hash: Hex;
11
- parentHash: Hex;
12
- timestamp: number;
13
- transactionsRoot: Hex;
14
- receiptsRoot: Hex;
15
- stateRoot: Hex;
16
- logsBloom: Hex;
17
- sha3Uncles: Hex;
18
- extraData: Hex;
19
- miner: Hex;
20
- nonce: Hex;
21
- mixHash: Hex;
22
- size: number;
23
- gasLimit: bigint;
24
- gasUsed: bigint;
25
- difficulty: bigint;
26
- totalDifficulty?: bigint;
27
- baseFeePerGas: bigint;
28
- blobGasUsed: bigint;
29
- excessBlobGas: bigint;
30
- l1BlockNumber?: number;
31
- };
32
- export type TransactionFields = {
33
- transactionIndex: number;
34
- hash: Hex;
35
- nonce: number;
36
- from: Hex;
37
- to?: Hex;
38
- input: Hex;
39
- value: bigint;
40
- gas: bigint;
41
- gasPrice: bigint;
42
- maxFeePerGas?: bigint;
43
- maxPriorityFeePerGas?: bigint;
44
- v: bigint;
45
- r: Hex;
46
- s: Hex;
47
- yParity?: number;
48
- chainId?: number;
49
- sighash?: Hex;
50
- contractAddress?: Hex;
51
- gasUsed: bigint;
52
- cumulativeGasUsed: bigint;
53
- effectiveGasPrice: bigint;
54
- type: number;
55
- status: number;
56
- blobVersionedHashes?: Hex[];
57
- l1Fee?: bigint;
58
- l1FeeScalar?: number;
59
- l1GasPrice?: bigint;
60
- l1GasUsed?: bigint;
61
- l1BlobBaseFee?: bigint;
62
- l1BlobBaseFeeScalar?: number;
63
- l1BaseFeeScalar?: number;
64
- };
65
- export type LogFields = {
66
- logIndex: number;
67
- transactionIndex: number;
68
- transactionHash: Hex;
69
- address: Hex;
70
- data: Hex;
71
- topics: Hex[];
72
- };
73
- export type TraceType = 'create' | 'call' | 'suicide' | 'reward';
74
- export type TraceBaseFields = {
75
- type: TraceType;
76
- transactionIndex: number;
77
- traceAddress: number[];
78
- subtraces: number;
79
- error: string | null;
80
- revertReason?: string;
81
- };
82
- export type TraceCreateFields = TraceBaseFields & {
83
- type: 'create';
84
- };
85
- export type TraceCreateActionFields = {
86
- from: Hex;
87
- value: bigint;
88
- gas: bigint;
89
- init: Hex;
90
- };
91
- export type TraceCreateResultFields = {
92
- gasUsed: bigint;
93
- code?: Hex;
94
- address: Hex;
95
- };
96
- export type TraceCallFields = TraceBaseFields & {
97
- type: 'call';
98
- };
99
- export type TraceCallActionFields = {
100
- callType: string;
101
- from: Hex;
102
- to: Hex;
103
- value?: bigint;
104
- gas: bigint;
105
- input: Hex;
106
- sighash?: Hex;
107
- };
108
- export type TraceCallResultFields = {
109
- gasUsed: bigint;
110
- output?: Hex;
111
- };
112
- export type TraceSuicideFields = TraceBaseFields & {
113
- type: 'suicide';
114
- };
115
- export type TraceSuicideActionFields = {
116
- address: Hex;
117
- refundAddress: Hex;
118
- balance: bigint;
119
- };
120
- export type TraceRewardFields = TraceBaseFields & {
121
- type: 'reward';
122
- };
123
- export type TraceRewardActionFields = {
124
- author: Hex;
125
- value: bigint;
126
- type: string;
127
- };
128
- export type StateDiffBaseFields = {
129
- transactionIndex: number;
130
- address: Hex;
131
- key: 'balance' | 'code' | 'nonce' | Hex;
132
- kind: string;
133
- };
134
- export type StateDiffAddFields = StateDiffBaseFields & {
135
- kind: '+';
136
- prev?: undefined;
137
- next: Hex;
138
- };
139
- export type StateDiffNoChangeFields = StateDiffBaseFields & {
140
- kind: '=';
141
- prev?: undefined;
142
- next?: undefined;
143
- };
144
- export type StateDiffChangeFields = StateDiffBaseFields & {
145
- kind: '*';
146
- prev: Hex;
147
- next: Hex;
148
- };
149
- export type StateDiffDeleteFields = StateDiffBaseFields & {
150
- kind: '-';
151
- prev: Hex;
152
- next?: undefined;
153
- };
154
- export type BlockHeaderFieldSelection = Selector<keyof BlockHeaderFields, 'number' | 'hash'>;
155
- export type BlockHeader<T extends BlockHeaderFieldSelection = Trues<BlockHeaderFieldSelection>> = Select<BlockHeaderFields, T>;
156
- export type TransactionFieldSelection = Selector<keyof TransactionFields>;
157
- export type Transaction<T extends TransactionFieldSelection = Trues<TransactionFieldSelection>> = Select<TransactionFields, T>;
158
- export type LogFieldSelection = Selector<keyof LogFields>;
159
- export type Log<T extends LogFieldSelection = Trues<LogFieldSelection>> = Select<LogFields, T>;
160
- export type TraceCreateFieldSelection = Selector<keyof TraceBaseFields | AddPrefix<'create', keyof TraceCreateActionFields> | AddPrefix<'createResult', keyof TraceCreateResultFields>>;
161
- export type TraceCallFieldSelection = Selector<keyof TraceBaseFields | AddPrefix<'call', keyof TraceCallActionFields> | AddPrefix<'callResult', keyof TraceCallResultFields>>;
162
- export type TraceSuicideFieldSelection = Selector<keyof TraceBaseFields | AddPrefix<'suicide', keyof TraceSuicideActionFields>>;
163
- export type TraceRewardFieldSelection = Selector<keyof TraceBaseFields | AddPrefix<'reward', keyof TraceRewardActionFields>>;
164
- export type TraceFieldSelection = Simplify<TraceCreateFieldSelection & TraceCallFieldSelection & TraceSuicideFieldSelection & TraceRewardFieldSelection>;
165
- export type TraceCreateAction<F extends TraceFieldSelection = Trues<TraceFieldSelection>> = Select<TraceCreateActionFields, RemoveKeysPrefix<'create', F>>;
166
- export type TraceCreateResult<F extends TraceCreateFieldSelection = Trues<TraceCreateFieldSelection>> = Select<TraceCreateResultFields, RemoveKeysPrefix<'createResult', F>>;
167
- export type TraceCallAction<F extends TraceCallFieldSelection = Trues<TraceCallFieldSelection>> = Select<TraceCallActionFields, RemoveKeysPrefix<'call', F>>;
168
- export type TraceCallResult<F extends TraceCallFieldSelection = Trues<TraceCallFieldSelection>> = Select<TraceCallResultFields, RemoveKeysPrefix<'callResult', F>>;
169
- export type TraceSuicideAction<F extends TraceSuicideFieldSelection = Trues<TraceSuicideFieldSelection>> = Select<TraceSuicideActionFields, RemoveKeysPrefix<'suicide', F>>;
170
- export type TraceRewardAction<F extends TraceRewardFieldSelection = Trues<TraceRewardFieldSelection>> = Select<TraceRewardActionFields, RemoveKeysPrefix<'reward', F>>;
171
- export type TraceCreate<F extends TraceCreateFieldSelection = Trues<TraceCreateFieldSelection>> = Simplify<Select<TraceCreateFields, F> & ConditionalOmit<{
172
- action: TraceCreateAction<F>;
173
- result?: TraceCreateResult<F>;
174
- }, {
175
- [k: string]: never;
176
- } | undefined>>;
177
- export type TraceCall<F extends TraceCallFieldSelection = Trues<TraceCallFieldSelection>> = Simplify<Select<TraceCallFields, F> & ConditionalOmit<{
178
- action: TraceCallAction<F>;
179
- result?: TraceCallResult<F>;
180
- }, {
181
- [k: string]: never;
182
- } | undefined>>;
183
- export type TraceSuicide<F extends TraceSuicideFieldSelection = Trues<TraceSuicideFieldSelection>> = Simplify<Select<TraceSuicideFields, F> & ConditionalOmit<{
184
- action: TraceSuicideAction<F>;
185
- }, {
186
- [k: string]: never;
187
- } | undefined>>;
188
- export type TraceReward<F extends TraceRewardFieldSelection = Trues<TraceRewardFieldSelection>> = Simplify<Select<TraceRewardFields, F> & ConditionalOmit<{
189
- action: TraceRewardAction<F>;
190
- }, {
191
- [k: string]: never;
192
- } | undefined>>;
193
- export type Trace<F extends TraceFieldSelection = Trues<TraceFieldSelection>> = F extends any ? TraceCreate<F> | TraceCall<F> | TraceSuicide<F> | TraceReward<F> : never;
194
- export type StateDiffFieldSelection = Selector<keyof StateDiffBaseFields>;
195
- export type StateDiffNoChange<F extends StateDiffFieldSelection = Trues<StateDiffFieldSelection>> = Select<StateDiffNoChangeFields, F>;
196
- export type StateDiffAdd<F extends StateDiffFieldSelection = Trues<StateDiffFieldSelection>> = Select<StateDiffAddFields, F>;
197
- export type StateDiffChange<F extends StateDiffFieldSelection = Trues<StateDiffFieldSelection>> = Select<StateDiffChangeFields, F>;
198
- export type StateDiffDelete<F extends StateDiffFieldSelection = Trues<StateDiffFieldSelection>> = Select<StateDiffDeleteFields, F>;
199
- export type StateDiff<F extends StateDiffFieldSelection = Trues<StateDiffFieldSelection>> = F extends any ? StateDiffNoChange<F> | StateDiffAdd<F> | StateDiffChange<F> | StateDiffDelete<F> : never;
200
- export type FieldSelection = {
201
- block?: BlockHeaderFieldSelection;
202
- transaction?: TransactionFieldSelection;
203
- log?: LogFieldSelection;
204
- trace?: TraceFieldSelection;
205
- stateDiff?: StateDiffFieldSelection;
206
- };
207
- export type LogRequest = {
208
- address?: Hex[];
209
- topic0?: Hex[];
210
- topic1?: Hex[];
211
- topic2?: Hex[];
212
- topic3?: Hex[];
213
- transaction?: boolean;
214
- transactionTraces?: boolean;
215
- transactionLogs?: boolean;
216
- transactionStateDiffs?: boolean;
217
- };
218
- export type TransactionRequest = {
219
- to?: Hex[];
220
- from?: Hex[];
221
- sighash?: Hex[];
222
- type?: number[];
223
- logs?: boolean;
224
- traces?: boolean;
225
- stateDiffs?: boolean;
226
- };
227
- export type TraceRequest = {
228
- type?: TraceType[];
229
- createFrom?: Hex[];
230
- callTo?: Hex[];
231
- callFrom?: Hex[];
232
- callSighash?: Hex[];
233
- suicideRefundAddress?: Hex[];
234
- rewardAuthor?: Hex[];
235
- transaction?: boolean;
236
- transactionLogs?: boolean;
237
- subtraces?: boolean;
238
- parents?: boolean;
239
- };
240
- export type StateDiffRequest = {
241
- address?: Hex[];
242
- key?: Hex[];
243
- kind?: string[];
244
- transaction?: boolean;
245
- };
246
- export type DataRequest = {
247
- logs?: LogRequest[];
248
- transactions?: TransactionRequest[];
249
- traces?: TraceRequest[];
250
- stateDiffs?: StateDiffRequest[];
251
- includeAllBlocks?: boolean;
252
- };
253
- export type Query<F extends FieldSelection = FieldSelection> = Simplify<PortalQuery & {
254
- type: 'evm';
255
- fields: F;
256
- } & DataRequest>;
257
- export type Block<F extends FieldSelection> = Simplify<{
258
- header: BlockHeader<Selected<F, 'block'>>;
259
- logs: Log<Selected<F, 'log'>>[];
260
- transactions: Transaction<Selected<F, 'transaction'>>[];
261
- traces: Trace<Selected<F, 'trace'>>[];
262
- stateDiffs: StateDiff<Selected<F, 'stateDiff'>>[];
263
- }>;
264
- export declare const getBlockSchema: <F extends FieldSelection>(fields: F) => Validator<Block<F>, unknown>;
265
- export declare function isEmpty(obj: object): boolean;
266
- export {};
267
- //# sourceMappingURL=evm.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../src/query/evm.ts"],"names":[],"mappings":"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"}