@silvana-one/coordination
Version:
Silvana Coordination Client
29 lines • 1.24 kB
JavaScript
import { fetchSuiDynamicFieldsList, fetchSuiObject, suiClient, } from "@silvana-one/coordination";
export async function getState(params = {}) {
const { appInstanceID = process.env.APP_INSTANCE_ID } = params;
if (!appInstanceID) {
throw new Error("APP_INSTANCE_ID is not set");
}
// Get the AppInstance object
const appInstance = await fetchSuiObject(appInstanceID);
if (appInstance?.data?.content?.dataType !== "moveObject")
throw new Error("AppInstance not found");
// The state is inside the AppInstance
const stateObjectID = (appInstance?.data?.content?.fields).state.fields
.state.fields.id.id;
const state = [];
const fields = await fetchSuiDynamicFieldsList(stateObjectID);
const names = fields.data.map((field) => field.name);
for (const name of names) {
const element = await suiClient.getDynamicFieldObject({
parentId: stateObjectID,
name,
});
if (element.data?.content?.dataType !== "moveObject")
throw new Error("Element not found");
const value = BigInt((element.data?.content.fields).state[0]);
state.push(value);
}
return state;
}
//# sourceMappingURL=state.js.map