Conversation
* Bump the npm_and_yarn group across 1 directory with 1 update Bumps the npm_and_yarn group with 1 update in the / directory: [express](https://github.com/expressjs/express). Updates `express` from 4.18.2 to 4.19.2 - [Release notes](https://github.com/expressjs/express/releases) - [Changelog](https://github.com/expressjs/express/blob/master/History.md) - [Commits](expressjs/express@4.18.2...4.19.2) --- updated-dependencies: - dependency-name: express dependency-type: direct:development dependency-group: npm_and_yarn-security-group ... Signed-off-by: dependabot[bot] <support@github.com> * Create SECURITY.md * Set up CI with Azure Pipelines [skip ci] * Create CNAME * Create fortify.yml * Update issue templates * Update CNAME * fix: upgrade @tanstack/react-query from 5.45.1 to 5.64.2 Snyk has created this PR to upgrade @tanstack/react-query from 5.45.1 to 5.64.2. See this package in npm: @tanstack/react-query See this project in Snyk: https://app.snyk.io/org/dargon789/project/bb845543-cbee-4e11-8cf9-8bfdf9205bf1?utm_source=github&utm_medium=referral&page=upgrade-pr * Create config.yml (#46) Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> * Support multiple identity signers in sessions configuration * Device signers can approve implicit sessions * Remove invalid test * Fix recursion * Fix comment * Improve test stability by reducing race conditions * Do not set passkey signer as identity signer * Use length checks * Throw on missing identity signer * Encoding requires identity signer to encode * Fix test * Refactor/types namings tsdoc redundant code (0xsequence#880) * refactor types, namings, ts doc * fix session response payload * change parameter name * change parameter name * change type in tests * improve types and dapp client methods * fix session test to use new types * refactor * refactor implicit sessions array in chain session manager * remove unused types * remove unused types and add ConnectionError * update pnpm lock * move reusable session types to wallet-core * Update some imports and update some response type names --------- Co-authored-by: Tolgahan Arikan <tolgahan.arikan@gmail.com> * Fix check for explicit session for the updated type in dapp-client * Update api.gen.ts and relayer.gen.ts * Add missing chainId for dapp client event * Fix initializing new chain session manager on redirect * Add support for non-viem, custom Sequence chains (0xsequence#882) * Provider sent to prepareBlankEnvelope * Update fortify.yml Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> * Add session signature decoding * Add feeTokens endpoint to relayer (0xsequence#885) * const for node length * Clearer blacklist size encoding * identity signer node length * add getFeeTokens to dapp client (0xsequence#889) * add getFeeTokens to dapp client * fix typo * make getFeeTokens independent of chain session manager and initialize state (0xsequence#890) * make getFeeTokens independent of chain session manager and initialized state * remove getFeeTokens from chain session manager * Throw specific error when trying to sign with an expired session (0xsequence#887) * Throw when supported session signer is expired * Fix tests * Make dapp-client implicit sessions chain agnostic (0xsequence#893) * Add Monad, remove LAOS and Root Network * Add support for sessionless dapp connection (0xsequence#896) * Refactor relayer package & update dependant packages (0xsequence#891) * refactor exports for relayer (0xsequence#900) * Add Arc Testnet * Fix changelog config * Sessionless connection upgrade and error handling in DappClient (0xsequence#902) * dapp-client: add sessionless snapshot restore flow * Bump the npm_and_yarn group across 3 directories with 1 update Bumps the npm_and_yarn group with 1 update in the / directory: [happy-dom](https://github.com/capricorn86/happy-dom). Bumps the npm_and_yarn group with 1 update in the /packages/wallet/dapp-client directory: [happy-dom](https://github.com/capricorn86/happy-dom). Bumps the npm_and_yarn group with 1 update in the /packages/wallet/wdk directory: [happy-dom](https://github.com/capricorn86/happy-dom). Updates `happy-dom` from 17.6.3 to 20.0.2 - [Release notes](https://github.com/capricorn86/happy-dom/releases) - [Commits](capricorn86/happy-dom@v17.6.3...v20.0.2) Updates `happy-dom` from 17.6.3 to 20.0.2 - [Release notes](https://github.com/capricorn86/happy-dom/releases) - [Commits](capricorn86/happy-dom@v17.6.3...v20.0.2) Updates `happy-dom` from 17.6.3 to 20.0.2 - [Release notes](https://github.com/capricorn86/happy-dom/releases) - [Commits](capricorn86/happy-dom@v17.6.3...v20.0.2) --- updated-dependencies: - dependency-name: happy-dom dependency-version: 20.0.2 dependency-type: direct:development dependency-group: npm_and_yarn - dependency-name: happy-dom dependency-version: 20.0.2 dependency-type: direct:development dependency-group: npm_and_yarn - dependency-name: happy-dom dependency-version: 20.0.2 dependency-type: direct:development dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] <support@github.com> * Allow to logout a wallet with skipRemoveDevice even if the wallet is not in a ready state to allow force removing of wallets (0xsequence#906) * Pass request to PromptCodeHandler in guard registerUI (0xsequence#909) * Pass request to PromptCodeHandler in guard registerUI * Fixing guard registerUI test * guard: allow using recovery code as 2FA token (0xsequence#910) * guard: allow using recovery code as 2FA token * Cleanup types of ResponseFn --------- Co-authored-by: Corban Riley <corbanbrook@gmail.com> * Add a way to reset 2fa when using a backup code (0xsequence#911) * Add a way to reset 2fa when using a backup code * use the GuardToken type instead of breaking out the props * Update package.json Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> * Update SECURITY.md Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> * Update wagmi-project/package.json Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> * Update wagmi-project/package.json Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> * Update wagmi-project/src/App.tsx Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> * Create FUNDING.json (#90) Enhancements: Include FUNDING.json to display GitHub sponsorship options in the repository Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> * Create config.yml (#91) Add initial CircleCI configuration to enable automated builds using a custom Docker executor and a defined workflow. Build: Add .circleci/config.yml with version 2.1 specification and custom Docker executor. CI: Define web3-defi-game-project job with checkout step. Set up my-custom-workflow to run the job. Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> * Add rc4 contracts * Set rc4 as default and add it to lists * Session enhanced replay protection * New sessions replay protection hashes payload * Use the 4337 factory wrapper * Update keymachine url in dapp-client constants * Update keymachine url in Provider constructor * SSR safety (0xsequence#915) * SSR safety test * Fix CI job * Guard dapp-client for SSR (lazy transport, browser checks, gated storage) * Fix guard topology (0xsequence#918) * Use proper guard topology * Test and fixes * login and setup tests * Switch prod manager settings (0xsequence#917) * Add prod guard and identity instrument info * Remove completed TODOs * Small JS tweaks (0xsequence#919) * Fix type exports to built declarations * Update repository links to current package paths * Improve Next app tooling and React typings * Expose primitives CLI bin and use base lint config * Update relayer.gen.ts and TransactionPrecondition interface * Update api.gen.ts * Update metadata.gen.ts * Update marketplace.gen.ts * Update guard.gen.ts * Support multiple identity signers in sessions configuration * Device signers can approve implicit sessions * Remove invalid test * Fix recursion * Fix comment * Improve test stability by reducing race conditions * Do not set passkey signer as identity signer * Use length checks * Throw on missing identity signer * Encoding requires identity signer to encode * Fix test * Refactor/types namings tsdoc redundant code (0xsequence#880) * refactor types, namings, ts doc * fix session response payload * change parameter name * change parameter name * change type in tests * improve types and dapp client methods * fix session test to use new types * refactor * refactor implicit sessions array in chain session manager * remove unused types * remove unused types and add ConnectionError * update pnpm lock * move reusable session types to wallet-core * Update some imports and update some response type names --------- Co-authored-by: Tolgahan Arikan <tolgahan.arikan@gmail.com> * Fix check for explicit session for the updated type in dapp-client * Update api.gen.ts and relayer.gen.ts * Add missing chainId for dapp client event * Fix initializing new chain session manager on redirect * Add support for non-viem, custom Sequence chains (0xsequence#882) * Provider sent to prepareBlankEnvelope * Add session signature decoding * const for node length * Clearer blacklist size encoding * identity signer node length * Add feeTokens endpoint to relayer (0xsequence#885) * add getFeeTokens to dapp client (0xsequence#889) * add getFeeTokens to dapp client * fix typo * make getFeeTokens independent of chain session manager and initialize state (0xsequence#890) * make getFeeTokens independent of chain session manager and initialized state * remove getFeeTokens from chain session manager * Throw specific error when trying to sign with an expired session (0xsequence#887) * Throw when supported session signer is expired * Fix tests * Make dapp-client implicit sessions chain agnostic (0xsequence#893) * Add Monad, remove LAOS and Root Network * Add support for sessionless dapp connection (0xsequence#896) * Refactor relayer package & update dependant packages (0xsequence#891) * refactor exports for relayer (0xsequence#900) * Add Arc Testnet * Fix changelog config * Sessionless connection upgrade and error handling in DappClient (0xsequence#902) * dapp-client: add sessionless snapshot restore flow * Allow to logout a wallet with skipRemoveDevice even if the wallet is not in a ready state to allow force removing of wallets (0xsequence#906) * Pass request to PromptCodeHandler in guard registerUI (0xsequence#909) * Pass request to PromptCodeHandler in guard registerUI * Fixing guard registerUI test * guard: allow using recovery code as 2FA token (0xsequence#910) * guard: allow using recovery code as 2FA token * Cleanup types of ResponseFn --------- Co-authored-by: Corban Riley <corbanbrook@gmail.com> * Add a way to reset 2fa when using a backup code (0xsequence#911) * Add a way to reset 2fa when using a backup code * use the GuardToken type instead of breaking out the props * Add rc4 contracts * Set rc4 as default and add it to lists * Session enhanced replay protection * New sessions replay protection hashes payload * Use the 4337 factory wrapper * Update keymachine url in dapp-client constants * Update keymachine url in Provider constructor * SSR safety (0xsequence#915) * Guard dapp-client for SSR (lazy transport, browser checks, gated storage) * Fix guard topology (0xsequence#918) * Use proper guard topology * Test and fixes * login and setup tests * Switch prod manager settings (0xsequence#917) * Add prod guard and identity instrument info * Remove completed TODOs * Small JS tweaks (0xsequence#919) * Fix type exports to built declarations * Update repository links to current package paths * Improve Next app tooling and React typings * Expose primitives CLI bin and use base lint config * Update relayer.gen.ts and TransactionPrecondition interface * Update relayer.gen.ts and TransactionPrecondition interface (0xsequence#920) * 3.0.0-beta.1 * identity-instrument: generate nonce from current time (0xsequence#921) * Remove publish-dists.yml github action (0xsequence#923) * 3.0.0-beta.2 * Clean up changeset config * Improve test stability by removing race conditions * Ensure build before test * Updating happy-dom to 20.0.10 (0xsequence#926) * Add support for custom auth providers (authcode & authcode-pkce only) (0xsequence#894) * Add support for custom auth providers (authcode & authcode-pkce only) * fix authcode tests * Updating Deps November 2025 (0xsequence#927) * Updating deps for the workspace root * Updating deps for wallet/wdk * Fixing sessions test for latest vitest * Lets not upgrade to the latest typescript quite yet * Updating to latest vitest * Updating deps for wallet/core * Updating deps for wallet/primitives-cli * Updating deps for wallet/dapp-client * Adding syncpack to check for dep version inconsistencies * Setup syncpack versionGroups for pnpm workspace:^ * Fixing dep versions mismatches * Fixing @types/node mismatches * Adding syncpack to pre commit hook * Remove the syncpack format script. * Update ox to v9.17.0 (0xsequence#928) * Upgrading ox to 9.17.0 * WrappedSignature renamed to SignatureErc6492 * Fixing PasskeySignatureValidator interface * Lock ox lib dep to use the same version with pnpm overrides and update viem to latest * Fix explicitSessionRequested check in dapp client * Typescript 5.9.3 (0xsequence#930) * Upgrading to typescript v5.9.3 * Fix type errors that arose from typescript upgrade related to Bytes and Buffer source typings. * Don't catch errors thrown by Guard 2FA or reject early to allow multiple attempts on incorrect TOTP (0xsequence#931) * Update pnpm * Mark @0xsequence/wallet-primitives-cli as private * 3.0.0-beta.3 * changeset cleanup * Fix rc4 4337 factory (0xsequence#933) * Add rc5 and set it as default (0xsequence#934) * 3.0.0-beta.4 * Update SECURITY.md Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> * Update wagmi-project/package.json Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> * Update wagmi-project/package.json Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> * Bump next from 15.5.5 to 15.5.7 (0xsequence#936) Bumps [next](https://github.com/vercel/next.js) from 15.5.5 to 15.5.7. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](vercel/next.js@v15.5.5...v15.5.7) --- updated-dependencies: - dependency-name: next dependency-version: 15.5.7 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * add userdata service client (0xsequence#940) * Skip LocalDevice identity signers not on current device (0xsequence#942) * Skip LocalDevice identity signers not on current device * Update log * 3.0.0-beta.5 * Update config.yml (#102) * Update config.yml Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> * Update .circleci/config.yml Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> --------- Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> * Update config.yml (#103) * Update config.yml Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> * Update .circleci/config.yml Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> --------- Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> * fix: extras/web/package.json to reduce vulnerabilities (#101) The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-JS-NEXT-14173355 Co-authored-by: snyk-io[bot] <141718529+snyk-io[bot]@users.noreply.github.com> * fix: extras/docs/package.json to reduce vulnerabilities (#100) The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-JS-NEXT-14173355 Co-authored-by: snyk-io[bot] <141718529+snyk-io[bot]@users.noreply.github.com> * fix: package.json to reduce vulnerabilities (#104) The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-JS-BABELHELPERS-9397697 - https://snyk.io/vuln/SNYK-JS-BABELRUNTIME-10044504 - https://snyk.io/vuln/SNYK-JS-BRACEEXPANSION-9789073 - https://snyk.io/vuln/SNYK-JS-CROSSSPAWN-8303230 - https://snyk.io/vuln/SNYK-JS-ELLIPTIC-7577916 - https://snyk.io/vuln/SNYK-JS-ELLIPTIC-7577917 - https://snyk.io/vuln/SNYK-JS-ELLIPTIC-7577918 - https://snyk.io/vuln/SNYK-JS-ELLIPTIC-8187303 - https://snyk.io/vuln/SNYK-JS-ELLIPTIC-8720086 - https://snyk.io/vuln/SNYK-JS-IMAGESIZE-9634164 - https://snyk.io/vuln/SNYK-JS-INFLIGHT-6095116 - https://snyk.io/vuln/SNYK-JS-JSYAML-13961110 - https://snyk.io/vuln/SNYK-JS-MICROMATCH-6838728 - https://snyk.io/vuln/SNYK-JS-NODEFORGE-14114940 - https://snyk.io/vuln/SNYK-JS-NODEFORGE-14125097 - https://snyk.io/vuln/SNYK-JS-NODEFORGE-14125745 - https://snyk.io/vuln/SNYK-JS-ONHEADERS-10773729 - https://snyk.io/vuln/SNYK-JS-ROLLUP-8073097 - https://snyk.io/vuln/SNYK-JS-SECP256K1-8237220 - https://snyk.io/vuln/SNYK-JS-SEND-7926862 - https://snyk.io/vuln/SNYK-JS-SERVESTATIC-7926865 - https://snyk.io/vuln/SNYK-JS-SHAJS-12089400 Co-authored-by: snyk-io[bot] <141718529+snyk-io[bot]@users.noreply.github.com> * Revert "Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/npm_and_yarn-318c02e2da'" This reverts commit fd0fdf9, reversing changes made to cba7894. * fix: extras/web/package.json to reduce vulnerabilities (#109) The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-JS-NEXT-14173355 Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: extras/docs/package.json to reduce vulnerabilities (#106) The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-JS-NEXT-14400636 - https://snyk.io/vuln/SNYK-JS-NEXT-14400644 Co-authored-by: snyk-bot <snyk-bot@snyk.io> * Bump next in the npm_and_yarn group across 1 directory (#110) Bumps the npm_and_yarn group with 1 update in the / directory: [next](https://github.com/vercel/next.js). Updates `next` from 15.5.7 to 15.5.9 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](vercel/next.js@v15.5.7...v15.5.9) --- updated-dependencies: - dependency-name: next dependency-version: 15.5.9 dependency-type: direct:production dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Delete .github/workflows/fortify.yml (#111) Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> * fix: extras/web/package.json to reduce vulnerabilities (#107) The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-JS-NEXT-14400636 - https://snyk.io/vuln/SNYK-JS-NEXT-14400644 Co-authored-by: snyk-bot <snyk-bot@snyk.io> * Bump the npm_and_yarn group across 1 directory with 3 updates (#115) Bumps the npm_and_yarn group with 1 update in the / directory: [next](https://github.com/vercel/next.js). Updates `next` from 15.5.5 to 15.5.9 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](vercel/next.js@v15.5.5...v15.5.9) Updates `happy-dom` from 17.6.3 to 20.0.11 - [Release notes](https://github.com/capricorn86/happy-dom/releases) - [Commits](capricorn86/happy-dom@v17.6.3...v20.0.11) Updates `vite` from 7.1.10 to 7.2.7 - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v7.2.7/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v7.2.7/packages/vite) --- updated-dependencies: - dependency-name: next dependency-version: 15.5.9 dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: happy-dom dependency-version: 20.0.11 dependency-type: direct:development dependency-group: npm_and_yarn - dependency-name: vite dependency-version: 7.2.7 dependency-type: indirect dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump next from 15.5.7 to 15.5.9 (0xsequence#944) Bumps [next](https://github.com/vercel/next.js) from 15.5.7 to 15.5.9. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](vercel/next.js@v15.5.7...v15.5.9) --- updated-dependencies: - dependency-name: next dependency-version: 15.5.9 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Pin foundry to v1.5.0 instead of nightly (0xsequence#947) * Include repo and extras in syncpack config to ensure deps are synced (0xsequence#945) * Include repo and extras in syncpack config to ensure deps are synced across all * Updating support deps * Updating deps * Updating pnpm lock * Fixing type errors within wdk tests * Short circuit 404s (0xsequence#949) * skip witness on signers that don't support it * add passkey to test * 3.0.0-beta.6 * Update tests.yml (#119) Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> * Update config.yml (#120) Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> * Update packages/services/identity-instrument/src/index.ts Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: snyk-bot <snyk-bot@snyk.io> Co-authored-by: Michael Standen <mstan@horizon.io> Co-authored-by: Gabi <56271768+VGabriel45@users.noreply.github.com> Co-authored-by: Tolgahan Arikan <tolgahan.arikan@gmail.com> Co-authored-by: Taylan Pince <taylanpince@gmail.com> Co-authored-by: Corban Brook <corbanbrook@gmail.com> Co-authored-by: Patryk Kalinowski <pkal@horizon.io> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: Agusx1211 <agusgit@pm.me> Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> Co-authored-by: snyk-io[bot] <141718529+snyk-io[bot]@users.noreply.github.com>
Review or Edit in CodeSandboxOpen the branch in Web Editor • VS Code • Insiders |
|
|
Reviewer's GuideImprove ID generation security in the dapp client and add a new wagmi-based React demo project plus CI/configuration and GitHub metadata files. Sequence diagram for wallet connection in the wagmi React demosequenceDiagram
actor User
participant BrowserUI
participant App
participant WagmiProvider
participant Connector
participant Wallet
User->>BrowserUI: Click Connect button
BrowserUI->>App: onClick event
App->>WagmiProvider: connect(connector)
WagmiProvider->>Connector: connect()
Connector->>Wallet: requestConnection()
Wallet-->>Connector: approveConnection
Connector-->>WagmiProvider: connectionResult(account, chainId)
WagmiProvider-->>App: update account state
App-->>BrowserUI: render connected account info
Class diagram for the new wagmi React demo projectclassDiagram
class MainEntry {
+renderRoot(rootElement)
}
class App {
+useAccount()
+useConnect()
+useDisconnect()
+render()
}
class WagmiConfigModule {
+config
+createConfig()
}
class WagmiProvider {
+config
}
class QueryClientProvider {
+client
}
class QueryClient {
+constructor()
}
class InjectedConnector {
+connect()
+disconnect()
}
class CoinbaseWalletConnector {
+connect()
+disconnect()
}
class WalletConnectConnector {
+projectId
+connect()
+disconnect()
}
class ChainMainnet {
+id
}
class ChainSepolia {
+id
}
MainEntry --> App : renders
MainEntry --> WagmiProvider : wraps
WagmiProvider --> QueryClientProvider : wraps
QueryClientProvider --> App : provides
WagmiProvider --> WagmiConfigModule : uses config
WagmiConfigModule o-- InjectedConnector : has
WagmiConfigModule o-- CoinbaseWalletConnector : has
WagmiConfigModule o-- WalletConnectConnector : has
WagmiConfigModule o-- ChainMainnet : transports
WagmiConfigModule o-- ChainSepolia : transports
App --> WagmiProvider : uses hooks via
App --> InjectedConnector : connects via
App --> CoinbaseWalletConnector : connects via
App --> WalletConnectConnector : connects via
QueryClientProvider --> QueryClient : owns
File-Level Changes
Possibly linked issues
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
✅ 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. |
Summary of ChangesHello @Dargon789, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request serves as a foundational commit, likely initializing a new project or a significant update to the development infrastructure. It introduces a new Web3 application built with Wagmi, React, and Vite, alongside comprehensive CI/CD setups for CircleCI and Azure Pipelines. The changes also include configurations for a streamlined CodeSandbox development environment, an important security enhancement for ID generation, and the addition of standard project documentation and templates. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Hey - I've found 5 issues, and left some high level feedback:
- The new
generateIdimplementation directly referenceswindow.crypto, which will throw in non-browser environments (SSR/Node/React Native); consider usingglobalThis.cryptowith a feature check or falling back to the previous implementation whencryptois unavailable. - The
wagmi-project/package.jsonuses semver ranges like"wagmi": "~0.x.x"and"@wagmi/cli": "~0.x.x", which are not valid semver; replace these with concrete major/minor/patch versions to avoid install/build issues. - The Azure pipeline is configured to use Node.js 10.x, which is incompatible with Vite 5 and the broader modern tooling in this repo; update the pipeline to use a supported Node version (e.g., 18+ or 20+).
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- The new `generateId` implementation directly references `window.crypto`, which will throw in non-browser environments (SSR/Node/React Native); consider using `globalThis.crypto` with a feature check or falling back to the previous implementation when `crypto` is unavailable.
- The `wagmi-project/package.json` uses semver ranges like `"wagmi": "~0.x.x"` and `"@wagmi/cli": "~0.x.x"`, which are not valid semver; replace these with concrete major/minor/patch versions to avoid install/build issues.
- The Azure pipeline is configured to use Node.js 10.x, which is incompatible with Vite 5 and the broader modern tooling in this repo; update the pipeline to use a supported Node version (e.g., 18+ or 20+).
## Individual Comments
### Comment 1
<location> `packages/wallet/dapp-client/src/DappTransport.ts:567-568` </location>
<code_context>
private generateId(): string {
- return `${Date.now().toString(36)}-${Math.random().toString(36).substring(2, 9)}`
+ // Use crypto.getRandomValues for cryptographically secure randomness
+ const array = new Uint32Array(2);
+ window.crypto.getRandomValues(array);
+ const randStr = (array[0].toString(36) + array[1].toString(36)).slice(0, 9);
+ return `${Date.now().toString(36)}-${randStr}`;
</code_context>
<issue_to_address>
**issue (bug_risk):** Direct use of `window.crypto` can break in non-browser environments or where `crypto` is unavailable.
If this transport is used in SSR, Node-based tooling, React Native, or some tests, unguarded access to `window.crypto` will throw when `window` or `crypto.getRandomValues` is missing. Please add feature detection (e.g. `globalThis.crypto?.getRandomValues`) with a safe fallback, or route ID generation through a platform-agnostic helper that handles environment differences.
</issue_to_address>
### Comment 2
<location> `wagmi-project/package.json:16-17` </location>
<code_context>
+ "@tanstack/react-query": "5.64.2",
+ "react": "^18.3.1",
+ "react-dom": "^18.3.1",
+ "viem": "^2.x",
+ "wagmi": "~0.x.x"
+ },
+ "devDependencies": {
</code_context>
<issue_to_address>
**issue (bug_risk):** The dependency ranges for `viem` and `wagmi` are not valid semver and will cause install failures.
These ranges (`^2.x`, `~0.x.x`) aren’t valid npm semver, so installs will fail. If these are placeholders, please replace them with real, tested versions (e.g. `"viem": "^2.21.0"`, `"wagmi": "^2.0.0"`).
</issue_to_address>
### Comment 3
<location> `azure-pipelines.yml:15` </location>
<code_context>
+steps:
+- task: NodeTool@0
+ inputs:
+ versionSpec: '10.x'
+ displayName: 'Install Node.js'
+
</code_context>
<issue_to_address>
**issue (bug_risk):** Node 10 is EOL and likely incompatible with the tooling and dependencies in this repo.
Recent versions of Vite, TypeScript, and wagmi/viem generally require Node >=16 (often >=18). Running CI on `10.x` is likely to fail or behave inconsistently. Please update this to the project’s supported Node version (e.g. `18.x` or `20.x`) and keep it consistent with local dev and other CI configs.
</issue_to_address>
### Comment 4
<location> `wagmi-project/src/main.tsx:12` </location>
<code_context>
+
+import './index.css'
+
+globalThis.Buffer = Buffer
+
+const queryClient = new QueryClient()
</code_context>
<issue_to_address>
**suggestion (bug_risk):** Unconditionally overwriting `globalThis.Buffer` can have unintended side effects.
This will replace any existing `globalThis.Buffer` implementation (e.g. from a bundler or polyfill). Consider guarding the assignment so it only runs when `Buffer` is missing, e.g. `if (!('Buffer' in globalThis)) { (globalThis as any).Buffer = Buffer }`.
```suggestion
if (!('Buffer' in globalThis)) {
;(globalThis as any).Buffer = Buffer
}
```
</issue_to_address>
### Comment 5
<location> `.circleci/config.yml:20-21` </location>
<code_context>
+ executor: my-custom-executor
+ steps:
+ - checkout
+ - run: |
+ # echo Hello, World!
+
+workflows:
</code_context>
<issue_to_address>
**suggestion (testing):** The CircleCI job currently runs a no-op script, so the pipeline doesn’t actually build or validate the project.
Since the `run` step only has a commented-out command, this job always passes without installing dependencies or running any build/lint/check steps. If this pipeline is meant to protect the repo, please hook it up to the real install and build/test commands (ideally matching what you run in Azure or locally).
Suggested implementation:
```
steps:
- checkout
- run:
name: Install dependencies, build, and run tests
command: |
# Install dependencies (adjust if you use yarn/pnpm/etc.)
npm ci
# Build the project (ensure this script exists in package.json)
npm run build
# Run tests (unit/integration as appropriate)
npm test
```
You should adjust the `command` block to match what you actually run locally or in Azure (for example, replace `npm` commands with `yarn`, `pnpm`, `forge test`, `hardhat test`, or your framework-specific build/test commands). If different jobs or workflows exist for backend/frontend or separate services, mirror the same install/build/test steps used there for consistency.
</issue_to_address>Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
There was a problem hiding this comment.
Code Review
This pull request introduces a significant amount of new configuration and a new wagmi-project example. The changes include adding CI setups for CircleCI and Azure Pipelines, GitHub issue templates, and project funding/security metadata. A key improvement is hardening the ID generation in DappTransport to use cryptographically secure randomness.
My review focuses on the new configurations and the example project setup. I've identified some critical issues:
- The Azure Pipelines configuration uses an end-of-life Node.js version, which is a security risk.
- The new
wagmi-projecthas invalid version ranges for its dependencies inpackage.json, which will prevent it from being installed. - The repository contains committed cache files that should be ignored.
I've also provided suggestions to improve maintainability and correctness in the CI configuration and security documentation. Please see the detailed comments below.
...zSnode_moduleszS.pnpmzS@preconstruct+cli@2.8.7zSnode_moduleszS@preconstructzSclizSbin.js.MAP
Show resolved
Hide resolved
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-JS-NEXT-14400636 - https://snyk.io/vuln/SNYK-JS-NEXT-14400644 Co-authored-by: snyk-io[bot] <141718529+snyk-io[bot]@users.noreply.github.com> Co-authored-by: dargon789 <64915515+Dargon789@users.noreply.github.com>
Summary by Sourcery
Introduce a new wagmi-based React dapp example project, harden ID generation in the dapp client, and add basic project management and CI/security metadata.
New Features:
wagmi-projectshowcasing wallet connection and account display using wagmi and viem.Bug Fixes:
DappTransportby using cryptographically secure randomness instead ofMath.random.Build:
CI:
Documentation:
create-wagmi.Chores: