1
1
import { z } from 'zod' ;
2
- import { singleSigAccount , wallet } from './wallet' ;
2
+ import { wallet } from './wallet' ;
3
3
4
- // defined in an account spec, which will be cconvertedi nto an initialized multisig config once we deploy the multisig contract
5
- export const uninitializedMultisigConfig = z . object ( {
6
- name : z . string ( ) . min ( 1 ) ,
7
- chainId : z . number ( ) ,
8
- owners : z . array ( z . string ( ) . min ( 1 ) ) ,
9
- signer : singleSigAccount
10
- } ) . strict ( )
4
+ // defined in an account spec, which will be converted into an initialized multisig config once we deploy the multisig contract
5
+ export const uninitializedMultisigConfig = z
6
+ . object ( {
7
+ name : z . string ( ) . min ( 1 ) ,
8
+ privateKey : z . string ( ) . min ( 1 ) ,
9
+ owners : z . array ( z . string ( ) . min ( 1 ) ) ,
10
+ threshold : z . number ( ) ,
11
+ } )
12
+ . strict ( ) ;
11
13
12
14
// Defined in an account spec, which is not necessarily in a config
13
- export const initializedMultisigConfig = z . object ( {
14
- name : z . string ( ) . min ( 1 ) ,
15
- chainId : z . number ( ) ,
16
- safeAddress : z . string ( ) . min ( 1 ) ,
17
- signer : singleSigAccount
18
- } ) . strict ( )
19
-
15
+ export const initializedMultisigConfig = z
16
+ . object ( {
17
+ name : z . string ( ) . min ( 1 ) ,
18
+ chainId : z . number ( ) ,
19
+ privateKey : z . string ( ) . min ( 1 ) ,
20
+ safeAddress : z . string ( ) . min ( 1 ) ,
21
+ } )
22
+ . strict ( ) ;
20
23
21
24
// Multisig which is described in an account spec but is not yet initialized. (i.e. multisig contract has not been deployed yet)
22
- export const unInitializedMultisig = z . intersection (
23
- uninitializedMultisigConfig ,
24
- z . object ( { wallet : wallet } )
25
- )
25
+ export const unInitializedMultisig = z . object ( {
26
+ name : z . string ( ) . min ( 1 ) ,
27
+ privateKey : z . string ( ) . min ( 1 ) ,
28
+ owners : z . array ( z . string ( ) . min ( 1 ) ) ,
29
+ threshold : z . number ( ) ,
30
+ wallet : wallet ,
31
+ } ) ;
26
32
27
33
// Multisig which has been deployed & can be used to propose transactions. This is the type that loadEvmAccounts will return for multisig types
28
- export const initializedMultisig = z . intersection (
29
- initializedMultisigConfig ,
30
- z . object ( { wallet : wallet } )
31
- ) ;
34
+ export const initializedMultisig = z . object ( {
35
+ name : z . string ( ) . min ( 1 ) ,
36
+ chainId : z . number ( ) ,
37
+ privateKey : z . string ( ) . min ( 1 ) ,
38
+ safeAddress : z . string ( ) . min ( 1 ) ,
39
+ wallet : wallet ,
40
+ } ) ;
32
41
33
- export type UninitializedMultisigConfig = z . infer < typeof uninitializedMultisigConfig > ;
34
- export type InitializedMultisigConfig = z . infer < typeof initializedMultisigConfig > ;
42
+ export type UninitializedMultisigConfig = z . infer <
43
+ typeof uninitializedMultisigConfig
44
+ > ;
45
+ export type InitializedMultisigConfig = z . infer <
46
+ typeof initializedMultisigConfig
47
+ > ;
35
48
export type UninitializedMultisig = z . infer < typeof unInitializedMultisig > ;
36
49
export type InitializedMultisig = z . infer < typeof initializedMultisig > ;
37
50
@@ -41,7 +54,7 @@ export const isUninitializedMultisigConfig = (
41
54
) : account is UninitializedMultisigConfig => {
42
55
return uninitializedMultisigConfig . safeParse ( account ) . success ;
43
56
} ;
44
-
57
+
45
58
export const isUninitializedMultisig = (
46
59
account : unknown
47
60
) : account is UninitializedMultisig => {
@@ -60,10 +73,17 @@ export const isInitializedMultisig = (
60
73
return initializedMultisig . safeParse ( account ) . success ;
61
74
} ;
62
75
63
- export const isMultisig = ( account : unknown ) : account is InitializedMultisig | UninitializedMultisig => {
76
+ export const isMultisig = (
77
+ account : unknown
78
+ ) : account is InitializedMultisig | UninitializedMultisig => {
64
79
return isInitializedMultisig ( account ) || isUninitializedMultisig ( account ) ;
65
80
} ;
66
81
67
- export const isMultisigConfig = ( account : unknown ) : account is InitializedMultisigConfig | UninitializedMultisigConfig => {
68
- return isInitializedMultisigConfig ( account ) || isUninitializedMultisigConfig ( account ) ;
69
- }
82
+ export const isMultisigConfig = (
83
+ account : unknown
84
+ ) : account is InitializedMultisigConfig | UninitializedMultisigConfig => {
85
+ return (
86
+ isInitializedMultisigConfig ( account ) ||
87
+ isUninitializedMultisigConfig ( account )
88
+ ) ;
89
+ } ;
0 commit comments