Bump turbo from 2.9.8 to 2.9.14 (0xsequence#1008) #655
Conversation
#1007) * feat(relayer): propagate sponsored signal and mark swallowed errors `RpcRelayer.feeOptions` now forwards the server's `sponsored: boolean` to callers, and both `feeOptions` and `feeTokens` mark their swallowed-error returns with `failed: true`. The `Relayer` interface and all bundled implementations (Rpc, Sequence, Local, EIP6963, Pk) are widened to match. Additive change: existing consumers ignoring the new fields are unaffected. Downstream sponsorship classifiers should switch from `!feeOption` inference to `sponsored === true` so a real subsidy is no longer indistinguishable from a swallowed `/FeeOptions` error. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * feat(wallet-wdk): carry sponsored/failed on StandardRelayerOption `StandardRelayerOption` gains optional `sponsored` and `failed` fields, populated on both construction branches in `transactions.ts` from the relayer SDK's new `feeOptions` return. `isStandardRelayerOption` / `isERC4337RelayerOption` are re-exported so consumers can narrow before reading the new fields. UI consumers that classified sponsorship by "no fee option attached" should switch to `sponsored === true` to distinguish a real subsidy from a swallowed `/FeeOptions` error. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * feat(dapp-client): add isSponsored for explicit sponsorship checks `DappClient.isSponsored(chainId, transactions)` and `ChainSessionManager.isSponsored(calls)` return true only when the relayer's `/FeeOptions` endpoint explicitly reports sponsorship; any error, network failure, or absence of sponsorship returns false. A true result is always safe to surface as "free gas" in UI. Prefer this over inferring sponsorship from an empty `getFeeOptions` array — a swallowed `/FeeOptions` error produces the same empty shape as a real subsidy. `getFeeOptions` is unchanged. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Bumps [turbo](https://github.com/vercel/turborepo) from 2.9.8 to 2.9.14. - [Release notes](https://github.com/vercel/turborepo/releases) - [Changelog](https://github.com/vercel/turborepo/blob/main/RELEASE.md) - [Commits](vercel/turborepo@v2.9.8...v2.9.14) --- updated-dependencies: - dependency-name: turbo dependency-version: 2.9.14 dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Review or Edit in CodeSandboxOpen the branch in Web Editor • VS Code • Insiders |
|
|
There was a problem hiding this comment.
Sorry @Dargon789, you have reached your weekly rate limit of 500000 diff characters.
Please try again later or upgrade to continue using Sourcery
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
There was a problem hiding this comment.
Code Review
This pull request introduces an explicit sponsorship signal (sponsored: boolean) and error markers (failed?: boolean) to the relayer's feeOptions and feeTokens interfaces, updating all bundled relayer implementations, WDK transaction types, and the DappClient. It also adds a robust isSponsored check to safely determine if transactions are subsidized. The review feedback suggests minor improvements to ensure type safety and prevent runtime errors, specifically by defaulting the sponsored flag to false in RpcRelayer and SequenceRelayer when undefined, and defaulting tx.value to BigInt(0) in ChainSessionManager.isSponsored.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| })) | ||
|
|
||
| return { options, quote } | ||
| return { options, quote, sponsored: result.sponsored } |
There was a problem hiding this comment.
Since sponsored is a required boolean in the Relayer.feeOptions interface, we should ensure it defaults to false if result.sponsored is undefined (e.g., if the server response does not include it or if it is optional in the client's type definition).
| return { options, quote, sponsored: result.sponsored } | |
| return { options, quote, sponsored: result.sponsored ?? false } |
| return { | ||
| options, | ||
| quote: quote ? { _tag: 'FeeQuote', _quote: quote } : undefined, | ||
| sponsored, |
| async isSponsored(calls: Transaction[]): Promise<boolean> { | ||
| const callsToSend = calls.map((tx) => ({ | ||
| to: tx.to, | ||
| value: tx.value, |
No description provided.