{src ? (

) : props.children ? (
diff --git a/packages/utils/src/hooks/contract.ts b/packages/utils/src/hooks/contract.ts
deleted file mode 100644
index 40d77d443..000000000
--- a/packages/utils/src/hooks/contract.ts
+++ /dev/null
@@ -1,164 +0,0 @@
-import { getChecksumAddress, Provider } from "starknet";
-import useSWR from "swr";
-import { useEkuboMetadata } from "./balance";
-import { ERC20Metadata } from "../erc20";
-import { stringFromByteArray } from "../contract";
-import {
- ContractPolicies,
- ContractPolicy,
- SessionPolicies,
- SignMessagePolicy,
-} from "@cartridge/presets";
-
-export type SessionSummary = {
- default: ContractPolicies;
- dojo: Record
;
- ERC20: Record<
- string,
- ContractPolicy & { meta?: Omit }
- >;
- ERC721: ContractPolicies;
- messages: SignMessagePolicy[] | undefined;
-};
-
-type ContractType = keyof SessionSummary;
-
-export function useSessionSummary({
- policies,
- provider,
-}: {
- policies: SessionPolicies;
- provider?: Provider;
-}) {
- const ekuboMeta = useEkuboMetadata();
-
- const res: SessionSummary = {
- default: {},
- dojo: {},
- ERC20: {},
- ERC721: {},
- messages: policies.messages,
- };
- const summary = useSWR(
- ekuboMeta && provider ? `tx-summary` : null,
- async () => {
- if (!provider) return res;
-
- const promises = Object.entries(policies.contracts ?? []).map(
- async ([contractAddress, policies]) => {
- const contractType = await checkContractType(
- provider,
- contractAddress,
- );
- switch (contractType) {
- case "ERC20":
- const meta = ekuboMeta.find(
- (m) =>
- getChecksumAddress(m.l2_token_address) ===
- getChecksumAddress(contractAddress),
- );
-
- res.ERC20[contractAddress] = {
- meta: meta && {
- address: contractAddress,
- name: meta.name,
- symbol: meta.symbol,
- decimals: meta.decimals,
- },
- ...policies,
- };
- return;
- case "ERC721":
- res.ERC721[contractAddress] = policies;
- return;
- case "default":
- default: {
- try {
- const dojoNameRes = await provider.callContract({
- contractAddress,
- entrypoint: "dojo_name",
- });
-
- res.dojo[contractAddress] = {
- meta: { dojoName: stringFromByteArray(dojoNameRes) },
- ...policies,
- };
- } catch {
- res.default[contractAddress] = policies;
- }
- return;
- }
- }
- },
- );
- await Promise.all(promises);
-
- return res;
- },
- {
- fallbackData: res,
- },
- );
-
- return summary;
-}
-
-// TODO: What the id?
-const IERC20_ID = "";
-const IERC721_ID =
- "0x33eb2f84c309543403fd69f0d0f363781ef06ef6faeb0131ff16ea3175bd943";
-
-async function checkContractType(
- provider: Provider,
- contractAddress: string,
-): Promise {
- try {
- // SNIP-5: check with via `support_interface` method
- const [erc20Res] = await provider.callContract({
- contractAddress,
- entrypoint: "supports_interface",
- calldata: [IERC20_ID], // ERC20 interface ID
- });
- if (!!erc20Res) {
- return "ERC20";
- }
-
- const [erc721Res] = await provider.callContract({
- contractAddress,
- entrypoint: "supports_interface",
- calldata: [IERC721_ID], // ERC721 interface ID
- });
- if (!!erc721Res) {
- return "ERC721";
- }
-
- return "default";
- } catch {
- try {
- await provider.callContract({
- contractAddress,
- entrypoint: "balanceOf",
- calldata: ["0x0"], // ERC721 interface ID
- });
-
- try {
- await provider.callContract({
- contractAddress,
- entrypoint: "decimals",
- });
-
- return "ERC20";
- } catch {
- await provider.callContract({
- contractAddress,
- entrypoint: "tokenId",
- calldata: ["0x0"],
- });
-
- return "ERC721";
- }
- } catch {
- return "default";
- }
- }
-}
diff --git a/packages/utils/src/hooks/index.ts b/packages/utils/src/hooks/index.ts
index fcc5b674a..e3f8abf55 100644
--- a/packages/utils/src/hooks/index.ts
+++ b/packages/utils/src/hooks/index.ts
@@ -1,4 +1,3 @@
export * from "./api";
export * from "./balance";
-export * from "./contract";
export * from "./countervalue";
diff --git a/packages/utils/tsconfig.json b/packages/utils/tsconfig.json
index 150dc0e07..3e4bbc588 100644
--- a/packages/utils/tsconfig.json
+++ b/packages/utils/tsconfig.json
@@ -6,7 +6,5 @@
"rootDir": "./src",
"outDir": "./dist"
},
- "include": [
- "src/**/*"
- ]
+ "include": ["src/**/*"]
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 9bab76ece..5ddfa8e79 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -467,6 +467,9 @@ importers:
'@types/node':
specifier: ^20.11.0
version: 20.16.11
+ starknet:
+ specifier: 6.11.0
+ version: 6.11.0
tsx:
specifier: ^4.7.0
version: 4.19.2