1- import { JsonOutput , JsonInput } from "../core/types" ;
21import { BigNumber , CallOverrides , utils } from "ethers" ;
3- import { z , ZodTypeDef } from "zod" ;
2+ import { z } from "zod" ;
3+
4+ const isBrowser = ( ) => typeof window !== "undefined" ;
5+ const FileOrBufferUnionSchema = isBrowser ( )
6+ ? ( z . instanceof ( File ) as z . ZodType < InstanceType < typeof File > > )
7+ : ( z . instanceof ( Buffer ) as z . ZodTypeAny ) ; // @fixme , this is a hack to make browser happy for now
8+
9+ /**
10+ * @internal
11+ */
12+ export const FileOrBufferSchema = z . union ( [
13+ FileOrBufferUnionSchema ,
14+ z . object ( {
15+ data : z . union ( [ FileOrBufferUnionSchema , z . string ( ) ] ) ,
16+ name : z . string ( ) ,
17+ } ) ,
18+ ] ) ;
19+
20+ /**
21+ * @internal
22+ */
23+ export const FileOrBufferOrStringSchema = z . union ( [
24+ FileOrBufferSchema ,
25+ z . string ( ) ,
26+ ] ) ;
427
528export const MAX_BPS = 10000 ;
629
@@ -21,6 +44,17 @@ export const BigNumberishSchema = BigNumberSchema.transform((arg) =>
2144 arg . toString ( ) ,
2245) ;
2346
47+ export const BigNumberTransformSchema = z
48+ . union ( [
49+ z . bigint ( ) ,
50+ z . custom < BigNumber > ( ( data ) => {
51+ return BigNumber . isBigNumber ( data ) ;
52+ } ) ,
53+ ] )
54+ . transform ( ( arg ) => {
55+ return BigNumber . from ( arg ) . toString ( ) ;
56+ } ) ;
57+
2458export const BasisPointsSchema = z
2559 . number ( )
2660 . max ( MAX_BPS , "Cannot exeed 100%" )
@@ -48,18 +82,6 @@ export const AddressSchema = z.string().refine(
4882 } ,
4983) ;
5084
51- export const JsonLiteral = z . union ( [
52- z . string ( ) ,
53- z . number ( ) ,
54- z . boolean ( ) ,
55- z . null ( ) ,
56- BigNumberishSchema ,
57- ] ) ;
58-
59- export const JsonSchema : z . ZodSchema < JsonOutput , ZodTypeDef , JsonInput > =
60- z . lazy ( ( ) => z . union ( [ JsonLiteral , JsonObjectSchema , z . array ( JsonSchema ) ] ) ) ;
61- export const JsonObjectSchema = z . record ( JsonSchema ) ;
62-
6385export const AmountSchema = z
6486 . union ( [
6587 z . string ( ) . regex ( / ^ ( [ 0 - 9 ] + \. ? [ 0 - 9 ] * | \. [ 0 - 9 ] + ) $ / , "Invalid amount" ) ,
@@ -96,27 +118,3 @@ export const CallOverrideSchema: z.ZodType<CallOverrides> = z
96118 type : z . number ( ) . optional ( ) ,
97119 } )
98120 . strict ( ) ;
99-
100- const isBrowser = ( ) => typeof window !== "undefined" ;
101- const FileOrBufferUnionSchema = isBrowser ( )
102- ? ( z . instanceof ( File ) as z . ZodType < InstanceType < typeof File > > )
103- : ( z . instanceof ( Buffer ) as z . ZodTypeAny ) ; // @fixme , this is a hack to make browser happy for now
104-
105- /**
106- * @internal
107- */
108- export const FileOrBufferSchema = z . union ( [
109- FileOrBufferUnionSchema ,
110- z . object ( {
111- data : z . union ( [ FileOrBufferUnionSchema , z . string ( ) ] ) ,
112- name : z . string ( ) ,
113- } ) ,
114- ] ) ;
115-
116- /**
117- * @internal
118- */
119- export const FileOrBufferOrStringSchema = z . union ( [
120- FileOrBufferSchema ,
121- z . string ( ) ,
122- ] ) ;
0 commit comments