diff --git a/change/@starknet-react-chains-46ff16a2-1b3e-494c-bc22-f6364f3e0289.json b/change/@starknet-react-chains-46ff16a2-1b3e-494c-bc22-f6364f3e0289.json new file mode 100644 index 00000000..17f7cd5f --- /dev/null +++ b/change/@starknet-react-chains-46ff16a2-1b3e-494c-bc22-f6364f3e0289.json @@ -0,0 +1,7 @@ +{ + "type": "major", + "comment": "BREAKING: bump to v5 for consistency with core package using starknet.js v8\n\nAlthough this package doesn't directly depend on starknet.js, it's part of the starknet-react monorepo and should maintain version parity with @starknet-react/core for consistency and to avoid confusion when users upgrade.", + "packageName": "@starknet-react/chains", + "email": "valentin@pupucecorp.com", + "dependentChangeType": "patch" +} diff --git a/change/@starknet-react-core-a4322bd6-bc69-45b5-a740-3db6982fe0d4.json b/change/@starknet-react-core-a4322bd6-bc69-45b5-a740-3db6982fe0d4.json new file mode 100644 index 00000000..9296af77 --- /dev/null +++ b/change/@starknet-react-core-a4322bd6-bc69-45b5-a740-3db6982fe0d4.json @@ -0,0 +1,7 @@ +{ + "type": "major", + "comment": "BREAKING: upgrade starknet.js from 7.6.4 to 8.1.2\n\nThis upgrade includes breaking changes from starknet.js v8:\n- Internal RPC channel updated from 0.8.1 to 0.9.0\n- Contract class now uses _Contract instead of Contract\n- Response parser uses resourceBoundsOverhead instead of margin\n- Added new deployer and defaultTipType properties to Account\n- Block identifier defaults changed from 'pending' to 'latest'", + "packageName": "@starknet-react/core", + "email": "valentin@pupucecorp.com", + "dependentChangeType": "patch" +} diff --git a/change/create-starknet-7c5778fd-d48c-452a-80ef-504f6eeb6b7c.json b/change/create-starknet-7c5778fd-d48c-452a-80ef-504f6eeb6b7c.json new file mode 100644 index 00000000..3e11d87e --- /dev/null +++ b/change/create-starknet-7c5778fd-d48c-452a-80ef-504f6eeb6b7c.json @@ -0,0 +1,7 @@ +{ + "type": "major", + "comment": "BREAKING: bump to v5 for consistency with core package using starknet.js v8\n\nTemplates have been updated to use starknet.js v8.1.2 and will use @starknet-react packages v5.0.0.", + "packageName": "create-starknet", + "email": "valentin@pupucecorp.com", + "dependentChangeType": "patch" +} diff --git a/docs/components/demo/read-contract.tsx b/docs/components/demo/read-contract.tsx index 68abb632..f8603f2b 100644 --- a/docs/components/demo/read-contract.tsx +++ b/docs/components/demo/read-contract.tsx @@ -38,7 +38,7 @@ export function ReadContractInner() { watch: true, enabled: enable, blockIdentifier: - blockIdentifier === "latest" ? BlockTag.LATEST : BlockTag.PENDING, + blockIdentifier === "latest" ? BlockTag.LATEST : BlockTag.PRE_CONFIRMED, }); return ( @@ -52,7 +52,7 @@ export function ReadContractInner() { Latest - Pending + Pre-Confirmed diff --git a/docs/package.json b/docs/package.json index 4424886e..a5a9c696 100644 --- a/docs/package.json +++ b/docs/package.json @@ -25,7 +25,7 @@ "lucide-react": "^0.438.0", "react": "^18.2.0", "safe-stable-stringify": "^2.5.0", - "starknet": "^7.6.4", + "starknet": "^8.1.2", "starknetkit": "^2.12.1", "tailwind-merge": "^2.5.2", "tailwindcss-animate": "^1.0.7", diff --git a/packages/core/package.json b/packages/core/package.json index c362fa62..4e2048db 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -41,7 +41,7 @@ "peerDependencies": { "get-starknet-core": "^4.0.0", "react": "^18.0", - "starknet": "^7.6.4" + "starknet": "^8.1.2" }, "devDependencies": { "@starknet-react/typescript-config": "workspace:*", @@ -52,7 +52,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "rimraf": "^4.1.2", - "starknet": "^7.6.4", + "starknet": "^8.1.2", "tsup": "^8.0.2", "vite-tsconfig-paths": "^4.3.2", "vitest": "^1.5.2" diff --git a/packages/core/src/hooks/use-account.test.ts b/packages/core/src/hooks/use-account.test.ts index 11f7545e..500cc7be 100644 --- a/packages/core/src/hooks/use-account.test.ts +++ b/packages/core/src/hooks/use-account.test.ts @@ -85,13 +85,13 @@ describe("useAccount", () => { "channel": RpcChannel2 { "baseFetch": [Function], "batchClient": undefined, - "blockIdentifier": "pending", + "blockIdentifier": "latest", "chainId": undefined, - "channelSpecVersion": "0.8.1", + "channelSpecVersion": "0.9.0", "headers": { "Content-Type": "application/json", }, - "id": "RPC081", + "id": "RPC090", "nodeUrl": "http://localhost:5050/rpc", "requestId": 0, "retries": 200, @@ -99,7 +99,12 @@ describe("useAccount", () => { "transactionRetryIntervalFallback": undefined, "waitMode": false, }, + "defaultTipType": "recommendedTip", "deploySelf": [Function], + "deployer": Deployer { + "address": "0x02ceed65a4bd731034c01113685c831b01c15d7d432f71afb1cf1634b53a2125", + "entryPoint": "deploy_contract", + }, "getStateUpdate": [Function], "paymaster": _PaymasterRpc { "baseFetch": [Function], @@ -110,7 +115,7 @@ describe("useAccount", () => { "requestId": 0, }, "responseParser": RPCResponseParser { - "margin": undefined, + "resourceBoundsOverhead": undefined, }, "signer": Signer { "pk": "0xe1406455b7d66b1690803be066cbe5e", diff --git a/packages/core/src/hooks/use-balance.ts b/packages/core/src/hooks/use-balance.ts index dc5a96bf..36d0c3fc 100644 --- a/packages/core/src/hooks/use-balance.ts +++ b/packages/core/src/hooks/use-balance.ts @@ -79,7 +79,7 @@ export function useBalance({ const refetchInterval = refetchInterval_ ?? - (blockIdentifier === BlockTag.PENDING && watch + (blockIdentifier === BlockTag.PRE_CONFIRMED && watch ? DEFAULT_FETCH_INTERVAL : undefined); diff --git a/packages/core/src/hooks/use-call.ts b/packages/core/src/hooks/use-call.ts index d0e4f4ef..213e0b46 100644 --- a/packages/core/src/hooks/use-call.ts +++ b/packages/core/src/hooks/use-call.ts @@ -5,8 +5,8 @@ import { type ArgsOrCalldata, type BlockNumber, BlockTag, + type CallResult, type Contract, - type Result, } from "starknet"; import { type UseQueryProps, type UseQueryResult, useQuery } from "../query"; @@ -33,7 +33,7 @@ export type CallQueryKey = typeof queryKey; /** Options for `useCall`. */ export type UseCallProps = CallArgs & - UseQueryProps> & { + UseQueryProps> & { /** The target contract's ABI. */ abi?: Abi; /** The target contract's address. */ @@ -43,7 +43,7 @@ export type UseCallProps = CallArgs & }; /** Value returned from `useCall`. */ -export type UseCallResult = UseQueryResult; +export type UseCallResult = UseQueryResult; /** * Hook to perform a read-only contract call. @@ -89,7 +89,7 @@ export function useCall({ const refetchInterval = refetchInterval_ ?? - (blockIdentifier === BlockTag.PENDING && watch + (blockIdentifier === BlockTag.PRE_CONFIRMED && watch ? DEFAULT_FETCH_INTERVAL : undefined); diff --git a/packages/core/src/hooks/use-contract-factory.ts b/packages/core/src/hooks/use-contract-factory.ts index 5d9ea9d0..f2d44a3c 100644 --- a/packages/core/src/hooks/use-contract-factory.ts +++ b/packages/core/src/hooks/use-contract-factory.ts @@ -1,51 +1,113 @@ -import { useMemo } from "react"; -import { type Abi, type CompiledContract, ContractFactory } from "starknet"; +import { useCallback } from "react"; +import { + type Abi, + type CompiledContract, + type CompiledSierraCasm, + Contract, + type RawArgs, + type UniversalDetails, +} from "starknet"; import { useAccount } from "./use-account"; /** Arguments for `useContractFactory`. */ export interface UseContractFactoryProps { - /** The compiled contract. */ + /** The compiled contract (for declare and deploy). */ compiledContract?: CompiledContract; - /** The class hash */ - classHash: string; + /** The CASM contract (required when declaring). */ + casm?: CompiledSierraCasm; + /** The class hash (for deploy-only mode). */ + classHash?: string; /** The contract abi. */ abi?: Abi; } +/** Options for deploying a contract. */ +export interface DeployContractOptions { + /** Constructor calldata. */ + constructorCalldata?: RawArgs; + /** Salt for address generation. */ + salt?: string; + /** Make the address unique. */ + unique?: boolean; + /** Additional transaction details. */ + details?: UniversalDetails; +} + /** Value returned from `useContractFactory`. */ export interface UseContractFactoryResult { - /** The contract factory. */ - contractFactory?: ContractFactory; + /** Function to deploy the contract. */ + deployContract?: (options?: DeployContractOptions) => Promise; } /** - * Hook to create a `ContractFactory`. + * Hook to deploy contracts using the new Contract.factory() method. * * @remarks * - * The returned contract factory is a starknet.js `ContractFactory` object. + * This hook provides a function to deploy contracts using starknet.js v8's + * Contract.factory() static method. * - * This hook works well with `useDeploy`. + * For declare and deploy, provide compiledContract and casm. + * For deploy-only, provide classHash and optionally abi. */ export function useContractFactory({ compiledContract, + casm, classHash, abi, }: UseContractFactoryProps): UseContractFactoryResult { const { account } = useAccount(); - const contractFactory = useMemo(() => { - if (compiledContract && account && classHash) { - return new ContractFactory({ - compiledContract, - classHash, - account, - abi, - }); - } - return undefined; - }, [compiledContract, classHash, account, abi]); - - return { contractFactory }; + const deployContract = useCallback( + async (options?: DeployContractOptions) => { + if (!account) { + throw new Error("Account is required to deploy a contract"); + } + + const { constructorCalldata, salt, unique, details } = options || {}; + + // Declare and deploy mode + if (compiledContract && casm) { + return await Contract.factory( + { + account, + contract: compiledContract, + casm, + constructorCalldata, + salt, + unique, + }, + details, + ); + } + + // Deploy-only mode + if (classHash) { + return await Contract.factory( + { + account, + classHash, + abi, + constructorCalldata, + salt, + unique, + }, + details, + ); + } + + throw new Error( + "Either compiledContract + casm or classHash is required to deploy a contract", + ); + }, + [account, compiledContract, casm, classHash, abi], + ); + + return { + deployContract: + account && ((compiledContract && casm) || classHash) + ? deployContract + : undefined, + }; } diff --git a/packages/core/src/hooks/use-contract.test.ts b/packages/core/src/hooks/use-contract.test.ts index 8005067c..b5ac2eb2 100644 --- a/packages/core/src/hooks/use-contract.test.ts +++ b/packages/core/src/hooks/use-contract.test.ts @@ -12,7 +12,7 @@ describe("useContract", () => { expect(result.current).toMatchInlineSnapshot(` { - "contract": Contract { + "contract": _Contract { "abi": [ { "members": [ @@ -173,8 +173,7 @@ describe("useContract", () => { "callStatic": { "name": [Function], }, - "contractOptions": undefined, - "deployTransactionHash": undefined, + "classHash": undefined, "estimateFee": { "name": [Function], }, @@ -190,13 +189,13 @@ describe("useContract", () => { "channel": RpcChannel2 { "baseFetch": [Function], "batchClient": undefined, - "blockIdentifier": "pending", + "blockIdentifier": "latest", "chainId": "0x534e5f5345504f4c4941", - "channelSpecVersion": "0.8.1", + "channelSpecVersion": "0.9.0", "headers": { "Content-Type": "application/json", }, - "id": "RPC081", + "id": "RPC090", "nodeUrl": "http://localhost:5050/rpc", "requestId": 0, "retries": 200, @@ -206,7 +205,7 @@ describe("useContract", () => { }, "getStateUpdate": [Function], "responseParser": RPCResponseParser { - "margin": undefined, + "resourceBoundsOverhead": undefined, }, }, "structs": { @@ -225,6 +224,7 @@ describe("useContract", () => { "type": "struct", }, }, + "withOptionsProps": undefined, }, } `); diff --git a/packages/core/src/hooks/use-contract.ts b/packages/core/src/hooks/use-contract.ts index 14f5c6dd..27889239 100644 --- a/packages/core/src/hooks/use-contract.ts +++ b/packages/core/src/hooks/use-contract.ts @@ -112,9 +112,11 @@ export function useContract({ const contract = useMemo(() => { const provider = providedProvider ? providedProvider : currentProvider; if (abi && address && provider) { - return new Contract(abi, address, provider).typedv2( + return new Contract({ abi, - ) as StarknetTypedContract; + address, + providerOrAccount: provider, + }).typedv2(abi) as StarknetTypedContract; } return undefined; }, [abi, address, providedProvider, currentProvider]); diff --git a/packages/core/src/hooks/use-estimate-fees.ts b/packages/core/src/hooks/use-estimate-fees.ts index afb8549a..3bc3e3f0 100644 --- a/packages/core/src/hooks/use-estimate-fees.ts +++ b/packages/core/src/hooks/use-estimate-fees.ts @@ -2,8 +2,8 @@ import { useMemo } from "react"; import type { AccountInterface, Call, - EstimateFeeDetails, - EstimateFeeResponse, + EstimateFeeResponseOverhead, + UniversalDetails, } from "starknet"; import { type UseQueryProps, type UseQueryResult, useQuery } from "../query"; @@ -15,15 +15,15 @@ export type EstimateFeesArgs = { /** List of smart contract calls to estimate. */ calls?: Call[]; /** Estimate Fee options. */ - options?: EstimateFeeDetails; + options?: UniversalDetails; }; /** Options for `useEstimateFees`. */ export type UseEstimateFeesProps = EstimateFeesArgs & UseQueryProps< - EstimateFeeResponse, + EstimateFeeResponseOverhead, Error, - EstimateFeeResponse, + EstimateFeeResponseOverhead, ReturnType > & { /** Refresh data at every block. */ @@ -31,7 +31,10 @@ export type UseEstimateFeesProps = EstimateFeesArgs & }; /** Value returned from `useEstimateFees`. */ -export type UseEstimateFeesResult = UseQueryResult; +export type UseEstimateFeesResult = UseQueryResult< + EstimateFeeResponseOverhead, + Error +>; /** * Hook to estimate fees for smart contract calls. diff --git a/packages/core/src/hooks/use-events.ts b/packages/core/src/hooks/use-events.ts index f8bd694b..30947f8f 100644 --- a/packages/core/src/hooks/use-events.ts +++ b/packages/core/src/hooks/use-events.ts @@ -137,7 +137,7 @@ function queryKey({ // Function to transform a BlockIdentifier into a BLOCK_ID function blockIdentifierToBlockId(blockIdentifier: BlockIdentifier) { if (blockIdentifier === null) { - return BlockTag.PENDING; // null maps to 'pending' as per the BlockIdentifier doc + return BlockTag.PRE_CONFIRMED; // null maps to 'pre_confirmed' in v8 } if (typeof blockIdentifier === "number") { diff --git a/packages/core/test/devnet.ts b/packages/core/test/devnet.ts index 1f7d0cc4..874d1e7b 100644 --- a/packages/core/test/devnet.ts +++ b/packages/core/test/devnet.ts @@ -41,7 +41,7 @@ function makeAccount({ address: string; privateKey: string; }): AccountInterface { - return new Account(provider, address, privateKey); + return new Account({ provider, address, signer: privateKey }); } export const accounts = { diff --git a/packages/create-starknet/src/templates/next/package.json b/packages/create-starknet/src/templates/next/package.json index ad214bd1..eaf1a826 100644 --- a/packages/create-starknet/src/templates/next/package.json +++ b/packages/create-starknet/src/templates/next/package.json @@ -9,13 +9,13 @@ "lint": "next lint" }, "dependencies": { - "@starknet-react/chains": "^4.0.3", - "@starknet-react/core": "^4.0.3", + "@starknet-react/chains": "^5.0.0", + "@starknet-react/core": "^5.0.0", "get-starknet-core": "^4.0.0", "next": "15.4.4", "react": "19.1.0", "react-dom": "19.1.0", - "starknet": "^7.6.4" + "starknet": "^8.1.2" }, "devDependencies": { "@eslint/eslintrc": "^3", diff --git a/packages/create-starknet/src/templates/vite/package.json b/packages/create-starknet/src/templates/vite/package.json index 3f4021df..bada66f7 100644 --- a/packages/create-starknet/src/templates/vite/package.json +++ b/packages/create-starknet/src/templates/vite/package.json @@ -10,13 +10,13 @@ "preview": "vite preview" }, "dependencies": { - "@starknet-react/chains": "^4.0.3", - "@starknet-react/core": "^4.0.3", + "@starknet-react/chains": "^5.0.0", + "@starknet-react/core": "^5.0.0", "@tailwindcss/vite": "^4.1.11", "get-starknet-core": "4.0.0", "react": "^19.1.0", "react-dom": "^19.1.0", - "starknet": "^7.6.4", + "starknet": "^8.1.2", "tailwindcss": "^4.1.11" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f9892ded..902dfa61 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -28,10 +28,10 @@ importers: dependencies: '@cartridge/connector': specifier: ^0.9.2 - version: 0.9.2(@metamask/sdk@0.32.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.1(bufferutil@4.0.9)(typescript@5.7.2)(utf-8-validate@5.0.10))(@starknet-react/core@packages+core)(@types/react@18.3.16)(bufferutil@4.0.9)(open@10.1.1)(react@18.3.1)(starknet@7.6.4)(starknetkit@2.12.1(cqnpb42qhlo4mw5m2xbsfjhmja))(typescript@5.7.2)(utf-8-validate@5.0.10)(zod@3.23.8) + version: 0.9.2(@metamask/sdk@0.32.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.1(bufferutil@4.0.9)(typescript@5.7.2)(utf-8-validate@5.0.10))(@starknet-react/core@packages+core)(@types/react@18.3.16)(bufferutil@4.0.9)(open@10.1.1)(react@18.3.1)(starknet@8.1.2)(starknetkit@2.12.1(pmx5a6r2fvp2xwjwyvc3cpy7gq))(typescript@5.7.2)(utf-8-validate@5.0.10)(zod@3.23.8) '@cartridge/controller': specifier: ^0.9.2 - version: 0.9.2(@metamask/sdk@0.32.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.1(bufferutil@4.0.9)(typescript@5.7.2)(utf-8-validate@5.0.10))(@types/react@18.3.16)(bufferutil@4.0.9)(open@10.1.1)(react@18.3.1)(starknet@7.6.4)(starknetkit@2.12.1(cqnpb42qhlo4mw5m2xbsfjhmja))(typescript@5.7.2)(utf-8-validate@5.0.10)(zod@3.23.8) + version: 0.9.2(@metamask/sdk@0.32.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.1(bufferutil@4.0.9)(typescript@5.7.2)(utf-8-validate@5.0.10))(@types/react@18.3.16)(bufferutil@4.0.9)(open@10.1.1)(react@18.3.1)(starknet@8.1.2)(starknetkit@2.12.1(pmx5a6r2fvp2xwjwyvc3cpy7gq))(typescript@5.7.2)(utf-8-validate@5.0.10)(zod@3.23.8) '@radix-ui/react-checkbox': specifier: ^1.1.1 version: 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -66,11 +66,11 @@ importers: specifier: ^2.5.0 version: 2.5.0 starknet: - specifier: ^7.6.4 - version: 7.6.4 + specifier: ^8.1.2 + version: 8.1.2 starknetkit: specifier: ^2.12.1 - version: 2.12.1(cqnpb42qhlo4mw5m2xbsfjhmja) + version: 2.12.1(pmx5a6r2fvp2xwjwyvc3cpy7gq) tailwind-merge: specifier: ^2.5.2 version: 2.5.2 @@ -158,8 +158,8 @@ importers: specifier: ^4.1.2 version: 4.4.1 starknet: - specifier: ^7.6.4 - version: 7.6.4 + specifier: ^8.1.2 + version: 8.1.2 tsup: specifier: ^8.0.2 version: 8.2.4(jiti@1.21.6)(postcss@8.4.44)(typescript@5.7.2)(yaml@2.5.0) @@ -2268,6 +2268,9 @@ packages: '@starknet-io/types-js@0.8.4': resolution: {integrity: sha512-0RZ3TZHcLsUTQaq1JhDSCM8chnzO4/XNsSCozwDET64JK5bjFDIf2ZUkta+tl5Nlbf4usoU7uZiDI/Q57kt2SQ==} + '@starknet-io/types-js@0.9.0-beta.5': + resolution: {integrity: sha512-VbtqLeM/AMErgZqIwzOc/frMOUDj7Z5d0/oR1wcruGa4QQjKjAE98ii1lKEFjMMsXnQdmsqs+FinRlyinvkTIw==} + '@swc/helpers@0.5.17': resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} @@ -4475,9 +4478,6 @@ packages: lossless-json@2.0.11: resolution: {integrity: sha512-BP0vn+NGYvzDielvBZaFain/wgeJ1hTvURCqtKvhr1SCPePdaaTanmmcplrHfEJSJOUql7hk4FHwToNJjWRY3g==} - lossless-json@4.1.0: - resolution: {integrity: sha512-DgoRs42jH/yNubp8iinRqvG0xn5awHKXVY+7lGYjBaByoHGZt/Dz5Jkaf5znP2XHbTnAA+bbkhK3lMIaf3+92A==} - lossless-json@4.1.1: resolution: {integrity: sha512-HusN80C0ohtT9kOHQH7EuUaqzRQsnekpa+2ot8OzvW0iC08dq/YtM/7uKwwajldQsCrHyC8q9fz3t3L+TmDltA==} @@ -5840,8 +5840,8 @@ packages: starknet@6.11.0: resolution: {integrity: sha512-u50KrGDi9fbu1Ogu7ynwF/tSeFlp3mzOg1/Y5x50tYFICImo3OfY4lOz9OtYDk404HK4eUujKkhov9tG7GAKlg==} - starknet@7.6.4: - resolution: {integrity: sha512-FB20IaLCDbh/XomkB+19f5jmNxG+RzNdRO7QUhm7nfH81UPIt2C/MyWAlHCYkbv2wznSEb73wpxbp9tytokTgQ==} + starknet@8.1.2: + resolution: {integrity: sha512-f366RjyG7vdL7VXYOrp8rGjKn0xmS+CAl61Ic6bOuMmDPKnXCnpskwuRVf7BuNcIeq6rZdp5BowC9DJOC+JZJQ==} engines: {node: '>=22'} starknetkit@2.12.1: @@ -6875,7 +6875,7 @@ snapshots: - encoding - typescript - '@argent/x-ui@1.87.0(b46s52hu5rx6soidp3ah5ycgzy)': + '@argent/x-ui@1.87.0(a7qmgysky6pogyo2qzxcruu6ze)': dependencies: '@argent/x-shared': 1.53.2(@scure/base@1.2.6)(@scure/bip39@1.6.0)(async-retry@1.3.3)(lodash-es@4.17.21)(typescript@5.7.2)(ua-parser-js@1.0.38)(url-join@4.0.1)(zod@3.23.8) '@chakra-ui/react': 2.10.9(@emotion/react@11.14.0(@types/react@18.3.16)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.16)(react@18.3.1))(@types/react@18.3.16)(react@18.3.1))(@types/react@18.3.16)(framer-motion@11.18.2(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -6903,7 +6903,7 @@ snapshots: react-router-dom: 6.26.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-spring-bottom-sheet: 3.5.0-alpha.0(@react-three/fiber@9.2.0(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react-native@0.80.2(@babel/core@7.25.2)(@types/react@18.3.16)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(three@0.178.0))(@types/react@18.3.16)(konva@9.3.22)(react-dom@18.3.1(react@18.3.1))(react-konva@18.2.12(@types/react@18.3.16)(konva@9.3.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-native@0.80.2(@babel/core@7.25.2)(@types/react@18.3.16)(bufferutil@4.0.9)(react@18.3.1)(utf-8-validate@5.0.10))(react-zdog@1.2.2)(react@18.3.1)(three@0.178.0)(zdog@1.1.3) react-virtuoso: 4.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - starknet: 7.6.4 + starknet: 8.1.2 swr: 1.3.0(react@18.3.1) zod: 3.23.8 @@ -7262,9 +7262,9 @@ snapshots: '@biomejs/cli-win32-x64@2.1.2': optional: true - '@cartridge/connector@0.9.2(@metamask/sdk@0.32.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.1(bufferutil@4.0.9)(typescript@5.7.2)(utf-8-validate@5.0.10))(@starknet-react/core@packages+core)(@types/react@18.3.16)(bufferutil@4.0.9)(open@10.1.1)(react@18.3.1)(starknet@7.6.4)(starknetkit@2.12.1(cqnpb42qhlo4mw5m2xbsfjhmja))(typescript@5.7.2)(utf-8-validate@5.0.10)(zod@3.23.8)': + '@cartridge/connector@0.9.2(@metamask/sdk@0.32.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.1(bufferutil@4.0.9)(typescript@5.7.2)(utf-8-validate@5.0.10))(@starknet-react/core@packages+core)(@types/react@18.3.16)(bufferutil@4.0.9)(open@10.1.1)(react@18.3.1)(starknet@8.1.2)(starknetkit@2.12.1(pmx5a6r2fvp2xwjwyvc3cpy7gq))(typescript@5.7.2)(utf-8-validate@5.0.10)(zod@3.23.8)': dependencies: - '@cartridge/controller': 0.9.2(@metamask/sdk@0.32.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.1(bufferutil@4.0.9)(typescript@5.7.2)(utf-8-validate@5.0.10))(@types/react@18.3.16)(bufferutil@4.0.9)(open@10.1.1)(react@18.3.1)(starknet@7.6.4)(starknetkit@2.12.1(cqnpb42qhlo4mw5m2xbsfjhmja))(typescript@5.7.2)(utf-8-validate@5.0.10)(zod@3.23.8) + '@cartridge/controller': 0.9.2(@metamask/sdk@0.32.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.1(bufferutil@4.0.9)(typescript@5.7.2)(utf-8-validate@5.0.10))(@types/react@18.3.16)(bufferutil@4.0.9)(open@10.1.1)(react@18.3.1)(starknet@8.1.2)(starknetkit@2.12.1(pmx5a6r2fvp2xwjwyvc3cpy7gq))(typescript@5.7.2)(utf-8-validate@5.0.10)(zod@3.23.8) '@starknet-react/core': link:packages/core transitivePeerDependencies: - '@azure/app-configuration' @@ -7300,7 +7300,7 @@ snapshots: '@cartridge/controller-wasm@0.2.4': {} - '@cartridge/controller@0.9.2(@metamask/sdk@0.32.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.1(bufferutil@4.0.9)(typescript@5.7.2)(utf-8-validate@5.0.10))(@types/react@18.3.16)(bufferutil@4.0.9)(open@10.1.1)(react@18.3.1)(starknet@7.6.4)(starknetkit@2.12.1(cqnpb42qhlo4mw5m2xbsfjhmja))(typescript@5.7.2)(utf-8-validate@5.0.10)(zod@3.23.8)': + '@cartridge/controller@0.9.2(@metamask/sdk@0.32.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.1(bufferutil@4.0.9)(typescript@5.7.2)(utf-8-validate@5.0.10))(@types/react@18.3.16)(bufferutil@4.0.9)(open@10.1.1)(react@18.3.1)(starknet@8.1.2)(starknetkit@2.12.1(pmx5a6r2fvp2xwjwyvc3cpy7gq))(typescript@5.7.2)(utf-8-validate@5.0.10)(zod@3.23.8)': dependencies: '@cartridge/controller-wasm': 0.2.4 '@cartridge/penpal': 6.2.4 @@ -7314,8 +7314,8 @@ snapshots: ethers: 6.15.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) mipd: 0.0.7(typescript@5.7.2) open: 10.1.1 - starknet: 7.6.4 - starknetkit: 2.12.1(cqnpb42qhlo4mw5m2xbsfjhmja) + starknet: 8.1.2 + starknetkit: 2.12.1(pmx5a6r2fvp2xwjwyvc3cpy7gq) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -7839,14 +7839,14 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 24.1.0 + '@types/node': 18.19.48 jest-mock: 29.7.0 '@jest/fake-timers@29.7.0': dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 24.1.0 + '@types/node': 18.19.48 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -7880,7 +7880,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 24.1.0 + '@types/node': 18.19.48 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -9228,6 +9228,8 @@ snapshots: '@starknet-io/types-js@0.8.4': {} + '@starknet-io/types-js@0.9.0-beta.5': {} + '@swc/helpers@0.5.17': dependencies: tslib: 2.8.1 @@ -9401,7 +9403,7 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 12.20.55 + '@types/node': 18.19.48 '@types/cross-spawn@6.0.6': dependencies: @@ -9424,7 +9426,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 24.1.0 + '@types/node': 18.19.48 '@types/hast@3.0.4': dependencies: @@ -9471,6 +9473,7 @@ snapshots: '@types/node@24.1.0': dependencies: undici-types: 7.8.0 + optional: true '@types/parse-json@4.0.2': {} @@ -9509,11 +9512,11 @@ snapshots: '@types/ws@7.4.7': dependencies: - '@types/node': 12.20.55 + '@types/node': 18.19.48 '@types/ws@8.18.1': dependencies: - '@types/node': 24.1.0 + '@types/node': 18.19.48 '@types/yargs-parser@21.0.3': {} @@ -10668,7 +10671,7 @@ snapshots: chrome-launcher@0.15.2: dependencies: - '@types/node': 24.1.0 + '@types/node': 18.19.48 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -10677,7 +10680,7 @@ snapshots: chromium-edge-launcher@0.2.0: dependencies: - '@types/node': 24.1.0 + '@types/node': 18.19.48 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -11989,7 +11992,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 24.1.0 + '@types/node': 18.19.48 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -11999,7 +12002,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 24.1.0 + '@types/node': 18.19.48 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -12026,7 +12029,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 24.1.0 + '@types/node': 18.19.48 jest-util: 29.7.0 jest-regex-util@29.6.3: {} @@ -12034,7 +12037,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 24.1.0 + '@types/node': 18.19.48 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -12051,7 +12054,7 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 24.1.0 + '@types/node': 18.19.48 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -12206,8 +12209,6 @@ snapshots: lossless-json@2.0.11: {} - lossless-json@4.1.0: {} - lossless-json@4.1.1: {} loupe@2.3.7: @@ -14159,22 +14160,22 @@ snapshots: transitivePeerDependencies: - encoding - starknet@7.6.4: + starknet@8.1.2: dependencies: '@noble/curves': 1.7.0 '@noble/hashes': 1.6.0 '@scure/base': 1.2.1 '@scure/starknet': 1.1.0 - '@starknet-io/starknet-types-07': '@starknet-io/types-js@0.7.10' '@starknet-io/starknet-types-08': '@starknet-io/types-js@0.8.4' + '@starknet-io/starknet-types-09': '@starknet-io/types-js@0.9.0-beta.5' abi-wan-kanabi: 2.2.4 - lossless-json: 4.1.0 + lossless-json: 4.1.1 pako: 2.1.0 ts-mixer: 6.0.4 - starknetkit@2.12.1(cqnpb42qhlo4mw5m2xbsfjhmja): + starknetkit@2.12.1(pmx5a6r2fvp2xwjwyvc3cpy7gq): dependencies: - '@argent/x-ui': 1.87.0(b46s52hu5rx6soidp3ah5ycgzy) + '@argent/x-ui': 1.87.0(a7qmgysky6pogyo2qzxcruu6ze) '@starknet-io/get-starknet': 4.0.7 '@starknet-io/get-starknet-core': 4.0.7 '@starknet-io/types-js': 0.7.10 @@ -14188,7 +14189,7 @@ snapshots: lodash-es: 4.17.21 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - starknet: 7.6.4 + starknet: 8.1.2 svelte-forms: 2.3.1 trpc-browser: 1.4.4(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2) transitivePeerDependencies: @@ -14631,7 +14632,8 @@ snapshots: undici-types@6.19.8: {} - undici-types@7.8.0: {} + undici-types@7.8.0: + optional: true unified@10.1.2: dependencies: