Skip to content

Commit 42eab92

Browse files
committed
Merging AleoNetworkClientOptions into ProgramManagerOptions
1 parent 9804e41 commit 42eab92

File tree

2 files changed

+25
-19
lines changed

2 files changed

+25
-19
lines changed

sdk/src/program-manager.ts

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,15 @@ interface ExecuteOptions {
7070
imports?: ProgramImports;
7171
}
7272

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+
7382
/**
7483
* The ProgramManager class is used to execute and deploy programs on the Aleo network and create value transfers.
7584
*/
@@ -82,25 +91,22 @@ class ProgramManager {
8291

8392
/** Create a new instance of the ProgramManager
8493
*
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
9095
*/
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;
104110
}
105111

106112
/**

sdk/tests/program-manager.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ describe('Program Manager', () => {
2222
it('should have the specified headers when instantiated', async () => {
2323
const newProgramManager = new ProgramManager({
2424
host: "https://api.explorer.provable.com/v1",
25-
networkClientOptions: { headers: {'X-Test-Header': 'programManager'} },
25+
headers: {'X-Test-Header': 'programManager'},
2626
});
2727
expect(Object.keys(newProgramManager.networkClient.headers).length).equal(1);
2828
expect(newProgramManager.networkClient.headers['X-Test-Header']).equal('programManager');

0 commit comments

Comments
 (0)