@dojoengine/core
该库抽象了世界界面,并提供了一组与世界交互的辅助函数。与直接与世界交互相比,我们更倾向于使用该库。
- 世界探索者
- 世界部署者
- 游戏
- 分析
开始
yarn add @dojoengine/core
使用示例
本例来自 Dojo React App。
import { defineContractComponents } from "./contractComponents";
import { world } from "./world";
import { RPCProvider, Query, } from "@dojoengine/core";
import { Account, num } from "starknet";
import { GraphQLClient } from 'graphql-request';
import { getSdk } from '../generated/graphql';
export type SetupNetworkResult = Awaited<ReturnType<typeof setupNetwork>>;
export async function setupNetwork() {
const provider = new RPCProvider(import.meta.env.VITE_PUBLIC_WORLD_ADDRESS, import.meta.env.VITE_PUBLIC_NODE_URL);
return {
contractComponents: defineContractComponents(world),
provider,
execute: async (signer: Account, system: string, call_data: num.BigNumberish[]) => provider.execute(signer, system, call_data),
entity: async (component: string, query: Query) => provider.entity(component, query),
entities: async (component: string, partition: number) => provider.entities(component, partition),
world,
graphSdk: getSdk(new GraphQLClient(import.meta.env.VITE_PUBLIC_TORII)),
call: async (selector: string, call_data: num.BigNumberish[]) => provider.call(selector, call_data),
};
}