|
@@ -11,6 +11,7 @@ import AccountFactory, { AccountNamespace } from "./account.js";
|
|
|
import SimulateFactory, { SimulateNamespace } from "./simulate.js";
|
|
|
import { parseIdlErrors } from "../common.js";
|
|
|
import { MethodsBuilderFactory, MethodsNamespace } from "./methods";
|
|
|
+import ViewFactory, { ViewNamespace } from "./views";
|
|
|
|
|
|
// Re-exports.
|
|
|
export { StateClient } from "./state.js";
|
|
@@ -21,6 +22,7 @@ export { AccountNamespace, AccountClient, ProgramAccount } from "./account.js";
|
|
|
export { SimulateNamespace, SimulateFn } from "./simulate.js";
|
|
|
export { IdlAccounts, IdlTypes } from "./types.js";
|
|
|
export { MethodsBuilderFactory, MethodsNamespace } from "./methods";
|
|
|
+export { ViewNamespace, ViewFn } from "./views";
|
|
|
|
|
|
export default class NamespaceFactory {
|
|
|
/**
|
|
@@ -38,13 +40,15 @@ export default class NamespaceFactory {
|
|
|
AccountNamespace<IDL>,
|
|
|
SimulateNamespace<IDL>,
|
|
|
MethodsNamespace<IDL>,
|
|
|
- StateClient<IDL> | undefined
|
|
|
+ StateClient<IDL> | undefined,
|
|
|
+ ViewNamespace<IDL> | undefined
|
|
|
] {
|
|
|
const rpc: RpcNamespace = {};
|
|
|
const instruction: InstructionNamespace = {};
|
|
|
const transaction: TransactionNamespace = {};
|
|
|
const simulate: SimulateNamespace = {};
|
|
|
const methods: MethodsNamespace = {};
|
|
|
+ const view: ViewNamespace = {};
|
|
|
|
|
|
const idlErrors = parseIdlErrors(idl);
|
|
|
|
|
@@ -71,6 +75,7 @@ export default class NamespaceFactory {
|
|
|
programId,
|
|
|
idl
|
|
|
);
|
|
|
+ const viewItem = ViewFactory.build(programId, idlIx, simulateItem, idl);
|
|
|
const methodItem = MethodsBuilderFactory.build<IDL, typeof idlIx>(
|
|
|
provider,
|
|
|
programId,
|
|
@@ -79,9 +84,9 @@ export default class NamespaceFactory {
|
|
|
txItem,
|
|
|
rpcItem,
|
|
|
simulateItem,
|
|
|
+ viewItem,
|
|
|
account
|
|
|
);
|
|
|
-
|
|
|
const name = camelCase(idlIx.name);
|
|
|
|
|
|
instruction[name] = ixItem;
|
|
@@ -89,6 +94,9 @@ export default class NamespaceFactory {
|
|
|
rpc[name] = rpcItem;
|
|
|
simulate[name] = simulateItem;
|
|
|
methods[name] = methodItem;
|
|
|
+ if (viewItem) {
|
|
|
+ view[name] = viewItem;
|
|
|
+ }
|
|
|
});
|
|
|
|
|
|
return [
|
|
@@ -99,6 +107,7 @@ export default class NamespaceFactory {
|
|
|
simulate as SimulateNamespace<IDL>,
|
|
|
methods as MethodsNamespace<IDL>,
|
|
|
state,
|
|
|
+ view as ViewNamespace<IDL>,
|
|
|
];
|
|
|
}
|
|
|
}
|