Skip to content

Commit 9e40369

Browse files
committed
Add methods for contract invoke/query
Signed-off-by: Andrew Richardson <[email protected]>
1 parent 27494ab commit 9e40369

File tree

2 files changed

+62
-0
lines changed

2 files changed

+62
-0
lines changed

lib/firefly.ts

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,12 @@ import {
5050
FireFlyOperationFilter,
5151
FireFlyOperationResponse,
5252
FireFlyTokenTransferFilter,
53+
FireFlyContractInvokeResponse,
54+
FireFlyContractQueryResponse,
55+
FireFlyContractAPIInvokeRequest,
56+
FireFlyContractAPIQueryRequest,
57+
FireFlyContractInvokeRequest,
58+
FireFlyContractQueryRequest,
5359
} from './interfaces';
5460
import { FireFlyWebSocket, FireFlyWebSocketCallback } from './websocket';
5561
import HttpBase, { mapConfig } from './http';
@@ -318,6 +324,46 @@ export default class FireFly extends HttpBase {
318324
return this.getOne<FireFlyContractAPIResponse>(`/apis/${name}`, options);
319325
}
320326

327+
async invokeContract(
328+
request: FireFlyContractInvokeRequest,
329+
options?: FireFlyCreateOptions,
330+
): Promise<FireFlyContractInvokeResponse> {
331+
return this.createOne<FireFlyContractInvokeResponse>('/contracts/invoke', request, options);
332+
}
333+
334+
async queryContract(
335+
request: FireFlyContractQueryRequest,
336+
options?: FireFlyCreateOptions,
337+
): Promise<FireFlyContractQueryResponse> {
338+
return this.createOne<FireFlyContractQueryResponse>('/contracts/query', request, options);
339+
}
340+
341+
async invokeContractAPI(
342+
apiName: string,
343+
methodPath: string,
344+
request: FireFlyContractAPIInvokeRequest,
345+
options?: FireFlyCreateOptions,
346+
): Promise<FireFlyContractInvokeResponse> {
347+
return this.createOne<FireFlyContractInvokeResponse>(
348+
`/apis/${apiName}/invoke/${methodPath}`,
349+
request,
350+
options,
351+
);
352+
}
353+
354+
async queryContractAPI(
355+
apiName: string,
356+
methodPath: string,
357+
request: FireFlyContractAPIQueryRequest,
358+
options?: FireFlyCreateOptions,
359+
): Promise<FireFlyContractQueryResponse> {
360+
return this.createOne<FireFlyContractQueryResponse>(
361+
`/apis/${apiName}/query/${methodPath}`,
362+
request,
363+
options,
364+
);
365+
}
366+
321367
async createContractListener(
322368
listener: FireFlyContractListenerRequest,
323369
options?: FireFlyCreateOptions,

lib/interfaces.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,3 +243,19 @@ export type FireFlyContractAPIResponse = Required<
243243
export type FireFlyContractListenerResponse = Required<
244244
operations['getContractListenerByNameOrID']['responses']['200']['content']['application/json']
245245
>;
246+
247+
export type FireFlyContractInvokeRequest =
248+
operations['postContractInvoke']['requestBody']['content']['application/json'];
249+
export type FireFlyContractAPIInvokeRequest =
250+
operations['postContractAPIInvoke']['requestBody']['content']['application/json'];
251+
export type FireFlyContractInvokeResponse = Required<
252+
operations['postContractInvoke']['responses']['202']['content']['application/json']
253+
>;
254+
255+
export type FireFlyContractQueryRequest =
256+
operations['postContractQuery']['requestBody']['content']['application/json'];
257+
export type FireFlyContractAPIQueryRequest =
258+
operations['postContractAPIQuery']['requestBody']['content']['application/json'];
259+
export type FireFlyContractQueryResponse = Required<
260+
operations['postContractQuery']['responses']['200']['content']['application/json']
261+
>;

0 commit comments

Comments
 (0)