@@ -70,6 +70,15 @@ interface ExecuteOptions {
70
70
imports ?: ProgramImports ;
71
71
}
72
72
73
+ /**
74
+ * @property { FunctionKeyProvider | undefined } [params.keyProvider] A key provider that implements {@link FunctionKeyProvider} interface
75
+ * @property { RecordProvider | undefined } [params.recordProvider] A record provider that implements {@link RecordProvider} interface
76
+ */
77
+ interface ProgramManagerOptions extends AleoNetworkClientOptions {
78
+ keyProvider ?: FunctionKeyProvider | undefined ,
79
+ recordProvider ?: RecordProvider | undefined ,
80
+ }
81
+
73
82
/**
74
83
* The ProgramManager class is used to execute and deploy programs on the Aleo network and create value transfers.
75
84
*/
@@ -82,25 +91,22 @@ class ProgramManager {
82
91
83
92
/** Create a new instance of the ProgramManager
84
93
*
85
- * @param {Object } [params]
86
- * @param { string | undefined } [params.host] A host uri running the official Aleo API
87
- * @param { FunctionKeyProvider | undefined } [params.keyProvider] A key provider that implements {@link FunctionKeyProvider} interface
88
- * @param { RecordProvider | undefined } [params.recordProvider] A record provider that implements {@link RecordProvider} interface
89
- * @param {AleoNetworkClientOptions } [params.networkClientOptions]
94
+ * @param {Object } ProgramManagerOptions
90
95
*/
91
- constructor ( params : {
92
- host ?: string | undefined ,
93
- keyProvider ?: FunctionKeyProvider | undefined ,
94
- recordProvider ?: RecordProvider | undefined ,
95
- networkClientOptions ?: Omit < AleoNetworkClientOptions , "host" > | undefined ,
96
- } = { } ) {
97
- const { host, keyProvider, recordProvider, networkClientOptions } = params ;
98
-
99
- this . host = host ? host : "https://api.explorer.provable.com/v1" ;
100
- this . networkClient = new AleoNetworkClient ( { ...networkClientOptions , host : this . host } ) ;
101
-
102
- this . keyProvider = keyProvider ? keyProvider : new AleoKeyProvider ( ) ;
103
- this . recordProvider = recordProvider ;
96
+ constructor ( params ?: ProgramManagerOptions ) {
97
+ if ( params == null ) {
98
+ params = { } as ProgramManagerOptions ;
99
+ }
100
+
101
+ if ( params . host == null ) {
102
+ params . host = "https://api.explorer.provable.com/v1" ;
103
+ }
104
+
105
+ this . host = params . host ;
106
+ this . networkClient = new AleoNetworkClient ( params ) ;
107
+
108
+ this . keyProvider = params . keyProvider ? params . keyProvider : new AleoKeyProvider ( ) ;
109
+ this . recordProvider = params . recordProvider ;
104
110
}
105
111
106
112
/**
0 commit comments