Skip to content

Commit 3f64c2b

Browse files
authored
Abstract QuerierBase (#59)
* introduce new abstract QuerierBase * bump to v0.2.15
1 parent 511ac92 commit 3f64c2b

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@terran-one/cosmwasm-vm-js",
3-
"version": "0.2.14",
3+
"version": "0.2.15",
44
"license": "MIT",
55
"author": "TerranOne",
66
"main": "dist/index.js",

src/backend/querier.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@ export interface IQuerier {
22
query_raw(request: Uint8Array, gas_limit: number /* Uint64 */): Uint8Array;
33
}
44

5-
export class BasicQuerier implements IQuerier {
6-
5+
/** Basic implementation of `IQuerier` with standardized `query_raw`
6+
* which delegates to a new, abstract `handleQuery` method.
7+
*/
8+
export abstract class QuerierBase implements IQuerier {
79
// eslint-disable-next-line @typescript-eslint/no-unused-vars
810
query_raw(request: Uint8Array, gas_limit: number): Uint8Array {
911
const queryRequest = parseQuery(request);
@@ -13,7 +15,13 @@ export class BasicQuerier implements IQuerier {
1315

1416
return objectToUint8Array({ ok: { ok: objectToBase64(this.handleQuery(queryRequest)) }});
1517
}
18+
19+
/** Handle a specific JSON query message. */
20+
abstract handleQuery(queryRequest: any): any;
21+
}
1622

23+
/** Basic implementation which does not actually implement `handleQuery`. Intended for testing. */
24+
export class BasicQuerier extends QuerierBase {
1725
handleQuery(queryRequest: any): any {
1826
throw new Error(`Unimplemented - subclass BasicQuerier and provide handleQuery() implementation.`)
1927
}

0 commit comments

Comments
 (0)