@xyo-network/evm-call-witness 6.1.0 → 7.0.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.
- package/dist/neutral/Diviner.d.ts +73 -4
- package/dist/neutral/Diviner.d.ts.map +1 -1
- package/dist/neutral/Payload.d.ts +365 -19
- package/dist/neutral/Payload.d.ts.map +1 -1
- package/dist/neutral/Witness.d.ts.map +1 -1
- package/dist/neutral/index.mjs +81 -18
- package/dist/neutral/index.mjs.map +3 -3
- package/package.json +33 -41
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Promisable } from '@xylabs/sdk-js';
|
|
2
2
|
import type { DivinerConfig, DivinerParams, Payload, Schema } from '@xyo-network/sdk-js';
|
|
3
3
|
import { AbstractDiviner } from '@xyo-network/sdk-js';
|
|
4
|
+
import * as z from 'zod/mini';
|
|
4
5
|
import { EvmCallDivinerLabels } from './Labels.ts';
|
|
5
6
|
import type { EvmCallResult } from './Payload.ts';
|
|
6
7
|
export type FindCallResult<TResult = string, TPayload = Payload> = [TResult, TPayload] | [undefined, TPayload] | [undefined, undefined];
|
|
@@ -16,14 +17,82 @@ export declare const EvmCallResultsSchema: "network.xyo.evm.call.results" & {
|
|
|
16
17
|
readonly __schema: true;
|
|
17
18
|
};
|
|
18
19
|
export type EvmCallResultsSchema = typeof EvmCallResultsSchema;
|
|
19
|
-
export
|
|
20
|
+
export declare const EvmCallResultsEntryZod: z.ZodMiniObject<{
|
|
21
|
+
args: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniUnknown>>;
|
|
22
|
+
result: z.ZodMiniUnknown;
|
|
23
|
+
}, z.core.$strip>;
|
|
24
|
+
export type EvmCallResultsEntry = z.infer<typeof EvmCallResultsEntryZod>;
|
|
25
|
+
export declare const EvmCallResultsZod: z.ZodMiniObject<{
|
|
26
|
+
schema: z.ZodMiniLiteral<"network.xyo.evm.call.results" & {
|
|
27
|
+
readonly __schema: true;
|
|
28
|
+
}>;
|
|
29
|
+
address: z.ZodMiniString<string>;
|
|
30
|
+
chainId: z.ZodMiniNumber<number>;
|
|
31
|
+
results: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniObject<{
|
|
32
|
+
args: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniUnknown>>;
|
|
33
|
+
result: z.ZodMiniUnknown;
|
|
34
|
+
}, z.core.$strip>>>;
|
|
35
|
+
}, z.core.$strip>;
|
|
36
|
+
export type EvmCallResults = z.infer<typeof EvmCallResultsZod>;
|
|
37
|
+
export declare const isEvmCallResults: <T>(value: T) => value is T & {
|
|
38
|
+
schema: "network.xyo.evm.call.results" & {
|
|
39
|
+
readonly __schema: true;
|
|
40
|
+
};
|
|
20
41
|
address: string;
|
|
21
42
|
chainId: number;
|
|
22
43
|
results?: Record<string, {
|
|
23
|
-
args?: unknown[];
|
|
24
44
|
result: unknown;
|
|
25
|
-
|
|
26
|
-
}
|
|
45
|
+
args?: unknown[] | undefined;
|
|
46
|
+
}> | undefined;
|
|
47
|
+
};
|
|
48
|
+
export declare const asEvmCallResults: {
|
|
49
|
+
<T>(value: T): (T & {
|
|
50
|
+
schema: "network.xyo.evm.call.results" & {
|
|
51
|
+
readonly __schema: true;
|
|
52
|
+
};
|
|
53
|
+
address: string;
|
|
54
|
+
chainId: number;
|
|
55
|
+
results?: Record<string, {
|
|
56
|
+
result: unknown;
|
|
57
|
+
args?: unknown[] | undefined;
|
|
58
|
+
}> | undefined;
|
|
59
|
+
}) | undefined;
|
|
60
|
+
<T>(value: T, assert: import("@xylabs/sdk-js").ZodFactoryConfig): T & {
|
|
61
|
+
schema: "network.xyo.evm.call.results" & {
|
|
62
|
+
readonly __schema: true;
|
|
63
|
+
};
|
|
64
|
+
address: string;
|
|
65
|
+
chainId: number;
|
|
66
|
+
results?: Record<string, {
|
|
67
|
+
result: unknown;
|
|
68
|
+
args?: unknown[] | undefined;
|
|
69
|
+
}> | undefined;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
export declare const toEvmCallResults: {
|
|
73
|
+
<T>(value: T): (T & {
|
|
74
|
+
schema: "network.xyo.evm.call.results" & {
|
|
75
|
+
readonly __schema: true;
|
|
76
|
+
};
|
|
77
|
+
address: string;
|
|
78
|
+
chainId: number;
|
|
79
|
+
results?: Record<string, {
|
|
80
|
+
result: unknown;
|
|
81
|
+
args?: unknown[] | undefined;
|
|
82
|
+
}> | undefined;
|
|
83
|
+
}) | undefined;
|
|
84
|
+
<T>(value: T, assert: import("@xylabs/sdk-js").ZodFactoryConfig): T & {
|
|
85
|
+
schema: "network.xyo.evm.call.results" & {
|
|
86
|
+
readonly __schema: true;
|
|
87
|
+
};
|
|
88
|
+
address: string;
|
|
89
|
+
chainId: number;
|
|
90
|
+
results?: Record<string, {
|
|
91
|
+
result: unknown;
|
|
92
|
+
args?: unknown[] | undefined;
|
|
93
|
+
}> | undefined;
|
|
94
|
+
};
|
|
95
|
+
};
|
|
27
96
|
export declare class EvmCallDiviner<TParams extends EvmCallDivinerParams = EvmCallDivinerParams> extends AbstractDiviner<TParams> {
|
|
28
97
|
static readonly configSchemas: Schema[];
|
|
29
98
|
static readonly defaultConfigSchema: Schema;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAIhD,OAAO,KAAK,EACV,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAC9C,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,eAAe,EAChB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAE7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAGjD,MAAM,MAAM,cAAc,CAAC,OAAO,GAAG,MAAM,EAAE,QAAQ,GAAG,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;AAEvI,eAAO,MAAM,0BAA0B;;CAAwD,CAAA;AAC/F,MAAM,MAAM,0BAA0B,GAAG,OAAO,0BAA0B,CAAA;AAE1E,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAAC;IAC/C,MAAM,EAAE,0BAA0B,CAAA;CACnC,CAAC,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAAC,oBAAoB,CAAC,CAAA;AAEtE,eAAO,MAAM,oBAAoB;;CAAiD,CAAA;AAClF,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAA;AAE9D,eAAO,MAAM,sBAAsB;;;iBAGjC,CAAA;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAExE,eAAO,MAAM,iBAAiB;;;;;;;;;;iBAI5B,CAAA;AAEF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE9D,eAAO,MAAM,gBAAgB;;;;;;;;;;CAAkC,CAAA;AAC/D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;CAAsD,CAAA;AACnF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;CAAsD,CAAA;AAEnF,qBAAa,cAAc,CAAC,OAAO,SAAS,oBAAoB,GAAG,oBAAoB,CAAE,SAAQ,eAAe,CAAC,OAAO,CAAC;IACvH,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAuD;IACvG,gBAAyB,mBAAmB,EAAE,MAAM,CAA6B;IACjF,gBAAyB,MAAM,EAAE,oBAAoB,CAA+C;IAEpG,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,OAAO,GAAG,SAAS;IAKxI,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,SAAS,OAAO,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS;IASzH,SAAS,CAAC,0BAA0B,CAAC,WAAW,EAAE,aAAa,EAAE,GAAG,cAAc;cAQzD,aAAa,CAAC,UAAU,GAAE,aAAa,EAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAyBnG,SAAS,CAAC,aAAa,CAAC,WAAW,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;CAkB7F"}
|
|
@@ -1,36 +1,382 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as z from 'zod/mini';
|
|
2
2
|
export declare const EvmCallSchema: "network.xyo.evm.call" & {
|
|
3
3
|
readonly __schema: true;
|
|
4
4
|
};
|
|
5
5
|
export type EvmCallSchema = typeof EvmCallSchema;
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
export declare const EvmCallZod: z.ZodMiniObject<{
|
|
7
|
+
schema: z.ZodMiniLiteral<"network.xyo.evm.call" & {
|
|
8
|
+
readonly __schema: true;
|
|
9
|
+
}>;
|
|
10
|
+
address: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
11
|
+
args: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniUnknown>>;
|
|
12
|
+
block: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
13
|
+
functionName: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
14
|
+
}, z.core.$strip>;
|
|
15
|
+
export type EvmCall = z.infer<typeof EvmCallZod>;
|
|
16
|
+
export declare const isEvmCall: <T>(value: T) => value is T & {
|
|
17
|
+
schema: "network.xyo.evm.call" & {
|
|
18
|
+
readonly __schema: true;
|
|
19
|
+
};
|
|
20
|
+
address?: string | undefined;
|
|
21
|
+
args?: unknown[] | undefined;
|
|
22
|
+
block?: number | undefined;
|
|
23
|
+
functionName?: string | undefined;
|
|
24
|
+
};
|
|
25
|
+
export declare const asEvmCall: {
|
|
26
|
+
<T>(value: T): (T & {
|
|
27
|
+
schema: "network.xyo.evm.call" & {
|
|
28
|
+
readonly __schema: true;
|
|
29
|
+
};
|
|
30
|
+
address?: string | undefined;
|
|
31
|
+
args?: unknown[] | undefined;
|
|
32
|
+
block?: number | undefined;
|
|
33
|
+
functionName?: string | undefined;
|
|
34
|
+
}) | undefined;
|
|
35
|
+
<T>(value: T, assert: import("@xylabs/sdk-js").ZodFactoryConfig): T & {
|
|
36
|
+
schema: "network.xyo.evm.call" & {
|
|
37
|
+
readonly __schema: true;
|
|
38
|
+
};
|
|
39
|
+
address?: string | undefined;
|
|
40
|
+
args?: unknown[] | undefined;
|
|
41
|
+
block?: number | undefined;
|
|
42
|
+
functionName?: string | undefined;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
export declare const toEvmCall: {
|
|
46
|
+
<T>(value: T): (T & {
|
|
47
|
+
schema: "network.xyo.evm.call" & {
|
|
48
|
+
readonly __schema: true;
|
|
49
|
+
};
|
|
50
|
+
address?: string | undefined;
|
|
51
|
+
args?: unknown[] | undefined;
|
|
52
|
+
block?: number | undefined;
|
|
53
|
+
functionName?: string | undefined;
|
|
54
|
+
}) | undefined;
|
|
55
|
+
<T>(value: T, assert: import("@xylabs/sdk-js").ZodFactoryConfig): T & {
|
|
56
|
+
schema: "network.xyo.evm.call" & {
|
|
57
|
+
readonly __schema: true;
|
|
58
|
+
};
|
|
59
|
+
address?: string | undefined;
|
|
60
|
+
args?: unknown[] | undefined;
|
|
61
|
+
block?: number | undefined;
|
|
62
|
+
functionName?: string | undefined;
|
|
63
|
+
};
|
|
64
|
+
};
|
|
12
65
|
export declare const EvmCallResultSchema: "network.xyo.evm.call.result" & {
|
|
13
66
|
readonly __schema: true;
|
|
14
67
|
};
|
|
15
68
|
export type EvmCallResultSchema = typeof EvmCallResultSchema;
|
|
16
|
-
export
|
|
69
|
+
export declare const EvmCallResultBaseZod: z.ZodMiniObject<{
|
|
70
|
+
schema: z.ZodMiniLiteral<"network.xyo.evm.call.result" & {
|
|
71
|
+
readonly __schema: true;
|
|
72
|
+
}>;
|
|
73
|
+
address: z.ZodMiniString<string>;
|
|
74
|
+
args: z.ZodMiniArray<z.ZodMiniUnknown>;
|
|
75
|
+
block: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
76
|
+
chainId: z.ZodMiniNumber<number>;
|
|
77
|
+
functionName: z.ZodMiniString<string>;
|
|
78
|
+
implementation: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
79
|
+
}, z.core.$strip>;
|
|
80
|
+
export type EvmCallResultBase = z.infer<typeof EvmCallResultBaseZod>;
|
|
81
|
+
export declare const EvmCallSuccessZod: z.ZodMiniObject<{
|
|
82
|
+
schema: z.ZodMiniLiteral<"network.xyo.evm.call.result" & {
|
|
83
|
+
readonly __schema: true;
|
|
84
|
+
}>;
|
|
85
|
+
address: z.ZodMiniString<string>;
|
|
86
|
+
args: z.ZodMiniArray<z.ZodMiniUnknown>;
|
|
87
|
+
block: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
88
|
+
chainId: z.ZodMiniNumber<number>;
|
|
89
|
+
functionName: z.ZodMiniString<string>;
|
|
90
|
+
implementation: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
91
|
+
result: z.ZodMiniUnknown;
|
|
92
|
+
}, z.core.$strip>;
|
|
93
|
+
export type EvmCallSuccess = EvmCallResultBase & {
|
|
94
|
+
result: unknown;
|
|
95
|
+
};
|
|
96
|
+
export declare const EvmCallFailureZod: z.ZodMiniObject<{
|
|
97
|
+
schema: z.ZodMiniLiteral<"network.xyo.evm.call.result" & {
|
|
98
|
+
readonly __schema: true;
|
|
99
|
+
}>;
|
|
100
|
+
address: z.ZodMiniString<string>;
|
|
101
|
+
args: z.ZodMiniArray<z.ZodMiniUnknown>;
|
|
102
|
+
block: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
103
|
+
chainId: z.ZodMiniNumber<number>;
|
|
104
|
+
functionName: z.ZodMiniString<string>;
|
|
105
|
+
implementation: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
106
|
+
error: z.ZodMiniString<string>;
|
|
107
|
+
}, z.core.$strip>;
|
|
108
|
+
export type EvmCallFailure = EvmCallResultBase & {
|
|
109
|
+
error: string;
|
|
110
|
+
};
|
|
111
|
+
export declare const EvmCallResultZod: z.ZodMiniUnion<readonly [z.ZodMiniObject<{
|
|
112
|
+
schema: z.ZodMiniLiteral<"network.xyo.evm.call.result" & {
|
|
113
|
+
readonly __schema: true;
|
|
114
|
+
}>;
|
|
115
|
+
address: z.ZodMiniString<string>;
|
|
116
|
+
args: z.ZodMiniArray<z.ZodMiniUnknown>;
|
|
117
|
+
block: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
118
|
+
chainId: z.ZodMiniNumber<number>;
|
|
119
|
+
functionName: z.ZodMiniString<string>;
|
|
120
|
+
implementation: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
121
|
+
result: z.ZodMiniUnknown;
|
|
122
|
+
}, z.core.$strip>, z.ZodMiniObject<{
|
|
123
|
+
schema: z.ZodMiniLiteral<"network.xyo.evm.call.result" & {
|
|
124
|
+
readonly __schema: true;
|
|
125
|
+
}>;
|
|
126
|
+
address: z.ZodMiniString<string>;
|
|
127
|
+
args: z.ZodMiniArray<z.ZodMiniUnknown>;
|
|
128
|
+
block: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
129
|
+
chainId: z.ZodMiniNumber<number>;
|
|
130
|
+
functionName: z.ZodMiniString<string>;
|
|
131
|
+
implementation: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
132
|
+
error: z.ZodMiniString<string>;
|
|
133
|
+
}, z.core.$strip>]>;
|
|
134
|
+
export type EvmCallResult = EvmCallSuccess | EvmCallFailure;
|
|
135
|
+
export declare const isEvmCallResult: <T>(value: T) => value is T & ({
|
|
136
|
+
schema: "network.xyo.evm.call.result" & {
|
|
137
|
+
readonly __schema: true;
|
|
138
|
+
};
|
|
17
139
|
address: string;
|
|
18
140
|
args: unknown[];
|
|
19
|
-
block?: number;
|
|
20
141
|
chainId: number;
|
|
21
142
|
functionName: string;
|
|
22
|
-
implementation?: string;
|
|
23
|
-
}, EvmCallResultSchema>;
|
|
24
|
-
export type EvmCallSuccess = EvmCallResultBase & {
|
|
25
143
|
result: unknown;
|
|
144
|
+
block?: number | undefined;
|
|
145
|
+
implementation?: string | undefined;
|
|
146
|
+
} | {
|
|
147
|
+
schema: "network.xyo.evm.call.result" & {
|
|
148
|
+
readonly __schema: true;
|
|
149
|
+
};
|
|
150
|
+
address: string;
|
|
151
|
+
args: unknown[];
|
|
152
|
+
chainId: number;
|
|
153
|
+
functionName: string;
|
|
154
|
+
error: string;
|
|
155
|
+
block?: number | undefined;
|
|
156
|
+
implementation?: string | undefined;
|
|
157
|
+
});
|
|
158
|
+
export declare const asEvmCallResult: {
|
|
159
|
+
<T>(value: T): (T & ({
|
|
160
|
+
schema: "network.xyo.evm.call.result" & {
|
|
161
|
+
readonly __schema: true;
|
|
162
|
+
};
|
|
163
|
+
address: string;
|
|
164
|
+
args: unknown[];
|
|
165
|
+
chainId: number;
|
|
166
|
+
functionName: string;
|
|
167
|
+
result: unknown;
|
|
168
|
+
block?: number | undefined;
|
|
169
|
+
implementation?: string | undefined;
|
|
170
|
+
} | {
|
|
171
|
+
schema: "network.xyo.evm.call.result" & {
|
|
172
|
+
readonly __schema: true;
|
|
173
|
+
};
|
|
174
|
+
address: string;
|
|
175
|
+
args: unknown[];
|
|
176
|
+
chainId: number;
|
|
177
|
+
functionName: string;
|
|
178
|
+
error: string;
|
|
179
|
+
block?: number | undefined;
|
|
180
|
+
implementation?: string | undefined;
|
|
181
|
+
})) | undefined;
|
|
182
|
+
<T>(value: T, assert: import("@xylabs/sdk-js").ZodFactoryConfig): T & ({
|
|
183
|
+
schema: "network.xyo.evm.call.result" & {
|
|
184
|
+
readonly __schema: true;
|
|
185
|
+
};
|
|
186
|
+
address: string;
|
|
187
|
+
args: unknown[];
|
|
188
|
+
chainId: number;
|
|
189
|
+
functionName: string;
|
|
190
|
+
result: unknown;
|
|
191
|
+
block?: number | undefined;
|
|
192
|
+
implementation?: string | undefined;
|
|
193
|
+
} | {
|
|
194
|
+
schema: "network.xyo.evm.call.result" & {
|
|
195
|
+
readonly __schema: true;
|
|
196
|
+
};
|
|
197
|
+
address: string;
|
|
198
|
+
args: unknown[];
|
|
199
|
+
chainId: number;
|
|
200
|
+
functionName: string;
|
|
201
|
+
error: string;
|
|
202
|
+
block?: number | undefined;
|
|
203
|
+
implementation?: string | undefined;
|
|
204
|
+
});
|
|
26
205
|
};
|
|
27
|
-
export
|
|
206
|
+
export declare const toEvmCallResult: {
|
|
207
|
+
<T>(value: T): (T & ({
|
|
208
|
+
schema: "network.xyo.evm.call.result" & {
|
|
209
|
+
readonly __schema: true;
|
|
210
|
+
};
|
|
211
|
+
address: string;
|
|
212
|
+
args: unknown[];
|
|
213
|
+
chainId: number;
|
|
214
|
+
functionName: string;
|
|
215
|
+
result: unknown;
|
|
216
|
+
block?: number | undefined;
|
|
217
|
+
implementation?: string | undefined;
|
|
218
|
+
} | {
|
|
219
|
+
schema: "network.xyo.evm.call.result" & {
|
|
220
|
+
readonly __schema: true;
|
|
221
|
+
};
|
|
222
|
+
address: string;
|
|
223
|
+
args: unknown[];
|
|
224
|
+
chainId: number;
|
|
225
|
+
functionName: string;
|
|
226
|
+
error: string;
|
|
227
|
+
block?: number | undefined;
|
|
228
|
+
implementation?: string | undefined;
|
|
229
|
+
})) | undefined;
|
|
230
|
+
<T>(value: T, assert: import("@xylabs/sdk-js").ZodFactoryConfig): T & ({
|
|
231
|
+
schema: "network.xyo.evm.call.result" & {
|
|
232
|
+
readonly __schema: true;
|
|
233
|
+
};
|
|
234
|
+
address: string;
|
|
235
|
+
args: unknown[];
|
|
236
|
+
chainId: number;
|
|
237
|
+
functionName: string;
|
|
238
|
+
result: unknown;
|
|
239
|
+
block?: number | undefined;
|
|
240
|
+
implementation?: string | undefined;
|
|
241
|
+
} | {
|
|
242
|
+
schema: "network.xyo.evm.call.result" & {
|
|
243
|
+
readonly __schema: true;
|
|
244
|
+
};
|
|
245
|
+
address: string;
|
|
246
|
+
args: unknown[];
|
|
247
|
+
chainId: number;
|
|
248
|
+
functionName: string;
|
|
249
|
+
error: string;
|
|
250
|
+
block?: number | undefined;
|
|
251
|
+
implementation?: string | undefined;
|
|
252
|
+
});
|
|
253
|
+
};
|
|
254
|
+
export declare const isEvmCallSuccess: <T>(value: T) => value is T & {
|
|
255
|
+
schema: "network.xyo.evm.call.result" & {
|
|
256
|
+
readonly __schema: true;
|
|
257
|
+
};
|
|
258
|
+
address: string;
|
|
259
|
+
args: unknown[];
|
|
260
|
+
chainId: number;
|
|
261
|
+
functionName: string;
|
|
262
|
+
result: unknown;
|
|
263
|
+
block?: number | undefined;
|
|
264
|
+
implementation?: string | undefined;
|
|
265
|
+
};
|
|
266
|
+
export declare const asEvmCallSuccess: {
|
|
267
|
+
<T>(value: T): (T & {
|
|
268
|
+
schema: "network.xyo.evm.call.result" & {
|
|
269
|
+
readonly __schema: true;
|
|
270
|
+
};
|
|
271
|
+
address: string;
|
|
272
|
+
args: unknown[];
|
|
273
|
+
chainId: number;
|
|
274
|
+
functionName: string;
|
|
275
|
+
result: unknown;
|
|
276
|
+
block?: number | undefined;
|
|
277
|
+
implementation?: string | undefined;
|
|
278
|
+
}) | undefined;
|
|
279
|
+
<T>(value: T, assert: import("@xylabs/sdk-js").ZodFactoryConfig): T & {
|
|
280
|
+
schema: "network.xyo.evm.call.result" & {
|
|
281
|
+
readonly __schema: true;
|
|
282
|
+
};
|
|
283
|
+
address: string;
|
|
284
|
+
args: unknown[];
|
|
285
|
+
chainId: number;
|
|
286
|
+
functionName: string;
|
|
287
|
+
result: unknown;
|
|
288
|
+
block?: number | undefined;
|
|
289
|
+
implementation?: string | undefined;
|
|
290
|
+
};
|
|
291
|
+
};
|
|
292
|
+
export declare const toEvmCallSuccess: {
|
|
293
|
+
<T>(value: T): (T & {
|
|
294
|
+
schema: "network.xyo.evm.call.result" & {
|
|
295
|
+
readonly __schema: true;
|
|
296
|
+
};
|
|
297
|
+
address: string;
|
|
298
|
+
args: unknown[];
|
|
299
|
+
chainId: number;
|
|
300
|
+
functionName: string;
|
|
301
|
+
result: unknown;
|
|
302
|
+
block?: number | undefined;
|
|
303
|
+
implementation?: string | undefined;
|
|
304
|
+
}) | undefined;
|
|
305
|
+
<T>(value: T, assert: import("@xylabs/sdk-js").ZodFactoryConfig): T & {
|
|
306
|
+
schema: "network.xyo.evm.call.result" & {
|
|
307
|
+
readonly __schema: true;
|
|
308
|
+
};
|
|
309
|
+
address: string;
|
|
310
|
+
args: unknown[];
|
|
311
|
+
chainId: number;
|
|
312
|
+
functionName: string;
|
|
313
|
+
result: unknown;
|
|
314
|
+
block?: number | undefined;
|
|
315
|
+
implementation?: string | undefined;
|
|
316
|
+
};
|
|
317
|
+
};
|
|
318
|
+
export declare const isEvmCallFailure: <T>(value: T) => value is T & {
|
|
319
|
+
schema: "network.xyo.evm.call.result" & {
|
|
320
|
+
readonly __schema: true;
|
|
321
|
+
};
|
|
322
|
+
address: string;
|
|
323
|
+
args: unknown[];
|
|
324
|
+
chainId: number;
|
|
325
|
+
functionName: string;
|
|
28
326
|
error: string;
|
|
327
|
+
block?: number | undefined;
|
|
328
|
+
implementation?: string | undefined;
|
|
329
|
+
};
|
|
330
|
+
export declare const asEvmCallFailure: {
|
|
331
|
+
<T>(value: T): (T & {
|
|
332
|
+
schema: "network.xyo.evm.call.result" & {
|
|
333
|
+
readonly __schema: true;
|
|
334
|
+
};
|
|
335
|
+
address: string;
|
|
336
|
+
args: unknown[];
|
|
337
|
+
chainId: number;
|
|
338
|
+
functionName: string;
|
|
339
|
+
error: string;
|
|
340
|
+
block?: number | undefined;
|
|
341
|
+
implementation?: string | undefined;
|
|
342
|
+
}) | undefined;
|
|
343
|
+
<T>(value: T, assert: import("@xylabs/sdk-js").ZodFactoryConfig): T & {
|
|
344
|
+
schema: "network.xyo.evm.call.result" & {
|
|
345
|
+
readonly __schema: true;
|
|
346
|
+
};
|
|
347
|
+
address: string;
|
|
348
|
+
args: unknown[];
|
|
349
|
+
chainId: number;
|
|
350
|
+
functionName: string;
|
|
351
|
+
error: string;
|
|
352
|
+
block?: number | undefined;
|
|
353
|
+
implementation?: string | undefined;
|
|
354
|
+
};
|
|
355
|
+
};
|
|
356
|
+
export declare const toEvmCallFailure: {
|
|
357
|
+
<T>(value: T): (T & {
|
|
358
|
+
schema: "network.xyo.evm.call.result" & {
|
|
359
|
+
readonly __schema: true;
|
|
360
|
+
};
|
|
361
|
+
address: string;
|
|
362
|
+
args: unknown[];
|
|
363
|
+
chainId: number;
|
|
364
|
+
functionName: string;
|
|
365
|
+
error: string;
|
|
366
|
+
block?: number | undefined;
|
|
367
|
+
implementation?: string | undefined;
|
|
368
|
+
}) | undefined;
|
|
369
|
+
<T>(value: T, assert: import("@xylabs/sdk-js").ZodFactoryConfig): T & {
|
|
370
|
+
schema: "network.xyo.evm.call.result" & {
|
|
371
|
+
readonly __schema: true;
|
|
372
|
+
};
|
|
373
|
+
address: string;
|
|
374
|
+
args: unknown[];
|
|
375
|
+
chainId: number;
|
|
376
|
+
functionName: string;
|
|
377
|
+
error: string;
|
|
378
|
+
block?: number | undefined;
|
|
379
|
+
implementation?: string | undefined;
|
|
380
|
+
};
|
|
29
381
|
};
|
|
30
|
-
export type EvmCallResult = EvmCallSuccess | EvmCallFailure;
|
|
31
|
-
export declare const isEvmCallSuccess: (payload?: EvmCallResult) => payload is EvmCallSuccess;
|
|
32
|
-
export declare const isEvmCallFailure: (payload?: EvmCallResult) => payload is EvmCallFailure;
|
|
33
|
-
export declare const isEvmCallResult: (x?: unknown) => x is EvmCallResult;
|
|
34
|
-
export declare const asEvmCallSuccess: (payload?: EvmCallResult) => EvmCallSuccess | undefined;
|
|
35
|
-
export declare const asEvmCallFailure: (payload?: EvmCallResult) => EvmCallFailure | undefined;
|
|
36
382
|
//# sourceMappingURL=Payload.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAE7B,eAAO,MAAM,aAAa;;CAAyC,CAAA;AACnE,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAA;AAEhD,eAAO,MAAM,UAAU;;;;;;;;iBAKrB,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAA;AAEhD,eAAO,MAAM,SAAS;;;;;;;;CAA2B,CAAA;AACjD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;CAAwC,CAAA;AAC9D,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;CAAwC,CAAA;AAE9D,eAAO,MAAM,mBAAmB;;CAAgD,CAAA;AAChF,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAA;AAE5D,eAAO,MAAM,oBAAoB;;;;;;;;;;iBAO/B,CAAA;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEpE,eAAO,MAAM,iBAAiB;;;;;;;;;;;iBAEmD,CAAA;AAEjF,MAAM,MAAM,cAAc,GAAG,iBAAiB,GAAG;IAC/C,MAAM,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;iBAEiD,CAAA;AAE/E,MAAM,MAAM,cAAc,GAAG,iBAAiB,GAAG;IAC/C,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;mBAAkD,CAAA;AAE/E,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,cAAc,CAAA;AAE3D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;EAAiC,CAAA;AAC7D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAoD,CAAA;AAChF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAoD,CAAA;AAEhF,eAAO,MAAM,gBAAgB;;;;;;;;;;;CAAkC,CAAA;AAC/D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;CAAsD,CAAA;AACnF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;CAAsD,CAAA;AAEnF,eAAO,MAAM,gBAAgB;;;;;;;;;;;CAAkC,CAAA;AAC/D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;CAAsD,CAAA;AACnF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;CAAsD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAG1C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEtD,OAAO,KAAK,EACV,OAAO,EAAE,aAAa,EAEvB,MAAM,cAAc,CAAA;AAGrB,qBAAa,cAAc,CAAC,OAAO,SAAS,oBAAoB,GAAG,oBAAoB,CAAE,SAAQ,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC;IAClJ,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAuD;IACvG,gBAAyB,mBAAmB,EAAE,MAAM,CAA6B;IAEjF,IAAI,GAAG,IACoD,YAAY,CACtE;cAEwB,cAAc,CAAC,UAAU,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAG1C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEtD,OAAO,KAAK,EACV,OAAO,EAAE,aAAa,EAEvB,MAAM,cAAc,CAAA;AAGrB,qBAAa,cAAc,CAAC,OAAO,SAAS,oBAAoB,GAAG,oBAAoB,CAAE,SAAQ,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC;IAClJ,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAuD;IACvG,gBAAyB,mBAAmB,EAAE,MAAM,CAA6B;IAEjF,IAAI,GAAG,IACoD,YAAY,CACtE;cAEwB,cAAc,CAAC,UAAU,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;CA0D9F"}
|
package/dist/neutral/index.mjs
CHANGED
|
@@ -1,31 +1,76 @@
|
|
|
1
1
|
// src/Diviner.ts
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
assertEx,
|
|
4
|
+
zodAsFactory as zodAsFactory2,
|
|
5
|
+
zodIsFactory as zodIsFactory2,
|
|
6
|
+
zodToFactory as zodToFactory2
|
|
7
|
+
} from "@xylabs/sdk-js";
|
|
3
8
|
import {
|
|
4
9
|
AbstractDiviner,
|
|
5
10
|
asSchema as asSchema2,
|
|
6
|
-
isPayloadOfSchemaType
|
|
11
|
+
isPayloadOfSchemaType,
|
|
12
|
+
PayloadZodOfSchema as PayloadZodOfSchema2
|
|
7
13
|
} from "@xyo-network/sdk-js";
|
|
14
|
+
import * as z2 from "zod/mini";
|
|
8
15
|
|
|
9
16
|
// src/Labels.ts
|
|
10
17
|
var EvmCallDivinerLabels = { "network.xyo.crypto.contract.info": "diviner" };
|
|
11
18
|
|
|
12
19
|
// src/Payload.ts
|
|
13
|
-
import {
|
|
20
|
+
import {
|
|
21
|
+
zodAsFactory,
|
|
22
|
+
zodIsFactory,
|
|
23
|
+
zodToFactory
|
|
24
|
+
} from "@xylabs/sdk-js";
|
|
25
|
+
import { asSchema, PayloadZodOfSchema } from "@xyo-network/sdk-js";
|
|
26
|
+
import * as z from "zod/mini";
|
|
14
27
|
var EvmCallSchema = asSchema("network.xyo.evm.call", true);
|
|
28
|
+
var EvmCallZod = z.extend(PayloadZodOfSchema(EvmCallSchema), {
|
|
29
|
+
address: z.optional(z.string()),
|
|
30
|
+
args: z.optional(z.array(z.unknown())),
|
|
31
|
+
block: z.optional(z.number()),
|
|
32
|
+
functionName: z.optional(z.string())
|
|
33
|
+
});
|
|
34
|
+
var isEvmCall = zodIsFactory(EvmCallZod);
|
|
35
|
+
var asEvmCall = zodAsFactory(EvmCallZod, "asEvmCall");
|
|
36
|
+
var toEvmCall = zodToFactory(EvmCallZod, "toEvmCall");
|
|
15
37
|
var EvmCallResultSchema = asSchema("network.xyo.evm.call.result", true);
|
|
16
|
-
var
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
var
|
|
38
|
+
var EvmCallResultBaseZod = z.extend(PayloadZodOfSchema(EvmCallResultSchema), {
|
|
39
|
+
address: z.string(),
|
|
40
|
+
args: z.array(z.unknown()),
|
|
41
|
+
block: z.optional(z.number()),
|
|
42
|
+
chainId: z.number(),
|
|
43
|
+
functionName: z.string(),
|
|
44
|
+
implementation: z.optional(z.string())
|
|
45
|
+
});
|
|
46
|
+
var EvmCallSuccessZod = z.extend(EvmCallResultBaseZod, { result: z.unknown() }).check(z.refine((value) => value.result !== void 0));
|
|
47
|
+
var EvmCallFailureZod = z.extend(EvmCallResultBaseZod, { error: z.string() }).check(z.refine((value) => value.error !== void 0));
|
|
48
|
+
var EvmCallResultZod = z.union([EvmCallSuccessZod, EvmCallFailureZod]);
|
|
49
|
+
var isEvmCallResult = zodIsFactory(EvmCallResultZod);
|
|
50
|
+
var asEvmCallResult = zodAsFactory(EvmCallResultZod, "asEvmCallResult");
|
|
51
|
+
var toEvmCallResult = zodToFactory(EvmCallResultZod, "toEvmCallResult");
|
|
52
|
+
var isEvmCallSuccess = zodIsFactory(EvmCallSuccessZod);
|
|
53
|
+
var asEvmCallSuccess = zodAsFactory(EvmCallSuccessZod, "asEvmCallSuccess");
|
|
54
|
+
var toEvmCallSuccess = zodToFactory(EvmCallSuccessZod, "toEvmCallSuccess");
|
|
55
|
+
var isEvmCallFailure = zodIsFactory(EvmCallFailureZod);
|
|
56
|
+
var asEvmCallFailure = zodAsFactory(EvmCallFailureZod, "asEvmCallFailure");
|
|
57
|
+
var toEvmCallFailure = zodToFactory(EvmCallFailureZod, "toEvmCallFailure");
|
|
25
58
|
|
|
26
59
|
// src/Diviner.ts
|
|
27
60
|
var EvmCallDivinerConfigSchema = asSchema2("network.xyo.evm.call.diviner.config", true);
|
|
28
61
|
var EvmCallResultsSchema = asSchema2("network.xyo.evm.call.results", true);
|
|
62
|
+
var EvmCallResultsEntryZod = z2.object({
|
|
63
|
+
args: z2.optional(z2.array(z2.unknown())),
|
|
64
|
+
result: z2.unknown()
|
|
65
|
+
});
|
|
66
|
+
var EvmCallResultsZod = z2.extend(PayloadZodOfSchema2(EvmCallResultsSchema), {
|
|
67
|
+
address: z2.string(),
|
|
68
|
+
chainId: z2.number(),
|
|
69
|
+
results: z2.optional(z2.record(z2.string(), EvmCallResultsEntryZod))
|
|
70
|
+
});
|
|
71
|
+
var isEvmCallResults = zodIsFactory2(EvmCallResultsZod);
|
|
72
|
+
var asEvmCallResults = zodAsFactory2(EvmCallResultsZod, "asEvmCallResults");
|
|
73
|
+
var toEvmCallResults = zodToFactory2(EvmCallResultsZod, "toEvmCallResults");
|
|
29
74
|
var EvmCallDiviner = class _EvmCallDiviner extends AbstractDiviner {
|
|
30
75
|
static configSchemas = [...super.configSchemas, EvmCallDivinerConfigSchema];
|
|
31
76
|
static defaultConfigSchema = EvmCallDivinerConfigSchema;
|
|
@@ -49,7 +94,7 @@ var EvmCallDiviner = class _EvmCallDiviner extends AbstractDiviner {
|
|
|
49
94
|
};
|
|
50
95
|
}
|
|
51
96
|
async divineHandler(inPayloads = []) {
|
|
52
|
-
const callResults = inPayloads.filter(
|
|
97
|
+
const callResults = inPayloads.filter(isPayloadOfSchemaType(EvmCallResultSchema));
|
|
53
98
|
const addresses = Object.keys(
|
|
54
99
|
// eslint-disable-next-line unicorn/no-array-reduce
|
|
55
100
|
callResults.reduce((prev, result2) => {
|
|
@@ -94,7 +139,7 @@ import {
|
|
|
94
139
|
} from "@xylabs/sdk-js";
|
|
95
140
|
import { getErc1822SlotStatus } from "@xyo-network/erc1822-witness";
|
|
96
141
|
import { getErc1967SlotStatus } from "@xyo-network/erc1967-witness";
|
|
97
|
-
import { isPayloadOfSchemaType as
|
|
142
|
+
import { isPayloadOfSchemaType as isPayloadOfSchemaType2 } from "@xyo-network/sdk-js";
|
|
98
143
|
import { AbstractEvmWitness } from "@xyo-network/witness-evm-abstract";
|
|
99
144
|
import { Contract } from "ethers";
|
|
100
145
|
var EvmCallWitness = class extends AbstractEvmWitness {
|
|
@@ -108,7 +153,7 @@ var EvmCallWitness = class extends AbstractEvmWitness {
|
|
|
108
153
|
await this.getProviders();
|
|
109
154
|
try {
|
|
110
155
|
const observations = await Promise.all(
|
|
111
|
-
inPayloads.filter(
|
|
156
|
+
inPayloads.filter(isPayloadOfSchemaType2(EvmCallSchema)).map(async ({
|
|
112
157
|
functionName,
|
|
113
158
|
args,
|
|
114
159
|
address,
|
|
@@ -121,7 +166,7 @@ var EvmCallWitness = class extends AbstractEvmWitness {
|
|
|
121
166
|
const block = this.config.block ?? payloadBlock ?? await provider.getBlockNumber();
|
|
122
167
|
const erc1967Status = await getErc1967SlotStatus(provider, validatedAddress, block);
|
|
123
168
|
const erc1822Status = await getErc1822SlotStatus(provider, validatedAddress, block);
|
|
124
|
-
const implementation = isHexZero(erc1967Status.slots.implementation ?? "0x00") ? erc1822Status
|
|
169
|
+
const implementation = (isHexZero(erc1967Status.slots.implementation ?? "0x00") === true ? erc1822Status : erc1967Status).implementation;
|
|
125
170
|
const contract = new Contract(implementation, this.abi, provider);
|
|
126
171
|
let transformedResult;
|
|
127
172
|
try {
|
|
@@ -129,11 +174,12 @@ var EvmCallWitness = class extends AbstractEvmWitness {
|
|
|
129
174
|
transformedResult = typeof result === "bigint" ? `0x${result.toString(16)}` : result;
|
|
130
175
|
} catch {
|
|
131
176
|
}
|
|
177
|
+
const network = await provider.getNetwork();
|
|
132
178
|
const observation = {
|
|
133
179
|
address: validatedAddress,
|
|
134
180
|
args: mergedArgs,
|
|
135
181
|
block,
|
|
136
|
-
chainId: Number(
|
|
182
|
+
chainId: Number(network.chainId),
|
|
137
183
|
functionName: validatedFunctionName,
|
|
138
184
|
result: transformedResult,
|
|
139
185
|
schema: EvmCallResultSchema
|
|
@@ -156,15 +202,32 @@ export {
|
|
|
156
202
|
EvmCallDiviner,
|
|
157
203
|
EvmCallDivinerConfigSchema,
|
|
158
204
|
EvmCallDivinerLabels,
|
|
205
|
+
EvmCallFailureZod,
|
|
206
|
+
EvmCallResultBaseZod,
|
|
159
207
|
EvmCallResultSchema,
|
|
208
|
+
EvmCallResultZod,
|
|
209
|
+
EvmCallResultsEntryZod,
|
|
160
210
|
EvmCallResultsSchema,
|
|
211
|
+
EvmCallResultsZod,
|
|
161
212
|
EvmCallSchema,
|
|
213
|
+
EvmCallSuccessZod,
|
|
162
214
|
EvmCallWitness,
|
|
163
215
|
EvmCallWitnessConfigSchema,
|
|
216
|
+
EvmCallZod,
|
|
217
|
+
asEvmCall,
|
|
164
218
|
asEvmCallFailure,
|
|
219
|
+
asEvmCallResult,
|
|
220
|
+
asEvmCallResults,
|
|
165
221
|
asEvmCallSuccess,
|
|
222
|
+
isEvmCall,
|
|
166
223
|
isEvmCallFailure,
|
|
167
224
|
isEvmCallResult,
|
|
168
|
-
|
|
225
|
+
isEvmCallResults,
|
|
226
|
+
isEvmCallSuccess,
|
|
227
|
+
toEvmCall,
|
|
228
|
+
toEvmCallFailure,
|
|
229
|
+
toEvmCallResult,
|
|
230
|
+
toEvmCallResults,
|
|
231
|
+
toEvmCallSuccess
|
|
169
232
|
};
|
|
170
233
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Diviner.ts", "../../src/Labels.ts", "../../src/Payload.ts", "../../src/model.ts", "../../src/Witness.ts"],
|
|
4
|
-
"sourcesContent": ["import type { Promisable } from '@xylabs/sdk-js'\nimport { assertEx } from '@xylabs/sdk-js'\nimport type {\n DivinerConfig, DivinerParams, Payload, Schema,\n} from '@xyo-network/sdk-js'\nimport {\n AbstractDiviner, asSchema, isPayloadOfSchemaType,\n} from '@xyo-network/sdk-js'\n\nimport { EvmCallDivinerLabels } from './Labels.ts'\nimport type { EvmCallResult } from './Payload.ts'\nimport { asEvmCallSuccess, EvmCallResultSchema } from './Payload.ts'\n\nexport type FindCallResult<TResult = string, TPayload = Payload> = [TResult, TPayload] | [undefined, TPayload] | [undefined, undefined]\n\nexport const EvmCallDivinerConfigSchema = asSchema('network.xyo.evm.call.diviner.config', true)\nexport type EvmCallDivinerConfigSchema = typeof EvmCallDivinerConfigSchema\n\nexport type EvmCallDivinerConfig = DivinerConfig<{\n schema: EvmCallDivinerConfigSchema\n}>\nexport type EvmCallDivinerParams = DivinerParams<EvmCallDivinerConfig>\n\nexport const EvmCallResultsSchema = asSchema('network.xyo.evm.call.results', true)\nexport type EvmCallResultsSchema = typeof EvmCallResultsSchema\n\nexport type EvmCallResults = Payload<\n {\n address: string\n chainId: number\n results?: Record<\n string,\n {\n args?: unknown[]\n result: unknown\n }\n >\n },\n EvmCallResultsSchema\n>\n\nexport class EvmCallDiviner<TParams extends EvmCallDivinerParams = EvmCallDivinerParams> extends AbstractDiviner<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EvmCallDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = EvmCallDivinerConfigSchema\n static override readonly labels: EvmCallDivinerLabels = { ...super.labels, ...EvmCallDivinerLabels }\n\n protected static findCallResult<TResult = string>(address: string, functionName: string, payloads: EvmCallResult[]): TResult | undefined {\n const foundPayload = payloads.find(payload => payload.functionName === functionName && payload.address === address)\n return asEvmCallSuccess(foundPayload)?.result as TResult | undefined\n }\n\n protected static matchingExistingField<R = string, T extends Payload = Payload>(objs: T[], field: keyof T): R | undefined {\n const expectedValue = objs.at(0)?.[field] as R\n // eslint-disable-next-line unicorn/no-array-reduce\n const didNotMatch = objs.reduce((prev, obj) => {\n return prev || obj[field] !== expectedValue\n }, false)\n return didNotMatch ? undefined : expectedValue\n }\n\n protected contractInfoRequiredFields(callResults: EvmCallResult[]): EvmCallResults {\n return {\n address: assertEx(EvmCallDiviner.matchingExistingField(callResults, 'address'), () => 'Mismatched address'),\n chainId: assertEx(EvmCallDiviner.matchingExistingField(callResults, 'chainId'), () => 'Mismatched chainId'),\n schema: EvmCallResultsSchema,\n }\n }\n\n protected override async divineHandler(inPayloads: EvmCallResult[] = []): Promise<EvmCallResults[]> {\n const callResults = inPayloads.filter(isPayloadOfSchemaType<EvmCallResult>(EvmCallResultSchema))\n const addresses = Object.keys(\n // eslint-disable-next-line unicorn/no-array-reduce\n callResults.reduce<Record<string, boolean>>((prev, result) => {\n if (result.address) {\n prev[result.address] = true\n }\n return prev\n }, {}),\n )\n const result = await Promise.all(\n addresses.map(async (address) => {\n const foundCallResults = callResults.filter(callResult => callResult.address === address)\n const results: EvmCallResults = {\n results: await this.reduceResults(foundCallResults),\n ...this.contractInfoRequiredFields(foundCallResults),\n }\n return results\n }),\n )\n\n return result\n }\n\n protected reduceResults(callResults: EvmCallResult[]): Promisable<EvmCallResults['results']> {\n // eslint-disable-next-line unicorn/no-array-reduce\n return callResults.reduce<\n Record<\n string,\n {\n args?: unknown[]\n result: unknown\n }\n >\n >((prev, callResult) => {\n const typedCallResult = asEvmCallSuccess(callResult)\n if (typedCallResult) {\n prev[callResult.functionName] = { args: typedCallResult.args, result: typedCallResult?.result }\n }\n return prev\n }, {})\n }\n}\n", "import type { Labels } from '@xyo-network/sdk-js'\n\n/**\n * Labels for Crypto Contract Diviner components\n */\nexport interface EvmCallDivinerLabels extends Labels {\n 'network.xyo.crypto.contract.info': 'diviner'\n}\n\n/**\n * Labels for Crypto Contract Diviner components\n */\nexport const EvmCallDivinerLabels: EvmCallDivinerLabels = { 'network.xyo.crypto.contract.info': 'diviner' }\n", "import type { Payload } from '@xyo-network/sdk-js'\nimport { asSchema, isPayloadOfSchemaType } from '@xyo-network/sdk-js'\n\nexport const EvmCallSchema = asSchema('network.xyo.evm.call', true)\nexport type EvmCallSchema = typeof EvmCallSchema\n\nexport type EvmCall = Payload<\n {\n address?: string\n args?: unknown[]\n block?: number\n functionName?: string\n },\n EvmCallSchema\n>\n\nexport const EvmCallResultSchema = asSchema('network.xyo.evm.call.result', true)\nexport type EvmCallResultSchema = typeof EvmCallResultSchema\n\nexport type EvmCallResultBase = Payload<\n {\n address: string\n args: unknown[]\n block?: number\n chainId: number\n functionName: string\n implementation?: string\n },\n EvmCallResultSchema\n>\n\nexport type EvmCallSuccess = EvmCallResultBase & {\n result: unknown\n}\n\nexport type EvmCallFailure = EvmCallResultBase & {\n error: string\n}\n\nexport type EvmCallResult = EvmCallSuccess | EvmCallFailure\n\nexport const isEvmCallSuccess = (payload?: EvmCallResult): payload is EvmCallSuccess => {\n return (payload as EvmCallSuccess | undefined)?.result !== undefined\n}\n\nexport const isEvmCallFailure = (payload?: EvmCallResult): payload is EvmCallFailure => {\n return (payload as EvmCallFailure | undefined)?.error !== undefined\n}\n\nexport const isEvmCallResult = isPayloadOfSchemaType<EvmCallResult>(EvmCallResultSchema)\n\nexport const asEvmCallSuccess = (payload?: EvmCallResult) => (isEvmCallSuccess(payload) ? payload : undefined)\n\nexport const asEvmCallFailure = (payload?: EvmCallResult) => (isEvmCallFailure(payload) ? payload : undefined)\n", "import { asSchema } from '@xyo-network/sdk-js'\nimport type { EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm-abstract'\nimport type { JsonFragment } from 'ethers'\n\nexport type Abi = string | readonly (JsonFragment | string)[]\n\nexport const EvmCallWitnessConfigSchema = asSchema('network.xyo.evm.call.witness.config', true)\nexport type EvmCallWitnessConfigSchema = typeof EvmCallWitnessConfigSchema\n\nexport type EvmCallWitnessConfig = EvmWitnessConfig<\n {\n abi?: Abi\n address?: string\n args?: unknown[]\n block?: number\n functionName?: string\n },\n EvmCallWitnessConfigSchema\n>\n\nexport type EvmCallWitnessParams = EvmWitnessParams<EvmCallWitnessConfig>\n", "import type { JsonObject } from '@xylabs/sdk-js'\nimport {\n asEthAddress, assertEx, isHexZero,\n} from '@xylabs/sdk-js'\nimport { getErc1822SlotStatus } from '@xyo-network/erc1822-witness'\nimport { getErc1967SlotStatus } from '@xyo-network/erc1967-witness'\nimport type { Schema } from '@xyo-network/sdk-js'\nimport { isPayloadOfSchemaType } from '@xyo-network/sdk-js'\nimport { AbstractEvmWitness } from '@xyo-network/witness-evm-abstract'\nimport type { InterfaceAbi } from 'ethers'\nimport { Contract } from 'ethers'\n\nimport type { EvmCallWitnessParams } from './model.ts'\nimport { EvmCallWitnessConfigSchema } from './model.ts'\nimport type {\n EvmCall, EvmCallResult,\n EvmCallSuccess,\n} from './Payload.ts'\nimport { EvmCallResultSchema, EvmCallSchema } from './Payload.ts'\n\nexport class EvmCallWitness<TParams extends EvmCallWitnessParams = EvmCallWitnessParams> extends AbstractEvmWitness<TParams, EvmCall, EvmCallResult> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EvmCallWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = EvmCallWitnessConfigSchema\n\n get abi() {\n return assertEx(this.config.abi, () => 'Missing abi') as InterfaceAbi\n }\n\n protected override async observeHandler(inPayloads: EvmCall[] = []): Promise<EvmCallResult[]> {\n await this.startedAsync('throw')\n // calling it here to make sure we rests the cache\n await this.getProviders()\n try {\n const observations = await Promise.all(\n inPayloads.filter(isPayloadOfSchemaType<EvmCall>(EvmCallSchema)).map(async ({\n functionName, args, address, block: payloadBlock,\n }) => {\n const validatedAddress = asEthAddress(assertEx(address ?? this.config.address, () => 'Missing address'), true)\n const validatedFunctionName = assertEx(functionName ?? this.config.functionName, () => 'Missing address')\n const mergedArgs = [...(args ?? this.config.args ?? [])] as JsonObject[]\n\n const provider = await this.getProvider(true, true)\n\n const block = this.config.block ?? payloadBlock ?? (await provider.getBlockNumber())\n\n // Check if ERC-1967 Upgradeable\n const erc1967Status = await getErc1967SlotStatus(provider, validatedAddress, block)\n\n // Check if ERC-1822 Upgradeable\n const erc1822Status = await getErc1822SlotStatus(provider, validatedAddress, block)\n\n const implementation = isHexZero(erc1967Status.slots.implementation ?? '0x00') ? erc1822Status.implementation : erc1967Status.implementation\n\n const contract = new Contract(implementation, this.abi, provider)\n let transformedResult: unknown\n try {\n const result = await contract[validatedFunctionName](...mergedArgs)\n transformedResult = typeof result === 'bigint' ? `0x${result.toString(16)}` : result\n } catch {\n // const error = ex as Error & { code: string }\n // this.logger.error(`Error [${this.config.name}]: ${error.code} : ${error.message}`)\n }\n const observation: EvmCallSuccess = {\n address: validatedAddress,\n args: mergedArgs,\n block,\n chainId: Number((await provider.getNetwork()).chainId),\n functionName: validatedFunctionName,\n result: transformedResult,\n schema: EvmCallResultSchema,\n }\n if (implementation !== validatedAddress) {\n observation.implementation = implementation\n }\n // console.log(`observation: ${JSON.stringify(observation, null, 2)}`)\n return observation\n }),\n )\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],
|
|
5
|
-
"mappings": ";AACA,
|
|
6
|
-
"names": ["asSchema", "
|
|
4
|
+
"sourcesContent": ["import type { Promisable } from '@xylabs/sdk-js'\nimport {\n assertEx, zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport type {\n DivinerConfig, DivinerParams, Payload, Schema,\n} from '@xyo-network/sdk-js'\nimport {\n AbstractDiviner, asSchema, isPayloadOfSchemaType, PayloadZodOfSchema,\n} from '@xyo-network/sdk-js'\nimport * as z from 'zod/mini'\n\nimport { EvmCallDivinerLabels } from './Labels.ts'\nimport type { EvmCallResult } from './Payload.ts'\nimport { asEvmCallSuccess, EvmCallResultSchema } from './Payload.ts'\n\nexport type FindCallResult<TResult = string, TPayload = Payload> = [TResult, TPayload] | [undefined, TPayload] | [undefined, undefined]\n\nexport const EvmCallDivinerConfigSchema = asSchema('network.xyo.evm.call.diviner.config', true)\nexport type EvmCallDivinerConfigSchema = typeof EvmCallDivinerConfigSchema\n\nexport type EvmCallDivinerConfig = DivinerConfig<{\n schema: EvmCallDivinerConfigSchema\n}>\nexport type EvmCallDivinerParams = DivinerParams<EvmCallDivinerConfig>\n\nexport const EvmCallResultsSchema = asSchema('network.xyo.evm.call.results', true)\nexport type EvmCallResultsSchema = typeof EvmCallResultsSchema\n\nexport const EvmCallResultsEntryZod = z.object({\n args: z.optional(z.array(z.unknown())),\n result: z.unknown(),\n})\n\nexport type EvmCallResultsEntry = z.infer<typeof EvmCallResultsEntryZod>\n\nexport const EvmCallResultsZod = z.extend(PayloadZodOfSchema(EvmCallResultsSchema), {\n address: z.string(),\n chainId: z.number(),\n results: z.optional(z.record(z.string(), EvmCallResultsEntryZod)),\n})\n\nexport type EvmCallResults = z.infer<typeof EvmCallResultsZod>\n\nexport const isEvmCallResults = zodIsFactory(EvmCallResultsZod)\nexport const asEvmCallResults = zodAsFactory(EvmCallResultsZod, 'asEvmCallResults')\nexport const toEvmCallResults = zodToFactory(EvmCallResultsZod, 'toEvmCallResults')\n\nexport class EvmCallDiviner<TParams extends EvmCallDivinerParams = EvmCallDivinerParams> extends AbstractDiviner<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EvmCallDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = EvmCallDivinerConfigSchema\n static override readonly labels: EvmCallDivinerLabels = { ...super.labels, ...EvmCallDivinerLabels }\n\n protected static findCallResult<TResult = string>(address: string, functionName: string, payloads: EvmCallResult[]): TResult | undefined {\n const foundPayload = payloads.find(payload => payload.functionName === functionName && payload.address === address)\n return asEvmCallSuccess(foundPayload)?.result as TResult | undefined\n }\n\n protected static matchingExistingField<R = string, T extends Payload = Payload>(objs: T[], field: keyof T): R | undefined {\n const expectedValue = objs.at(0)?.[field] as R\n // eslint-disable-next-line unicorn/no-array-reduce\n const didNotMatch = objs.reduce((prev, obj) => {\n return prev || obj[field] !== expectedValue\n }, false)\n return didNotMatch ? undefined : expectedValue\n }\n\n protected contractInfoRequiredFields(callResults: EvmCallResult[]): EvmCallResults {\n return {\n address: assertEx(EvmCallDiviner.matchingExistingField(callResults, 'address'), () => 'Mismatched address'),\n chainId: assertEx(EvmCallDiviner.matchingExistingField(callResults, 'chainId'), () => 'Mismatched chainId'),\n schema: EvmCallResultsSchema,\n }\n }\n\n protected override async divineHandler(inPayloads: EvmCallResult[] = []): Promise<EvmCallResults[]> {\n const callResults = inPayloads.filter(isPayloadOfSchemaType<EvmCallResult>(EvmCallResultSchema))\n const addresses = Object.keys(\n // eslint-disable-next-line unicorn/no-array-reduce\n callResults.reduce<Record<string, boolean>>((prev, result) => {\n if (result.address) {\n prev[result.address] = true\n }\n return prev\n }, {}),\n )\n const result = await Promise.all(\n addresses.map(async (address) => {\n const foundCallResults = callResults.filter(callResult => callResult.address === address)\n const results: EvmCallResults = {\n results: await this.reduceResults(foundCallResults),\n ...this.contractInfoRequiredFields(foundCallResults),\n }\n return results\n }),\n )\n\n return result\n }\n\n protected reduceResults(callResults: EvmCallResult[]): Promisable<EvmCallResults['results']> {\n // eslint-disable-next-line unicorn/no-array-reduce\n return callResults.reduce<\n Record<\n string,\n {\n args?: unknown[]\n result: unknown\n }\n >\n >((prev, callResult) => {\n const typedCallResult = asEvmCallSuccess(callResult)\n if (typedCallResult) {\n prev[callResult.functionName] = { args: typedCallResult.args, result: typedCallResult?.result }\n }\n return prev\n }, {})\n }\n}\n", "import type { Labels } from '@xyo-network/sdk-js'\n\n/**\n * Labels for Crypto Contract Diviner components\n */\nexport interface EvmCallDivinerLabels extends Labels {\n 'network.xyo.crypto.contract.info': 'diviner'\n}\n\n/**\n * Labels for Crypto Contract Diviner components\n */\nexport const EvmCallDivinerLabels: EvmCallDivinerLabels = { 'network.xyo.crypto.contract.info': 'diviner' }\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport { asSchema, PayloadZodOfSchema } from '@xyo-network/sdk-js'\nimport * as z from 'zod/mini'\n\nexport const EvmCallSchema = asSchema('network.xyo.evm.call', true)\nexport type EvmCallSchema = typeof EvmCallSchema\n\nexport const EvmCallZod = z.extend(PayloadZodOfSchema(EvmCallSchema), {\n address: z.optional(z.string()),\n args: z.optional(z.array(z.unknown())),\n block: z.optional(z.number()),\n functionName: z.optional(z.string()),\n})\n\nexport type EvmCall = z.infer<typeof EvmCallZod>\n\nexport const isEvmCall = zodIsFactory(EvmCallZod)\nexport const asEvmCall = zodAsFactory(EvmCallZod, 'asEvmCall')\nexport const toEvmCall = zodToFactory(EvmCallZod, 'toEvmCall')\n\nexport const EvmCallResultSchema = asSchema('network.xyo.evm.call.result', true)\nexport type EvmCallResultSchema = typeof EvmCallResultSchema\n\nexport const EvmCallResultBaseZod = z.extend(PayloadZodOfSchema(EvmCallResultSchema), {\n address: z.string(),\n args: z.array(z.unknown()),\n block: z.optional(z.number()),\n chainId: z.number(),\n functionName: z.string(),\n implementation: z.optional(z.string()),\n})\n\nexport type EvmCallResultBase = z.infer<typeof EvmCallResultBaseZod>\n\nexport const EvmCallSuccessZod = z\n .extend(EvmCallResultBaseZod, { result: z.unknown() })\n .check(z.refine(value => (value as { result?: unknown }).result !== undefined))\n\nexport type EvmCallSuccess = EvmCallResultBase & {\n result: unknown\n}\n\nexport const EvmCallFailureZod = z\n .extend(EvmCallResultBaseZod, { error: z.string() })\n .check(z.refine(value => (value as { error?: unknown }).error !== undefined))\n\nexport type EvmCallFailure = EvmCallResultBase & {\n error: string\n}\n\nexport const EvmCallResultZod = z.union([EvmCallSuccessZod, EvmCallFailureZod])\n\nexport type EvmCallResult = EvmCallSuccess | EvmCallFailure\n\nexport const isEvmCallResult = zodIsFactory(EvmCallResultZod)\nexport const asEvmCallResult = zodAsFactory(EvmCallResultZod, 'asEvmCallResult')\nexport const toEvmCallResult = zodToFactory(EvmCallResultZod, 'toEvmCallResult')\n\nexport const isEvmCallSuccess = zodIsFactory(EvmCallSuccessZod)\nexport const asEvmCallSuccess = zodAsFactory(EvmCallSuccessZod, 'asEvmCallSuccess')\nexport const toEvmCallSuccess = zodToFactory(EvmCallSuccessZod, 'toEvmCallSuccess')\n\nexport const isEvmCallFailure = zodIsFactory(EvmCallFailureZod)\nexport const asEvmCallFailure = zodAsFactory(EvmCallFailureZod, 'asEvmCallFailure')\nexport const toEvmCallFailure = zodToFactory(EvmCallFailureZod, 'toEvmCallFailure')\n", "import { asSchema } from '@xyo-network/sdk-js'\nimport type { EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm-abstract'\nimport type { JsonFragment } from 'ethers'\n\nexport type Abi = string | readonly (JsonFragment | string)[]\n\nexport const EvmCallWitnessConfigSchema = asSchema('network.xyo.evm.call.witness.config', true)\nexport type EvmCallWitnessConfigSchema = typeof EvmCallWitnessConfigSchema\n\nexport type EvmCallWitnessConfig = EvmWitnessConfig<\n {\n abi?: Abi\n address?: string\n args?: unknown[]\n block?: number\n functionName?: string\n },\n EvmCallWitnessConfigSchema\n>\n\nexport type EvmCallWitnessParams = EvmWitnessParams<EvmCallWitnessConfig>\n", "import type { JsonObject } from '@xylabs/sdk-js'\nimport {\n asEthAddress, assertEx, isHexZero,\n} from '@xylabs/sdk-js'\nimport { getErc1822SlotStatus } from '@xyo-network/erc1822-witness'\nimport { getErc1967SlotStatus } from '@xyo-network/erc1967-witness'\nimport type { Schema } from '@xyo-network/sdk-js'\nimport { isPayloadOfSchemaType } from '@xyo-network/sdk-js'\nimport { AbstractEvmWitness } from '@xyo-network/witness-evm-abstract'\nimport type { InterfaceAbi } from 'ethers'\nimport { Contract } from 'ethers'\n\nimport type { EvmCallWitnessParams } from './model.ts'\nimport { EvmCallWitnessConfigSchema } from './model.ts'\nimport type {\n EvmCall, EvmCallResult,\n EvmCallSuccess,\n} from './Payload.ts'\nimport { EvmCallResultSchema, EvmCallSchema } from './Payload.ts'\n\nexport class EvmCallWitness<TParams extends EvmCallWitnessParams = EvmCallWitnessParams> extends AbstractEvmWitness<TParams, EvmCall, EvmCallResult> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EvmCallWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = EvmCallWitnessConfigSchema\n\n get abi() {\n return assertEx(this.config.abi, () => 'Missing abi') as InterfaceAbi\n }\n\n protected override async observeHandler(inPayloads: EvmCall[] = []): Promise<EvmCallResult[]> {\n await this.startedAsync('throw')\n // calling it here to make sure we rests the cache\n await this.getProviders()\n try {\n const observations = await Promise.all(\n inPayloads.filter(isPayloadOfSchemaType<EvmCall>(EvmCallSchema)).map(async ({\n functionName, args, address, block: payloadBlock,\n }) => {\n const validatedAddress = asEthAddress(assertEx(address ?? this.config.address, () => 'Missing address'), true)\n const validatedFunctionName = assertEx(functionName ?? this.config.functionName, () => 'Missing address')\n const mergedArgs = [...(args ?? this.config.args ?? [])] as JsonObject[]\n\n const provider = await this.getProvider(true, true)\n\n const block = this.config.block ?? payloadBlock ?? (await provider.getBlockNumber())\n\n // Check if ERC-1967 Upgradeable\n const erc1967Status = await getErc1967SlotStatus(provider, validatedAddress, block)\n\n // Check if ERC-1822 Upgradeable\n const erc1822Status = await getErc1822SlotStatus(provider, validatedAddress, block)\n\n const implementation = (isHexZero(erc1967Status.slots.implementation ?? '0x00') === true ? erc1822Status : erc1967Status).implementation\n\n const contract = new Contract(implementation, this.abi, provider)\n let transformedResult: unknown\n try {\n const result: unknown = await contract[validatedFunctionName](...mergedArgs)\n transformedResult = typeof result === 'bigint' ? `0x${result.toString(16)}` : result\n } catch {\n // const error = ex as Error & { code: string }\n // this.logger.error(`Error [${this.config.name}]: ${error.code} : ${error.message}`)\n }\n const network = await provider.getNetwork()\n const observation: EvmCallSuccess = {\n address: validatedAddress,\n args: mergedArgs,\n block,\n chainId: Number(network.chainId),\n functionName: validatedFunctionName,\n result: transformedResult,\n schema: EvmCallResultSchema,\n }\n if (implementation !== validatedAddress) {\n observation.implementation = implementation\n }\n // console.log(`observation: ${JSON.stringify(observation, null, 2)}`)\n return observation\n }),\n )\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "PayloadZodOfSchema", "z", "asSchema", "PayloadZodOfSchema", "zodIsFactory", "zodAsFactory", "zodToFactory", "result", "asSchema", "assertEx", "isPayloadOfSchemaType", "assertEx", "isPayloadOfSchemaType"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xyo-network/evm-call-witness",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "7.0.0",
|
|
4
4
|
"description": "Typescript/Javascript Plugins for XYO Platform",
|
|
5
5
|
"homepage": "https://xyo.network",
|
|
6
6
|
"bugs": {
|
|
@@ -31,50 +31,42 @@
|
|
|
31
31
|
"README.md"
|
|
32
32
|
],
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@xyo-network/
|
|
35
|
-
"@xyo-network/
|
|
34
|
+
"@xyo-network/erc1967-witness": "~7.0.0",
|
|
35
|
+
"@xyo-network/erc1822-witness": "~7.0.0"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@bitauth/libauth": "~3.0.0",
|
|
39
39
|
"@metamask/providers": "^22.1.1",
|
|
40
40
|
"@noble/post-quantum": "~0.6.1",
|
|
41
41
|
"@opentelemetry/api": "^1.9.1",
|
|
42
|
-
"@opentelemetry/sdk-trace-base": "^2.
|
|
42
|
+
"@opentelemetry/sdk-trace-base": "^2.8.0",
|
|
43
43
|
"@scure/base": "^2.2.0",
|
|
44
44
|
"@scure/bip39": "~2.2.0",
|
|
45
|
-
"@xylabs/geo": "^6.1.
|
|
46
|
-
"@xylabs/sdk-js": "^6.1.
|
|
47
|
-
"@xylabs/threads": "^6.1.
|
|
48
|
-
"@xylabs/toolchain": "~8.
|
|
49
|
-
"@xylabs/tsconfig": "~8.
|
|
50
|
-
"@xylabs/vitest-extended": "^6.1.
|
|
51
|
-
"@xyo-network/diviner-boundwitness": "^
|
|
52
|
-
"@xyo-network/diviner-jsonpatch": "^
|
|
53
|
-
"@xyo-network/diviner-jsonpatch-memory": "^
|
|
54
|
-
"@xyo-network/diviner-jsonpath-aggregate-memory": "^
|
|
55
|
-
"@xyo-network/diviner-
|
|
56
|
-
"@xyo-network/diviner-payload-
|
|
57
|
-
"@xyo-network/diviner-
|
|
58
|
-
"@xyo-network/diviner-
|
|
59
|
-
"@xyo-network/diviner-temporal-indexing": "^6.1.0",
|
|
60
|
-
"@xyo-network/module-model": "^6.1.0",
|
|
61
|
-
"@xyo-network/module-resolver": "^6.1.0",
|
|
62
|
-
"@xyo-network/node-memory": "^6.1.0",
|
|
45
|
+
"@xylabs/geo": "^6.1.3",
|
|
46
|
+
"@xylabs/sdk-js": "^6.1.3",
|
|
47
|
+
"@xylabs/threads": "^6.1.3",
|
|
48
|
+
"@xylabs/toolchain": "~8.2.7",
|
|
49
|
+
"@xylabs/tsconfig": "~8.2.7",
|
|
50
|
+
"@xylabs/vitest-extended": "^6.1.3",
|
|
51
|
+
"@xyo-network/diviner-boundwitness": "^7.0.0",
|
|
52
|
+
"@xyo-network/diviner-jsonpatch": "^7.0.0",
|
|
53
|
+
"@xyo-network/diviner-jsonpatch-memory": "^7.0.0",
|
|
54
|
+
"@xyo-network/diviner-jsonpath-aggregate-memory": "^7.0.0",
|
|
55
|
+
"@xyo-network/diviner-payload-generic": "^7.0.0",
|
|
56
|
+
"@xyo-network/diviner-payload-model": "^7.0.0",
|
|
57
|
+
"@xyo-network/diviner-range": "^7.0.0",
|
|
58
|
+
"@xyo-network/diviner-temporal-indexing": "^7.0.0",
|
|
63
59
|
"@xyo-network/open-zeppelin-typechain": "^4.1.3",
|
|
64
|
-
"@xyo-network/payload-
|
|
65
|
-
"@xyo-network/
|
|
66
|
-
"@xyo-network/sdk-js": "
|
|
67
|
-
"@xyo-network/
|
|
68
|
-
"@xyo-network/
|
|
69
|
-
"@xyo-network/
|
|
70
|
-
"@xyo-network/witness-adhoc": "^6.1.0",
|
|
71
|
-
"@xyo-network/witness-evm-abstract": "^6.1.0",
|
|
72
|
-
"@xyo-network/witness-model": "^6.1.0",
|
|
73
|
-
"@xyo-network/witness-timestamp": "^6.1.0",
|
|
60
|
+
"@xyo-network/payload-utils": "~7.0",
|
|
61
|
+
"@xyo-network/sdk-js": "^7.0.0",
|
|
62
|
+
"@xyo-network/sdk-protocol-js": "~7.0",
|
|
63
|
+
"@xyo-network/witness-adhoc": "^7.0.0",
|
|
64
|
+
"@xyo-network/witness-evm-abstract": "~7.0",
|
|
65
|
+
"@xyo-network/witness-timestamp": "^7.0.0",
|
|
74
66
|
"ajv": "^8.20.0",
|
|
75
67
|
"async-mutex": "^0.5.0",
|
|
76
68
|
"debug": "~4.4.3",
|
|
77
|
-
"eslint": "^10.
|
|
69
|
+
"eslint": "^10.5.0",
|
|
78
70
|
"ethers": "^6.16.0",
|
|
79
71
|
"fast-json-patch": "~3.1.1",
|
|
80
72
|
"hash-wasm": "^4.12.0",
|
|
@@ -84,13 +76,13 @@
|
|
|
84
76
|
"observable-fns": "~0.6.1",
|
|
85
77
|
"typescript": "~6.0.3",
|
|
86
78
|
"vite": "^8.0.16",
|
|
87
|
-
"vitest": "^4.1.
|
|
79
|
+
"vitest": "^4.1.9",
|
|
88
80
|
"webextension-polyfill": "^0.12.0",
|
|
89
81
|
"zod": "^4.4.3",
|
|
90
|
-
"@xyo-network/
|
|
91
|
-
"@xyo-network/
|
|
92
|
-
"@xyo-network/evm-
|
|
93
|
-
"@xyo-network/evm-token-interface-diviner": "~
|
|
82
|
+
"@xyo-network/crypto-contract-function-read-payload-plugin": "~7.0.0",
|
|
83
|
+
"@xyo-network/evm-nft-id-payload-plugin": "~7.0.0",
|
|
84
|
+
"@xyo-network/evm-contract-witness": "~7.0.0",
|
|
85
|
+
"@xyo-network/evm-token-interface-diviner": "~7.0.0"
|
|
94
86
|
},
|
|
95
87
|
"peerDependencies": {
|
|
96
88
|
"@bitauth/libauth": "~3.0",
|
|
@@ -104,9 +96,9 @@
|
|
|
104
96
|
"@xylabs/sdk-js": "^6.0",
|
|
105
97
|
"@xylabs/threads": "^6.0",
|
|
106
98
|
"@xyo-network/open-zeppelin-typechain": "^4.1",
|
|
107
|
-
"@xyo-network/sdk-js": "^
|
|
108
|
-
"@xyo-network/sdk-protocol-js": "^
|
|
109
|
-
"@xyo-network/witness-evm-abstract": "
|
|
99
|
+
"@xyo-network/sdk-js": "^7.0",
|
|
100
|
+
"@xyo-network/sdk-protocol-js": "^7.0",
|
|
101
|
+
"@xyo-network/witness-evm-abstract": "~7.0",
|
|
110
102
|
"ajv": "^8.20",
|
|
111
103
|
"async-mutex": "^0.5",
|
|
112
104
|
"debug": "~4.4",
|