import { Transaction } from "@onelabs/sui/transactions"; import { Button, Container } from "@radix-ui/themes"; import { useSignAndExecuteTransaction, useSuiClient } from "@onelabs/dapp-kit"; import { useNetworkVariable } from "./networkConfig"; import ClipLoader from "react-spinners/ClipLoader"; export function CreateCounter({ onCreated, }: { onCreated: (id: string) => void; }) { const counterPackageId = useNetworkVariable("counterPackageId"); const suiClient = useSuiClient(); const { mutate: signAndExecute, isSuccess, isPending, } = useSignAndExecuteTransaction(); function create() { const tx = new Transaction(); tx.moveCall({ arguments: [], target: `${counterPackageId}::counter::create`, }); signAndExecute( { transaction: tx, }, { onSuccess: async ({ digest }) => { const { effects } = await suiClient.waitForTransaction({ digest: digest, options: { showEffects: true, }, }); onCreated(effects?.created?.[0]?.reference?.objectId!); }, }, ); } return ( ); }