Repository: FuelLabs/fuels-ts
Pull request #3749: chore: upgrade `fuel-core` to `0.43.1`
Author: login: nedsalk
Labels: name: chore
description: Issue is a chore
Created: 2025-03-04T12:33:02Z | Merged: 2025-04-24T19:37:42Z

- Closes #3802
- Closes #3859
- Closes #3482

# Release notes

In this release, we:

- Upgraded `fuel-core` @ `v0.42.0` → `v0.43.0` → `v0.43.1`
- Upgraded `forc` @ `v0.67.1` → `v0.67.2` → `v0.68.1`

# Checklist

- [x] All **changes** are **covered** by **tests** (or not applicable)
- [x] All **changes** are **documented** (or not applicable)
- [x] I **reviewed** the **entire PR** myself (preferably, on GH UI)
- [x] I **described** all **Breaking Changes** (or there's none)


Linked issue #3802: Upgrade `fuel-core` to `0.43.1`
Release notes:
 - https://github.com/FuelLabs/fuel-core/releases/tag/v0.42.0
 - https://github.com/FuelLabs/fuel-core/releases/tag/v0.43.0
 - https://github.com/FuelLabs/fuel-core/releases/tag/v0.43.1

Diff:
diff --git a/.changeset/yummy-tools-sip.md b/.changeset/yummy-tools-sip.md
new file mode 100644
index 00000000000..e73a95d8de0
--- /dev/null
+++ b/.changeset/yummy-tools-sip.md
@@ -0,0 +1,12 @@
+---
+"@fuel-ts/account": patch
+"@fuel-ts/contract": patch
+"@fuel-ts/program": patch
+"@fuel-ts/transactions": patch
+"@fuel-ts/versions": patch
+"@internal/forc": patch
+"@internal/fuel-core": patch
+"create-fuels": patch
+---
+
+chore: upgrade `fuel-core` to `0.43.1`
diff --git a/apps/create-fuels-counter-guide/fuel-toolchain.toml b/apps/create-fuels-counter-guide/fuel-toolchain.toml
index 7fe60d213ae..a44fae43b99 100644
--- a/apps/create-fuels-counter-guide/fuel-toolchain.toml
+++ b/apps/create-fuels-counter-guide/fuel-toolchain.toml
@@ -2,5 +2,5 @@
 channel = "testnet"
 
 [components]
-forc = "0.67.0"
-fuel-core = "0.41.9"
+forc = "0.68.1"
+fuel-core = "0.43.1"
diff --git a/apps/demo-nextjs/package.json b/apps/demo-nextjs/package.json
index 6bedd36b8f0..bd19c9a3a24 100644
--- a/apps/demo-nextjs/package.json
+++ b/apps/demo-nextjs/package.json
@@ -10,7 +10,7 @@
     "pretest": "pnpm original:build"
   },
   "dependencies": {
-    "@fuels/vm-asm": "0.59.1",
+    "@fuels/vm-asm": "0.60.1",
     "@types/node": "22.13.5",
     "@types/react-dom": "19.0.4",
     "@types/react": "19.0.10",
diff --git a/apps/demo-react-cra/package.json b/apps/demo-react-cra/package.json
index 3848995ad57..7f41072184d 100644
--- a/apps/demo-react-cra/package.json
+++ b/apps/demo-react-cra/package.json
@@ -3,7 +3,7 @@
   "version": "0.1.29",
   "private": true,
   "dependencies": {
-    "@fuels/vm-asm": "0.59.1",
+    "@fuels/vm-asm": "0.60.1",
     "@testing-library/react": "16.2.0",
     "@types/node": "22.13.5",
     "@types/react": "19.0.10",
diff --git a/apps/demo-react-vite/package.json b/apps/demo-react-vite/package.json
index 63a54938d29..88af6925eb2 100644
--- a/apps/demo-react-vite/package.json
+++ b/apps/demo-react-vite/package.json
@@ -11,7 +11,7 @@
     "pretest": "pnpm original:build"
   },
   "dependencies": {
-    "@fuels/vm-asm": "0.59.1",
+    "@fuels/vm-asm": "0.60.1",
     "fuels": "workspace:*",
     "react-dom": "19.0.0",
     "react": "19.0.0"
diff --git a/internal/forc/VERSION b/internal/forc/VERSION
index 328185caaeb..7d530da816d 100644
--- a/internal/forc/VERSION
+++ b/internal/forc/VERSION
@@ -1 +1 @@
-0.67.0
+0.68.1
diff --git a/internal/fuel-core/VERSION b/internal/fuel-core/VERSION
index be84c1be4dd..f8287cf9564 100644
--- a/internal/fuel-core/VERSION
+++ b/internal/fuel-core/VERSION
@@ -1 +1 @@
-0.41.9
+0.43.1
diff --git a/packages/account/package.json b/packages/account/package.json
index 12e8ec3b1a7..1b84079e62f 100644
--- a/packages/account/package.json
+++ b/packages/account/package.json
@@ -58,7 +58,7 @@
     "@fuel-ts/transactions": "workspace:*",
     "@fuel-ts/utils": "workspace:*",
     "@fuel-ts/versions": "workspace:*",
-    "@fuels/vm-asm": "0.59.1",
+    "@fuels/vm-asm": "0.60.1",
     "@noble/curves": "1.8.1",
     "events": "3.3.0",
     "graphql": "16.10.0",
diff --git a/packages/account/src/account.test.ts b/packages/account/src/account.test.ts
index 1e1f56b58bb..24a32db551a 100644
--- a/packages/account/src/account.test.ts
+++ b/packages/account/src/account.test.ts
@@ -597,7 +597,7 @@ describe('Account', () => {
 
     // Test excludes the UTXO where the assetIdA gets added to the senders wallet
     await expectToThrowFuelError(
-      () => user.getResourcesToSpend([[1, ASSET_A, 500_000]], { utxos: [assetAUTXO.id] }),
+      () => user.getResourcesToSpend([[1, ASSET_A]], { utxos: [assetAUTXO.id] }),
       new FuelError(
         ErrorCode.INSUFFICIENT_FUNDS_OR_MAX_COINS,
         `Insufficient funds or too many small value coins. Consider combining UTXOs.`
diff --git a/packages/account/src/consolidate-coins.test.ts b/packages/account/src/consolidate-coins.test.ts
index 7868f26808c..c90a181de4f 100644
--- a/packages/account/src/consolidate-coins.test.ts
+++ b/packages/account/src/consolidate-coins.test.ts
@@ -250,7 +250,7 @@ describe('consolidate-coins', () => {
     const { provider, wallets } = await setupTest({
       coinsPerAsset: maxInputs + 2,
       maxInputs,
-      amountPerCoin: 1300,
+      amountPerCoin: 700,
       /**
        * Warning: The fee values set here are working fine given the current values
        * set within the GasCosts chain config. However, any update to the GasCosts values
diff --git a/packages/account/src/providers/fuel-core-schema.graphql b/packages/account/src/providers/fuel-core-schema.graphql
index ec4d7ddd727..abfe211ac22 100644
--- a/packages/account/src/providers/fuel-core-schema.graphql
+++ b/packages/account/src/providers/fuel-core-schema.graphql
@@ -14,8 +14,19 @@ directive @specifiedBy(
   url: String!
 ) on SCALAR
 
+input Account {
+  address: Address
+  predicate: Predicate
+}
+
 scalar Address
 
+type AssembleTransactionResult {
+  transaction: Transaction!
+  status: DryRunTransactionStatus!
+  gasPrice: U64!
+}
+
 scalar AssetId
 
 type AssetInfoDetails {
@@ -149,6 +160,19 @@ type ChangeOutput {
   assetId: AssetId!
 }
 
+input ChangePolicy {
+  """
+  Adds `Output::Change` to the transaction if it is not already present.
+  Sending remaining assets to the provided address.
+  """
+  change: Address
+
+  """
+  Destroys the remaining assets by the transaction for provided address.
+  """
+  destroy: Destroy
+}
+
 type Coin {
   utxoId: UtxoId!
   owner: Address!
@@ -327,6 +351,10 @@ type DaCompressedBlock {
 
 union DependentCost = LightOperation | HeavyOperation
 
+enum Destroy {
+  DESTROY
+}
+
 type DryRunFailureStatus {
   programState: ProgramState
   reason: String!
@@ -335,6 +363,11 @@ type DryRunFailureStatus {
   totalFee: U64!
 }
 
+type DryRunStorageReads {
+  txStatuses: [DryRunTransactionExecutionStatus!]!
+  storageReads: [StorageReadReplayEvent!]!
+}
+
 type DryRunSuccessStatus {
   programState: ProgramState
   receipts: [Receipt!]!
@@ -613,10 +646,16 @@ type Header {
   Hash of the application header.
   """
   applicationHash: Bytes32!
+
+  """
+  Transaction ID Commitment
+  """
+  txIdCommitment: Bytes32
 }
 
 enum HeaderVersion {
   V1
+  V2
 }
 
 type HeavyOperation {
@@ -651,7 +690,7 @@ type InputCoin {
   amount: U64!
   assetId: AssetId!
   txPointer: TxPointer!
-  witnessIndex: Int!
+  witnessIndex: U16!
   predicateGasUsed: U64!
   predicate: HexString!
   predicateData: HexString!
@@ -817,14 +856,18 @@ type Mutation {
     txs: [HexString!]!
     utxoValidation: Boolean
     gasPrice: U64
+    blockHeight: U32
   ): [DryRunTransactionExecutionStatus!]!
+    @deprecated(
+      reason: "This doesn't need to be a mutation. Use query of the same name instead."
+    )
 
   """
   Submits transaction to the `TxPool`.
 
   Returns submitted transaction if the transaction is included in the `TxPool` without problems.
   """
-  submit(tx: HexString!): Transaction!
+  submit(tx: HexString!, estimatePredicates: Boolean): Transaction!
 
   """
   Sequentially produces `blocks_to_produce` blocks. The first block starts with
@@ -937,6 +980,33 @@ type Policies {
   maxFee: U64
 }
 
+type PreconfirmationFailureStatus {
+  reason: String!
+  txPointer: TxPointer!
+  totalGas: U64!
+  totalFee: U64!
+  transactionId: TransactionId!
+  transaction: Transaction
+  receipts: [Receipt!]
+  resolvedOutputs: [ResolvedOutput!]
+}
+
+type PreconfirmationSuccessStatus {
+  txPointer: TxPointer!
+  totalGas: U64!
+  totalFee: U64!
+  transactionId: TransactionId!
+  transaction: Transaction
+  receipts: [Receipt!]
+  resolvedOutputs: [ResolvedOutput!]
+}
+
+input Predicate {
+  predicateAddress: Address!
+  predicate: HexString!
+  predicateData: HexString!
+}
+
 type PredicateParameters {
   version: PredicateParametersVersion!
   maxPredicateLength: U64!
@@ -1028,11 +1098,105 @@ type Query {
     before: String
   ): TransactionConnection!
 
+  """
+  Assembles the transaction based on the provided requirements.
+  The return transaction contains:
+  - Input coins to cover `required_balances`
+  - Input coins to cover the fee of the transaction based on the gas price from `block_horizon`
+  - `Change` or `Destroy` outputs for all assets from the inputs
+  - `Variable` outputs in the case they are required during the execution
+  - `Contract` inputs and outputs in the case they are required during the execution
+  - Reserved witness slots for signed coins filled with `64` zeroes
+  - Set script gas limit(unless `script` is empty)
+  - Estimated predicates, if `estimate_predicates == true`
+
+  Returns an error if:
+  - The number of required balances exceeds the maximum number of inputs allowed.
+  - The fee address index is out of bounds.
+  - The same asset has multiple change policies(either the receiver of
+  the change is different, or one of the policies states about the destruction
+  of the token while the other does not). The `Change` output from the transaction
+  also count as a `ChangePolicy`.
+  - The number of excluded coin IDs exceeds the maximum number of inputs allowed.
+  - Required assets have multiple entries.
+  - If accounts don't have sufficient amounts to cover the transaction requirements in assets.
+  - If a constructed transaction breaks the rules defined by consensus parameters.
+  """
+  assembleTx(
+    """
+    The original transaction that contains application level logic only
+    """
+    tx: HexString!
+
+    """
+    Number of blocks into the future to estimate the gas price for
+    """
+    blockHorizon: U32!
+
+    """
+    The list of required balances for the transaction to include as inputs. The
+    list should be created based on the application-required assets. The base
+    asset requirement should not require assets to cover the transaction fee,
+    which will be calculated and added automatically at the end of the assembly process.
+    """
+    requiredBalances: [RequiredBalance!]!
+
+    """
+    The index from the `required_balances` list that points to the address who
+    pays fee for the transaction. If you only want to cover the fee of
+    transaction, you can set the required balance to 0, set base asset and point
+    to this required address.
+    """
+    feeAddressIndex: U16!
+
+    """
+    The list of resources to exclude from the selection for the inputs
+    """
+    excludeInput: ExcludeInput
+
+    """
+    Perform the estimation of the predicates before cover fee of the transaction
+    """
+    estimatePredicates: Boolean
+
+    """
+    During the phase of the fee calculation, adds `reserve_gas` to the total gas
+    used by the transaction and fetch assets to cover the fee.
+    """
+    reserveGas: U64
+  ): AssembleTransactionResult!
+
   """
   Estimate the predicate gas for the provided transaction
   """
   estimatePredicates(tx: HexString!): Transaction!
 
+  """
+  Execute a dry-run of multiple transactions using a fork of current state, no changes are committed.
+  """
+  dryRun(
+    txs: [HexString!]!
+    utxoValidation: Boolean
+    gasPrice: U64
+    blockHeight: U32
+  ): [DryRunTransactionExecutionStatus!]!
+
+  """
+  Execute a dry-run of multiple transactions using a fork of current state, no changes are committed.
+  Also records accesses, so the execution can be replicated locally.
+  """
+  dryRunRecordStorageReads(
+    txs: [HexString!]!
+    utxoValidation: Boolean
+    gasPrice: U64
+    blockHeight: U32
+  ): DryRunStorageReads!
+
+  """
+  Get execution trace for an already-executed block.
+  """
+  storageReadReplay(height: U32!): [StorageReadReplayEvent!]!
+
   """
   Returns true when the GraphQL API is serving requests.
   """
@@ -1150,6 +1314,28 @@ type Query {
   consensusParameters(version: Int!): ConsensusParameters!
   stateTransitionBytecodeByVersion(version: Int!): StateTransitionBytecode
   stateTransitionBytecodeByRoot(root: HexString!): StateTransitionBytecode!
+
+  """
+  Get storage slot values for a contract at a specific block height.
+  Use the latest block height if not provided.
+  Requires historical execution config to be enabled.
+  """
+  contractSlotValues(
+    contractId: ContractId!
+    blockHeight: U32
+    storageSlots: [Bytes32!]!
+  ): [StorageSlot!]!
+
+  """
+  Get balance values for a contract at a specific block height.
+  Use the latest block height if not provided.
+  Requires historical execution config to be enabled.
+  """
+  contractBalanceValues(
+    contractId: ContractId!
+    blockHeight: U32
+    assets: [AssetId!]!
+  ): [ContractBalance!]!
 }
 
 type Receipt {
@@ -1212,6 +1398,18 @@ scalar RelayedTransactionId
 
 union RelayedTransactionStatus = RelayedTransactionFailed
 
+input RequiredBalance {
+  assetId: AssetId!
+  amount: U64!
+  account: Account!
+  changePolicy: ChangePolicy!
+}
+
+type ResolvedOutput {
+  utxoId: UtxoId!
+  output: Output!
+}
+
 enum ReturnType {
   RETURN
   RETURN_DATA
@@ -1259,15 +1457,21 @@ input SpendQueryElementInput {
   """
   Target amount for the query.
   """
-  amount: U64!
+  amount: U128!
 
   """
   The maximum number of currencies for selection.
   """
-  max: U32
+  max: U16
+
+  """
+  If true, returns available coins instead of failing when the requested amount is unavailable.
+  """
+  allowPartial: Boolean
 }
 
 type SqueezedOutStatus {
+  transactionId: TransactionId!
   reason: String!
 }
 
@@ -1280,6 +1484,17 @@ type StateTransitionPurpose {
   root: Bytes32!
 }
 
+type StorageReadReplayEvent {
+  column: U32!
+  key: HexString!
+  value: HexString
+}
+
+type StorageSlot {
+  key: Bytes32!
+  value: HexString!
+}
+
 scalar SubId
 
 type SubmittedStatus {
@@ -1289,10 +1504,10 @@ type SubmittedStatus {
 type Subscription {
   """
   Returns a stream of status updates for the given transaction id.
-  If the current status is [`TransactionStatus::Success`], [`TransactionStatus::SqueezedOut`]
-  or [`TransactionStatus::Failed`] the stream will return that and end immediately.
-  If the current status is [`TransactionStatus::Submitted`] this will be returned
-  and the stream will wait for a future update.
+  If the current status is [`TransactionStatus::Success`], [`TransactionStatus::Failed`],
+  or [`TransactionStatus::SqueezedOut`] the stream will return that and end immediately.
+  Other, intermediate statuses will also be returned but the stream will remain active
+  and wait for a future updates.
 
   This stream will wait forever so it's advised to use within a timeout.
 
@@ -1306,19 +1521,33 @@ type Subscription {
     The ID of the transaction
     """
     id: TransactionId!
+
+    """
+    If true, accept to receive the preconfirmation status
+    """
+    includePreconfirmation: Boolean
   ): TransactionStatus!
 
   """
-  Submits transaction to the `TxPool` and await either confirmation or failure.
+  Submits transaction to the `TxPool` and await either success or failure.
   """
-  submitAndAwait(tx: HexString!): TransactionStatus!
+  submitAndAwait(
+    tx: HexString!
+    estimatePredicates: Boolean
+  ): TransactionStatus!
 
   """
   Submits the transaction to the `TxPool` and returns a stream of events.
-  Compared to the `submitAndAwait`, the stream also contains `
-  SubmittedStatus` as an intermediate state.
+  Compared to the `submitAndAwait`, the stream also contains
+  `SubmittedStatus` and potentially preconfirmation as an intermediate state.
   """
-  submitAndAwaitStatus(tx: HexString!): TransactionStatus!
+  submitAndAwaitStatus(
+    tx: HexString!
+    estimatePredicates: Boolean
+    includePreconfirmation: Boolean
+  ): TransactionStatus!
+  contractStorageSlots(contractId: ContractId!): StorageSlot!
+  contractStorageBalances(contractId: ContractId!): ContractBalance!
 }
 
 type SuccessStatus {
@@ -1358,7 +1587,7 @@ type Transaction {
   outputContract: ContractOutput
   witnesses: [HexString!]
   receiptsRoot: Bytes32
-  status: TransactionStatus
+  status(includePreconfirmation: Boolean): TransactionStatus
   script: HexString
   scriptData: HexString
   bytecodeWitnessIndex: U16
@@ -1414,8 +1643,10 @@ scalar TransactionId
 union TransactionStatus =
   | SubmittedStatus
   | SuccessStatus
+  | PreconfirmationSuccessStatus
   | SqueezedOutStatus
   | FailureStatus
+  | PreconfirmationFailureStatus
 
 type TxParameters {
   version: TxParametersVersion!
diff --git a/packages/account/src/providers/provider.ts b/packages/account/src/providers/provider.ts
index fd37988dad8..0b5d28b5f8f 100644
--- a/packages/account/src/providers/provider.ts
+++ b/packages/account/src/providers/provider.ts
@@ -33,6 +33,10 @@ import type {
   Requester,
   GqlBlockFragment,
   GqlEstimatePredicatesQuery,
+  GqlStatusChangeSubscription,
+  GqlSubmitAndAwaitStatusSubscription,
+  GqlGetTransactionWithReceiptsQuery,
+  GqlGetTransactionsByOwnerQuery,
 } from './__generated__/operations';
 import type { Coin } from './coin';
 import type { CoinQuantity, CoinQuantityLike } from './coin-quantity';
@@ -393,13 +397,65 @@ type NodeInfoCache = Record<string, NodeInfo>;
 
 type Operations = ReturnType<typeof getOperationsSdk>;
 
-type SdkOperations = Omit<Operations, 'statusChange' | 'submitAndAwaitStatus'> & {
+/**
+ * TODO: remove this once pre-confirmation status support lands.
+ *
+ * Because of the way graphql-codegen works, an empty object is added to the generated status types
+ * in place of the pre-confirmation statuses we don't declare in our operations.graphql.
+ * Codegen converts these ignored statuses into `{}` types, and that messes up our TS code compilation,
+ * because it's not written with this `{}` type in mind.
+ * This utility and its application on the types below removes those empty objects from the affected operations,
+ * thereby leaving their types unchanged from the perspective of their consumers.
+ */
+type RemoveCodegenEmptyObject<T> = T extends object ? (keyof T extends never ? never : T) : T;
+
+type StatusChangeSubscription = {
+  statusChange: RemoveCodegenEmptyObject<GqlStatusChangeSubscription['statusChange']>;
+};
+
+type SubmitAndAwaitStatusSubscription = {
+  submitAndAwaitStatus: RemoveCodegenEmptyObject<
+    GqlSubmitAndAwaitStatusSubscription['submitAndAwaitStatus']
+  >;
+};
+
+type TransactionWithReceipts = NonNullable<GqlGetTransactionWithReceiptsQuery['transaction']>;
+
+type GetTransactionWithReceiptsQuery = {
+  transaction?: Omit<TransactionWithReceipts, 'status'> & {
+    status?: RemoveCodegenEmptyObject<TransactionWithReceipts['status']>;
+  };
+};
+
+type TransactionsByOwnerNode =
+  GqlGetTransactionsByOwnerQuery['transactionsByOwner']['edges'][number]['node'];
+
+type GetTransactionsByOwnerQuery = {
+  transactionsByOwner: Omit<GqlGetTransactionsByOwnerQuery['transactionsByOwner'], 'edges'> & {
+    edges: Array<{
+      node: Omit<TransactionsByOwnerNode, 'status'> & {
+        status?: RemoveCodegenEmptyObject<TransactionsByOwnerNode['status']>;
+      };
+    }>;
+  };
+};
+
+type SdkOperations = Omit<
+  Operations,
+  'statusChange' | 'submitAndAwaitStatus' | 'getTransactionWithReceipts' | 'getTransactionsByOwner'
+> & {
   statusChange: (
     ...args: Parameters<Operations['statusChange']>
-  ) => Promise<ReturnType<Operations['statusChange']>>;
+  ) => Promise<AsyncIterable<StatusChangeSubscription>>;
   submitAndAwaitStatus: (
     ...args: Parameters<Operations['submitAndAwaitStatus']>
-  ) => Promise<ReturnType<Operations['submitAndAwaitStatus']>>;
+  ) => Promise<AsyncIterable<SubmitAndAwaitStatusSubscription>>;
+  getTransactionWithReceipts: (
+    ...args: Parameters<Operations['getTransactionWithReceipts']>
+  ) => Promise<GetTransactionWithReceiptsQuery>;
+  getTransactionsByOwner: (
+    ...args: Parameters<Operations['getTransactionsByOwner']>
+  ) => Promise<GetTransactionsByOwnerQuery>;
   getBlobs: (variables: { blobIds: string[] }) => Promise<{ blob: { id: string } | null }[]>;
 };
 
diff --git a/packages/account/src/providers/transaction-response/transaction-response.ts b/packages/account/src/providers/transaction-response/transaction-response.ts
index eb587272c63..cd9cdcbfa7c 100644
--- a/packages/account/src/providers/transaction-response/transaction-response.ts
+++ b/packages/account/src/providers/transaction-response/transaction-response.ts
@@ -27,11 +27,7 @@ import type {
 import { OutputType, TransactionCoder, TxPointerCoder } from '@fuel-ts/transactions';
 import { arrayify, assertUnreachable } from '@fuel-ts/utils';
 
-import type {
-  GqlMalleableTransactionFieldsFragment,
-  GqlStatusChangeSubscription,
-  GqlSubmitAndAwaitStatusSubscription,
-} from '../__generated__/operations';
+import type { GqlMalleableTransactionFieldsFragment } from '../__generated__/operations';
 import type Provider from '../provider';
 import type { JsonAbisFromAllCalls, TransactionRequest } from '../transaction-request';
 import { assembleTransactionSummary } from '../transaction-summary/assemble-transaction-summary';
@@ -122,6 +118,15 @@ function mapGqlOutputsToTxOutputs(
   });
 }
 
+type SubmitAndAwaitStatusSubscriptionIterable = Awaited<
+  ReturnType<Provider['operations']['submitAndAwaitStatus']>
+>;
+
+type StatusChangeSubscription =
+  Awaited<ReturnType<Provider['operations']['statusChange']>> extends AsyncIterable<infer R>
+    ? R
+    : never;
+
 /**
  * Represents a response for a transaction.
  */
@@ -135,7 +140,7 @@ export class TransactionResponse {
   /** The graphql Transaction with receipts object. */
   private gqlTransaction?: GqlTransaction;
   private request?: TransactionRequest;
-  private status?: GqlStatusChangeSubscription['statusChange'];
+  private status?: StatusChangeSubscription['statusChange'];
   abis?: JsonAbisFromAllCalls;
 
   /**
@@ -149,7 +154,7 @@ export class TransactionResponse {
     provider: Provider,
     chainId: number,
     abis?: JsonAbisFromAllCalls,
-    private submitTxSubscription?: AsyncIterable<GqlSubmitAndAwaitStatusSubscription>
+    private submitTxSubscription?: SubmitAndAwaitStatusSubscriptionIterable
   ) {
     this.id = typeof tx === 'string' ? tx : tx.getTransactionId(chainId);
 
diff --git a/packages/account/src/test-utils/launchNode.ts b/packages/account/src/test-utils/launchNode.ts
index c68e7b13ca8..c3c7bc39245 100644
--- a/packages/account/src/test-utils/launchNode.ts
+++ b/packages/account/src/test-utils/launchNode.ts
@@ -170,6 +170,7 @@ export const launchNode = async ({
     const nativeExecutorVersion = getFlagValueFromArgs(args, '--native-executor-version') || '0';
 
     const minGasPrice = getFlagValueFromArgs(args, '--min-gas-price') || '1';
+    const startingGasPrice = getFlagValueFromArgs(args, '--starting-gas-price') || '1';
 
     // This string is logged by the client when the node has successfully started. We use it to know when to resolve.
     const graphQLStartSubstring = 'Binding GraphQL provider to';
@@ -224,6 +225,7 @@ export const launchNode = async ({
         ['--port', portToUse],
         useInMemoryDb ? ['--db-type', 'in-memory'] : ['--db-path', tempDir],
         ['--min-gas-price', minGasPrice],
+        ['--starting-gas-price', startingGasPrice],
         poaInstant ? ['--poa-instant', 'true'] : [],
         ['--native-executor-version', nativeExecutorVersion],
         ['--consensus-key', consensusKey],
diff --git a/packages/account/test/fuel-core-schema.test.ts b/packages/account/test/fuel-core-schema.test.ts
index 5d737e1e4c3..7a092d9f274 100644
--- a/packages/account/test/fuel-core-schema.test.ts
+++ b/packages/account/test/fuel-core-schema.test.ts
@@ -32,5 +32,5 @@ describe('fuel-core-schema.graphql', () => {
       preSyncChecksum,
       `\nThe schema at ${FUEL_CORE_SCHEMA_FILE_PATH} is not in sync with fuel-core.\n\nRun '${FUEL_CORE_SCHEMA_SYNC_COMMAND}' to update it.\n\n`
     ).toEqual(postSyncChecksum);
-  });
+  }, 10_000);
 });
diff --git a/packages/account/test/fuel-wallet-connector.test.ts b/packages/account/test/fuel-wallet-connector.test.ts
index 661c6da8ab1..01f3b1c77a4 100644
--- a/packages/account/test/fuel-wallet-connector.test.ts
+++ b/packages/account/test/fuel-wallet-connector.test.ts
@@ -788,12 +788,14 @@ describe('Fuel Connector', () => {
     request.addCoinOutput(receiverWallet.address, 1000, await provider.getBaseAssetId());
     await request.estimateAndFund(connectorWallet);
 
+    const gasPrice = bn(request.flag?.summary?.gasPrice);
+
     const initialTxBytes = request.toTransactionBytes();
 
     const response = await account.sendTransaction(request);
     expect(response).toBeDefined();
 
-    const { rawReceipts, gasPrice } = await provider.getTransactionCost(request);
+    const { rawReceipts } = await provider.getTransactionCost(request, { gasPrice });
     const chainId = await provider.getChainId();
 
     const transactionSummaryJson = {
diff --git a/packages/contract/package.json b/packages/contract/package.json
index fd971e93421..5dafcf25428 100644
--- a/packages/contract/package.json
+++ b/packages/contract/package.json
@@ -49,7 +49,7 @@
     "@fuel-ts/program": "workspace:*",
     "@fuel-ts/transactions": "workspace:*",
     "@fuel-ts/utils": "workspace:*",
-    "@fuels/vm-asm": "0.59.1",
+    "@fuels/vm-asm": "0.60.1",
     "ramda": "0.30.1"
   },
   "devDependencies": {
diff --git a/packages/fuel-gauge/test/fixtures/forc-projects/abi-contract/src/equality.sw b/packages/fuel-gauge/test/fixtures/forc-projects/abi-contract/src/equality.sw
index b26211c2b09..f111603aed0 100644
--- a/packages/fuel-gauge/test/fixtures/forc-projects/abi-contract/src/equality.sw
+++ b/packages/fuel-gauge/test/fixtures/forc-projects/abi-contract/src/equality.sw
@@ -38,13 +38,6 @@ impl PartialEq for [b256; 3] {
 }
 impl Eq for [b256; 3] {}
 
-impl PartialEq for (b256, u8) {
-    fn eq(self, other: Self) -> bool {
-        self.0 == other.0 && self.1 == other.1
-    }
-}
-impl Eq for (b256, u8) {}
-
 impl PartialEq for str[1] {
     fn eq(self, other: Self) -> bool {
         from_str_array(self) == from_str_array(other)
@@ -129,40 +122,6 @@ impl PartialEq for StructDoubleGeneric<StructSingleGeneric<[b256; 3]>, u8> {
 }
 impl Eq for StructDoubleGeneric<StructSingleGeneric<[b256; 3]>, u8> {}
 
-impl PartialEq for Vec<u32> {
-    fn eq(self, other: Self) -> bool {
-        if self.len() != other.len() {
-            return false;
-        }
-        let mut i = 0;
-        while i < self.len() {
-            if self.get(i).unwrap() != other.get(i).unwrap() {
-                return false;
-            }
-            i += 1;
-        }
-        true
-    }
-}
-impl Eq for Vec<u32> {}
-
-impl PartialEq for Vec<u64> {
-    fn eq(self, other: Self) -> bool {
-        if self.len() != other.len() {
-            return false;
-        }
-        let mut i = 0;
-        while i < self.len() {
-            if self.get(i).unwrap() != other.get(i).unwrap() {
-                return false;
-            }
-            i += 1;
-        }
-        true
-    }
-}
-impl Eq for Vec<u64> {}
-
 impl PartialEq for [Vec<u32>; 1] {
     fn eq(self, other: Self) -> bool {
         self[0] == other[0]
@@ -170,13 +129,6 @@ impl PartialEq for [Vec<u32>; 1] {
 }
 impl Eq for [Vec<u32>; 1] {}
 
-impl PartialEq for (u8, u8, u8) {
-    fn eq(self, other: Self) -> bool {
-        self.0 == other.0 && self.1 == other.1 && self.2 == other.2
-    }
-}
-impl Eq for (u8, u8, u8) {}
-
 impl PartialEq for StructSingleGeneric<StructSingleGeneric<u64>> {
     fn eq(self, other: Self) -> bool {
         self.a == other.a
@@ -184,20 +136,6 @@ impl PartialEq for StructSingleGeneric<StructSingleGeneric<u64>> {
 }
 impl Eq for StructSingleGeneric<StructSingleGeneric<u64>> {}
 
-impl PartialEq for (u8, StructSingleGeneric<StructSingleGeneric<u64>>, str[3]) {
-    fn eq(self, other: Self) -> bool {
-        self.0 == other.0 && self.1 == other.1 && self.2 == other.2
-    }
-}
-impl Eq for (u8, StructSingleGeneric<StructSingleGeneric<u64>>, str[3]) {}
-
-impl PartialEq for (AssetId, AssetId, bool) {
-    fn eq(self, other: Self) -> bool {
-        self.0 == other.0 && self.1 == other.1 && self.2 == other.2
-    }
-}
-impl Eq for (AssetId, AssetId, bool) {}
-
 impl PartialEq for StructSingleGeneric<u8> {
     fn eq(self, other: Self) -> bool {
         self.a == other.a
@@ -205,20 +143,6 @@ impl PartialEq for StructSingleGeneric<u8> {
 }
 impl Eq for StructSingleGeneric<u8> {}
 
-impl PartialEq for (bool, u64) {
-    fn eq(self, other: Self) -> bool {
-        self.0 == other.0 && self.1 == other.1
-    }
-}
-impl Eq for (bool, u64) {}
-
-impl PartialEq for (str[5], bool) {
-    fn eq(self, other: Self) -> bool {
-        self.0 == other.0 && self.1 == other.1
-    }
-}
-impl Eq for (str[5], bool) {}
-
 impl PartialEq for StructSingleGeneric<(bool, u64)> {
     fn eq(self, other: Self) -> bool {
         self.a == other.a
@@ -293,23 +217,6 @@ impl PartialEq for StructE<u8> {
 }
 impl Eq for StructE<u8> {}
 
-impl PartialEq for Vec<StructE<u8>> {
-    fn eq(self, other: Self) -> bool {
-        if self.len() != other.len() {
-            return false;
-        }
-        let mut i = 0;
-        while i < self.len() {
-            if self.get(i).unwrap() != other.get(i).unwrap() {
-                return false;
-            }
-            i += 1;
-        }
-        true
-    }
-}
-impl Eq for Vec<StructE<u8>> {}
-
 impl PartialEq for StructF<str[1]> {
     fn eq(self, other: Self) -> bool {
         self.propF1 == other.propF1 && self.propF2 == other.propF2
@@ -324,23 +231,6 @@ impl PartialEq for StructD<u8, u8, StructF<str[1]>> {
 }
 impl Eq for StructD<u8, u8, StructF<str[1]>> {}
 
-impl PartialEq for Vec<StructB> {
-    fn eq(self, other: Self) -> bool {
-        if self.len() != other.len() {
-            return false;
-        }
-        let mut i = 0;
-        while i < self.len() {
-            if self.get(i).unwrap() != other.get(i).unwrap() {
-                return false;
-            }
-            i += 1;
-        }
-        true
-    }
-}
-impl Eq for Vec<StructB> {}
-
 impl PartialEq for StructC {
     fn eq(self, other: Self) -> bool {
         self.propC1 == other.propC1 && self.propC2 == other.propC2 && self.propC3 == other.propC3
@@ -370,23 +260,6 @@ impl PartialEq for EnumWithBuiltinType {
 }
 impl Eq for EnumWithBuiltinType {}
 
-impl PartialEq for Vec<u8> {
-    fn eq(self, other: Self) -> bool {
-        if self.len() != other.len() {
-            return false;
-        }
-        let mut i = 0;
-        while i < self.len() {
-            if self.get(i).unwrap() != other.get(i).unwrap() {
-                return false;
-            }
-            i += 1;
-        }
-        true
-    }
-}
-impl Eq for Vec<u8> {}
-
 impl PartialEq for EnumWithVector {
     fn eq(self, other: Self) -> bool {
         match (self, other) {
@@ -417,57 +290,6 @@ impl PartialEq for EnumWithStructs {
 }
 impl Eq for EnumWithStructs {}
 
-impl PartialEq for Vec<bool> {
-    fn eq(self, other: Self) -> bool {
-        if self.len() != other.len() {
-            return false;
-        }
-        let mut i = 0;
-        while i < self.len() {
-            if self.get(i).unwrap() != other.get(i).unwrap() {
-                return false;
-            }
-            i += 1;
-        }
-        true
-    }
-}
-impl Eq for Vec<bool> {}
-
-impl PartialEq for Vec<Vec<u32>> {
-    fn eq(self, other: Self) -> bool {
-        if self.len() != other.len() {
-            return false;
-        }
-        let mut i = 0;
-        while i < self.len() {
-            if self.get(i).unwrap() != other.get(i).unwrap() {
-                return false;
-            }
-            i += 1;
-        }
-        true
-    }
-}
-impl Eq for Vec<Vec<u32>> {}
-
-impl PartialEq for Vec<StructSimple> {
-    fn eq(self, other: Self) -> bool {
-        if self.len() != other.len() {
-            return false;
-        }
-        let mut i = 0;
-        while i < self.len() {
-            if self.get(i).unwrap() != other.get(i).unwrap() {
-                return false;
-            }
-            i += 1;
-        }
-        true
-    }
-}
-impl Eq for Vec<StructSimple> {}
-
 impl PartialEq for [Option<u8>; 5] {
     fn eq(self, other: Self) -> bool {
         self[0] == other[0] && self[1] == other[1] && self[2] == other[2] && self[3] == other[3] && self[4] == other[4]
@@ -482,23 +304,6 @@ impl PartialEq for StructWithMultiOption {
 }
 impl Eq for StructWithMultiOption {}
 
-impl PartialEq for Vec<StructWithMultiOption> {
-    fn eq(self, other: Self) -> bool {
-        if self.len() != other.len() {
-            return false;
-        }
-        let mut i = 0;
-        while i < self.len() {
-            if self.get(i).unwrap() != other.get(i).unwrap() {
-                return false;
-            }
-            i += 1;
-        }
-        true
-    }
-}
-impl Eq for Vec<StructWithMultiOption> {}
-
 impl PartialEq for StructWithGenericArray<b256> {
     fn eq(self, other: Self) -> bool {
         self.a == other.a
diff --git a/packages/fuel-gauge/test/fixtures/forc-projects/coverage-contract/src/main.sw b/packages/fuel-gauge/test/fixtures/forc-projects/coverage-contract/src/main.sw
index ed132f88535..fc7350d5307 100644
--- a/packages/fuel-gauge/test/fixtures/forc-projects/coverage-contract/src/main.sw
+++ b/packages/fuel-gauge/test/fixtures/forc-projects/coverage-contract/src/main.sw
@@ -137,40 +137,6 @@ pub fn vec_from(vals: [u32; 3]) -> Vec<u32> {
     vec
 }
 
-impl PartialEq for Vec<u32> {
-    fn eq(self, other: Self) -> bool {
-        if self.len() != other.len() {
-            return false;
-        }
-        let mut i = 0;
-        while i < self.len() {
-            if self.get(i).unwrap() != other.get(i).unwrap() {
-                return false;
-            }
-            i += 1;
-        }
-        true
-    }
-}
-impl Eq for Vec<u32> {}
-
-impl PartialEq for Vec<Vec<u32>> {
-    fn eq(self, other: Self) -> bool {
-        if self.len() != other.len() {
-            return false;
-        }
-        let mut i = 0;
-        while i < self.len() {
-            if self.get(i).unwrap() != other.get(i).unwrap() {
-                return false;
-            }
-            i += 1;
-        }
-        true
-    }
-}
-impl Eq for Vec<Vec<u32>> {}
-
 impl PartialEq for [Vec<u32>; 2] {
     fn eq(self, other: Self) -> bool {
         let mut i = 0;
diff --git a/packages/fuel-gauge/test/fixtures/forc-projects/script-with-more-configurable/src/main.sw b/packages/fuel-gauge/test/fixtures/forc-projects/script-with-more-configurable/src/main.sw
index 05fca00f82b..ec22855c09a 100644
--- a/packages/fuel-gauge/test/fixtures/forc-projects/script-with-more-configurable/src/main.sw
+++ b/packages/fuel-gauge/test/fixtures/forc-projects/script-with-more-configurable/src/main.sw
@@ -10,11 +10,13 @@ enum Colors {
     red: (),
     blue: (),
 }
+
 impl PartialEq for [u32; 2] {
     fn eq(self, other: Self) -> bool {
         self[0] == other[0] && self[1] == other[1]
     }
 }
+
 impl Eq for [u32; 2] {}
 
 impl PartialEq for [u8; 3] {
@@ -22,6 +24,7 @@ impl PartialEq for [u8; 3] {
         self[0] == other[0] && self[1] == other[1] && self[2] == other[2]
     }
 }
+
 impl Eq for [u8; 3] {}
 
 impl PartialEq for [[u32; 2]; 2] {
@@ -29,6 +32,7 @@ impl PartialEq for [[u32; 2]; 2] {
         self[0] == other[0] && self[1] == other[1]
     }
 }
+
 impl Eq for [[u32; 2]; 2] {}
 
 impl PartialEq for str[2] {
@@ -36,7 +40,6 @@ impl PartialEq for str[2] {
         from_str_array(self) == from_str_array(other)
     }
 }
-impl Eq for str[2] {}
 
 impl PartialEq for str[3] {
     fn eq(self, other: Self) -> bool {
@@ -45,26 +48,11 @@ impl PartialEq for str[3] {
 }
 impl Eq for str[3] {}
 
-impl PartialEq for str[4] {
-    fn eq(self, other: Self) -> bool {
-        from_str_array(self) == from_str_array(other)
-    }
-}
-impl Eq for str[4] {}
-
-impl PartialEq for (u8, bool, str[2]) {
-    fn eq(self, other: Self) -> bool {
-        self.0 == other.0 && self.1 == other.1 && self.2 == other.2
-    }
-}
-impl Eq for (u8, bool, str[2]) {}
-
 impl PartialEq for Struct1 {
     fn eq(self, other: Self) -> bool {
         self.tag == other.tag && self.age == other.age && self.scores == other.scores
     }
 }
-impl Eq for Struct1 {}
 
 impl PartialEq for Colors {
     fn eq(self, other: Self) -> bool {
diff --git a/packages/fuel-gauge/test/fixtures/forc-projects/vector-types-contract/src/main.sw b/packages/fuel-gauge/test/fixtures/forc-projects/vector-types-contract/src/main.sw
index 5322435cdab..f98569d44ac 100644
--- a/packages/fuel-gauge/test/fixtures/forc-projects/vector-types-contract/src/main.sw
+++ b/packages/fuel-gauge/test/fixtures/forc-projects/vector-types-contract/src/main.sw
@@ -18,13 +18,6 @@ pub fn vec_from(vals: [u32; 3]) -> Vec<u32> {
     vec
 }
 
-impl PartialEq for (u32, u32) {
-    fn eq(self, other: Self) -> bool {
-        self.0 == other.0 && self.1 == other.1
-    }
-}
-impl Eq for (u32, u32) {}
-
 impl PartialEq for SomeEnum<u32> {
     fn eq(self, other: Self) -> bool {
         match self {
@@ -38,55 +31,12 @@ impl PartialEq for SomeEnum<u32> {
         }
     }
 }
-impl Eq for SomeEnum<u32> {}
-
-impl PartialEq for Vec<u32> {
-    fn eq(self, other: Self) -> bool {
-        if self.len() != other.len() {
-            return false;
-        }
-        let mut i = 0;
-        while i < self.len() {
-            if self.get(i).unwrap() != other.get(i).unwrap() {
-                return false;
-            }
-            i += 1;
-        }
-        true
-    }
-}
-impl Eq for Vec<u32> {}
-
-impl PartialEq for (Vec<u32>, Vec<u32>) {
-    fn eq(self, other: Self) -> bool {
-        self.0 == other.0 && self.1 == other.1
-    }
-}
-impl Eq for (Vec<u32>, Vec<u32>) {}
-
-impl PartialEq for Vec<Vec<u32>> {
-    fn eq(self, other: Self) -> bool {
-        if self.len() != other.len() {
-            return false;
-        }
-        let mut i = 0;
-        while i < self.len() {
-            if self.get(i).unwrap() != other.get(i).unwrap() {
-                return false;
-            }
-            i += 1;
-        }
-        true
-    }
-}
-impl Eq for Vec<Vec<u32>> {}
 
 impl PartialEq for SomeStruct<u32> {
     fn eq(self, other: Self) -> bool {
         self.a == other.a
     }
 }
-impl Eq for SomeStruct<u32> {}
 
 impl PartialEq for [Vec<u32>; 2] {
     fn eq(self, other: Self) -> bool {
@@ -100,24 +50,6 @@ impl PartialEq for [Vec<u32>; 2] {
         true
     }
 }
-impl Eq for [Vec<u32>; 2] {}
-
-impl PartialEq for Vec<SomeStruct<u32>> {
-    fn eq(self, other: Self) -> bool {
-        if self.len() != other.len() {
-            return false;
-        }
-        let mut i = 0;
-        while i < self.len() {
-            if self.get(i).unwrap() != other.get(i).unwrap() {
-                return false;
-            }
-            i += 1;
-        }
-        true
-    }
-}
-impl Eq for Vec<SomeStruct<u32>> {}
 
 impl PartialEq for [u64; 2] {
     fn eq(self, other: Self) -> bool {
@@ -131,24 +63,6 @@ impl PartialEq for [u64; 2] {
         true
     }
 }
-impl Eq for [u64; 2] {}
-
-impl PartialEq for Vec<[u64; 2]> {
-    fn eq(self, other: Self) -> bool {
-        if self.len() != other.len() {
-            return false;
-        }
-        let mut i = 0;
-        while i < self.len() {
-            if self.get(i).unwrap() != other.get(i).unwrap() {
-                return false;
-            }
-            i += 1;
-        }
-        true
-    }
-}
-impl Eq for Vec<[u64; 2]> {}
 
 impl PartialEq for SomeEnum<Vec<u32>> {
     fn eq(self, other: Self) -> bool {
@@ -163,68 +77,12 @@ impl PartialEq for SomeEnum<Vec<u32>> {
         }
     }
 }
-impl Eq for SomeEnum<Vec<u32>> {}
-
-impl PartialEq for Vec<SomeEnum<u32>> {
-    fn eq(self, other: Self) -> bool {
-        if self.len() != other.len() {
-            return false;
-        }
-
-        let mut i = 0;
-        while i < self.len() {
-            if self.get(i).unwrap() != other.get(i).unwrap() {
-                return false;
-            }
-            i += 1;
-        }
-        true
-    }
-}
-impl Eq for Vec<SomeEnum<u32>> {}
-
-impl PartialEq for Vec<(u32, u32)> {
-    fn eq(self, other: Self) -> bool {
-        if self.len() != other.len() {
-            return false;
-        }
-
-        let mut i = 0;
-        while i < self.len() {
-            if self.get(i).unwrap() != other.get(i).unwrap() {
-                return false;
-            }
-            i += 1;
-        }
-        true
-    }
-}
-impl Eq for Vec<(u32, u32)> {}
 
 impl PartialEq for SomeStruct<Vec<Vec<u32>>> {
     fn eq(self, other: Self) -> bool {
         self.a == other.a
     }
 }
-impl Eq for SomeStruct<Vec<Vec<u32>>> {}
-
-impl PartialEq for Vec<SomeStruct<Vec<Vec<u32>>>> {
-    fn eq(self, other: Self) -> bool {
-        if self.len() != other.len() {
-            return false;
-        }
-
-        let mut i = 0;
-        while i < self.len() {
-            if self.get(i).unwrap() != other.get(i).unwrap() {
-                return false;
-            }
-            i += 1;
-        }
-        true
-    }
-}
-impl Eq for Vec<SomeStruct<Vec<Vec<u32>>>> {}
 
 abi MyContract {
     fn test_all(
diff --git a/packages/fuel-gauge/test/fixtures/forc-projects/vector-types-script/src/main.sw b/packages/fuel-gauge/test/fixtures/forc-projects/vector-types-script/src/main.sw
index 6d07074cadb..dce3406f44b 100644
--- a/packages/fuel-gauge/test/fixtures/forc-projects/vector-types-script/src/main.sw
+++ b/packages/fuel-gauge/test/fixtures/forc-projects/vector-types-script/src/main.sw
@@ -18,13 +18,6 @@ pub fn vec_from(vals: [u32; 3]) -> Vec<u32> {
     vec
 }
 
-impl PartialEq for (u32, u32) {
-    fn eq(self, other: Self) -> bool {
-        self.0 == other.0 && self.1 == other.1
-    }
-}
-impl Eq for (u32, u32) {}
-
 impl PartialEq for SomeEnum<u32> {
     fn eq(self, other: Self) -> bool {
         match self {
@@ -38,55 +31,12 @@ impl PartialEq for SomeEnum<u32> {
         }
     }
 }
-impl Eq for SomeEnum<u32> {}
-
-impl PartialEq for Vec<u32> {
-    fn eq(self, other: Self) -> bool {
-        if self.len() != other.len() {
-            return false;
-        }
-        let mut i = 0;
-        while i < self.len() {
-            if self.get(i).unwrap() != other.get(i).unwrap() {
-                return false;
-            }
-            i += 1;
-        }
-        true
-    }
-}
-impl Eq for Vec<u32> {}
-
-impl PartialEq for (Vec<u32>, Vec<u32>) {
-    fn eq(self, other: Self) -> bool {
-        self.0 == other.0 && self.1 == other.1
-    }
-}
-impl Eq for (Vec<u32>, Vec<u32>) {}
-
-impl PartialEq for Vec<Vec<u32>> {
-    fn eq(self, other: Self) -> bool {
-        if self.len() != other.len() {
-            return false;
-        }
-        let mut i = 0;
-        while i < self.len() {
-            if self.get(i).unwrap() != other.get(i).unwrap() {
-                return false;
-            }
-            i += 1;
-        }
-        true
-    }
-}
-impl Eq for Vec<Vec<u32>> {}
 
 impl PartialEq for SomeStruct<u32> {
     fn eq(self, other: Self) -> bool {
         self.a == other.a
     }
 }
-impl Eq for SomeStruct<u32> {}
 
 impl PartialEq for [Vec<u32>; 2] {
     fn eq(self, other: Self) -> bool {
@@ -100,24 +50,8 @@ impl PartialEq for [Vec<u32>; 2] {
         true
     }
 }
-impl Eq for [Vec<u32>; 2] {}
 
-impl PartialEq for Vec<SomeStruct<u32>> {
-    fn eq(self, other: Self) -> bool {
-        if self.len() != other.len() {
-            return false;
-        }
-        let mut i = 0;
-        while i < self.len() {
-            if self.get(i).unwrap() != other.get(i).unwrap() {
-                return false;
-            }
-            i += 1;
-        }
-        true
-    }
-}
-impl Eq for Vec<SomeStruct<u32>> {}
+impl Eq for [Vec<u32>; 2] {}
 
 impl PartialEq for [u64; 2] {
     fn eq(self, other: Self) -> bool {
@@ -131,24 +65,6 @@ impl PartialEq for [u64; 2] {
         true
     }
 }
-impl Eq for [u64; 2] {}
-
-impl PartialEq for Vec<[u64; 2]> {
-    fn eq(self, other: Self) -> bool {
-        if self.len() != other.len() {
-            return false;
-        }
-        let mut i = 0;
-        while i < self.len() {
-            if self.get(i).unwrap() != other.get(i).unwrap() {
-                return false;
-            }
-            i += 1;
-        }
-        true
-    }
-}
-impl Eq for Vec<[u64; 2]> {}
 
 impl PartialEq for SomeEnum<Vec<u32>> {
     fn eq(self, other: Self) -> bool {
@@ -163,68 +79,14 @@ impl PartialEq for SomeEnum<Vec<u32>> {
         }
     }
 }
-impl Eq for SomeEnum<Vec<u32>> {}
-
-impl PartialEq for Vec<SomeEnum<u32>> {
-    fn eq(self, other: Self) -> bool {
-        if self.len() != other.len() {
-            return false;
-        }
 
-        let mut i = 0;
-        while i < self.len() {
-            if self.get(i).unwrap() != other.get(i).unwrap() {
-                return false;
-            }
-            i += 1;
-        }
-        true
-    }
-}
-impl Eq for Vec<SomeEnum<u32>> {}
-
-impl PartialEq for Vec<(u32, u32)> {
-    fn eq(self, other: Self) -> bool {
-        if self.len() != other.len() {
-            return false;
-        }
-
-        let mut i = 0;
-        while i < self.len() {
-            if self.get(i).unwrap() != other.get(i).unwrap() {
-                return false;
-            }
-            i += 1;
-        }
-        true
-    }
-}
-impl Eq for Vec<(u32, u32)> {}
+impl Eq for SomeEnum<Vec<u32>> {}
 
 impl PartialEq for SomeStruct<Vec<Vec<u32>>> {
     fn eq(self, other: Self) -> bool {
         self.a == other.a
     }
 }
-impl Eq for SomeStruct<Vec<Vec<u32>>> {}
-
-impl PartialEq for Vec<SomeStruct<Vec<Vec<u32>>>> {
-    fn eq(self, other: Self) -> bool {
-        if self.len() != other.len() {
-            return false;
-        }
-
-        let mut i = 0;
-        while i < self.len() {
-            if self.get(i).unwrap() != other.get(i).unwrap() {
-                return false;
-            }
-            i += 1;
-        }
-        true
-    }
-}
-impl Eq for Vec<SomeStruct<Vec<Vec<u32>>>> {}
 
 fn main(
     u32_vec: Vec<u32>,
diff --git a/packages/program/package.json b/packages/program/package.json
index 25951ab9f6b..e83f2c3bf2e 100644
--- a/packages/program/package.json
+++ b/packages/program/package.json
@@ -33,7 +33,7 @@
     "@fuel-ts/math": "workspace:*",
     "@fuel-ts/transactions": "workspace:*",
     "@fuel-ts/utils": "workspace:*",
-    "@fuels/vm-asm": "0.59.1"
+    "@fuels/vm-asm": "0.60.1"
   },
   "devDependencies": {
     "@types/ramda": "0.30.2"
diff --git a/packages/transactions/src/configs.ts b/packages/transactions/src/configs.ts
index 8f8e9f296fe..9d52c109e5f 100644
--- a/packages/transactions/src/configs.ts
+++ b/packages/transactions/src/configs.ts
@@ -73,6 +73,7 @@ export const PANIC_REASONS = [
   'InvalidImmediateValue',
   'InvalidInstruction',
   'InvalidMetadataIdentifier',
+  'InvalidUpgradePurposeType',
   'MalformedCallStructure',
   'MaxStaticContractsReached',
   'MemoryGrowthOverlap',
@@ -89,8 +90,10 @@ export const PANIC_REASONS = [
   'PolicyIsNotSet',
   'PolicyNotFound',
   'PredicateReturnedNonOne',
+  'ProofInUploadNotFound',
   'ReservedRegisterNotWritable',
   'Revert',
+  'StorageSlotsNotFound',
   'ThePartIsNotSequentiallyConnected',
   'TooManyReceipts',
   'TooManySlots',
diff --git a/packages/versions/src/lib/getBuiltinVersions.ts b/packages/versions/src/lib/getBuiltinVersions.ts
index 1e59ecebfd1..348b2d2077c 100644
--- a/packages/versions/src/lib/getBuiltinVersions.ts
+++ b/packages/versions/src/lib/getBuiltinVersions.ts
@@ -2,8 +2,8 @@ import type { Versions } from './types';
 
 export function getBuiltinVersions(): Versions {
   return {
-    FUEL_CORE: '0.41.9',
-    FORC: '0.67.0',
+    FUEL_CORE: '0.43.1',
+    FORC: '0.68.1',
     FUELS: '0.100.3',
   };
 }
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 16ebecf516d..ecfa9067f16 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -68,7 +68,7 @@ importers:
         version: 3.0.9(@types/node@22.13.5)(bufferutil@4.0.9)(playwright@1.50.1)(typescript@5.7.3)(utf-8-validate@6.0.4)(vite@6.1.3(@types/node@22.13.5)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1))(vitest@3.0.9)(webdriverio@9.0.9(bufferutil@4.0.9)(utf-8-validate@6.0.4))
       '@vitest/coverage-istanbul':
         specifier: 3.0.9
-        version: 3.0.9(vitest@3.0.9(@types/debug@4.1.12)(@types/node@22.13.5)(@vitest/browser@3.0.9)(jiti@2.4.2)(jsdom@16.7.0(bufferutil@4.0.9)(utf-8-validate@6.0.4))(lightningcss@1.29.1)(msw@2.7.3(@types/node@22.13.5)(typescript@5.7.3))(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1))
+        version: 3.0.9(vitest@3.0.9)
       compare-versions:
         specifier: 6.1.1
         version: 6.1.1
@@ -149,7 +149,7 @@ importers:
         version: 0.1.1
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.7.14)(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.3)(typescript@5.7.3)(yaml@2.7.1)
+        version: 8.3.5(@swc/core@1.7.14(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.3)(typescript@5.7.3)(yaml@2.7.1)
       tsx:
         specifier: 4.19.3
         version: 4.19.3
@@ -279,8 +279,8 @@ importers:
   apps/demo-nextjs:
     dependencies:
       '@fuels/vm-asm':
-        specifier: 0.59.1
-        version: 0.59.1
+        specifier: 0.60.1
+        version: 0.60.1
       '@types/node':
         specifier: 22.13.5
         version: 22.13.5
@@ -315,8 +315,8 @@ importers:
   apps/demo-react-cra:
     dependencies:
       '@fuels/vm-asm':
-        specifier: 0.59.1
-        version: 0.59.1
+        specifier: 0.60.1
+        version: 0.60.1
       '@testing-library/react':
         specifier: 16.2.0
         version: 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
@@ -331,7 +331,7 @@ importers:
         version: 19.0.4(@types/react@19.0.10)
       eslint-config-react-app:
         specifier: 7.0.1
-        version: 7.0.1(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.22.5))(@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.22.5))(eslint@9.9.1(jiti@2.4.2))(jest@27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10))(typescript@5.7.3)
+        version: 7.0.1(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.22.5))(@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.22.5))(eslint@9.9.1(jiti@2.4.2))(jest@27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10))(typescript@5.7.3)
       fuels:
         specifier: workspace:*
         version: link:../../packages/fuels
@@ -343,7 +343,7 @@ importers:
         version: 19.0.0(react@19.0.0)
       react-scripts:
         specifier: 5.0.1
-        version: 5.0.1(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.22.5))(@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.22.5))(@swc/core@1.7.14)(@types/babel__core@7.20.5)(bufferutil@4.0.9)(esbuild@0.24.2)(eslint@9.9.1(jiti@2.4.2))(react@19.0.0)(ts-node@10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3))(type-fest@3.1.0)(typescript@5.7.3)(utf-8-validate@5.0.10)
+        version: 5.0.1(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.22.5))(@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.22.5))(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/babel__core@7.20.5)(bufferutil@4.0.9)(esbuild@0.24.2)(eslint@9.9.1(jiti@2.4.2))(react@19.0.0)(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3))(type-fest@3.1.0)(typescript@5.7.3)(utf-8-validate@5.0.10)
       typescript:
         specifier: 5.7.3
         version: 5.7.3
@@ -358,8 +358,8 @@ importers:
   apps/demo-react-vite:
     dependencies:
       '@fuels/vm-asm':
-        specifier: 0.59.1
-        version: 0.59.1
+        specifier: 0.60.1
+        version: 0.60.1
       fuels:
         specifier: workspace:*
         version: link:../../packages/fuels
@@ -673,8 +673,8 @@ importers:
         specifier: workspace:*
         version: link:../versions
       '@fuels/vm-asm':
-        specifier: 0.59.1
-        version: 0.59.1
+        specifier: 0.60.1
+        version: 0.60.1
       '@noble/curves':
         specifier: 1.8.1
         version: 1.8.1
@@ -764,8 +764,8 @@ importers:
         specifier: workspace:*
         version: link:../utils
       '@fuels/vm-asm':
-        specifier: 0.59.1
-        version: 0.59.1
+        specifier: 0.60.1
+        version: 0.60.1
       ramda:
         specifier: 0.30.1
         version: 0.30.1
@@ -1021,8 +1021,8 @@ importers:
         specifier: workspace:*
         version: link:../utils
       '@fuels/vm-asm':
-        specifier: 0.59.1
-        version: 0.59.1
+        specifier: 0.60.1
+        version: 0.60.1
       ramda:
         specifier: 0.30.1
         version: 0.30.1
@@ -1123,7 +1123,7 @@ importers:
         version: 0.8.2
       vitest:
         specifier: 3.0.9
-        version: 3.0.9(@types/debug@4.1.12)(@types/node@22.13.5)(@vitest/browser@3.0.9)(jiti@2.4.2)(jsdom@16.7.0(bufferutil@4.0.9)(utf-8-validate@6.0.4))(lightningcss@1.29.1)(msw@2.7.3(@types/node@22.13.5)(typescript@5.7.3))(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)
+        version: 3.0.9(@types/debug@4.1.12)(@types/node@22.13.5)(@vitest/browser@3.0.9)(jiti@2.4.2)(jsdom@16.7.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.29.1)(msw@2.7.3(@types/node@22.13.5)(typescript@5.7.3))(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)
 
   packages/versions:
     dependencies:
@@ -3449,8 +3449,8 @@ packages:
       fuels: 0.100.0
       react: '>=18.0.0'
 
-  '@fuels/vm-asm@0.59.1':
-    resolution: {integrity: sha512-2KWwrjvZdj1DHlfkyGZPDOULBlUSj/2oZgn4RO+JO7uDPw7pNiHjsgKjmhDHWN5RPEGLhyUre14ObtLd3MA+Ag==}
+  '@fuels/vm-asm@0.60.1':
+    resolution: {integrity: sha512-vvRRU9n+mQMPTGSjLmcWe5qEsDotw/f84kZn1eDT+dY2dXXHN5xdJRJUYxs/7YapWB4SUqIpVublrMKQLX4s5w==}
 
   '@graphql-codegen/add@5.0.3':
     resolution: {integrity: sha512-SxXPmramkth8XtBlAHu4H4jYcYXM/o3p01+psU+0NADQowA8jtYkK6MW5rV6T+CxkEaNZItfSmZRPgIuypcqnA==}
@@ -7415,7 +7415,6 @@ packages:
 
   bun@1.2.3:
     resolution: {integrity: sha512-i8F+I3wxmt9omnLh3lOg0APQtqxZaMU0x6xuC+9YH4Eg/7fu8SM4YbdwyvV8Z6sy3OMtGFB0SYOjU2STuId4FQ==}
-    cpu: [arm64, x64, aarch64]
     os: [darwin, linux, win32]
     hasBin: true
 
@@ -12650,7 +12649,6 @@ packages:
     engines: {node: '>=0.6.0', teleport: '>=0.2.0'}
     deprecated: |-
       You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.
-
       (For a CapTP with native promises, see @endo/eventual-send and @endo/captp)
 
   qr-code-styling@1.9.1:
@@ -19568,7 +19566,7 @@ snapshots:
       - '@types/react-dom'
       - react-dom
 
-  '@fuels/vm-asm@0.59.1': {}
+  '@fuels/vm-asm@0.60.1': {}
 
   '@graphql-codegen/add@5.0.3(graphql@16.10.0)':
     dependencies:
@@ -20263,7 +20261,7 @@ snapshots:
       jest-util: 28.1.3
       slash: 3.0.0
 
-  '@jest/core@27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10)':
+  '@jest/core@27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10)':
     dependencies:
       '@jest/console': 27.5.1
       '@jest/reporters': 27.5.1
@@ -20277,7 +20275,7 @@ snapshots:
       exit: 0.1.2
       graceful-fs: 4.2.11
       jest-changed-files: 27.5.1
-      jest-config: 27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10)
+      jest-config: 27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10)
       jest-haste-map: 27.5.1
       jest-message-util: 27.5.1
       jest-regex-util: 27.5.1
@@ -21145,7 +21143,7 @@ snapshots:
     dependencies:
       playwright: 1.50.1
 
-  '@pmmmwh/react-refresh-webpack-plugin@0.5.10(react-refresh@0.11.0)(type-fest@3.1.0)(webpack-dev-server@4.15.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)))(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2))':
+  '@pmmmwh/react-refresh-webpack-plugin@0.5.10(react-refresh@0.11.0)(type-fest@3.1.0)(webpack-dev-server@4.15.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)))(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2))':
     dependencies:
       ansi-html-community: 0.0.8
       common-path-prefix: 3.0.0
@@ -21157,10 +21155,10 @@ snapshots:
       react-refresh: 0.11.0
       schema-utils: 3.3.0
       source-map: 0.7.4
-      webpack: 5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)
+      webpack: 5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)
     optionalDependencies:
       type-fest: 3.1.0
-      webpack-dev-server: 4.15.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2))
+      webpack-dev-server: 4.15.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2))
 
   '@polka/url@1.0.0-next.24': {}
 
@@ -22381,7 +22379,7 @@ snapshots:
   '@swc/core-win32-x64-msvc@1.7.14':
     optional: true
 
-  '@swc/core@1.7.14':
+  '@swc/core@1.7.14(@swc/helpers@0.5.15)':
     dependencies:
       '@swc/counter': 0.1.3
       '@swc/types': 0.1.21
@@ -22396,6 +22394,7 @@ snapshots:
       '@swc/core-win32-arm64-msvc': 1.7.14
       '@swc/core-win32-ia32-msvc': 1.7.14
       '@swc/core-win32-x64-msvc': 1.7.14
+      '@swc/helpers': 0.5.15
     optional: true
 
   '@swc/counter@0.1.3': {}
@@ -23208,7 +23207,7 @@ snapshots:
       vite: 5.4.16(@types/node@22.13.5)(lightningcss@1.29.1)(terser@5.39.0)
       vue: 3.5.13(typescript@5.7.3)
 
-  '@vitest/browser@3.0.9(@types/node@22.13.5)(bufferutil@4.0.9)(playwright@1.50.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(vite@6.1.3(@types/node@22.13.5)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1))(vitest@3.0.9)(webdriverio@9.0.9(bufferutil@4.0.9)(utf-8-validate@6.0.4))':
+  '@vitest/browser@3.0.9(@types/node@22.13.5)(bufferutil@4.0.9)(playwright@1.50.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(vite@6.1.3(@types/node@22.13.5)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1))(vitest@3.0.9)(webdriverio@9.0.9(bufferutil@4.0.9)(utf-8-validate@5.0.10))':
     dependencies:
       '@testing-library/dom': 10.4.0
       '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.0)
@@ -23222,7 +23221,7 @@ snapshots:
       ws: 8.18.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)
     optionalDependencies:
       playwright: 1.50.1
-      webdriverio: 9.0.9(bufferutil@4.0.9)(utf-8-validate@6.0.4)
+      webdriverio: 9.0.9(bufferutil@4.0.9)(utf-8-validate@5.0.10)
     transitivePeerDependencies:
       - '@types/node'
       - bufferutil
@@ -23253,7 +23252,7 @@ snapshots:
       - utf-8-validate
       - vite
 
-  '@vitest/coverage-istanbul@3.0.9(vitest@3.0.9(@types/debug@4.1.12)(@types/node@22.13.5)(@vitest/browser@3.0.9)(jiti@2.4.2)(jsdom@16.7.0(bufferutil@4.0.9)(utf-8-validate@6.0.4))(lightningcss@1.29.1)(msw@2.7.3(@types/node@22.13.5)(typescript@5.7.3))(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1))':
+  '@vitest/coverage-istanbul@3.0.9(vitest@3.0.9)':
     dependencies:
       '@istanbuljs/schema': 0.1.3
       debug: 4.4.0(supports-color@5.5.0)
@@ -25180,14 +25179,14 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  babel-loader@8.3.0(@babel/core@7.22.5)(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)):
+  babel-loader@8.3.0(@babel/core@7.22.5)(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)):
     dependencies:
       '@babel/core': 7.22.5
       find-cache-dir: 3.3.2
       loader-utils: 2.0.4
       make-dir: 3.1.0
       schema-utils: 2.7.1
-      webpack: 5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)
+      webpack: 5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)
 
   babel-plugin-istanbul@6.1.1:
     dependencies:
@@ -26361,7 +26360,7 @@ snapshots:
       postcss: 8.5.3
       postcss-selector-parser: 6.0.13
 
-  css-loader@6.8.1(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)):
+  css-loader@6.8.1(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)):
     dependencies:
       icss-utils: 5.1.0(postcss@8.5.3)
       postcss: 8.5.3
@@ -26371,9 +26370,9 @@ snapshots:
       postcss-modules-values: 4.0.0(postcss@8.5.3)
       postcss-value-parser: 4.2.0
       semver: 7.6.3
-      webpack: 5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)
+      webpack: 5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)
 
-  css-minimizer-webpack-plugin@3.4.1(esbuild@0.24.2)(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)):
+  css-minimizer-webpack-plugin@3.4.1(esbuild@0.24.2)(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)):
     dependencies:
       cssnano: 5.1.15(postcss@8.5.3)
       jest-worker: 27.5.1
@@ -26381,7 +26380,7 @@ snapshots:
       schema-utils: 4.2.0
       serialize-javascript: 6.0.1
       source-map: 0.6.1
-      webpack: 5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)
+      webpack: 5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)
     optionalDependencies:
       esbuild: 0.24.2
 
@@ -27312,7 +27311,7 @@ snapshots:
       '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.7.3)
       eslint: 8.57.0
       eslint-import-resolver-node: 0.3.9
-      eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.0)
+      eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.3))(eslint@8.57.0))(eslint@8.57.0)
       eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)
       eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.0)
       eslint-plugin-react: 7.37.4(eslint@8.57.0)
@@ -27327,7 +27326,7 @@ snapshots:
     dependencies:
       eslint: 8.57.0
 
-  eslint-config-react-app@7.0.1(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.22.5))(@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.22.5))(eslint@9.9.1(jiti@2.4.2))(jest@27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10))(typescript@5.7.3):
+  eslint-config-react-app@7.0.1(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.22.5))(@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.22.5))(eslint@9.9.1(jiti@2.4.2))(jest@27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10))(typescript@5.7.3):
     dependencies:
       '@babel/core': 7.25.8
       '@babel/eslint-parser': 7.22.5(@babel/core@7.25.8)(eslint@9.9.1(jiti@2.4.2))
@@ -27339,7 +27338,7 @@ snapshots:
       eslint: 9.9.1(jiti@2.4.2)
       eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.22.5))(@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.22.5))(eslint@9.9.1(jiti@2.4.2))
       eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.59.0(eslint@9.9.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.9.1(jiti@2.4.2))
-      eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.59.0(@typescript-eslint/parser@5.59.0(eslint@9.9.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.9.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.9.1(jiti@2.4.2))(jest@27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10))(typescript@5.7.3)
+      eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.59.0(@typescript-eslint/parser@5.59.0(eslint@9.9.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.9.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.9.1(jiti@2.4.2))(jest@27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10))(typescript@5.7.3)
       eslint-plugin-jsx-a11y: 6.9.0(eslint@9.9.1(jiti@2.4.2))
       eslint-plugin-react: 7.37.1(eslint@9.9.1(jiti@2.4.2))
       eslint-plugin-react-hooks: 4.6.2(eslint@9.9.1(jiti@2.4.2))
@@ -27362,12 +27361,12 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.0):
+  eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.3))(eslint@8.57.0))(eslint@8.57.0):
     dependencies:
       debug: 4.4.0(supports-color@5.5.0)
       enhanced-resolve: 5.18.1
       eslint: 8.57.0
-      eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.0))(eslint@8.57.0)
+      eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.3))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0)
       eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)
       fast-glob: 3.3.3
       get-tsconfig: 4.7.6
@@ -27389,14 +27388,14 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  eslint-module-utils@2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.0))(eslint@8.57.0):
+  eslint-module-utils@2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.3))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0):
     dependencies:
       debug: 3.2.7
     optionalDependencies:
       '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.7.3)
       eslint: 8.57.0
       eslint-import-resolver-node: 0.3.9
-      eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.0)
+      eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.3))(eslint@8.57.0))(eslint@8.57.0)
     transitivePeerDependencies:
       - supports-color
 
@@ -27452,7 +27451,7 @@ snapshots:
       doctrine: 2.1.0
       eslint: 8.57.0
       eslint-import-resolver-node: 0.3.9
-      eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.0))(eslint@8.57.0)
+      eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.7.3))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0)
       hasown: 2.0.2
       is-core-module: 2.15.1
       is-glob: 4.0.3
@@ -27470,13 +27469,13 @@ snapshots:
       - eslint-import-resolver-webpack
       - supports-color
 
-  eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.59.0(@typescript-eslint/parser@5.59.0(eslint@9.9.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.9.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.9.1(jiti@2.4.2))(jest@27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10))(typescript@5.7.3):
+  eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.59.0(@typescript-eslint/parser@5.59.0(eslint@9.9.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.9.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.9.1(jiti@2.4.2))(jest@27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10))(typescript@5.7.3):
     dependencies:
       '@typescript-eslint/experimental-utils': 5.60.1(eslint@9.9.1(jiti@2.4.2))(typescript@5.7.3)
       eslint: 9.9.1(jiti@2.4.2)
     optionalDependencies:
       '@typescript-eslint/eslint-plugin': 5.59.0(@typescript-eslint/parser@5.59.0(eslint@9.9.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.9.1(jiti@2.4.2))(typescript@5.7.3)
-      jest: 27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10)
+      jest: 27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10)
     transitivePeerDependencies:
       - supports-color
       - typescript
@@ -27637,7 +27636,7 @@ snapshots:
 
   eslint-visitor-keys@4.2.0: {}
 
-  eslint-webpack-plugin@3.2.0(eslint@9.9.1(jiti@2.4.2))(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)):
+  eslint-webpack-plugin@3.2.0(eslint@9.9.1(jiti@2.4.2))(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)):
     dependencies:
       '@types/eslint': 8.40.2
       eslint: 9.9.1(jiti@2.4.2)
@@ -27645,7 +27644,7 @@ snapshots:
       micromatch: 4.0.8
       normalize-path: 3.0.0
       schema-utils: 4.2.0
-      webpack: 5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)
+      webpack: 5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)
 
   eslint@8.57.0:
     dependencies:
@@ -28052,11 +28051,11 @@ snapshots:
     dependencies:
       flat-cache: 4.0.1
 
-  file-loader@6.2.0(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)):
+  file-loader@6.2.0(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)):
     dependencies:
       loader-utils: 2.0.4
       schema-utils: 3.3.0
-      webpack: 5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)
+      webpack: 5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)
 
   file-uri-to-path@1.0.0: {}
 
@@ -28162,7 +28161,7 @@ snapshots:
       cross-spawn: 7.0.3
       signal-exit: 4.1.0
 
-  fork-ts-checker-webpack-plugin@6.5.3(eslint@9.9.1(jiti@2.4.2))(typescript@5.7.3)(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)):
+  fork-ts-checker-webpack-plugin@6.5.3(eslint@9.9.1(jiti@2.4.2))(typescript@5.7.3)(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)):
     dependencies:
       '@babel/code-frame': 7.26.2
       '@types/json-schema': 7.0.12
@@ -28178,7 +28177,7 @@ snapshots:
       semver: 7.7.1
       tapable: 1.1.3
       typescript: 5.7.3
-      webpack: 5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)
+      webpack: 5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)
     optionalDependencies:
       eslint: 9.9.1(jiti@2.4.2)
 
@@ -28693,14 +28692,14 @@ snapshots:
 
   html-void-elements@3.0.0: {}
 
-  html-webpack-plugin@5.5.3(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)):
+  html-webpack-plugin@5.5.3(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)):
     dependencies:
       '@types/html-minifier-terser': 6.1.0
       html-minifier-terser: 6.1.0
       lodash: 4.17.21
       pretty-error: 4.0.0
       tapable: 2.2.1
-      webpack: 5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)
+      webpack: 5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)
 
   htmlfy@0.2.1:
     optional: true
@@ -29400,16 +29399,16 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  jest-cli@27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10):
+  jest-cli@27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10):
     dependencies:
-      '@jest/core': 27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10)
+      '@jest/core': 27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10)
       '@jest/test-result': 27.5.1
       '@jest/types': 27.5.1
       chalk: 4.1.2
       exit: 0.1.2
       graceful-fs: 4.2.11
       import-local: 3.1.0
-      jest-config: 27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10)
+      jest-config: 27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10)
       jest-util: 27.5.1
       jest-validate: 27.5.1
       prompts: 2.4.2
@@ -29421,7 +29420,7 @@ snapshots:
       - ts-node
       - utf-8-validate
 
-  jest-config@27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10):
+  jest-config@27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10):
     dependencies:
       '@babel/core': 7.26.8
       '@jest/test-sequencer': 27.5.1
@@ -29448,7 +29447,7 @@ snapshots:
       slash: 3.0.0
       strip-json-comments: 3.1.1
     optionalDependencies:
-      ts-node: 10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3)
+      ts-node: 10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3)
     transitivePeerDependencies:
       - bufferutil
       - canvas
@@ -29785,11 +29784,11 @@ snapshots:
       leven: 3.1.0
       pretty-format: 29.7.0
 
-  jest-watch-typeahead@1.1.0(jest@27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10)):
+  jest-watch-typeahead@1.1.0(jest@27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10)):
     dependencies:
       ansi-escapes: 4.3.2
       chalk: 4.1.2
-      jest: 27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10)
+      jest: 27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10)
       jest-regex-util: 28.0.2
       jest-watcher: 28.1.3
       slash: 4.0.0
@@ -29842,11 +29841,11 @@ snapshots:
       merge-stream: 2.0.0
       supports-color: 8.1.1
 
-  jest@27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10):
+  jest@27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10):
     dependencies:
-      '@jest/core': 27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10)
+      '@jest/core': 27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10)
       import-local: 3.1.0
-      jest-cli: 27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10)
+      jest-cli: 27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10)
     transitivePeerDependencies:
       - bufferutil
       - canvas
@@ -30778,10 +30777,10 @@ snapshots:
 
   mimic-fn@4.0.0: {}
 
-  mini-css-extract-plugin@2.7.6(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)):
+  mini-css-extract-plugin@2.7.6(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)):
     dependencies:
       schema-utils: 4.2.0
-      webpack: 5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)
+      webpack: 5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)
 
   minimalistic-assert@1.0.1: {}
 
@@ -31797,13 +31796,13 @@ snapshots:
       postcss: 8.5.3
       postcss-value-parser: 4.2.0
 
-  postcss-load-config@4.0.1(postcss@8.5.3)(ts-node@10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3)):
+  postcss-load-config@4.0.1(postcss@8.5.3)(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3)):
     dependencies:
       lilconfig: 2.1.0
       yaml: 2.6.0
     optionalDependencies:
       postcss: 8.5.3
-      ts-node: 10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3)
+      ts-node: 10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3)
 
   postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.3)(yaml@2.7.1):
     dependencies:
@@ -31814,13 +31813,13 @@ snapshots:
       tsx: 4.19.3
       yaml: 2.7.1
 
-  postcss-loader@6.2.1(postcss@8.5.3)(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)):
+  postcss-loader@6.2.1(postcss@8.5.3)(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)):
     dependencies:
       cosmiconfig: 7.1.0
       klona: 2.0.6
       postcss: 8.5.3
       semver: 7.6.3
-      webpack: 5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)
+      webpack: 5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)
 
   postcss-logical@5.0.4(postcss@8.5.3):
     dependencies:
@@ -32339,7 +32338,7 @@ snapshots:
       regenerator-runtime: 0.13.11
       whatwg-fetch: 3.6.2
 
-  react-dev-utils@12.0.1(eslint@9.9.1(jiti@2.4.2))(typescript@5.7.3)(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)):
+  react-dev-utils@12.0.1(eslint@9.9.1(jiti@2.4.2))(typescript@5.7.3)(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)):
     dependencies:
       '@babel/code-frame': 7.22.5
       address: 1.2.2
@@ -32350,7 +32349,7 @@ snapshots:
       escape-string-regexp: 4.0.0
       filesize: 8.0.7
       find-up: 5.0.0
-      fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.9.1(jiti@2.4.2))(typescript@5.7.3)(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2))
+      fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.9.1(jiti@2.4.2))(typescript@5.7.3)(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2))
       global-modules: 2.0.0
       globby: 11.1.0
       gzip-size: 6.0.0
@@ -32365,7 +32364,7 @@ snapshots:
       shell-quote: 1.8.1
       strip-ansi: 6.0.1
       text-table: 0.2.0
-      webpack: 5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)
+      webpack: 5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)
     optionalDependencies:
       typescript: 5.7.3
     transitivePeerDependencies:
@@ -32538,56 +32537,56 @@ snapshots:
     optionalDependencies:
       '@types/react': 19.0.10
 
-  react-scripts@5.0.1(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.22.5))(@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.22.5))(@swc/core@1.7.14)(@types/babel__core@7.20.5)(bufferutil@4.0.9)(esbuild@0.24.2)(eslint@9.9.1(jiti@2.4.2))(react@19.0.0)(ts-node@10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3))(type-fest@3.1.0)(typescript@5.7.3)(utf-8-validate@5.0.10):
+  react-scripts@5.0.1(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.22.5))(@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.22.5))(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/babel__core@7.20.5)(bufferutil@4.0.9)(esbuild@0.24.2)(eslint@9.9.1(jiti@2.4.2))(react@19.0.0)(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3))(type-fest@3.1.0)(typescript@5.7.3)(utf-8-validate@5.0.10):
     dependencies:
       '@babel/core': 7.22.5
-      '@pmmmwh/react-refresh-webpack-plugin': 0.5.10(react-refresh@0.11.0)(type-fest@3.1.0)(webpack-dev-server@4.15.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)))(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2))
+      '@pmmmwh/react-refresh-webpack-plugin': 0.5.10(react-refresh@0.11.0)(type-fest@3.1.0)(webpack-dev-server@4.15.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)))(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2))
       '@svgr/webpack': 5.5.0
       babel-jest: 27.5.1(@babel/core@7.22.5)
-      babel-loader: 8.3.0(@babel/core@7.22.5)(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2))
+      babel-loader: 8.3.0(@babel/core@7.22.5)(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2))
       babel-plugin-named-asset-import: 0.3.8(@babel/core@7.22.5)
       babel-preset-react-app: 10.0.1
       bfj: 7.0.2
       browserslist: 4.21.9
       camelcase: 6.3.0
       case-sensitive-paths-webpack-plugin: 2.4.0
-      css-loader: 6.8.1(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2))
-      css-minimizer-webpack-plugin: 3.4.1(esbuild@0.24.2)(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2))
+      css-loader: 6.8.1(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2))
+      css-minimizer-webpack-plugin: 3.4.1(esbuild@0.24.2)(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2))
       dotenv: 10.0.0
       dotenv-expand: 5.1.0
       eslint: 9.9.1(jiti@2.4.2)
-      eslint-config-react-app: 7.0.1(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.22.5))(@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.22.5))(eslint@9.9.1(jiti@2.4.2))(jest@27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10))(typescript@5.7.3)
-      eslint-webpack-plugin: 3.2.0(eslint@9.9.1(jiti@2.4.2))(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2))
-      file-loader: 6.2.0(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2))
+      eslint-config-react-app: 7.0.1(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.22.5))(@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.22.5))(eslint@9.9.1(jiti@2.4.2))(jest@27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10))(typescript@5.7.3)
+      eslint-webpack-plugin: 3.2.0(eslint@9.9.1(jiti@2.4.2))(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2))
+      file-loader: 6.2.0(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2))
       fs-extra: 10.1.0
-      html-webpack-plugin: 5.5.3(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2))
+      html-webpack-plugin: 5.5.3(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2))
       identity-obj-proxy: 3.0.0
-      jest: 27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10)
+      jest: 27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10)
       jest-resolve: 27.5.1
-      jest-watch-typeahead: 1.1.0(jest@27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10))
-      mini-css-extract-plugin: 2.7.6(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2))
+      jest-watch-typeahead: 1.1.0(jest@27.5.1(bufferutil@4.0.9)(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3))(utf-8-validate@5.0.10))
+      mini-css-extract-plugin: 2.7.6(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2))
       postcss: 8.5.3
       postcss-flexbugs-fixes: 5.0.2(postcss@8.5.3)
-      postcss-loader: 6.2.1(postcss@8.5.3)(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2))
+      postcss-loader: 6.2.1(postcss@8.5.3)(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2))
       postcss-normalize: 10.0.1(browserslist@4.21.9)(postcss@8.5.3)
       postcss-preset-env: 7.8.3(postcss@8.5.3)
       prompts: 2.4.2
       react: 19.0.0
       react-app-polyfill: 3.0.0
-      react-dev-utils: 12.0.1(eslint@9.9.1(jiti@2.4.2))(typescript@5.7.3)(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2))
+      react-dev-utils: 12.0.1(eslint@9.9.1(jiti@2.4.2))(typescript@5.7.3)(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2))
       react-refresh: 0.11.0
       resolve: 1.22.2
       resolve-url-loader: 4.0.0
-      sass-loader: 12.6.0(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2))
+      sass-loader: 12.6.0(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2))
       semver: 7.3.8
-      source-map-loader: 3.0.2(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2))
-      style-loader: 3.3.3(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2))
-      tailwindcss: 3.4.14(ts-node@10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3))
-      terser-webpack-plugin: 5.3.9(@swc/core@1.7.14)(esbuild@0.24.2)(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2))
-      webpack: 5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)
-      webpack-dev-server: 4.15.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2))
-      webpack-manifest-plugin: 4.1.1(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2))
-      workbox-webpack-plugin: 6.6.0(@types/babel__core@7.20.5)(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2))
+      source-map-loader: 3.0.2(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2))
+      style-loader: 3.3.3(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2))
+      tailwindcss: 3.4.14(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3))
+      terser-webpack-plugin: 5.3.9(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2))
+      webpack: 5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)
+      webpack-dev-server: 4.15.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2))
+      webpack-manifest-plugin: 4.1.1(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2))
+      workbox-webpack-plugin: 6.6.0(@types/babel__core@7.20.5)(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2))
     optionalDependencies:
       fsevents: 2.3.3
       typescript: 5.7.3
@@ -33104,11 +33103,11 @@ snapshots:
 
   sanitize.css@13.0.0: {}
 
-  sass-loader@12.6.0(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)):
+  sass-loader@12.6.0(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)):
     dependencies:
       klona: 2.0.6
       neo-async: 2.6.2
-      webpack: 5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)
+      webpack: 5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)
 
   sax@1.2.4: {}
 
@@ -33542,12 +33541,12 @@ snapshots:
 
   source-map-js@1.2.1: {}
 
-  source-map-loader@3.0.2(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)):
+  source-map-loader@3.0.2(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)):
     dependencies:
       abab: 2.0.6
       iconv-lite: 0.6.3
       source-map-js: 1.2.1
-      webpack: 5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)
+      webpack: 5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)
 
   source-map-support@0.5.21:
     dependencies:
@@ -33867,9 +33866,9 @@ snapshots:
 
   strnum@1.1.2: {}
 
-  style-loader@3.3.3(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)):
+  style-loader@3.3.3(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)):
     dependencies:
-      webpack: 5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)
+      webpack: 5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)
 
   styled-jsx@5.1.6(@babel/core@7.26.10)(react@19.0.0):
     dependencies:
@@ -34000,7 +33999,7 @@ snapshots:
 
   tabbable@6.2.0: {}
 
-  tailwindcss@3.4.14(ts-node@10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3)):
+  tailwindcss@3.4.14(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3)):
     dependencies:
       '@alloc/quick-lru': 5.2.0
       arg: 5.0.2
@@ -34019,7 +34018,7 @@ snapshots:
       postcss: 8.5.3
       postcss-import: 15.1.0(postcss@8.5.3)
       postcss-js: 4.0.1(postcss@8.5.3)
-      postcss-load-config: 4.0.1(postcss@8.5.3)(ts-node@10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3))
+      postcss-load-config: 4.0.1(postcss@8.5.3)(ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3))
       postcss-nested: 6.0.1(postcss@8.5.3)
       postcss-selector-parser: 6.0.13
       resolve: 1.22.8
@@ -34071,16 +34070,16 @@ snapshots:
       ansi-escapes: 4.3.2
       supports-hyperlinks: 2.3.0
 
-  terser-webpack-plugin@5.3.9(@swc/core@1.7.14)(esbuild@0.24.2)(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)):
+  terser-webpack-plugin@5.3.9(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)):
     dependencies:
       '@jridgewell/trace-mapping': 0.3.25
       jest-worker: 27.5.1
       schema-utils: 3.3.0
       serialize-javascript: 6.0.1
       terser: 5.34.1
-      webpack: 5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)
+      webpack: 5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)
     optionalDependencies:
-      '@swc/core': 1.7.14
+      '@swc/core': 1.7.14(@swc/helpers@0.5.15)
       esbuild: 0.24.2
 
   terser@5.18.2:
@@ -34254,7 +34253,7 @@ snapshots:
 
   ts-log@2.2.5: {}
 
-  ts-node@10.9.1(@swc/core@1.7.14)(@types/node@22.13.5)(typescript@5.7.3):
+  ts-node@10.9.1(@swc/core@1.7.14(@swc/helpers@0.5.15))(@types/node@22.13.5)(typescript@5.7.3):
     dependencies:
       '@cspotcode/source-map-support': 0.8.1
       '@tsconfig/node10': 1.0.11
@@ -34272,7 +34271,7 @@ snapshots:
       v8-compile-cache-lib: 3.0.1
       yn: 3.1.1
     optionalDependencies:
-      '@swc/core': 1.7.14
+      '@swc/core': 1.7.14(@swc/helpers@0.5.15)
     optional: true
 
   ts-toolbelt@9.6.0: {}
@@ -34296,7 +34295,7 @@ snapshots:
 
   tslib@2.8.1: {}
 
-  tsup@8.3.5(@swc/core@1.7.14)(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.3)(typescript@5.7.3)(yaml@2.7.1):
+  tsup@8.3.5(@swc/core@1.7.14(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.3)(typescript@5.7.3)(yaml@2.7.1):
     dependencies:
       bundle-require: 5.1.0(esbuild@0.24.2)
       cac: 6.7.14
@@ -34315,7 +34314,7 @@ snapshots:
       tinyglobby: 0.2.12
       tree-kill: 1.2.2
     optionalDependencies:
-      '@swc/core': 1.7.14
+      '@swc/core': 1.7.14(@swc/helpers@0.5.15)
       postcss: 8.5.3
       typescript: 5.7.3
     transitivePeerDependencies:
@@ -34960,7 +34959,7 @@ snapshots:
     optionalDependencies:
       '@types/debug': 4.1.12
       '@types/node': 22.13.5
-      '@vitest/browser': 3.0.9(@types/node@22.13.5)(bufferutil@4.0.9)(playwright@1.50.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(vite@6.1.3(@types/node@22.13.5)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1))(vitest@3.0.9)(webdriverio@9.0.9(bufferutil@4.0.9)(utf-8-validate@6.0.4))
+      '@vitest/browser': 3.0.9(@types/node@22.13.5)(bufferutil@4.0.9)(playwright@1.50.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(vite@6.1.3(@types/node@22.13.5)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1))(vitest@3.0.9)(webdriverio@9.0.9(bufferutil@4.0.9)(utf-8-validate@5.0.10))
       jsdom: 16.7.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
     transitivePeerDependencies:
       - jiti
@@ -35074,6 +35073,24 @@ snapshots:
       '@noble/curves': 1.8.1
       '@noble/hashes': 1.7.1
 
+  webdriver@9.0.8(bufferutil@4.0.9)(utf-8-validate@5.0.10):
+    dependencies:
+      '@types/node': 20.17.30
+      '@types/ws': 8.18.1
+      '@wdio/config': 9.0.8
+      '@wdio/logger': 9.0.8
+      '@wdio/protocols': 9.0.8
+      '@wdio/types': 9.0.8
+      '@wdio/utils': 9.0.8
+      deepmerge-ts: 7.1.5
+      ws: 8.18.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+    transitivePeerDependencies:
+      - bare-buffer
+      - bufferutil
+      - supports-color
+      - utf-8-validate
+    optional: true
+
   webdriver@9.0.8(bufferutil@4.0.9)(utf-8-validate@6.0.4):
     dependencies:
       '@types/node': 20.17.30
@@ -35092,6 +35109,42 @@ snapshots:
       - utf-8-validate
     optional: true
 
+  webdriverio@9.0.9(bufferutil@4.0.9)(utf-8-validate@5.0.10):
+    dependencies:
+      '@types/node': 20.17.30
+      '@types/sinonjs__fake-timers': 8.1.5
+      '@wdio/config': 9.0.8
+      '@wdio/logger': 9.0.8
+      '@wdio/protocols': 9.0.8
+      '@wdio/repl': 9.0.8
+      '@wdio/types': 9.0.8
+      '@wdio/utils': 9.0.8
+      archiver: 7.0.1
+      aria-query: 5.3.2
+      cheerio: 1.0.0
+      css-shorthand-properties: 1.1.2
+      css-value: 0.0.1
+      grapheme-splitter: 1.0.4
+      htmlfy: 0.2.1
+      import-meta-resolve: 4.1.0
+      is-plain-obj: 4.1.0
+      jszip: 3.10.1
+      lodash.clonedeep: 4.5.0
+      lodash.zip: 4.2.0
+      minimatch: 9.0.5
+      query-selector-shadow-dom: 1.0.1
+      resq: 1.11.0
+      rgb2hex: 0.2.5
+      serialize-error: 11.0.3
+      urlpattern-polyfill: 10.0.0
+      webdriver: 9.0.8(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+    transitivePeerDependencies:
+      - bare-buffer
+      - bufferutil
+      - supports-color
+      - utf-8-validate
+    optional: true
+
   webdriverio@9.0.9(bufferutil@4.0.9)(utf-8-validate@6.0.4):
     dependencies:
       '@types/node': 20.17.30
@@ -35136,16 +35189,16 @@ snapshots:
 
   webidl-conversions@7.0.0: {}
 
-  webpack-dev-middleware@5.3.3(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)):
+  webpack-dev-middleware@5.3.3(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)):
     dependencies:
       colorette: 2.0.20
       memfs: 3.5.3
       mime-types: 2.1.35
       range-parser: 1.2.1
       schema-utils: 4.2.0
-      webpack: 5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)
+      webpack: 5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)
 
-  webpack-dev-server@4.15.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)):
+  webpack-dev-server@4.15.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)):
     dependencies:
       '@types/bonjour': 3.5.10
       '@types/connect-history-api-fallback': 1.5.0
@@ -35175,20 +35228,20 @@ snapshots:
       serve-index: 1.9.1
       sockjs: 0.3.24
       spdy: 4.0.2
-      webpack-dev-middleware: 5.3.3(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2))
+      webpack-dev-middleware: 5.3.3(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2))
       ws: 8.18.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)
     optionalDependencies:
-      webpack: 5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)
+      webpack: 5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)
     transitivePeerDependencies:
       - bufferutil
       - debug
       - supports-color
       - utf-8-validate
 
-  webpack-manifest-plugin@4.1.1(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)):
+  webpack-manifest-plugin@4.1.1(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)):
     dependencies:
       tapable: 2.2.1
-      webpack: 5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)
+      webpack: 5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)
       webpack-sources: 2.3.1
 
   webpack-sources@1.4.3:
@@ -35203,7 +35256,7 @@ snapshots:
 
   webpack-sources@3.2.3: {}
 
-  webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2):
+  webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2):
     dependencies:
       '@types/eslint-scope': 3.7.4
       '@types/estree': 1.0.5
@@ -35226,7 +35279,7 @@ snapshots:
       neo-async: 2.6.2
       schema-utils: 3.3.0
       tapable: 2.2.1
-      terser-webpack-plugin: 5.3.9(@swc/core@1.7.14)(esbuild@0.24.2)(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2))
+      terser-webpack-plugin: 5.3.9(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2))
       watchpack: 2.4.0
       webpack-sources: 3.2.3
     transitivePeerDependencies:
@@ -35466,12 +35519,12 @@ snapshots:
 
   workbox-sw@6.6.0: {}
 
-  workbox-webpack-plugin@6.6.0(@types/babel__core@7.20.5)(webpack@5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)):
+  workbox-webpack-plugin@6.6.0(@types/babel__core@7.20.5)(webpack@5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)):
     dependencies:
       fast-json-stable-stringify: 2.1.0
       pretty-bytes: 5.6.0
       upath: 1.2.0
-      webpack: 5.88.0(@swc/core@1.7.14)(esbuild@0.24.2)
+      webpack: 5.88.0(@swc/core@1.7.14(@swc/helpers@0.5.15))(esbuild@0.24.2)
       webpack-sources: 1.4.3
       workbox-build: 6.6.0(@types/babel__core@7.20.5)
     transitivePeerDependencies:
diff --git a/scripts/lint-md-links.ts b/scripts/lint-md-links.ts
index 4bddc145539..2b2bf7a5412 100644
--- a/scripts/lint-md-links.ts
+++ b/scripts/lint-md-links.ts
@@ -21,7 +21,13 @@ void (async () => {
   });
 
   const mdFiles = globSync('**/*.md', {
-    ignore: ['**/node_modules/**', 'apps/demo-*/**', '.changeset/**', '**/CHANGELOG.md'],
+    ignore: [
+      '**/node_modules/**',
+      'apps/demo-*/**',
+      '.changeset/**',
+      '**/CHANGELOG.md',
+      'internal/**',
+    ],
   });
 
   execSync(`pnpm markdown-link-check -q -c ./link-check.config.json ${mdFiles.join(' ')}`, {
diff --git a/templates/nextjs/fuel-toolchain.toml b/templates/nextjs/fuel-toolchain.toml
index 7fe60d213ae..a44fae43b99 100644
--- a/templates/nextjs/fuel-toolchain.toml
+++ b/templates/nextjs/fuel-toolchain.toml
@@ -2,5 +2,5 @@
 channel = "testnet"
 
 [components]
-forc = "0.67.0"
-fuel-core = "0.41.9"
+forc = "0.68.1"
+fuel-core = "0.43.1"
diff --git a/templates/vite/fuel-toolchain.toml b/templates/vite/fuel-toolchain.toml
index 7fe60d213ae..a44fae43b99 100644
--- a/templates/vite/fuel-toolchain.toml
+++ b/templates/vite/fuel-toolchain.toml
@@ -2,5 +2,5 @@
 channel = "testnet"
 
 [components]
-forc = "0.67.0"
-fuel-core = "0.41.9"
+forc = "0.68.1"
+fuel-core = "0.43.1"


Reviews:
user: login: github-advanced-security[bot]
state: COMMENTED
author_association: NONE
submitted_at: 2025-03-08T14:08:28Z
user: login: arboleya
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-12T10:48:11Z
user: login: nedsalk
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-13T11:55:55Z
user: login: nedsalk
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-13T11:58:22Z
user: login: nedsalk
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-13T12:00:23Z
user: login: arboleya
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-13T12:01:26Z
user: login: arboleya
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-13T12:02:29Z
user: login: nedsalk
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-13T12:10:17Z
user: login: nedsalk
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-13T12:39:17Z
user: login: nedsalk
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-13T12:41:52Z
user: login: nedsalk
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-13T12:44:06Z
user: login: arboleya
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-13T12:46:28Z
user: login: arboleya
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-13T12:48:08Z
user: login: nedsalk
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-13T12:54:28Z
user: login: nedsalk
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-13T13:00:58Z
user: login: arboleya
body: Few things to finish this ASAP:
 1. Keep only the strictly _required_ updates
 1. Delete _everything_ else (tweaks, ideas, etc.)
 1. Make sure all tests are passing
 1. The end
state: CHANGES_REQUESTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-19T10:14:11Z
user: login: nedsalk
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-19T16:20:47Z
user: login: petertonysmith94
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-20T08:41:24Z
user: login: petertonysmith94
body: Also missing a [bump](https://github.com/FuelLabs/fuel-core/compare/v0.41.9...v0.42.0#diff-2e9d962a08321605940b5a657135052fbcef87b5e360662bb527c96d9a615542R102) of `@fuels/vm-asm` to [`0.60.0`](https://www.npmjs.com/package/@fuels/vm-asm/v/0.60.0).
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-20T08:53:41Z
user: login: nedsalk
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-20T09:13:28Z
user: login: petertonysmith94
body: Looks good.

I added the relevant closes statement to the PR description for the following issue (https://github.com/FuelLabs/fuels-ts/issues/3482). This has been resolved with the upgrade of `@fuels/vm-asm` to `v0.60.0`.
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-03-20T11:21:26Z
user: login: arboleya
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-03-20T11:28:45Z
user: login: arboleya
body: Good stuff! 🚀 

Double-approval ✅ in appreciation for the quick adjustments. 🙌 
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-03-20T11:30:14Z
user: login: danielbate
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-03-20T12:19:36Z
user: login: Torres-ssf
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-03-21T10:34:02Z
user: login: petertonysmith94
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-03-26T11:41:13Z
user: login: anandfresh
state: APPROVED
author_association: NONE
submitted_at: 2025-03-27T09:35:23Z
user: login: arboleya
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-03-27T09:48:35Z
user: login: petertonysmith94
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-27T11:03:44Z
user: login: Torres-ssf
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-03-27T13:46:51Z
user: login: Torres-ssf
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-04-01T23:42:52Z
user: login: arboleya
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-04-02T00:11:05Z
user: login: petertonysmith94
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-04-02T12:13:33Z
user: login: petertonysmith94
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-09T12:03:55Z
user: login: petertonysmith94
body: This all looks good from my end.
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-04-09T12:05:05Z
user: login: Torres-ssf
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-04-09T12:26:37Z
user: login: arboleya
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-04-10T12:51:43Z
user: login: petertonysmith94
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-04-14T13:27:15Z
user: login: Torres-ssf
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-16T15:04:28Z
user: login: Torres-ssf
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-16T15:06:07Z
user: login: arboleya
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-23T14:15:57Z
user: login: arboleya
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-04-24T17:57:04Z
user: login: arboleya
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-24T19:16:22Z

Review comments:
diff_hunk: @@ -69,7 +69,7 @@
     execSync(`cd ${swayRepoDir} && cargo build --release`, stdioOpts);
   } else {
     execSync(`git clone --branch ${branchName} ${swayRepoUrl} ${swayRepoDir}`, stdioOpts);
-    execSync(`cd ${swayRepoDir} && cargo build --release`, stdioOpts);
+    execSync(`cd ${swayRepoDir} && cargo build --release --bin forc`, stdioOpts);
path: internal/forc/lib/shared.js
user: login: github-advanced-security[bot]
body: ## Shell command built from environment values

This shell command depends on an uncontrolled [absolute path](1).

[Show more details](https://github.com/FuelLabs/fuels-ts/security/code-scanning/86)
created_at: 2025-03-08T14:08:28Z
author_association: NONE
diff_hunk: @@ -1,9 +1,14 @@
 import type { Versions } from './types';
 
+const FUEL_CORE = `0.41.7`;
 export function getBuiltinVersions(): Versions {
   return {
-    FUEL_CORE: '0.41.7',
+    FUEL_CORE: 'git:master',
     FORC: '0.66.7',
     FUELS: '0.99.0',
+    // @ts-expect-error - overriding until 0.42.0 is released
+    // because a lot of tests are failing
+    // given that the mismatch warning is appended to errors
+    FUEL_CORE,
path: packages/versions/src/lib/getBuiltinVersions.ts
user: login: arboleya
body: Won't the property `FUEL_CORE` returned by `getBuiltinVersions()` always carry the overwritten value (`0.41.7`)?
created_at: 2025-03-12T10:46:33Z
author_association: CONTRIBUTOR
diff_hunk: @@ -3,49 +3,26 @@
 PUBLISHED_FUEL_PACKAGE_NAME="${PUBLISHED_FUEL_PACKAGE_NAME-"fuels"}"
 PUBLISHED_NPM_TAG="${PUBLISHED_NPM_TAG-"next"}"
 
-# Versions
-FUEL_CORE_VERSION=$(cat ./internal/fuel-core/VERSION)
-FORC_VERSION=$(cat ./internal/forc/VERSION)
-TOOLCHAIN="CI"
-
 # Project
-ROOT_DIR=$(pwd)
-PLAYWRIGHT_DIR="$ROOT_DIR"
-PROJECT_DIR="$ROOT_DIR/test-project"
-
-echo "1. Install toolchains"
-if [ -x "$(command -v fuelup)" ]; then
-  echo "Fuelup exists"
-else
-  echo "Fuelup does not exist - installing 'fuelup'"
-  curl -fsSL https://install.fuel.network/ | sh -s -- --no-modify-path
-  export PATH="${HOME}/.fuelup/bin:${PATH}"
-fi
+REPO_DIR=$(pwd)
+PATH="${REPO_DIR}/internal/fuel-core/fuel-core-binaries:${PATH}"
+PATH="${REPO_DIR}/internal/forc/forc-binaries:${PATH}"
 
-fuelup toolchain new $TOOLCHAIN
-fuelup default $TOOLCHAIN
-fuelup component add fuel-core@$FUEL_CORE_VERSION
-fuelup component add forc@$FORC_VERSION
+PROJECT_DIR="$(mktemp -d)/integration-test-project"
+echo "$PROJECT_DIR"
 
-echo "2. Scaffold a new project with '$PUBLISHED_FUEL_PACKAGE_NAME@$PUBLISHED_NPM_TAG'"
+echo "1. Scaffold a new project with '$PUBLISHED_FUEL_PACKAGE_NAME@$PUBLISHED_NPM_TAG'"
 if [ -d "$PROJECT_DIR" ]; then
   echo "Removing existing project directory '$PROJECT_DIR'"
-  rm -rf $PROJECT_DIR
+  rm -rf "$PROJECT_DIR"
 fi
-pnpm create $PUBLISHED_FUEL_PACKAGE_NAME@$PUBLISHED_NPM_TAG $PROJECT_DIR --no-install
-
-echo "3. Intialise the project"
-cd $PROJECT_DIR
-pnpm remove fuels
-pnpm add $PUBLISHED_FUEL_PACKAGE_NAME@$PUBLISHED_NPM_TAG
-pnpm  --ignore-workspace install
-cp .env.example .env.local
+NPM_CONFIG_REGISTRY="https://npm-packages.fuel.network" VITEST="to-not-install-fuelup" pnpm create "$PUBLISHED_FUEL_PACKAGE_NAME"@"$PUBLISHED_NPM_TAG" "$PROJECT_DIR"
 
-echo "4. Running UI tests"
-cd $ROOT_DIR
+echo "2. Running UI tests"
+cd "$REPO_DIR"
 PROJECT_DIR=$PROJECT_DIR sh ./scripts/tests-ui.sh
 TEST_RESULT=$?
 
-rm -rf $PROJECT_DIR
+rm -rf "$PROJECT_DIR"
path: scripts/tests-ui-integration.sh
user: login: arboleya
body: 1. What are the double quotes fixing?
1. Also, please review/add comments to this file.
created_at: 2025-03-12T10:46:39Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,6 @@
+---
+"@fuel-ts/versions": patch
+"@fuel-ts/account": patch
+---
+
+chore: upgrade `fuel-core` to `0.42.0`
path: .changeset/yummy-tools-sip.md
user: login: arboleya
body: What are [these](https://github.com/FuelLabs/fuels-ts/pull/3749/files#diff-d9704bbfee72536a1a911ce2bfc67c1648c22b7c35be201165f9cceaf344dab3) errors? 

![errors](https://github.com/user-attachments/assets/3cb8791d-14ba-4dac-8c63-d591e2bad762)

created_at: 2025-03-12T10:48:04Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1,9 +1,14 @@
 import type { Versions } from './types';
 
+const FUEL_CORE = `0.41.7`;
 export function getBuiltinVersions(): Versions {
   return {
-    FUEL_CORE: '0.41.7',
+    FUEL_CORE: 'git:master',
     FORC: '0.66.7',
     FUELS: '0.99.0',
+    // @ts-expect-error - overriding until 0.42.0 is released
+    // because a lot of tests are failing
+    // given that the mismatch warning is appended to errors
+    FUEL_CORE,
path: packages/versions/src/lib/getBuiltinVersions.ts
user: login: nedsalk
body: Yes it will. I updated it to `0.41.9` to match the current `VERSION` on our `master` branch. This is okay, as it will match the current `fuel-core@master` after https://github.com/FuelLabs/fuel-core/pull/2867 is merged. All of this will of course be removed after `0.42.0` is released.
created_at: 2025-03-13T11:55:55Z
author_association: CONTRIBUTOR
diff_hunk: @@ -587,7 +587,7 @@ describe('Account', () => {
 
     // Test excludes the UTXO where the assetIdA gets added to the senders wallet
     await expectToThrowFuelError(
-      () => user.getResourcesToSpend([[1, ASSET_A, 500_000]], { utxos: [assetAUTXO.id] }),
+      () => user.getResourcesToSpend([[1, ASSET_A]], { utxos: [assetAUTXO.id] }),
path: packages/account/src/account.test.ts
user: login: nedsalk
body: The [change](https://github.com/FuelLabs/fuels-ts/pull/3749/files#diff-5cbf9ad308915e4c87c2234e694bcb26aabaa35b088355c8544eb10118375befR688) from `Int` to `U16` caused this test to fail because `500_000` > `U16_max`. Removing this `max` value doesn't affect the assumptions of the test.
created_at: 2025-03-13T11:58:22Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,6 @@
+---
+"@fuel-ts/versions": patch
+"@fuel-ts/account": patch
+---
+
+chore: upgrade `fuel-core` to `0.42.0`
path: .changeset/yummy-tools-sip.md
user: login: nedsalk
body: I explained it [here](https://github.com/FuelLabs/fuels-ts/pull/3749/files#r1993368625).
created_at: 2025-03-13T12:00:22Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1,9 +1,14 @@
 import type { Versions } from './types';
 
+const FUEL_CORE = `0.41.7`;
 export function getBuiltinVersions(): Versions {
   return {
-    FUEL_CORE: '0.41.7',
+    FUEL_CORE: 'git:master',
     FORC: '0.66.7',
     FUELS: '0.99.0',
+    // @ts-expect-error - overriding until 0.42.0 is released
+    // because a lot of tests are failing
+    // given that the mismatch warning is appended to errors
+    FUEL_CORE,
path: packages/versions/src/lib/getBuiltinVersions.ts
user: login: arboleya
body: What I meant is:

Why this?

```ts
const FUEL_CORE = `0.41.7`;
export function getBuiltinVersions(): Versions {
  return {
    FUEL_CORE: 'git:master',
    FORC: '0.66.7',
    FUELS: '0.99.0',
    // @ts-expect-error - overriding until 0.42.0 is released
    // because a lot of tests are failing
    // given that the mismatch warning is appended to errors
    FUEL_CORE,
  }
}
```

Instead of this?

```ts
export function getBuiltinVersions(): Versions {
  return {
    FUEL_CORE: '0.41.7', // TODO: change to 0.42 before merge
    FORC: '0.66.7',
    FUELS: '0.99.0',
  }
}
```

created_at: 2025-03-13T12:01:26Z
author_association: CONTRIBUTOR
diff_hunk: @@ -587,7 +587,7 @@ describe('Account', () => {
 
     // Test excludes the UTXO where the assetIdA gets added to the senders wallet
     await expectToThrowFuelError(
-      () => user.getResourcesToSpend([[1, ASSET_A, 500_000]], { utxos: [assetAUTXO.id] }),
+      () => user.getResourcesToSpend([[1, ASSET_A]], { utxos: [assetAUTXO.id] }),
path: packages/account/src/account.test.ts
user: login: arboleya
body: cc @Torres-ssf 
created_at: 2025-03-13T12:02:28Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1,9 +1,14 @@
 import type { Versions } from './types';
 
+const FUEL_CORE = `0.41.7`;
 export function getBuiltinVersions(): Versions {
   return {
-    FUEL_CORE: '0.41.7',
+    FUEL_CORE: 'git:master',
     FORC: '0.66.7',
     FUELS: '0.99.0',
+    // @ts-expect-error - overriding until 0.42.0 is released
+    // because a lot of tests are failing
+    // given that the mismatch warning is appended to errors
+    FUEL_CORE,
path: packages/versions/src/lib/getBuiltinVersions.ts
user: login: nedsalk
body: Because the `FUEL_CORE` field gets automatically overwritten via [`rewriteVersions`](https://github.com/FuelLabs/fuels-ts/blob/ns/chore/fuel-core-0.42.0/packages/versions/scripts/rewriteVersions.ts#L69) in the [prebuild](https://github.com/FuelLabs/fuels-ts/blob/ns/chore/fuel-core-0.42.0/packages/versions/package.json#L38) script and gets set to `FUEL_CORE: 'git:master'`. The way I'm adding the new `FUEL_CORE` field doesn't conform to the regex in the script so it doesn't get overwritten.
created_at: 2025-03-13T12:10:17Z
author_association: CONTRIBUTOR
diff_hunk: @@ -3,49 +3,26 @@
 PUBLISHED_FUEL_PACKAGE_NAME="${PUBLISHED_FUEL_PACKAGE_NAME-"fuels"}"
 PUBLISHED_NPM_TAG="${PUBLISHED_NPM_TAG-"next"}"
 
-# Versions
-FUEL_CORE_VERSION=$(cat ./internal/fuel-core/VERSION)
-FORC_VERSION=$(cat ./internal/forc/VERSION)
-TOOLCHAIN="CI"
-
 # Project
-ROOT_DIR=$(pwd)
-PLAYWRIGHT_DIR="$ROOT_DIR"
-PROJECT_DIR="$ROOT_DIR/test-project"
-
-echo "1. Install toolchains"
-if [ -x "$(command -v fuelup)" ]; then
-  echo "Fuelup exists"
-else
-  echo "Fuelup does not exist - installing 'fuelup'"
-  curl -fsSL https://install.fuel.network/ | sh -s -- --no-modify-path
-  export PATH="${HOME}/.fuelup/bin:${PATH}"
-fi
+REPO_DIR=$(pwd)
+PATH="${REPO_DIR}/internal/fuel-core/fuel-core-binaries:${PATH}"
+PATH="${REPO_DIR}/internal/forc/forc-binaries:${PATH}"
 
-fuelup toolchain new $TOOLCHAIN
-fuelup default $TOOLCHAIN
-fuelup component add fuel-core@$FUEL_CORE_VERSION
-fuelup component add forc@$FORC_VERSION
+PROJECT_DIR="$(mktemp -d)/integration-test-project"
+echo "$PROJECT_DIR"
 
-echo "2. Scaffold a new project with '$PUBLISHED_FUEL_PACKAGE_NAME@$PUBLISHED_NPM_TAG'"
+echo "1. Scaffold a new project with '$PUBLISHED_FUEL_PACKAGE_NAME@$PUBLISHED_NPM_TAG'"
 if [ -d "$PROJECT_DIR" ]; then
   echo "Removing existing project directory '$PROJECT_DIR'"
-  rm -rf $PROJECT_DIR
+  rm -rf "$PROJECT_DIR"
 fi
-pnpm create $PUBLISHED_FUEL_PACKAGE_NAME@$PUBLISHED_NPM_TAG $PROJECT_DIR --no-install
-
-echo "3. Intialise the project"
-cd $PROJECT_DIR
-pnpm remove fuels
-pnpm add $PUBLISHED_FUEL_PACKAGE_NAME@$PUBLISHED_NPM_TAG
-pnpm  --ignore-workspace install
-cp .env.example .env.local
+NPM_CONFIG_REGISTRY="https://npm-packages.fuel.network" VITEST="to-not-install-fuelup" pnpm create "$PUBLISHED_FUEL_PACKAGE_NAME"@"$PUBLISHED_NPM_TAG" "$PROJECT_DIR"
 
-echo "4. Running UI tests"
-cd $ROOT_DIR
+echo "2. Running UI tests"
+cd "$REPO_DIR"
 PROJECT_DIR=$PROJECT_DIR sh ./scripts/tests-ui.sh
 TEST_RESULT=$?
 
-rm -rf $PROJECT_DIR
+rm -rf "$PROJECT_DIR"
path: scripts/tests-ui-integration.sh
user: login: nedsalk
body: 1. I'm using [shellcheck](https://marketplace.visualstudio.com/items?itemName=timonwong.shellcheck) in my editor and, as I was rewriting the code, it guided me to wrap it in double quotes because of [SC2086](https://www.shellcheck.net/wiki/SC2086) so I did it instinctively and planned to revert it later as it doesn't have any bearing in this scenario because the `PROJECT_DIR` path doesn't have any spaces in it. We might want to integrate shellcheck for linting our scripts, though.
2. Added comments in https://github.com/FuelLabs/fuels-ts/pull/3749/commits/715959e5fdcfa55047ee9b86fc331a46cf6967d8. Will write comments on the removed code why I removed it.
created_at: 2025-03-13T12:39:17Z
author_association: CONTRIBUTOR
diff_hunk: @@ -3,46 +3,29 @@
 PUBLISHED_FUEL_PACKAGE_NAME="${PUBLISHED_FUEL_PACKAGE_NAME-"fuels"}"
 PUBLISHED_NPM_TAG="${PUBLISHED_NPM_TAG-"next"}"
 
-# Versions
-FUEL_CORE_VERSION=$(cat ./internal/fuel-core/VERSION)
-FORC_VERSION=$(cat ./internal/forc/VERSION)
-TOOLCHAIN="CI"
-
 # Project
-ROOT_DIR=$(pwd)
-PLAYWRIGHT_DIR="$ROOT_DIR"
-PROJECT_DIR="$ROOT_DIR/test-project"
-
-echo "1. Install toolchains"
-if [ -x "$(command -v fuelup)" ]; then
-  echo "Fuelup exists"
-else
-  echo "Fuelup does not exist - installing 'fuelup'"
-  curl -fsSL https://install.fuel.network/ | sh -s -- --no-modify-path
-  export PATH="${HOME}/.fuelup/bin:${PATH}"
-fi
+REPO_DIR=$(pwd)
+
+echo "1. Add binaries to PATH so that tests can use them"
+PATH="${REPO_DIR}/internal/fuel-core/fuel-core-binaries:${PATH}"
+PATH="${REPO_DIR}/internal/forc/forc-binaries:${PATH}"
 
-fuelup toolchain new $TOOLCHAIN
-fuelup default $TOOLCHAIN
-fuelup component add fuel-core@$FUEL_CORE_VERSION
-fuelup component add forc@$FORC_VERSION
path: scripts/tests-ui-integration.sh
user: login: nedsalk
body: `fuelup` can only add released versions. Because we're working with an unreleased version, I had to rewrite this logic to take the binaries from our `internal/` packages.
created_at: 2025-03-13T12:41:51Z
author_association: CONTRIBUTOR
diff_hunk: @@ -3,46 +3,29 @@
 PUBLISHED_FUEL_PACKAGE_NAME="${PUBLISHED_FUEL_PACKAGE_NAME-"fuels"}"
 PUBLISHED_NPM_TAG="${PUBLISHED_NPM_TAG-"next"}"
 
-# Versions
-FUEL_CORE_VERSION=$(cat ./internal/fuel-core/VERSION)
-FORC_VERSION=$(cat ./internal/forc/VERSION)
-TOOLCHAIN="CI"
-
 # Project
-ROOT_DIR=$(pwd)
-PLAYWRIGHT_DIR="$ROOT_DIR"
-PROJECT_DIR="$ROOT_DIR/test-project"
-
-echo "1. Install toolchains"
-if [ -x "$(command -v fuelup)" ]; then
-  echo "Fuelup exists"
-else
-  echo "Fuelup does not exist - installing 'fuelup'"
-  curl -fsSL https://install.fuel.network/ | sh -s -- --no-modify-path
-  export PATH="${HOME}/.fuelup/bin:${PATH}"
-fi
+REPO_DIR=$(pwd)
+
+echo "1. Add binaries to PATH so that tests can use them"
+PATH="${REPO_DIR}/internal/fuel-core/fuel-core-binaries:${PATH}"
+PATH="${REPO_DIR}/internal/forc/forc-binaries:${PATH}"
 
-fuelup toolchain new $TOOLCHAIN
-fuelup default $TOOLCHAIN
-fuelup component add fuel-core@$FUEL_CORE_VERSION
-fuelup component add forc@$FORC_VERSION
+# Create a temporary directory where we'll scaffold the test project
+PROJECT_DIR="$(mktemp -d)/integration-test-project"
 
 echo "2. Scaffold a new project with '$PUBLISHED_FUEL_PACKAGE_NAME@$PUBLISHED_NPM_TAG'"
 if [ -d "$PROJECT_DIR" ]; then
   echo "Removing existing project directory '$PROJECT_DIR'"
   rm -rf $PROJECT_DIR
 fi
-pnpm create $PUBLISHED_FUEL_PACKAGE_NAME@$PUBLISHED_NPM_TAG $PROJECT_DIR --no-install
 
-echo "3. Intialise the project"
-cd $PROJECT_DIR
-pnpm remove fuels
-pnpm add $PUBLISHED_FUEL_PACKAGE_NAME@$PUBLISHED_NPM_TAG
-pnpm  --ignore-workspace install
-cp .env.example .env.local
+# NPM_CONFIG_REGISTRY is used to install the fuels pacakge
+# from our custom registry where we publish PR builds
+# VITEST is used to skip installing fuelup (see https://github.com/FuelLabs/fuels-ts/issues/3770)
+NPM_CONFIG_REGISTRY="https://npm-packages.fuel.network" VITEST="to-not-install-fuelup" pnpm create "$PUBLISHED_FUEL_PACKAGE_NAME"@"$PUBLISHED_NPM_TAG" "$PROJECT_DIR"
path: scripts/tests-ui-integration.sh
user: login: nedsalk
body: I had to add the `VITEST` environment variable because the "is fuelup installed" check of `create-fuels` was causing the script to fail, probably because the [prompt](https://github.com/FuelLabs/fuels-ts/blob/94646e0d57beb0164198f5a0f87f09944a48fe8b/packages/create-fuels/src/lib/tryInstallFuelUp.ts#L22) was never acknowledged in the CI. Given that we've added the binaries to `PATH` above, there's no need for `fuelup`.
created_at: 2025-03-13T12:44:06Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1,9 +1,14 @@
 import type { Versions } from './types';
 
+const FUEL_CORE = `0.41.7`;
 export function getBuiltinVersions(): Versions {
   return {
-    FUEL_CORE: '0.41.7',
+    FUEL_CORE: 'git:master',
     FORC: '0.66.7',
     FUELS: '0.99.0',
+    // @ts-expect-error - overriding until 0.42.0 is released
+    // because a lot of tests are failing
+    // given that the mismatch warning is appended to errors
+    FUEL_CORE,
path: packages/versions/src/lib/getBuiltinVersions.ts
user: login: arboleya
body: Certainly! That information has been purged from my swap! 😅 
created_at: 2025-03-13T12:46:28Z
author_association: CONTRIBUTOR
diff_hunk: @@ -3,49 +3,26 @@
 PUBLISHED_FUEL_PACKAGE_NAME="${PUBLISHED_FUEL_PACKAGE_NAME-"fuels"}"
 PUBLISHED_NPM_TAG="${PUBLISHED_NPM_TAG-"next"}"
 
-# Versions
-FUEL_CORE_VERSION=$(cat ./internal/fuel-core/VERSION)
-FORC_VERSION=$(cat ./internal/forc/VERSION)
-TOOLCHAIN="CI"
-
 # Project
-ROOT_DIR=$(pwd)
-PLAYWRIGHT_DIR="$ROOT_DIR"
-PROJECT_DIR="$ROOT_DIR/test-project"
-
-echo "1. Install toolchains"
-if [ -x "$(command -v fuelup)" ]; then
-  echo "Fuelup exists"
-else
-  echo "Fuelup does not exist - installing 'fuelup'"
-  curl -fsSL https://install.fuel.network/ | sh -s -- --no-modify-path
-  export PATH="${HOME}/.fuelup/bin:${PATH}"
-fi
+REPO_DIR=$(pwd)
+PATH="${REPO_DIR}/internal/fuel-core/fuel-core-binaries:${PATH}"
+PATH="${REPO_DIR}/internal/forc/forc-binaries:${PATH}"
 
-fuelup toolchain new $TOOLCHAIN
-fuelup default $TOOLCHAIN
-fuelup component add fuel-core@$FUEL_CORE_VERSION
-fuelup component add forc@$FORC_VERSION
+PROJECT_DIR="$(mktemp -d)/integration-test-project"
+echo "$PROJECT_DIR"
 
-echo "2. Scaffold a new project with '$PUBLISHED_FUEL_PACKAGE_NAME@$PUBLISHED_NPM_TAG'"
+echo "1. Scaffold a new project with '$PUBLISHED_FUEL_PACKAGE_NAME@$PUBLISHED_NPM_TAG'"
 if [ -d "$PROJECT_DIR" ]; then
   echo "Removing existing project directory '$PROJECT_DIR'"
-  rm -rf $PROJECT_DIR
+  rm -rf "$PROJECT_DIR"
 fi
-pnpm create $PUBLISHED_FUEL_PACKAGE_NAME@$PUBLISHED_NPM_TAG $PROJECT_DIR --no-install
-
-echo "3. Intialise the project"
-cd $PROJECT_DIR
-pnpm remove fuels
-pnpm add $PUBLISHED_FUEL_PACKAGE_NAME@$PUBLISHED_NPM_TAG
-pnpm  --ignore-workspace install
-cp .env.example .env.local
+NPM_CONFIG_REGISTRY="https://npm-packages.fuel.network" VITEST="to-not-install-fuelup" pnpm create "$PUBLISHED_FUEL_PACKAGE_NAME"@"$PUBLISHED_NPM_TAG" "$PROJECT_DIR"
 
-echo "4. Running UI tests"
-cd $ROOT_DIR
+echo "2. Running UI tests"
+cd "$REPO_DIR"
 PROJECT_DIR=$PROJECT_DIR sh ./scripts/tests-ui.sh
 TEST_RESULT=$?
 
-rm -rf $PROJECT_DIR
+rm -rf "$PROJECT_DIR"
path: scripts/tests-ui-integration.sh
user: login: arboleya
body: Ah I see, no worries.

I don't believe the double quotes would cause any trouble, in which case we could keep them.
created_at: 2025-03-13T12:48:08Z
author_association: CONTRIBUTOR
diff_hunk: @@ -3,46 +3,29 @@
 PUBLISHED_FUEL_PACKAGE_NAME="${PUBLISHED_FUEL_PACKAGE_NAME-"fuels"}"
 PUBLISHED_NPM_TAG="${PUBLISHED_NPM_TAG-"next"}"
 
-# Versions
-FUEL_CORE_VERSION=$(cat ./internal/fuel-core/VERSION)
-FORC_VERSION=$(cat ./internal/forc/VERSION)
-TOOLCHAIN="CI"
-
 # Project
-ROOT_DIR=$(pwd)
-PLAYWRIGHT_DIR="$ROOT_DIR"
-PROJECT_DIR="$ROOT_DIR/test-project"
path: scripts/tests-ui-integration.sh
user: login: nedsalk
body: I moved the `PROJECT_DIR` to a temporary directory generated via
```sh
PROJECT_DIR="$(mktemp -d)/integration-test-project"
```
because then we've got a clean slate and don't need to have the workarounds below in the `"3. Intialise the project"` step related to installation because the test project in no longer living under the same workspace as our repository. Now, all the installation and preparation is handled by the single `pnpm create fuels@pr-xxxx $PROJECT_DIR` command and we then just run the tests over it.
created_at: 2025-03-13T12:54:28Z
author_association: CONTRIBUTOR
diff_hunk: @@ -3,46 +3,29 @@
 PUBLISHED_FUEL_PACKAGE_NAME="${PUBLISHED_FUEL_PACKAGE_NAME-"fuels"}"
 PUBLISHED_NPM_TAG="${PUBLISHED_NPM_TAG-"next"}"
 
-# Versions
-FUEL_CORE_VERSION=$(cat ./internal/fuel-core/VERSION)
-FORC_VERSION=$(cat ./internal/forc/VERSION)
-TOOLCHAIN="CI"
-
 # Project
-ROOT_DIR=$(pwd)
-PLAYWRIGHT_DIR="$ROOT_DIR"
-PROJECT_DIR="$ROOT_DIR/test-project"
-
-echo "1. Install toolchains"
-if [ -x "$(command -v fuelup)" ]; then
-  echo "Fuelup exists"
-else
-  echo "Fuelup does not exist - installing 'fuelup'"
-  curl -fsSL https://install.fuel.network/ | sh -s -- --no-modify-path
-  export PATH="${HOME}/.fuelup/bin:${PATH}"
-fi
+REPO_DIR=$(pwd)
+
+echo "1. Add binaries to PATH so that tests can use them"
+PATH="${REPO_DIR}/internal/fuel-core/fuel-core-binaries:${PATH}"
+PATH="${REPO_DIR}/internal/forc/forc-binaries:${PATH}"
 
-fuelup toolchain new $TOOLCHAIN
-fuelup default $TOOLCHAIN
-fuelup component add fuel-core@$FUEL_CORE_VERSION
-fuelup component add forc@$FORC_VERSION
+# Create a temporary directory where we'll scaffold the test project
+PROJECT_DIR="$(mktemp -d)/integration-test-project"
 
 echo "2. Scaffold a new project with '$PUBLISHED_FUEL_PACKAGE_NAME@$PUBLISHED_NPM_TAG'"
 if [ -d "$PROJECT_DIR" ]; then
   echo "Removing existing project directory '$PROJECT_DIR'"
   rm -rf $PROJECT_DIR
 fi
-pnpm create $PUBLISHED_FUEL_PACKAGE_NAME@$PUBLISHED_NPM_TAG $PROJECT_DIR --no-install
 
-echo "3. Intialise the project"
-cd $PROJECT_DIR
-pnpm remove fuels
-pnpm add $PUBLISHED_FUEL_PACKAGE_NAME@$PUBLISHED_NPM_TAG
-pnpm  --ignore-workspace install
-cp .env.example .env.local
+# NPM_CONFIG_REGISTRY is used to install the fuels pacakge
+# from our custom registry where we publish PR builds
+# VITEST is used to skip installing fuelup (see https://github.com/FuelLabs/fuels-ts/issues/3770)
+NPM_CONFIG_REGISTRY="https://npm-packages.fuel.network" VITEST="to-not-install-fuelup" pnpm create "$PUBLISHED_FUEL_PACKAGE_NAME"@"$PUBLISHED_NPM_TAG" "$PROJECT_DIR"
path: scripts/tests-ui-integration.sh
user: login: nedsalk
body: Also, by adding the `NPM_CONFIG_REGISTRY="https://npm-packages.fuel.network"` env variable here, we actually don't need to [update](https://github.com/FuelLabs/fuels-ts/blob/94646e0d57beb0164198f5a0f87f09944a48fe8b/.github/workflows/test.yaml#L93C23-L93C28) our `.npmrc` anymore, so that can be removed as well. @petertonysmith94 what do you think?
created_at: 2025-03-13T13:00:58Z
author_association: CONTRIBUTOR
diff_hunk: @@ -11,7 +11,7 @@ afterAll(() => {
 });
 
 // %TEST_ENVIRONMENT%
-test('%NAME%', async () => {
+test('%NAME%', { timeout: 10_000 }, async () => {
path: apps/docs/scripts/test-template.ts
user: login: nedsalk
body: The [`wrong-resubmission` snippet](https://github.com/FuelLabs/fuels-ts/blob/f260c71d491d75eff6310fe1c9b23bb3ddaddefa/apps/docs/src/guide/cookbook/snippets/resubmitting-failed-transactions/wrong-resubmission.ts#L32) test was failing with a timeout because transactions started staying in the TxPool for some time in the new version, which wasn't happening previously. This timeout covers such cases in our snippets.
created_at: 2025-03-19T16:20:47Z
author_association: CONTRIBUTOR
diff_hunk: @@ -389,13 +393,65 @@ type NodeInfoCache = Record<string, NodeInfo>;
 
 type Operations = ReturnType<typeof getOperationsSdk>;
 
-type SdkOperations = Omit<Operations, 'statusChange' | 'submitAndAwaitStatus'> & {
+/**
+ * TODO: remove this once pre-confirmation status support lands.
+ *
+ * Because of the way graphql-codegen works, an empty object is added to the generated status types
+ * in place of the pre-confirmation statuses we don't declare in our operations.graphql.
+ * Codegen converts these ignored statuses into `{}` types, and that messes up our TS code compilation,
+ * because it's not written with this `{}` type in mind.
+ * This utility and its application on the types below removes those empty objects from the affected operations,
+ * thereby leaving their types unchanged from the perspective of their consumers.
+ */
+type RemoveCodegenEmptyObject<T> = T extends object ? (keyof T extends never ? never : T) : T;
+
+type StatusChangeSubscription = {
+  statusChange: RemoveCodegenEmptyObject<GqlStatusChangeSubscription['statusChange']>;
+};
+
+type SubmitAndAwaitStatusSubscription = {
+  submitAndAwaitStatus: RemoveCodegenEmptyObject<
+    GqlSubmitAndAwaitStatusSubscription['submitAndAwaitStatus']
+  >;
+};
+
+type TransactionWithReceipts = NonNullable<GqlGetTransactionWithReceiptsQuery['transaction']>;
+
+type GetTransactionWithReceiptsQuery = {
+  transaction?: Omit<TransactionWithReceipts, 'status'> & {
+    status?: RemoveCodegenEmptyObject<TransactionWithReceipts['status']>;
+  };
+};
+
+type TransactionsByOwnerNode =
+  GqlGetTransactionsByOwnerQuery['transactionsByOwner']['edges'][number]['node'];
+
+type GetTransactionsByOwnerQuery = {
+  transactionsByOwner: Omit<GqlGetTransactionsByOwnerQuery['transactionsByOwner'], 'edges'> & {
+    edges: Array<{
+      node: Omit<TransactionsByOwnerNode, 'status'> & {
+        status?: RemoveCodegenEmptyObject<TransactionsByOwnerNode['status']>;
+      };
+    }>;
+  };
+};
path: packages/account/src/providers/provider.ts
user: login: petertonysmith94
body: Just clarifying your comment. This type gymnastics will be removed once pre-confirmations have been integrated and it's only a temporary patch for the types until then?


created_at: 2025-03-20T08:40:07Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,6 @@
+---
+"@fuel-ts/versions": patch
path: .changeset/yummy-tools-sip.md
user: login: petertonysmith94
body: ```suggestion
"create-fuels": patch
"@fuel-ts/versions": patch
```
created_at: 2025-03-20T08:41:17Z
author_association: CONTRIBUTOR
diff_hunk: @@ -389,13 +393,65 @@ type NodeInfoCache = Record<string, NodeInfo>;
 
 type Operations = ReturnType<typeof getOperationsSdk>;
 
-type SdkOperations = Omit<Operations, 'statusChange' | 'submitAndAwaitStatus'> & {
+/**
+ * TODO: remove this once pre-confirmation status support lands.
+ *
+ * Because of the way graphql-codegen works, an empty object is added to the generated status types
+ * in place of the pre-confirmation statuses we don't declare in our operations.graphql.
+ * Codegen converts these ignored statuses into `{}` types, and that messes up our TS code compilation,
+ * because it's not written with this `{}` type in mind.
+ * This utility and its application on the types below removes those empty objects from the affected operations,
+ * thereby leaving their types unchanged from the perspective of their consumers.
+ */
+type RemoveCodegenEmptyObject<T> = T extends object ? (keyof T extends never ? never : T) : T;
+
+type StatusChangeSubscription = {
+  statusChange: RemoveCodegenEmptyObject<GqlStatusChangeSubscription['statusChange']>;
+};
+
+type SubmitAndAwaitStatusSubscription = {
+  submitAndAwaitStatus: RemoveCodegenEmptyObject<
+    GqlSubmitAndAwaitStatusSubscription['submitAndAwaitStatus']
+  >;
+};
+
+type TransactionWithReceipts = NonNullable<GqlGetTransactionWithReceiptsQuery['transaction']>;
+
+type GetTransactionWithReceiptsQuery = {
+  transaction?: Omit<TransactionWithReceipts, 'status'> & {
+    status?: RemoveCodegenEmptyObject<TransactionWithReceipts['status']>;
+  };
+};
+
+type TransactionsByOwnerNode =
+  GqlGetTransactionsByOwnerQuery['transactionsByOwner']['edges'][number]['node'];
+
+type GetTransactionsByOwnerQuery = {
+  transactionsByOwner: Omit<GqlGetTransactionsByOwnerQuery['transactionsByOwner'], 'edges'> & {
+    edges: Array<{
+      node: Omit<TransactionsByOwnerNode, 'status'> & {
+        status?: RemoveCodegenEmptyObject<TransactionsByOwnerNode['status']>;
+      };
+    }>;
+  };
+};
path: packages/account/src/providers/provider.ts
user: login: nedsalk
body: Yes, exactly. All these changes in `provider.ts` should be reverted then.
created_at: 2025-03-20T09:13:28Z
author_association: CONTRIBUTOR
diff_hunk: @@ -587,7 +587,7 @@ describe('Account', () => {
 
     // Test excludes the UTXO where the assetIdA gets added to the senders wallet
     await expectToThrowFuelError(
-      () => user.getResourcesToSpend([[1, ASSET_A, 500_000]], { utxos: [assetAUTXO.id] }),
+      () => user.getResourcesToSpend([[1, ASSET_A]], { utxos: [assetAUTXO.id] }),
path: packages/account/src/account.test.ts
user: login: petertonysmith94
body: Resolving this.
created_at: 2025-03-27T11:03:44Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,7 @@
+---
+"create-fuels": patch
+"@fuel-ts/versions": patch
+"@fuel-ts/account": patch
path: .changeset/yummy-tools-sip.md
user: login: petertonysmith94
body: ```suggestion
"@internal/fuel-core": patch
"@fuel-ts/account": patch
"@fuel-ts/contract": patch
"@fuel-ts/transactions": patch
"@fuel-ts/versions": patch
"create-fuels": patch
```
created_at: 2025-04-09T12:03:48Z
author_association: CONTRIBUTOR
diff_hunk: @@ -613,10 +646,16 @@ type Header {
   Hash of the application header.
   """
   applicationHash: Bytes32!
+
+  """
+  Transaction ID Commitment
+  """
+  txIdCommitment: Bytes32
 }
 
 enum HeaderVersion {
   V1
+  V2
path: packages/account/src/providers/fuel-core-schema.graphql
user: login: petertonysmith94
body: What does this mean for snapshots?
created_at: 2025-04-11T19:07:23Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1150,6 +1314,28 @@ type Query {
   consensusParameters(version: Int!): ConsensusParameters!
   stateTransitionBytecodeByVersion(version: Int!): StateTransitionBytecode
   stateTransitionBytecodeByRoot(root: HexString!): StateTransitionBytecode!
+
+  """
+  Get storage slot values for a contract at a specific block height.
+  Use the latest block height if not provided.
+  Requires historical execution config to be enabled.
+  """
+  contractSlotValues(
path: packages/account/src/providers/fuel-core-schema.graphql
user: login: petertonysmith94
body: We should add issues for these methods, they look useful 👀
created_at: 2025-04-11T19:08:46Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1150,6 +1314,28 @@ type Query {
   consensusParameters(version: Int!): ConsensusParameters!
   stateTransitionBytecodeByVersion(version: Int!): StateTransitionBytecode
   stateTransitionBytecodeByRoot(root: HexString!): StateTransitionBytecode!
+
+  """
+  Get storage slot values for a contract at a specific block height.
+  Use the latest block height if not provided.
+  Requires historical execution config to be enabled.
+  """
+  contractSlotValues(
path: packages/account/src/providers/fuel-core-schema.graphql
user: login: Torres-ssf
body: https://github.com/FuelLabs/fuels-ts/issues/3854
created_at: 2025-04-16T15:04:28Z
author_association: CONTRIBUTOR
diff_hunk: @@ -613,10 +646,16 @@ type Header {
   Hash of the application header.
   """
   applicationHash: Bytes32!
+
+  """
+  Transaction ID Commitment
+  """
+  txIdCommitment: Bytes32
 }
 
 enum HeaderVersion {
   V1
+  V2
path: packages/account/src/providers/fuel-core-schema.graphql
user: login: Torres-ssf
body: @petertonysmith94 Are you referring to the snapshot types used in our test utilities?
created_at: 2025-04-16T15:06:07Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,10 @@
+---
+"@internal/fuel-core": patch
+"@fuel-ts/account": patch
+"@fuel-ts/contract": patch
+"@fuel-ts/transactions": patch
+"@fuel-ts/versions": patch
+"create-fuels": patch
+---
+
+chore: upgrade `fuel-core` to `0.43.0`
path: .changeset/yummy-tools-sip.md
user: login: arboleya
body: ```suggestion
chore: upgrade `fuel-core` to `0.43.1`
```
created_at: 2025-04-23T14:15:57Z
author_association: CONTRIBUTOR

PR comments:
user: login: vercel[bot]
created_at: 2025-03-04T12:33:07Z
body: [vc]: #QF3rQyNSdbYkOzKZ0u9RnZ1Eto+j7yqbVchiOkilMPI=:eyJpc01vbm9yZXBvIjp0cnVlLCJ0eXBlIjoiZ2l0aHViIiwicHJvamVjdHMiOlt7Im5hbWUiOiJ0cy1kb2NzIiwicm9vdERpcmVjdG9yeSI6ImFwcHMvZG9jcyIsImxpdmVGZWVkYmFjayI6eyJyZXNvbHZlZCI6MCwidW5yZXNvbHZlZCI6MCwidG90YWwiOjAsImxpbmsiOiJ0cy1kb2NzLWdpdC1ucy1jaG9yZWZ1ZWwtY29yZS0wNDIwLWZ1ZWwtbGFicy52ZXJjZWwuYXBwIn0sImluc3BlY3RvclVybCI6Imh0dHBzOi8vdmVyY2VsLmNvbS9mdWVsLWxhYnMvdHMtZG9jcy82VUFaa3M1TW8xbmR2TjV6blZjRmVYRVhFZXAyIiwicHJldmlld1VybCI6InRzLWRvY3MtZ2l0LW5zLWNob3JlZnVlbC1jb3JlLTA0MjAtZnVlbC1sYWJzLnZlcmNlbC5hcHAiLCJuZXh0Q29tbWl0U3RhdHVzIjoiREVQTE9ZRUQifSx7Im5hbWUiOiJmdWVscy10ZW1wbGF0ZSIsInJvb3REaXJlY3RvcnkiOiJ0ZW1wbGF0ZXMvdml0ZSIsImxpdmVGZWVkYmFjayI6eyJyZXNvbHZlZCI6MCwidW5yZXNvbHZlZCI6MCwidG90YWwiOjAsImxpbmsiOiJmdWVscy10ZW1wbGF0ZS1naXQtbnMtY2hvcmVmdWVsLWNvcmUtMDQyMC1mdWVsLWxhYnMudmVyY2VsLmFwcCJ9LCJpbnNwZWN0b3JVcmwiOiJodHRwczovL3ZlcmNlbC5jb20vZnVlbC1sYWJzL2Z1ZWxzLXRlbXBsYXRlL0FVanhmZ1I2UWhUTnI4ZDNMcFlUMlRMcm8zZFMiLCJwcmV2aWV3VXJsIjoiZnVlbHMtdGVtcGxhdGUtZ2l0LW5zLWNob3JlZnVlbC1jb3JlLTA0MjAtZnVlbC1sYWJzLnZlcmNlbC5hcHAiLCJuZXh0Q29tbWl0U3RhdHVzIjoiREVQTE9ZRUQifSx7Im5hbWUiOiJ0cy1kb2NzLWFwaSIsInJvb3REaXJlY3RvcnkiOiJhcHBzL2RvY3MtYXBpIiwibGl2ZUZlZWRiYWNrIjp7InJlc29sdmVkIjowLCJ1bnJlc29sdmVkIjowLCJ0b3RhbCI6MCwibGluayI6InRzLWRvY3MtYXBpLWdpdC1ucy1jaG9yZWZ1ZWwtY29yZS0wNDIwLWZ1ZWwtbGFicy52ZXJjZWwuYXBwIn0sImluc3BlY3RvclVybCI6Imh0dHBzOi8vdmVyY2VsLmNvbS9mdWVsLWxhYnMvdHMtZG9jcy1hcGkvNng5MXJ3WmJmaVVDVHZhTGNOc2hHbTFVM1gyNSIsInByZXZpZXdVcmwiOiJ0cy1kb2NzLWFwaS1naXQtbnMtY2hvcmVmdWVsLWNvcmUtMDQyMC1mdWVsLWxhYnMudmVyY2VsLmFwcCIsIm5leHRDb21taXRTdGF0dXMiOiJERVBMT1lFRCJ9XX0=
**The latest updates on your projects**. Learn more about [Vercel for Git ↗︎](https://vercel.link/github-learn-more)

| Name | Status | Preview | Comments | Updated (UTC) |
| :--- | :----- | :------ | :------- | :------ |
| **fuels-template** | ✅ Ready ([Inspect](https://vercel.com/fuel-labs/fuels-template/AUjxfgR6QhTNr8d3LpYT2TLro3dS)) | [Visit Preview](https://fuels-template-git-ns-chorefuel-core-0420-fuel-labs.vercel.app) | 💬 [**Add feedback**](https://vercel.live/open-feedback/fuels-template-git-ns-chorefuel-core-0420-fuel-labs.vercel.app?via=pr-comment-feedback-link) | Apr 24, 2025 7:19pm |
| **ts-docs** | ✅ Ready ([Inspect](https://vercel.com/fuel-labs/ts-docs/6UAZks5Mo1ndvN5znVcFeXEXEep2)) | [Visit Preview](https://ts-docs-git-ns-chorefuel-core-0420-fuel-labs.vercel.app) | 💬 [**Add feedback**](https://vercel.live/open-feedback/ts-docs-git-ns-chorefuel-core-0420-fuel-labs.vercel.app?via=pr-comment-feedback-link) | Apr 24, 2025 7:19pm |
| **ts-docs-api** | ✅ Ready ([Inspect](https://vercel.com/fuel-labs/ts-docs-api/6x91rwZbfiUCTvaLcNshGm1U3X25)) | [Visit Preview](https://ts-docs-api-git-ns-chorefuel-core-0420-fuel-labs.vercel.app) | 💬 [**Add feedback**](https://vercel.live/open-feedback/ts-docs-api-git-ns-chorefuel-core-0420-fuel-labs.vercel.app?via=pr-comment-feedback-link) | Apr 24, 2025 7:19pm |




author_association: NONE
user: login: github-actions[bot]
created_at: 2025-03-28T13:51:01Z
body: <!-- add-pr-comment:add-pr-comment -->

# Temporary PR

This PR is published in AWS CodeArtifact with version: `next`

Install using the below commands — `create-fuels` variations are commented out.

## PNPM

```bash
pnpm config set registry https://npm-packages.fuel.network/ --global
pnpm install fuels@next
# pnpm create fuels@next
```

## NPM

```bash
npm --registry=https://npm-packages.fuel.network/ install fuels@next
# npm --registry=https://npm-packages.fuel.network/ create fuels@next
```

## Bun

```bash
npm_config_registry=https://npm-packages.fuel.network/ bun install fuels@next
# npm_config_registry=https://npm-packages.fuel.network/ bun create fuels@next
```
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-04-24T19:37:21Z
body: 
  ***Coverage Report:***
  

| Lines         | Branches      | Functions      | Statements     |
| ------------- | ------------- | -------------- | -------------- |
| 77.4%(+0.08%) | 70.58%(+0.1%) | 75.66%(+0.12%) | 77.41%(+0.08%) |

  <details>

  <summary>Changed Files:</summary>

  | Ok | File (✨=New File)                                                                              | Lines              | Branches           | Functions          | Statements         |
| -- | ---------------------------------------------------------------------------------------------- | ------------------ | ------------------ | ------------------ | ------------------ |
| 🔴 | packages/account/src/providers/coin-quantity.ts            | 100%<br>(+0%)      | 90%<br>(-10%)      | 100%<br>(+0%)      | 100%<br>(+0%)      |
| 🔴 | packages/account/src/providers/provider.ts                 | 69.79%<br>(+1.22%) | 64.35%<br>(+0.93%) | 72.81%<br>(+1.94%) | 69.52%<br>(+1.2%)  |
| 🔴 | packages/account/src/providers/resource-cache.ts           | 97.95%<br>(+0%)    | 95%<br>(+5%)       | 100%<br>(+0%)      | 97.95%<br>(+0%)    |
| 🔴 | packages/account/src/providers/__generated__/operations.ts | 93.29%<br>(+0.13%) | 100%<br>(+0%)      | 80%<br>(+0.38%)    | 93.82%<br>(+0.15%) |
| 🔴 | packages/account/src/test-utils/launchNode.ts              | 94.87%<br>(+0.05%) | 82.35%<br>(+0.54%) | 90.9%<br>(+0%)     | 93.44%<br>(+0.06%) |


  </details>
  
<!-- thollander/actions-comment-pull-request "diff" -->
author_association: CONTRIBUTOR