From b86f4851a16c532b3baef7201d5da07af08d7e0d Mon Sep 17 00:00:00 2001 From: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Thu, 8 Jan 2026 03:34:15 +0700 Subject: [PATCH] demo dapp (#191) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Revise security policy for reporting vulnerabilities (#173) * Revise security policy for reporting vulnerabilities Updated contact information for vulnerability reporting. https://github.com/Dargon789/sequence.js/commit/e90b2e6395fb14c6463a02e88f65dc23ce455d6d 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> --------- 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> * V2 (#174) * Updating DefaultGuest address * Update tests.yml (#51) Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> * Update tests.yml (#52) Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> * Update tests.yml Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> * Update tests.yml (#55) Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> * Update tests.yml (#56) Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> * Update tests.yml Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> --------- Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> Co-authored-by: Corban Riley * Create web-sdk.yml (#175) https://github.com/Dargon789/Web3-Onboard/commit/fb66abf9ef6c55706a1dab2198db715f2588f1d1 https://github.com/Dargon789/web-sdk/commit/d26f62241ed85e6108a481f7a74ba7573c6c4c95 Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> * sequence-core-dapp-1.0.0 * Create nextjs.yml (#176) CI: Introduce a Next.js GitHub Actions workflow that detects the package manager, builds the app, caches Next.js artifacts, and deploys the static output to GitHub Pages. Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> * Update config.json (#185) Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> * Potential fix for code scanning alert no. 108: Incomplete regular expression for hostnames (#186) * Potential fix for code scanning alert no. 108: Incomplete regular expression for hostnames Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> * Update lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/run.js 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: Dargon789 <64915515+Dargon789@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * 0xsequence 1.9.19 (#179) * 1.9.17 * Update packages/0xsequence/CHANGELOG.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 packages/account/CHANGELOG.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 packages/auth/CHANGELOG.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 packages/multicall/CHANGELOG.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 packages/provider/CHANGELOG.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 packages/wallet/CHANGELOG.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> * 1.9.19 * Update packages/waas/src/networks.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> * Squashed commit of the following: commit dafd2eda59d728355ab9028d03b0e10b014f2818 Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Wed Jan 7 06:30:16 2026 +0700 Create nextjs.yml (#176) CI: Introduce a Next.js GitHub Actions workflow that detects the package manager, builds the app, caches Next.js artifacts, and deploys the static output to GitHub Pages. Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> commit e6efe1f5b8e19fcd47714aa1417a9a01a16343a9 Author: dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Wed Jan 7 06:06:13 2026 +0700 sequence-core-dapp-1.0.0 commit cd4a860bbe5d27a96fd2a091cb6d074ff1c92331 Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Tue Jan 6 01:37:52 2026 +0700 Create web-sdk.yml (#175) https://github.com/Dargon789/Web3-Onboard/commit/fb66abf9ef6c55706a1dab2198db715f2588f1d1 https://github.com/Dargon789/web-sdk/commit/d26f62241ed85e6108a481f7a74ba7573c6c4c95 Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> commit f2fd08bd5c463fc1c154c0fb26d8286bfcde01fa Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Wed Dec 31 01:11:33 2025 +0700 V2 (#174) * Updating DefaultGuest address * Update tests.yml (#51) Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> * Update tests.yml (#52) Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> * Update tests.yml Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> * Update tests.yml (#55) Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> * Update tests.yml (#56) Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> * Update tests.yml Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> --------- Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> Co-authored-by: Corban Riley commit e7b277e79c7fe27c3cb129627d9f70e5bea9a25c Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Wed Dec 31 00:17:52 2025 +0700 Revise security policy for reporting vulnerabilities (#173) * Revise security policy for reporting vulnerabilities Updated contact information for vulnerability reporting. https://github.com/Dargon789/sequence.js/commit/e90b2e6395fb14c6463a02e88f65dc23ce455d6d 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> --------- 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> commit 70208b1b85034bada6c5f8f858cc11bfd1a11241 Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Tue Dec 30 21:50:23 2025 +0700 Potential fix for code scanning alert no. 95: Information exposure through a stack trace Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> commit 4c696d0e57d8ec45057b111bfb551ab497d0f93a Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Tue Dec 30 21:47:34 2025 +0700 Potential fix for code scanning alert no. 94: Insecure randomness Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> commit c62e5ddc2818a6b0624d63be3089c5ad7d08bd72 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue Dec 30 21:42:22 2025 +0700 Bump happy-dom in the npm_and_yarn group across 1 directory (#167) Bumps the npm_and_yarn group with 1 update in the /wagmi-project directory: [happy-dom](https://github.com/capricorn86/happy-dom). Updates `happy-dom` from 18.0.1 to 20.0.2 - [Release notes](https://github.com/capricorn86/happy-dom/releases) - [Commits](https://github.com/capricorn86/happy-dom/compare/v18.0.1...v20.0.2) --- updated-dependencies: - dependency-name: happy-dom dependency-version: 20.0.2 dependency-type: direct:development dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit e13fe5a71769b6d325b9cc3185c4a0519205f7b1 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue Dec 30 21:19:24 2025 +0700 Bump the npm_and_yarn group across 2 directories with 4 updates (#161) Bumps the npm_and_yarn group with 1 update in the / directory: [webpack-dev-server](https://github.com/webpack/webpack-dev-server). Bumps the npm_and_yarn group with 1 update in the /packages/0xsequence directory: [webpack-dev-server](https://github.com/webpack/webpack-dev-server). Updates `webpack-dev-server` from 3.11.3 to 5.2.1 - [Release notes](https://github.com/webpack/webpack-dev-server/releases) - [Changelog](https://github.com/webpack/webpack-dev-server/blob/main/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack-dev-server/compare/v3.11.3...v5.2.1) Updates `http-proxy-middleware` from 0.19.1 to 2.0.9 - [Release notes](https://github.com/chimurai/http-proxy-middleware/releases) - [Changelog](https://github.com/chimurai/http-proxy-middleware/blob/v2.0.9/CHANGELOG.md) - [Commits](https://github.com/chimurai/http-proxy-middleware/compare/v0.19.1...v2.0.9) Updates `micromatch` from 3.1.10 to 4.0.8 - [Release notes](https://github.com/micromatch/micromatch/releases) - [Changelog](https://github.com/micromatch/micromatch/blob/master/CHANGELOG.md) - [Commits](https://github.com/micromatch/micromatch/compare/3.1.10...4.0.8) Updates `on-headers` from 1.0.2 to 1.1.0 - [Release notes](https://github.com/jshttp/on-headers/releases) - [Changelog](https://github.com/jshttp/on-headers/blob/master/HISTORY.md) - [Commits](https://github.com/jshttp/on-headers/compare/v1.0.2...v1.1.0) Updates `webpack-dev-server` from 3.11.3 to 5.2.1 - [Release notes](https://github.com/webpack/webpack-dev-server/releases) - [Changelog](https://github.com/webpack/webpack-dev-server/blob/main/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack-dev-server/compare/v3.11.3...v5.2.1) Updates `http-proxy-middleware` from 0.19.1 to 2.0.9 - [Release notes](https://github.com/chimurai/http-proxy-middleware/releases) - [Changelog](https://github.com/chimurai/http-proxy-middleware/blob/v2.0.9/CHANGELOG.md) - [Commits](https://github.com/chimurai/http-proxy-middleware/compare/v0.19.1...v2.0.9) Updates `micromatch` from 3.1.10 to 4.0.8 - [Release notes](https://github.com/micromatch/micromatch/releases) - [Changelog](https://github.com/micromatch/micromatch/blob/master/CHANGELOG.md) - [Commits](https://github.com/micromatch/micromatch/compare/3.1.10...4.0.8) Updates `on-headers` from 1.0.2 to 1.1.0 - [Release notes](https://github.com/jshttp/on-headers/releases) - [Changelog](https://github.com/jshttp/on-headers/blob/master/HISTORY.md) - [Commits](https://github.com/jshttp/on-headers/compare/v1.0.2...v1.1.0) Updates `webpack-dev-server` from 3.11.3 to 5.2.1 - [Release notes](https://github.com/webpack/webpack-dev-server/releases) - [Changelog](https://github.com/webpack/webpack-dev-server/blob/main/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack-dev-server/compare/v3.11.3...v5.2.1) --- updated-dependencies: - dependency-name: webpack-dev-server dependency-version: 5.2.1 dependency-type: direct:development dependency-group: npm_and_yarn - dependency-name: http-proxy-middleware dependency-version: 2.0.9 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: micromatch dependency-version: 4.0.8 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: on-headers dependency-version: 1.1.0 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: webpack-dev-server dependency-version: 5.2.1 dependency-type: direct:development dependency-group: npm_and_yarn - dependency-name: http-proxy-middleware dependency-version: 2.0.9 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: micromatch dependency-version: 4.0.8 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: on-headers dependency-version: 1.1.0 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: webpack-dev-server dependency-version: 5.2.1 dependency-type: direct:development dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit b9d25688cb184f4b5ec1d0aba07bd36351efc65b Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Mon Dec 29 15:35:25 2025 +0700 Update CNAME to new domain (#164) sequence.app Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> commit 4a81a2c4338191c93915c3101f3c24f0c468ae03 Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Mon Dec 29 14:08:44 2025 +0700 Proto (#163) * [AUTOMATED] Update: proto/clients/indexer*.gen.ts * [AUTOMATED] Update: proto/clients/indexer*.gen.ts * [AUTOMATED] Update: proto/clients/indexer*.gen.ts * [AUTOMATED] Update: proto/clients/indexer*.gen.ts * [AUTOMATED] Update: proto/clients/indexer*.gen.ts * [AUTOMATED] Update: proto/clients/indexer*.gen.ts * [AUTOMATED] Update: proto/clients/indexer*.gen.ts * [AUTOMATED] Update: proto/clients/indexer*.gen.ts --------- Co-authored-by: marino39 <722509+marino39@users.noreply.github.com> Co-authored-by: pkieltyka <18831+pkieltyka@users.noreply.github.com> Co-authored-by: xiam <385670+xiam@users.noreply.github.com> commit c4d0fdc33cd1ccf9cfc996b351959ae4d004a7e6 Merge: 7c547fcdd 269972a1d Author: dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Mon Dec 29 13:38:33 2025 +0700 Merge branch 'master' of https://github.com/Dargon789/sequence.js commit 269972a1dad423f67c0262149e46e7d8b3c3b10d Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Mon Dec 29 09:58:04 2025 +0700 fix: package.json to reduce vulnerabilities (#157) 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-ELLIPTIC-8187303 - 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-NODEFORGE-14114940 - https://snyk.io/vuln/SNYK-JS-NODEFORGE-14125097 - https://snyk.io/vuln/SNYK-JS-NODEFORGE-14125745 - https://snyk.io/vuln/SNYK-JS-SHAJS-12089400 - https://snyk.io/vuln/SNYK-JS-TMP-11501554 Co-authored-by: snyk-bot commit 7c547fcdd75774e39120241d16bf64c86e243355 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat Dec 27 02:34:25 2025 +0700 Bump the npm_and_yarn group across 4 directories with 7 updates (#144) Bumps the npm_and_yarn group with 4 updates in the /wagmi-project directory: [next](https://github.com/vercel/next.js), [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite), [@metamask/sdk](https://github.com/MetaMask/metamask-sdk/tree/HEAD/packages/sdk) and [nuxt](https://github.com/nuxt/nuxt/tree/HEAD/packages/nuxt). Bumps the npm_and_yarn group with 1 update in the /wagmi-project/packages/connectors directory: [@metamask/sdk](https://github.com/MetaMask/metamask-sdk/tree/HEAD/packages/sdk). Bumps the npm_and_yarn group with 1 update in the /wagmi-project/packages/create-wagmi/templates/next directory: [next](https://github.com/vercel/next.js). Bumps the npm_and_yarn group with 1 update in the /wagmi-project/playgrounds/next directory: [next](https://github.com/vercel/next.js). Updates `next` from 15.3.3 to 15.4.10 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v15.3.3...v15.4.10) Updates `happy-dom` from 15.10.2 to 18.0.1 - [Release notes](https://github.com/capricorn86/happy-dom/releases) - [Commits](https://github.com/capricorn86/happy-dom/compare/v15.10.2...v18.0.1) Updates `vite` from 5.4.19 to 5.4.21 - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v5.4.21/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v5.4.21/packages/vite) Updates `@metamask/sdk` from 0.32.1 to 0.33.1 - [Release notes](https://github.com/MetaMask/metamask-sdk/releases) - [Changelog](https://github.com/MetaMask/metamask-sdk/blob/main/packages/sdk/CHANGELOG.md) - [Commits](https://github.com/MetaMask/metamask-sdk/commits/@metamask/sdk@0.33.1/packages/sdk) Updates `nuxt` from 3.16.0 to 3.19.0 - [Release notes](https://github.com/nuxt/nuxt/releases) - [Commits](https://github.com/nuxt/nuxt/commits/v3.19.0/packages/nuxt) Updates `@nuxt/devtools` from 2.4.1 to 2.7.0 - [Release notes](https://github.com/nuxt/devtools/releases) - [Changelog](https://github.com/nuxt/devtools/blob/main/CHANGELOG.md) - [Commits](https://github.com/nuxt/devtools/commits/v2.7.0/packages/devtools) Updates `devalue` from 5.1.1 to 5.6.1 - [Release notes](https://github.com/sveltejs/devalue/releases) - [Changelog](https://github.com/sveltejs/devalue/blob/main/CHANGELOG.md) - [Commits](https://github.com/sveltejs/devalue/compare/v5.1.1...v5.6.1) Updates `@metamask/sdk` from 0.32.1 to 0.33.1 - [Release notes](https://github.com/MetaMask/metamask-sdk/releases) - [Changelog](https://github.com/MetaMask/metamask-sdk/blob/main/packages/sdk/CHANGELOG.md) - [Commits](https://github.com/MetaMask/metamask-sdk/commits/@metamask/sdk@0.33.1/packages/sdk) Updates `next` from 15.2.4 to 15.4.10 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v15.3.3...v15.4.10) Updates `next` from 15.3.3 to 15.4.10 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v15.3.3...v15.4.10) --- updated-dependencies: - dependency-name: next dependency-version: 15.4.10 dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: happy-dom dependency-version: 18.0.1 dependency-type: direct:development dependency-group: npm_and_yarn - dependency-name: vite dependency-version: 5.4.21 dependency-type: direct:development dependency-group: npm_and_yarn - dependency-name: "@metamask/sdk" dependency-version: 0.33.1 dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: nuxt dependency-version: 3.19.0 dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: "@nuxt/devtools" dependency-version: 2.7.0 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: devalue dependency-version: 5.6.1 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: "@metamask/sdk" dependency-version: 0.33.1 dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: next dependency-version: 15.4.10 dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: next dependency-version: 15.4.10 dependency-type: direct:production dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 977998758f93df492849cb55e7208864677515ef Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Sat Dec 27 02:10:27 2025 +0700 Update GitHub Actions workflow for tests (#149) Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> commit 9c420a789831c3affe0881d732bb95bd2bb075db Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Fri Dec 26 04:55:34 2025 +0700 Revise README structure and add sponsorship details (#146) * Revise README structure and add sponsorship details Updated README to include new sections and sponsorship information. https://sequence.xyz/ Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> * Update README.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 README.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 README.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> --------- 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> commit 224f7612cd574849b75e17056859f0a208a24aa1 Author: dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Fri Dec 26 03:19:19 2025 +0700 sequence-core-1.0.0 commit e90b2e6395fb14c6463a02e88f65dc23ce455d6d Author: dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Thu Dec 25 14:15:53 2025 +0700 Initial project structure and core packages Add initial monorepo structure for wagmi-project, including CLI, connectors, and core packages with source code, tests, configuration, and CI/CD workflows. This sets up the foundation for further development and collaboration. commit 1f452493d6ac5f23e20def94b7edf207bc2ce40a Author: snyk-io[bot] <141718529+snyk-io[bot]@users.noreply.github.com> Date: Wed Dec 24 21:11:40 2025 +0700 fix: extras/web/package.json to reduce vulnerabilities (#117) 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> commit 8bad845d94b7ca97a1d01a255eb8b41357eaf38d Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Wed Dec 24 19:35:49 2025 +0700 feat: upgrade react from 18.3.1 to 19.2.0 (#121) Snyk has created this PR to upgrade react from 18.3.1 to 19.2.0. See this package in npm: react 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 Co-authored-by: snyk-bot commit 5e6dca3ce44d2e8d5b00b1182ba9d6eae7855b23 Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Tue Dec 23 21:23:47 2025 +0700 Pin foundry to v1.5.0 instead of nightly (0xsequence#947) (#134) (#135) * Pin foundry to v1.5.0 instead of nightly (0xsequence#947) (#134) * Bump next from 15.5.7 to 15.5.9 (#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](https://github.com/vercel/next.js/compare/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] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Pin foundry to v1.5.0 instead of nightly (#947) * Include repo and extras in syncpack config to ensure deps are synced (#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 (#949) * skip witness on signers that don't support it * add passkey to test * 3.0.0-beta.6 --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Taylan Pince Co-authored-by: Corban Riley Co-authored-by: Agusx1211 * Update packages/wallet/wdk/test/wallets.test.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> * Update packages/wallet/wdk/test/wallets.test.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] 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: Taylan Pince Co-authored-by: Corban Riley Co-authored-by: Agusx1211 Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> commit 802829cc116d9656dfb166beba03a1e77c8d556b Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Tue Dec 23 21:15:56 2025 +0700 2.3.7 (#131) (#132) * 2.3.7 (#131) * fix broken guard private key * Expose access to passkey credential list * Dapp client direct txn request (#856) * Signature request refactor * WIP * Refactor * Update dapp-client exports (#858) * Add hasPermission method to DappClient (#859) * Save discovered passkey credentials upon login * Expose name property in PasskeySignupArgs * Fix blacklist sort * Add multi server script * relayer: /SimulateV3 (#857) * Add await for handleOpenDB scheduleExpiration * Update increment to always include native once used * Fix session tests * Adding lastLoginAt to PasskeyCredential * LoginToPasskeyArgs now accept a credentialId which is used to specify which credential to use * Adding onSignatureRequestStatus function to register single use callbacks for when a request reaches a terminal state of completed or cancelled * When a login is cancelled we can remove the wallet which is logging-in * Add RC3 contracts * Sessions space restriction * Dedupe signers for encoding * Support RC3 sessions * Tightly increment call validation * CLI defaults to RC3 wallet code * Rc3 address test * Fix hashing tests * Add deprecated encoding test * wdk: throw errors from otp respond callback (#864) * wdk: throw errors from otp respond callback * wdk: otp auth error and handler refactor * Handle guard 2FA (#861) * guard: return a specific error when auth required * core: pass guard token to the service * wdk: handle prompting for guard 2FA code * dapp-client: handle prompting for guard 2FA code * guard 2fa tests * wdk: separate wallet and sessions guards * dapp-client: remove guard 2fa * dapp-client: fix imports * fix guard tests * wdk: remove unneeded promise resolve * Update relayer and api gen.ts, force public packages * Add standalone fetch queued payloads * Replacing GuardRole enum with string union type, as well as replacing guardAddresses Map with Record * Fallback to chain for non-logged in recovery * Add Katana, Sandbox Tesnet, Incentiv Testnet v2 (#873) * Update a few remaining dev1 contract addresses to rc3 (#874) * Remove unnecessary console.error where we already throw error * Improve DappClient hasPermission method * Wallet db try checksum and lowercase * Update dapp client json utils to include Map reviver and replacer * Bump next in the npm_and_yarn group across 1 directory Bumps the npm_and_yarn group with 1 update in the / directory: [next](https://github.com/vercel/next.js). Updates `next` from 15.4.2 to 15.4.7 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v15.4.2...v15.4.7) --- updated-dependencies: - dependency-name: next dependency-version: 15.4.7 dependency-type: direct:production dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] * Update type name, update exports for dapp client * Expired explicit sessions can't sign * Improve session validity test * session isValid returns invalid reason * InvalidReason is typed * 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 (#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 * 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 (#882) * Update issue templates * Provider sent to prepareBlankEnvelope * Add session signature decoding * Add feeTokens endpoint to relayer (#885) * const for node length * Clearer blacklist size encoding * identity signer node length * Potential fix for code scanning alert no. 84: Insecure randomness Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> * add getFeeTokens to dapp client (#889) * add getFeeTokens to dapp client * fix typo * make getFeeTokens independent of chain session manager and initialize state (#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 (#887) * Throw when supported session signer is expired * Fix tests * Make dapp-client implicit sessions chain agnostic (#893) * Add Monad, remove LAOS and Root Network * 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.0 - [Release notes](https://github.com/capricorn86/happy-dom/releases) - [Commits](https://github.com/capricorn86/happy-dom/compare/v17.6.3...v20.0.0) Updates `happy-dom` from 17.6.3 to 20.0.0 - [Release notes](https://github.com/capricorn86/happy-dom/releases) - [Commits](https://github.com/capricorn86/happy-dom/compare/v17.6.3...v20.0.0) Updates `happy-dom` from 17.6.3 to 20.0.0 - [Release notes](https://github.com/capricorn86/happy-dom/releases) - [Commits](https://github.com/capricorn86/happy-dom/compare/v17.6.3...v20.0.0) --- updated-dependencies: - dependency-name: happy-dom dependency-version: 20.0.0 dependency-type: direct:development dependency-group: npm_and_yarn - dependency-name: happy-dom dependency-version: 20.0.0 dependency-type: direct:development dependency-group: npm_and_yarn - dependency-name: happy-dom dependency-version: 20.0.0 dependency-type: direct:development dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] * Bump happy-dom in the npm_and_yarn group across 1 directory (#69) Bumps the npm_and_yarn group with 1 update in the / directory: [happy-dom](https://github.com/capricorn86/happy-dom). Updates `happy-dom` from 20.0.0 to 20.0.2 - [Release notes](https://github.com/capricorn86/happy-dom/releases) - [Commits](https://github.com/capricorn86/happy-dom/compare/v20.0.0...v20.0.2) --- updated-dependencies: - dependency-name: happy-dom dependency-version: 20.0.2 dependency-type: direct:development dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Create SECURITY.md for security policy (#70) * Create SECURITY.md for security policy Add a security policy document outlining supported versions and vulnerability reporting. Signed-off-by: AU_gdev_19 <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: AU_gdev_19 <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: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> --------- Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@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: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> * Add support for sessionless dapp connection (#896) * Refactor relayer package & update dependant packages (#891) * refactor exports for relayer (#900) * Add Arc Testnet * Fix changelog config * Sessionless connection upgrade and error handling in DappClient (#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](https://github.com/capricorn86/happy-dom/compare/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](https://github.com/capricorn86/happy-dom/compare/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](https://github.com/capricorn86/happy-dom/compare/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] * Allow to logout a wallet with skipRemoveDevice even if the wallet is not in a ready state to allow force removing of wallets (#906) * Pass request to PromptCodeHandler in guard registerUI (#909) * Pass request to PromptCodeHandler in guard registerUI * Fixing guard registerUI test * guard: allow using recovery code as 2FA token (#910) * guard: allow using recovery code as 2FA token * Cleanup types of ResponseFn --------- Co-authored-by: Corban Riley * Add a way to reset 2fa when using a backup code (#911) * Add a way to reset 2fa when using a backup code * use the GuardToken type instead of breaking out the props * Update SECURITY.md Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> * Update packages/wallet/dapp-client/src/DappTransport.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> * 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 (#915) * SSR safety test * Fix CI job * Guard dapp-client for SSR (lazy transport, browser checks, gated storage) * Fix guard topology (#918) * Use proper guard topology * Test and fixes * login and setup tests * Switch prod manager settings (#917) * Add prod guard and identity instrument info * Remove completed TODOs * Small JS tweaks (#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 (#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 * 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 (#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 (#885) * add getFeeTokens to dapp client (#889) * add getFeeTokens to dapp client * fix typo * make getFeeTokens independent of chain session manager and initialize state (#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 (#887) * Throw when supported session signer is expired * Fix tests * Make dapp-client implicit sessions chain agnostic (#893) * Add Monad, remove LAOS and Root Network * Add support for sessionless dapp connection (#896) * Refactor relayer package & update dependant packages (#891) * refactor exports for relayer (#900) * Add Arc Testnet * Fix changelog config * Sessionless connection upgrade and error handling in DappClient (#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 (#906) * Pass request to PromptCodeHandler in guard registerUI (#909) * Pass request to PromptCodeHandler in guard registerUI * Fixing guard registerUI test * guard: allow using recovery code as 2FA token (#910) * guard: allow using recovery code as 2FA token * Cleanup types of ResponseFn --------- Co-authored-by: Corban Riley * Add a way to reset 2fa when using a backup code (#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 (#915) * Guard dapp-client for SSR (lazy transport, browser checks, gated storage) * Fix guard topology (#918) * Use proper guard topology * Test and fixes * login and setup tests * Switch prod manager settings (#917) * Add prod guard and identity instrument info * Remove completed TODOs * Small JS tweaks (#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 (#920) * 3.0.0-beta.1 * identity-instrument: generate nonce from current time (#921) * Remove publish-dists.yml github action (#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 (#926) * Add support for custom auth providers (authcode & authcode-pkce only) (#894) * Add support for custom auth providers (authcode & authcode-pkce only) * fix authcode tests * Updating Deps November 2025 (#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 (#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 (#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 (#931) * Update pnpm * Mark @0xsequence/wallet-primitives-cli as private * 3.0.0-beta.3 * changeset cleanup * Fix rc4 4337 factory (#933) * Add rc5 and set it as default (#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 (#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](https://github.com/vercel/next.js/compare/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] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * add userdata service client (#940) * Skip LocalDevice identity signers not on current device (#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 fd0fdf9ecc6ad9056447e381de7fc5bb19f78e47, reversing changes made to cba78943db9942a4635bb530b7a43fc5d18b0ab4. * 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 * 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 * 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](https://github.com/vercel/next.js/compare/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] 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 * 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](https://github.com/vercel/next.js/compare/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](https://github.com/capricorn86/happy-dom/compare/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] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump next from 15.5.7 to 15.5.9 (#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](https://github.com/vercel/next.js/compare/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] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Pin foundry to v1.5.0 instead of nightly (#947) * Include repo and extras in syncpack config to ensure deps are synced (#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 (#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> * feat: upgrade @wagmi/cli from 0.1.15 to 2.8.0 (#126) Snyk has created this PR to upgrade @wagmi/cli from 0.1.15 to 2.8.0. See this package in npm: @wagmi/cli 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 Co-authored-by: snyk-bot * Potential fix for code scanning alert no. 82: Workflow does not contain permissions Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> * Potential fix for code scanning alert no. 62: Information exposure through a stack trace Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> --------- Signed-off-by: dependabot[bot] 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: Patryk Kalinowski Co-authored-by: Corban Riley Co-authored-by: tolgahan-arikan Co-authored-by: Agusx1211 Co-authored-by: Michael Standen Co-authored-by: William Hua Co-authored-by: Michael Standen Co-authored-by: Patryk Kalinowski Co-authored-by: Taylan Pince Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Gabi <56271768+VGabriel45@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> 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> Co-authored-by: snyk-bot * Update extras/docs/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 extras/web/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> --------- Signed-off-by: dependabot[bot] 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: Patryk Kalinowski Co-authored-by: Corban Riley Co-authored-by: tolgahan-arikan Co-authored-by: Agusx1211 Co-authored-by: Michael Standen Co-authored-by: William Hua Co-authored-by: Michael Standen Co-authored-by: Patryk Kalinowski Co-authored-by: Taylan Pince Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Gabi <56271768+VGabriel45@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> 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> Co-authored-by: snyk-bot commit 893eedbb1a99db6736a157fed7d73a0196f30778 Merge: bc418b171 7fe4a922d Author: dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Tue Dec 23 18:50:09 2025 +0700 Merge remote-tracking branch 'origin/v1' into v1 commit 7fe4a922dfbd817fa76b8e30e9be184e6f38ddb1 Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Tue Dec 23 18:16:10 2025 +0700 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> commit 640be8ffe175c762828aded47cc76e8d2c404b56 Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Tue Dec 23 18:15:48 2025 +0700 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> commit 51a64321d3c0b91c9bd43c1e7e693f974c045dbb Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Tue Dec 23 18:15:24 2025 +0700 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> commit 28a268eef9f36a4bcf257d175c49c31f55f8008b Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Tue Dec 23 18:14:59 2025 +0700 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> commit bc418b171da95091d834f3a21141780169818db3 Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Tue Dec 23 00:27:24 2025 +0700 Master ceb95d4 (#129) * Update issue templates (#128) * 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](https://github.com/expressjs/express/compare/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] * 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 (#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 * 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 (#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 (#885) * const for node length * Clearer blacklist size encoding * identity signer node length * add getFeeTokens to dapp client (#889) * add getFeeTokens to dapp client * fix typo * make getFeeTokens independent of chain session manager and initialize state (#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 (#887) * Throw when supported session signer is expired * Fix tests * Make dapp-client implicit sessions chain agnostic (#893) * Add Mona… * 1.9.19 (#189) * 1.9.17 * Update packages/0xsequence/CHANGELOG.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 packages/account/CHANGELOG.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 packages/auth/CHANGELOG.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 packages/multicall/CHANGELOG.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 packages/provider/CHANGELOG.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 packages/wallet/CHANGELOG.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> * 1.9.19 * Update packages/waas/src/networks.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> * Squashed commit of the following: commit dafd2eda59d728355ab9028d03b0e10b014f2818 Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Wed Jan 7 06:30:16 2026 +0700 Create nextjs.yml (#176) CI: Introduce a Next.js GitHub Actions workflow that detects the package manager, builds the app, caches Next.js artifacts, and deploys the static output to GitHub Pages. Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> commit e6efe1f5b8e19fcd47714aa1417a9a01a16343a9 Author: dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Wed Jan 7 06:06:13 2026 +0700 sequence-core-dapp-1.0.0 commit cd4a860bbe5d27a96fd2a091cb6d074ff1c92331 Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Tue Jan 6 01:37:52 2026 +0700 Create web-sdk.yml (#175) https://github.com/Dargon789/Web3-Onboard/commit/fb66abf9ef6c55706a1dab2198db715f2588f1d1 https://github.com/Dargon789/web-sdk/commit/d26f62241ed85e6108a481f7a74ba7573c6c4c95 Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> commit f2fd08bd5c463fc1c154c0fb26d8286bfcde01fa Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Wed Dec 31 01:11:33 2025 +0700 V2 (#174) * Updating DefaultGuest address * Update tests.yml (#51) Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> * Update tests.yml (#52) Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> * Update tests.yml Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> * Update tests.yml (#55) Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> * Update tests.yml (#56) Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> * Update tests.yml Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> --------- Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> Co-authored-by: Corban Riley commit e7b277e79c7fe27c3cb129627d9f70e5bea9a25c Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Wed Dec 31 00:17:52 2025 +0700 Revise security policy for reporting vulnerabilities (#173) * Revise security policy for reporting vulnerabilities Updated contact information for vulnerability reporting. https://github.com/Dargon789/sequence.js/commit/e90b2e6395fb14c6463a02e88f65dc23ce455d6d 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> --------- 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> commit 70208b1b85034bada6c5f8f858cc11bfd1a11241 Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Tue Dec 30 21:50:23 2025 +0700 Potential fix for code scanning alert no. 95: Information exposure through a stack trace Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> commit 4c696d0e57d8ec45057b111bfb551ab497d0f93a Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Tue Dec 30 21:47:34 2025 +0700 Potential fix for code scanning alert no. 94: Insecure randomness Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> commit c62e5ddc2818a6b0624d63be3089c5ad7d08bd72 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue Dec 30 21:42:22 2025 +0700 Bump happy-dom in the npm_and_yarn group across 1 directory (#167) Bumps the npm_and_yarn group with 1 update in the /wagmi-project directory: [happy-dom](https://github.com/capricorn86/happy-dom). Updates `happy-dom` from 18.0.1 to 20.0.2 - [Release notes](https://github.com/capricorn86/happy-dom/releases) - [Commits](https://github.com/capricorn86/happy-dom/compare/v18.0.1...v20.0.2) --- updated-dependencies: - dependency-name: happy-dom dependency-version: 20.0.2 dependency-type: direct:development dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit e13fe5a71769b6d325b9cc3185c4a0519205f7b1 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue Dec 30 21:19:24 2025 +0700 Bump the npm_and_yarn group across 2 directories with 4 updates (#161) Bumps the npm_and_yarn group with 1 update in the / directory: [webpack-dev-server](https://github.com/webpack/webpack-dev-server). Bumps the npm_and_yarn group with 1 update in the /packages/0xsequence directory: [webpack-dev-server](https://github.com/webpack/webpack-dev-server). Updates `webpack-dev-server` from 3.11.3 to 5.2.1 - [Release notes](https://github.com/webpack/webpack-dev-server/releases) - [Changelog](https://github.com/webpack/webpack-dev-server/blob/main/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack-dev-server/compare/v3.11.3...v5.2.1) Updates `http-proxy-middleware` from 0.19.1 to 2.0.9 - [Release notes](https://github.com/chimurai/http-proxy-middleware/releases) - [Changelog](https://github.com/chimurai/http-proxy-middleware/blob/v2.0.9/CHANGELOG.md) - [Commits](https://github.com/chimurai/http-proxy-middleware/compare/v0.19.1...v2.0.9) Updates `micromatch` from 3.1.10 to 4.0.8 - [Release notes](https://github.com/micromatch/micromatch/releases) - [Changelog](https://github.com/micromatch/micromatch/blob/master/CHANGELOG.md) - [Commits](https://github.com/micromatch/micromatch/compare/3.1.10...4.0.8) Updates `on-headers` from 1.0.2 to 1.1.0 - [Release notes](https://github.com/jshttp/on-headers/releases) - [Changelog](https://github.com/jshttp/on-headers/blob/master/HISTORY.md) - [Commits](https://github.com/jshttp/on-headers/compare/v1.0.2...v1.1.0) Updates `webpack-dev-server` from 3.11.3 to 5.2.1 - [Release notes](https://github.com/webpack/webpack-dev-server/releases) - [Changelog](https://github.com/webpack/webpack-dev-server/blob/main/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack-dev-server/compare/v3.11.3...v5.2.1) Updates `http-proxy-middleware` from 0.19.1 to 2.0.9 - [Release notes](https://github.com/chimurai/http-proxy-middleware/releases) - [Changelog](https://github.com/chimurai/http-proxy-middleware/blob/v2.0.9/CHANGELOG.md) - [Commits](https://github.com/chimurai/http-proxy-middleware/compare/v0.19.1...v2.0.9) Updates `micromatch` from 3.1.10 to 4.0.8 - [Release notes](https://github.com/micromatch/micromatch/releases) - [Changelog](https://github.com/micromatch/micromatch/blob/master/CHANGELOG.md) - [Commits](https://github.com/micromatch/micromatch/compare/3.1.10...4.0.8) Updates `on-headers` from 1.0.2 to 1.1.0 - [Release notes](https://github.com/jshttp/on-headers/releases) - [Changelog](https://github.com/jshttp/on-headers/blob/master/HISTORY.md) - [Commits](https://github.com/jshttp/on-headers/compare/v1.0.2...v1.1.0) Updates `webpack-dev-server` from 3.11.3 to 5.2.1 - [Release notes](https://github.com/webpack/webpack-dev-server/releases) - [Changelog](https://github.com/webpack/webpack-dev-server/blob/main/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack-dev-server/compare/v3.11.3...v5.2.1) --- updated-dependencies: - dependency-name: webpack-dev-server dependency-version: 5.2.1 dependency-type: direct:development dependency-group: npm_and_yarn - dependency-name: http-proxy-middleware dependency-version: 2.0.9 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: micromatch dependency-version: 4.0.8 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: on-headers dependency-version: 1.1.0 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: webpack-dev-server dependency-version: 5.2.1 dependency-type: direct:development dependency-group: npm_and_yarn - dependency-name: http-proxy-middleware dependency-version: 2.0.9 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: micromatch dependency-version: 4.0.8 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: on-headers dependency-version: 1.1.0 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: webpack-dev-server dependency-version: 5.2.1 dependency-type: direct:development dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit b9d25688cb184f4b5ec1d0aba07bd36351efc65b Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Mon Dec 29 15:35:25 2025 +0700 Update CNAME to new domain (#164) sequence.app Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> commit 4a81a2c4338191c93915c3101f3c24f0c468ae03 Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Mon Dec 29 14:08:44 2025 +0700 Proto (#163) * [AUTOMATED] Update: proto/clients/indexer*.gen.ts * [AUTOMATED] Update: proto/clients/indexer*.gen.ts * [AUTOMATED] Update: proto/clients/indexer*.gen.ts * [AUTOMATED] Update: proto/clients/indexer*.gen.ts * [AUTOMATED] Update: proto/clients/indexer*.gen.ts * [AUTOMATED] Update: proto/clients/indexer*.gen.ts * [AUTOMATED] Update: proto/clients/indexer*.gen.ts * [AUTOMATED] Update: proto/clients/indexer*.gen.ts --------- Co-authored-by: marino39 <722509+marino39@users.noreply.github.com> Co-authored-by: pkieltyka <18831+pkieltyka@users.noreply.github.com> Co-authored-by: xiam <385670+xiam@users.noreply.github.com> commit c4d0fdc33cd1ccf9cfc996b351959ae4d004a7e6 Merge: 7c547fcdd 269972a1d Author: dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Mon Dec 29 13:38:33 2025 +0700 Merge branch 'master' of https://github.com/Dargon789/sequence.js commit 269972a1dad423f67c0262149e46e7d8b3c3b10d Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Mon Dec 29 09:58:04 2025 +0700 fix: package.json to reduce vulnerabilities (#157) 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-ELLIPTIC-8187303 - 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-NODEFORGE-14114940 - https://snyk.io/vuln/SNYK-JS-NODEFORGE-14125097 - https://snyk.io/vuln/SNYK-JS-NODEFORGE-14125745 - https://snyk.io/vuln/SNYK-JS-SHAJS-12089400 - https://snyk.io/vuln/SNYK-JS-TMP-11501554 Co-authored-by: snyk-bot commit 7c547fcdd75774e39120241d16bf64c86e243355 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat Dec 27 02:34:25 2025 +0700 Bump the npm_and_yarn group across 4 directories with 7 updates (#144) Bumps the npm_and_yarn group with 4 updates in the /wagmi-project directory: [next](https://github.com/vercel/next.js), [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite), [@metamask/sdk](https://github.com/MetaMask/metamask-sdk/tree/HEAD/packages/sdk) and [nuxt](https://github.com/nuxt/nuxt/tree/HEAD/packages/nuxt). Bumps the npm_and_yarn group with 1 update in the /wagmi-project/packages/connectors directory: [@metamask/sdk](https://github.com/MetaMask/metamask-sdk/tree/HEAD/packages/sdk). Bumps the npm_and_yarn group with 1 update in the /wagmi-project/packages/create-wagmi/templates/next directory: [next](https://github.com/vercel/next.js). Bumps the npm_and_yarn group with 1 update in the /wagmi-project/playgrounds/next directory: [next](https://github.com/vercel/next.js). Updates `next` from 15.3.3 to 15.4.10 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v15.3.3...v15.4.10) Updates `happy-dom` from 15.10.2 to 18.0.1 - [Release notes](https://github.com/capricorn86/happy-dom/releases) - [Commits](https://github.com/capricorn86/happy-dom/compare/v15.10.2...v18.0.1) Updates `vite` from 5.4.19 to 5.4.21 - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v5.4.21/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v5.4.21/packages/vite) Updates `@metamask/sdk` from 0.32.1 to 0.33.1 - [Release notes](https://github.com/MetaMask/metamask-sdk/releases) - [Changelog](https://github.com/MetaMask/metamask-sdk/blob/main/packages/sdk/CHANGELOG.md) - [Commits](https://github.com/MetaMask/metamask-sdk/commits/@metamask/sdk@0.33.1/packages/sdk) Updates `nuxt` from 3.16.0 to 3.19.0 - [Release notes](https://github.com/nuxt/nuxt/releases) - [Commits](https://github.com/nuxt/nuxt/commits/v3.19.0/packages/nuxt) Updates `@nuxt/devtools` from 2.4.1 to 2.7.0 - [Release notes](https://github.com/nuxt/devtools/releases) - [Changelog](https://github.com/nuxt/devtools/blob/main/CHANGELOG.md) - [Commits](https://github.com/nuxt/devtools/commits/v2.7.0/packages/devtools) Updates `devalue` from 5.1.1 to 5.6.1 - [Release notes](https://github.com/sveltejs/devalue/releases) - [Changelog](https://github.com/sveltejs/devalue/blob/main/CHANGELOG.md) - [Commits](https://github.com/sveltejs/devalue/compare/v5.1.1...v5.6.1) Updates `@metamask/sdk` from 0.32.1 to 0.33.1 - [Release notes](https://github.com/MetaMask/metamask-sdk/releases) - [Changelog](https://github.com/MetaMask/metamask-sdk/blob/main/packages/sdk/CHANGELOG.md) - [Commits](https://github.com/MetaMask/metamask-sdk/commits/@metamask/sdk@0.33.1/packages/sdk) Updates `next` from 15.2.4 to 15.4.10 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v15.3.3...v15.4.10) Updates `next` from 15.3.3 to 15.4.10 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v15.3.3...v15.4.10) --- updated-dependencies: - dependency-name: next dependency-version: 15.4.10 dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: happy-dom dependency-version: 18.0.1 dependency-type: direct:development dependency-group: npm_and_yarn - dependency-name: vite dependency-version: 5.4.21 dependency-type: direct:development dependency-group: npm_and_yarn - dependency-name: "@metamask/sdk" dependency-version: 0.33.1 dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: nuxt dependency-version: 3.19.0 dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: "@nuxt/devtools" dependency-version: 2.7.0 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: devalue dependency-version: 5.6.1 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: "@metamask/sdk" dependency-version: 0.33.1 dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: next dependency-version: 15.4.10 dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: next dependency-version: 15.4.10 dependency-type: direct:production dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 977998758f93df492849cb55e7208864677515ef Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Sat Dec 27 02:10:27 2025 +0700 Update GitHub Actions workflow for tests (#149) Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> commit 9c420a789831c3affe0881d732bb95bd2bb075db Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Fri Dec 26 04:55:34 2025 +0700 Revise README structure and add sponsorship details (#146) * Revise README structure and add sponsorship details Updated README to include new sections and sponsorship information. https://sequence.xyz/ Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> * Update README.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 README.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 README.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> --------- 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> commit 224f7612cd574849b75e17056859f0a208a24aa1 Author: dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Fri Dec 26 03:19:19 2025 +0700 sequence-core-1.0.0 commit e90b2e6395fb14c6463a02e88f65dc23ce455d6d Author: dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Thu Dec 25 14:15:53 2025 +0700 Initial project structure and core packages Add initial monorepo structure for wagmi-project, including CLI, connectors, and core packages with source code, tests, configuration, and CI/CD workflows. This sets up the foundation for further development and collaboration. commit 1f452493d6ac5f23e20def94b7edf207bc2ce40a Author: snyk-io[bot] <141718529+snyk-io[bot]@users.noreply.github.com> Date: Wed Dec 24 21:11:40 2025 +0700 fix: extras/web/package.json to reduce vulnerabilities (#117) 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> commit 8bad845d94b7ca97a1d01a255eb8b41357eaf38d Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Wed Dec 24 19:35:49 2025 +0700 feat: upgrade react from 18.3.1 to 19.2.0 (#121) Snyk has created this PR to upgrade react from 18.3.1 to 19.2.0. See this package in npm: react 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 Co-authored-by: snyk-bot commit 5e6dca3ce44d2e8d5b00b1182ba9d6eae7855b23 Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Tue Dec 23 21:23:47 2025 +0700 Pin foundry to v1.5.0 instead of nightly (0xsequence#947) (#134) (#135) * Pin foundry to v1.5.0 instead of nightly (0xsequence#947) (#134) * Bump next from 15.5.7 to 15.5.9 (#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](https://github.com/vercel/next.js/compare/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] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Pin foundry to v1.5.0 instead of nightly (#947) * Include repo and extras in syncpack config to ensure deps are synced (#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 (#949) * skip witness on signers that don't support it * add passkey to test * 3.0.0-beta.6 --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Taylan Pince Co-authored-by: Corban Riley Co-authored-by: Agusx1211 * Update packages/wallet/wdk/test/wallets.test.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> * Update packages/wallet/wdk/test/wallets.test.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] 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: Taylan Pince Co-authored-by: Corban Riley Co-authored-by: Agusx1211 Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> commit 802829cc116d9656dfb166beba03a1e77c8d556b Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Tue Dec 23 21:15:56 2025 +0700 2.3.7 (#131) (#132) * 2.3.7 (#131) * fix broken guard private key * Expose access to passkey credential list * Dapp client direct txn request (#856) * Signature request refactor * WIP * Refactor * Update dapp-client exports (#858) * Add hasPermission method to DappClient (#859) * Save discovered passkey credentials upon login * Expose name property in PasskeySignupArgs * Fix blacklist sort * Add multi server script * relayer: /SimulateV3 (#857) * Add await for handleOpenDB scheduleExpiration * Update increment to always include native once used * Fix session tests * Adding lastLoginAt to PasskeyCredential * LoginToPasskeyArgs now accept a credentialId which is used to specify which credential to use * Adding onSignatureRequestStatus function to register single use callbacks for when a request reaches a terminal state of completed or cancelled * When a login is cancelled we can remove the wallet which is logging-in * Add RC3 contracts * Sessions space restriction * Dedupe signers for encoding * Support RC3 sessions * Tightly increment call validation * CLI defaults to RC3 wallet code * Rc3 address test * Fix hashing tests * Add deprecated encoding test * wdk: throw errors from otp respond callback (#864) * wdk: throw errors from otp respond callback * wdk: otp auth error and handler refactor * Handle guard 2FA (#861) * guard: return a specific error when auth required * core: pass guard token to the service * wdk: handle prompting for guard 2FA code * dapp-client: handle prompting for guard 2FA code * guard 2fa tests * wdk: separate wallet and sessions guards * dapp-client: remove guard 2fa * dapp-client: fix imports * fix guard tests * wdk: remove unneeded promise resolve * Update relayer and api gen.ts, force public packages * Add standalone fetch queued payloads * Replacing GuardRole enum with string union type, as well as replacing guardAddresses Map with Record * Fallback to chain for non-logged in recovery * Add Katana, Sandbox Tesnet, Incentiv Testnet v2 (#873) * Update a few remaining dev1 contract addresses to rc3 (#874) * Remove unnecessary console.error where we already throw error * Improve DappClient hasPermission method * Wallet db try checksum and lowercase * Update dapp client json utils to include Map reviver and replacer * Bump next in the npm_and_yarn group across 1 directory Bumps the npm_and_yarn group with 1 update in the / directory: [next](https://github.com/vercel/next.js). Updates `next` from 15.4.2 to 15.4.7 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v15.4.2...v15.4.7) --- updated-dependencies: - dependency-name: next dependency-version: 15.4.7 dependency-type: direct:production dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] * Update type name, update exports for dapp client * Expired explicit sessions can't sign * Improve session validity test * session isValid returns invalid reason * InvalidReason is typed * 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 (#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 * 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 (#882) * Update issue templates * Provider sent to prepareBlankEnvelope * Add session signature decoding * Add feeTokens endpoint to relayer (#885) * const for node length * Clearer blacklist size encoding * identity signer node length * Potential fix for code scanning alert no. 84: Insecure randomness Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> * add getFeeTokens to dapp client (#889) * add getFeeTokens to dapp client * fix typo * make getFeeTokens independent of chain session manager and initialize state (#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 (#887) * Throw when supported session signer is expired * Fix tests * Make dapp-client implicit sessions chain agnostic (#893) * Add Monad, remove LAOS and Root Network * 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.0 - [Release notes](https://github.com/capricorn86/happy-dom/releases) - [Commits](https://github.com/capricorn86/happy-dom/compare/v17.6.3...v20.0.0) Updates `happy-dom` from 17.6.3 to 20.0.0 - [Release notes](https://github.com/capricorn86/happy-dom/releases) - [Commits](https://github.com/capricorn86/happy-dom/compare/v17.6.3...v20.0.0) Updates `happy-dom` from 17.6.3 to 20.0.0 - [Release notes](https://github.com/capricorn86/happy-dom/releases) - [Commits](https://github.com/capricorn86/happy-dom/compare/v17.6.3...v20.0.0) --- updated-dependencies: - dependency-name: happy-dom dependency-version: 20.0.0 dependency-type: direct:development dependency-group: npm_and_yarn - dependency-name: happy-dom dependency-version: 20.0.0 dependency-type: direct:development dependency-group: npm_and_yarn - dependency-name: happy-dom dependency-version: 20.0.0 dependency-type: direct:development dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] * Bump happy-dom in the npm_and_yarn group across 1 directory (#69) Bumps the npm_and_yarn group with 1 update in the / directory: [happy-dom](https://github.com/capricorn86/happy-dom). Updates `happy-dom` from 20.0.0 to 20.0.2 - [Release notes](https://github.com/capricorn86/happy-dom/releases) - [Commits](https://github.com/capricorn86/happy-dom/compare/v20.0.0...v20.0.2) --- updated-dependencies: - dependency-name: happy-dom dependency-version: 20.0.2 dependency-type: direct:development dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Create SECURITY.md for security policy (#70) * Create SECURITY.md for security policy Add a security policy document outlining supported versions and vulnerability reporting. Signed-off-by: AU_gdev_19 <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: AU_gdev_19 <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: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> --------- Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@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: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> * Add support for sessionless dapp connection (#896) * Refactor relayer package & update dependant packages (#891) * refactor exports for relayer (#900) * Add Arc Testnet * Fix changelog config * Sessionless connection upgrade and error handling in DappClient (#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](https://github.com/capricorn86/happy-dom/compare/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](https://github.com/capricorn86/happy-dom/compare/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](https://github.com/capricorn86/happy-dom/compare/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] * Allow to logout a wallet with skipRemoveDevice even if the wallet is not in a ready state to allow force removing of wallets (#906) * Pass request to PromptCodeHandler in guard registerUI (#909) * Pass request to PromptCodeHandler in guard registerUI * Fixing guard registerUI test * guard: allow using recovery code as 2FA token (#910) * guard: allow using recovery code as 2FA token * Cleanup types of ResponseFn --------- Co-authored-by: Corban Riley * Add a way to reset 2fa when using a backup code (#911) * Add a way to reset 2fa when using a backup code * use the GuardToken type instead of breaking out the props * Update SECURITY.md Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> * Update packages/wallet/dapp-client/src/DappTransport.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> * 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 (#915) * SSR safety test * Fix CI job * Guard dapp-client for SSR (lazy transport, browser checks, gated storage) * Fix guard topology (#918) * Use proper guard topology * Test and fixes * login and setup tests * Switch prod manager settings (#917) * Add prod guard and identity instrument info * Remove completed TODOs * Small JS tweaks (#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 (#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 * 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 (#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 (#885) * add getFeeTokens to dapp client (#889) * add getFeeTokens to dapp client * fix typo * make getFeeTokens independent of chain session manager and initialize state (#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 (#887) * Throw when supported session signer is expired * Fix tests * Make dapp-client implicit sessions chain agnostic (#893) * Add Monad, remove LAOS and Root Network * Add support for sessionless dapp connection (#896) * Refactor relayer package & update dependant packages (#891) * refactor exports for relayer (#900) * Add Arc Testnet * Fix changelog config * Sessionless connection upgrade and error handling in DappClient (#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 (#906) * Pass request to PromptCodeHandler in guard registerUI (#909) * Pass request to PromptCodeHandler in guard registerUI * Fixing guard registerUI test * guard: allow using recovery code as 2FA token (#910) * guard: allow using recovery code as 2FA token * Cleanup types of ResponseFn --------- Co-authored-by: Corban Riley * Add a way to reset 2fa when using a backup code (#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 (#915) * Guard dapp-client for SSR (lazy transport, browser checks, gated storage) * Fix guard topology (#918) * Use proper guard topology * Test and fixes * login and setup tests * Switch prod manager settings (#917) * Add prod guard and identity instrument info * Remove completed TODOs * Small JS tweaks (#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 (#920) * 3.0.0-beta.1 * identity-instrument: generate nonce from current time (#921) * Remove publish-dists.yml github action (#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 (#926) * Add support for custom auth providers (authcode & authcode-pkce only) (#894) * Add support for custom auth providers (authcode & authcode-pkce only) * fix authcode tests * Updating Deps November 2025 (#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 (#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 (#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 (#931) * Update pnpm * Mark @0xsequence/wallet-primitives-cli as private * 3.0.0-beta.3 * changeset cleanup * Fix rc4 4337 factory (#933) * Add rc5 and set it as default (#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 (#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](https://github.com/vercel/next.js/compare/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] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * add userdata service client (#940) * Skip LocalDevice identity signers not on current device (#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 fd0fdf9ecc6ad9056447e381de7fc5bb19f78e47, reversing changes made to cba78943db9942a4635bb530b7a43fc5d18b0ab4. * 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 * 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 * 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](https://github.com/vercel/next.js/compare/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] 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 * 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](https://github.com/vercel/next.js/compare/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](https://github.com/capricorn86/happy-dom/compare/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] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump next from 15.5.7 to 15.5.9 (#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](https://github.com/vercel/next.js/compare/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] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Pin foundry to v1.5.0 instead of nightly (#947) * Include repo and extras in syncpack config to ensure deps are synced (#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 (#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> * feat: upgrade @wagmi/cli from 0.1.15 to 2.8.0 (#126) Snyk has created this PR to upgrade @wagmi/cli from 0.1.15 to 2.8.0. See this package in npm: @wagmi/cli 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 Co-authored-by: snyk-bot * Potential fix for code scanning alert no. 82: Workflow does not contain permissions Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> * Potential fix for code scanning alert no. 62: Information exposure through a stack trace Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> --------- Signed-off-by: dependabot[bot] 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: Patryk Kalinowski Co-authored-by: Corban Riley Co-authored-by: tolgahan-arikan Co-authored-by: Agusx1211 Co-authored-by: Michael Standen Co-authored-by: William Hua Co-authored-by: Michael Standen Co-authored-by: Patryk Kalinowski Co-authored-by: Taylan Pince Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Gabi <56271768+VGabriel45@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> 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> Co-authored-by: snyk-bot * Update extras/docs/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 extras/web/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> --------- Signed-off-by: dependabot[bot] 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: Patryk Kalinowski Co-authored-by: Corban Riley Co-authored-by: tolgahan-arikan Co-authored-by: Agusx1211 Co-authored-by: Michael Standen Co-authored-by: William Hua Co-authored-by: Michael Standen Co-authored-by: Patryk Kalinowski Co-authored-by: Taylan Pince Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Gabi <56271768+VGabriel45@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> 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> Co-authored-by: snyk-bot commit 893eedbb1a99db6736a157fed7d73a0196f30778 Merge: bc418b171 7fe4a922d Author: dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Tue Dec 23 18:50:09 2025 +0700 Merge remote-tracking branch 'origin/v1' into v1 commit 7fe4a922dfbd817fa76b8e30e9be184e6f38ddb1 Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Tue Dec 23 18:16:10 2025 +0700 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> commit 640be8ffe175c762828aded47cc76e8d2c404b56 Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Tue Dec 23 18:15:48 2025 +0700 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> commit 51a64321d3c0b91c9bd43c1e7e693f974c045dbb Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Tue Dec 23 18:15:24 2025 +0700 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> commit 28a268eef9f36a4bcf257d175c49c31f55f8008b Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Tue Dec 23 18:14:59 2025 +0700 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> commit bc418b171da95091d834f3a21141780169818db3 Author: Dargon789 <64915515+Dargon789@users.noreply.github.com> Date: Tue Dec 23 00:27:24 2025 +0700 Master ceb95d4 (#129) * Update issue templates (#128) * 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](https://github.com/expressjs/express/compare/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] * 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 (#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 * 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 (#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 (#885) * const for node length * Clearer blacklist size encoding * identity signer node length * add getFeeTokens to dapp client (#889) * add getFeeTokens to dapp client * fix typo * make getFeeTokens independent of chain session manager and initialize state (#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 (#887) * Throw when supported session signer is expired * Fix tests * Make dapp-client implicit sessions chain agnostic (#893) * Add Monad, remove L… * Bump the npm_and_yarn group across 2 directories with 25 updates (#177) Bumps the npm_and_yarn group with 11 updates in the /lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction directory: | Package | From | To | | --- | --- | --- | | [express](https://github.com/expressjs/express) | `4.18.2` | `4.22.1` | | [base-x](https://github.com/cryptocoinjs/base-x) | `3.0.9` | `3.0.11` | | [cipher-base](https://github.com/crypto-browserify/cipher-base) | `1.0.4` | `1.0.7` | | [follow-redirects](https://github.com/follow-redirects/follow-redirects) | `1.15.3` | `1.15.11` | | [min-document](https://github.com/Raynos/min-document) | `2.19.0` | `2.19.2` | | [pbkdf2](https://github.com/browserify/pbkdf2) | `3.1.2` | `3.1.5` | | [secp256k1](https://github.com/cryptocoinjs/secp256k1-node) | `4.0.3` | `4.0.4` | | [sha.js](https://github.com/crypto-browserify/sha.js) | `2.4.11` | `2.4.12` | | [undici](https://github.com/nodejs/undici) | `5.26.3` | `5.29.0` | | [@openzeppelin/contracts](https://github.com/OpenZeppelin/openzeppelin-contracts) | `5.0.0` | `5.0.2` | | [browserify-sign](https://github.com/crypto-browserify/browserify-sign) | `4.2.1` | `4.2.5` | Bumps the npm_and_yarn group with 11 updates in the /lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts directory: | Package | From | To | | --- | --- | --- | | [axios](https://github.com/axios/axios) | `1.7.4` | `1.13.2` | | [base-x](https://github.com/cryptocoinjs/base-x) | `3.0.9` | `3.0.11` | | [brace-expansion](https://github.com/juliangruber/brace-expansion) | `1.1.11` | `1.1.12` | | [cipher-base](https://github.com/crypto-browserify/cipher-base) | `1.0.4` | `1.0.7` | | [glob](https://github.com/isaacs/node-glob) | `11.0.0` | `11.1.0` | | [glob](https://github.com/isaacs/node-glob) | `10.4.5` | `10.5.0` | | [js-yaml](https://github.com/nodeca/js-yaml) | `3.14.1` | `3.14.2` | | [micromatch](https://github.com/micromatch/micromatch) | `4.0.5` | `4.0.8` | | [nanoid](https://github.com/ai/nanoid) | `3.3.3` | `removed` | | [pbkdf2](https://github.com/browserify/pbkdf2) | `3.1.2` | `3.1.5` | | [undici](https://github.com/nodejs/undici) | `5.28.4` | `5.29.0` | | [undici](https://github.com/nodejs/undici) | `6.12.0` | `6.23.0` | | [ws](https://github.com/websockets/ws) | `7.5.9` | `7.5.10` | Updates `form-data` from 2.3.3 to 4.0.2 - [Release notes](https://github.com/form-data/form-data/releases) - [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md) - [Commits](https://github.com/form-data/form-data/commits/v4.0.2) Updates `qs` from 6.5.3 to 6.13.0 - [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md) - [Commits](https://github.com/ljharb/qs/compare/v6.5.3...v6.13.0) Updates `undici` from 5.28.5 to 5.28.4 - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](https://github.com/nodejs/undici/compare/v5.26.3...v5.29.0) Updates `vite` from 5.4.14 to 7.3.0 - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v7.3.0/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v7.3.0/packages/vite) Updates `express` from 4.18.2 to 4.22.1 - [Release notes](https://github.com/expressjs/express/releases) - [Changelog](https://github.com/expressjs/express/blob/v4.22.1/History.md) - [Commits](https://github.com/expressjs/express/compare/4.18.2...v4.22.1) Updates `base-x` from 3.0.9 to 3.0.11 - [Commits](https://github.com/cryptocoinjs/base-x/compare/v3.0.9...v3.0.11) Updates `body-parser` from 1.20.1 to 1.20.2 - [Release notes](https://github.com/expressjs/body-parser/releases) - [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md) - [Commits](https://github.com/expressjs/body-parser/compare/1.20.1...1.20.2) Updates `cipher-base` from 1.0.4 to 1.0.7 - [Changelog](https://github.com/browserify/cipher-base/blob/master/CHANGELOG.md) - [Commits](https://github.com/crypto-browserify/cipher-base/compare/v1.0.4...v1.0.7) Updates `follow-redirects` from 1.15.3 to 1.15.11 - [Release notes](https://github.com/follow-redirects/follow-redirects/releases) - [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.3...v1.15.11) Updates `min-document` from 2.19.0 to 2.19.2 - [Commits](https://github.com/Raynos/min-document/compare/v2.19.0...v2.19.2) Updates `pbkdf2` from 3.1.2 to 3.1.5 - [Changelog](https://github.com/browserify/pbkdf2/blob/master/CHANGELOG.md) - [Commits](https://github.com/browserify/pbkdf2/compare/v3.1.2...v3.1.5) Updates `secp256k1` from 4.0.3 to 4.0.4 - [Release notes](https://github.com/cryptocoinjs/secp256k1-node/releases) - [Commits](https://github.com/cryptocoinjs/secp256k1-node/compare/v4.0.3...v4.0.4) Updates `send` from 0.18.0 to 0.19.2 - [Release notes](https://github.com/pillarjs/send/releases) - [Changelog](https://github.com/pillarjs/send/blob/master/HISTORY.md) - [Commits](https://github.com/pillarjs/send/compare/0.18.0...0.19.2) Updates `serve-static` from 1.15.0 to 1.16.3 - [Release notes](https://github.com/expressjs/serve-static/releases) - [Changelog](https://github.com/expressjs/serve-static/blob/master/HISTORY.md) - [Commits](https://github.com/expressjs/serve-static/compare/v1.15.0...v1.16.3) Updates `sha.js` from 2.4.11 to 2.4.12 - [Changelog](https://github.com/browserify/sha.js/blob/master/CHANGELOG.md) - [Commits](https://github.com/crypto-browserify/sha.js/compare/v2.4.11...v2.4.12) Updates `undici` from 5.26.3 to 5.29.0 - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](https://github.com/nodejs/undici/compare/v5.26.3...v5.29.0) Updates `@openzeppelin/contracts` from 5.0.0 to 5.0.2 - [Release notes](https://github.com/OpenZeppelin/openzeppelin-contracts/releases) - [Changelog](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/CHANGELOG.md) - [Commits](https://github.com/OpenZeppelin/openzeppelin-contracts/compare/v5.0.0...v5.0.2) Updates `browserify-sign` from 4.2.1 to 4.2.5 - [Changelog](https://github.com/browserify/browserify-sign/blob/main/CHANGELOG.md) - [Commits](https://github.com/crypto-browserify/browserify-sign/compare/v4.2.1...v4.2.5) Updates `axios` from 1.7.4 to 1.13.2 - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](https://github.com/axios/axios/compare/v1.7.4...v1.13.2) Updates `base-x` from 3.0.9 to 3.0.11 - [Commits](https://github.com/cryptocoinjs/base-x/compare/v3.0.9...v3.0.11) Updates `brace-expansion` from 1.1.11 to 1.1.12 - [Release notes](https://github.com/juliangruber/brace-expansion/releases) - [Commits](https://github.com/juliangruber/brace-expansion/compare/1.1.11...v1.1.12) Updates `cipher-base` from 1.0.4 to 1.0.7 - [Changelog](https://github.com/browserify/cipher-base/blob/master/CHANGELOG.md) - [Commits](https://github.com/crypto-browserify/cipher-base/compare/v1.0.4...v1.0.7) Updates `form-data` from 4.0.0 to 4.0.5 - [Release notes](https://github.com/form-data/form-data/releases) - [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md) - [Commits](https://github.com/form-data/form-data/commits/v4.0.2) Updates `glob` from 11.0.0 to 11.1.0 - [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md) - [Commits](https://github.com/isaacs/node-glob/compare/v11.0.0...v11.1.0) Updates `glob` from 10.4.5 to 10.5.0 - [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md) - [Commits](https://github.com/isaacs/node-glob/compare/v11.0.0...v11.1.0) Updates `js-yaml` from 3.14.1 to 3.14.2 - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/nodeca/js-yaml/compare/3.14.1...3.14.2) Updates `micromatch` from 4.0.5 to 4.0.8 - [Release notes](https://github.com/micromatch/micromatch/releases) - [Changelog](https://github.com/micromatch/micromatch/blob/master/CHANGELOG.md) - [Commits](https://github.com/micromatch/micromatch/compare/4.0.5...4.0.8) Removes `nanoid` Updates `pbkdf2` from 3.1.2 to 3.1.5 - [Changelog](https://github.com/browserify/pbkdf2/blob/master/CHANGELOG.md) - [Commits](https://github.com/browserify/pbkdf2/compare/v3.1.2...v3.1.5) Updates `serialize-javascript` from 6.0.0 to 6.0.2 - [Release notes](https://github.com/yahoo/serialize-javascript/releases) - [Commits](https://github.com/yahoo/serialize-javascript/compare/v6.0.0...v6.0.2) Updates `sha.js` from 2.4.11 to 2.4.12 - [Changelog](https://github.com/browserify/sha.js/blob/master/CHANGELOG.md) - [Commits](https://github.com/crypto-browserify/sha.js/compare/v2.4.11...v2.4.12) Updates `undici` from 5.28.4 to 5.29.0 - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](https://github.com/nodejs/undici/compare/v5.26.3...v5.29.0) Updates `undici` from 6.12.0 to 6.23.0 - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](https://github.com/nodejs/undici/compare/v5.26.3...v5.29.0) Updates `ws` from 7.5.9 to 7.5.10 - [Release notes](https://github.com/websockets/ws/releases) - [Commits](https://github.com/websockets/ws/compare/7.5.9...7.5.10) --- updated-dependencies: - dependency-name: form-data dependency-version: 4.0.2 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: qs dependency-version: 6.13.0 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: undici dependency-version: 5.28.4 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: vite dependency-version: 7.3.0 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: express dependency-version: 4.22.1 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: base-x dependency-version: 3.0.11 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: body-parser dependency-version: 1.20.2 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: cipher-base dependency-version: 1.0.7 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: follow-redirects dependency-version: 1.15.11 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: min-document dependency-version: 2.19.2 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: pbkdf2 dependency-version: 3.1.5 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: secp256k1 dependency-version: 4.0.4 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: send dependency-version: 0.19.2 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: serve-static dependency-version: 1.16.3 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: sha.js dependency-version: 2.4.12 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: undici dependency-version: 5.29.0 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: "@openzeppelin/contracts" dependency-version: 5.0.2 dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: browserify-sign dependency-version: 4.2.5 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: axios dependency-version: 1.13.2 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: base-x dependency-version: 3.0.11 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: brace-expansion dependency-version: 1.1.12 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: cipher-base dependency-version: 1.0.7 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: form-data dependency-version: 4.0.5 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: glob dependency-version: 11.1.0 dependency-type: direct:development dependency-group: npm_and_yarn - dependency-name: glob dependency-version: 10.5.0 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: js-yaml dependency-version: 3.14.2 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: micromatch dependency-version: 4.0.8 dependency-type: direct:development dependency-group: npm_and_yarn - dependency-name: nanoid dependency-version: dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: pbkdf2 dependency-version: 3.1.5 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: serialize-javascript dependency-version: 6.0.2 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: sha.js dependency-version: 2.4.12 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: undici dependency-version: 5.29.0 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: undici dependency-version: 6.23.0 dependency-type: direct:development dependency-group: npm_and_yarn - dependency-name: ws dependency-version: 7.5.10 dependency-type: indirect dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Potential fix for code scanning alert no. 73: Workflow does not contain permissions Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> * Update lib/signals-implicit-mode/foundry.toml 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: Dargon789 <64915515+Dargon789@users.noreply.github.com> Signed-off-by: AU_gdev_19 <64915515+Dargon789@users.noreply.github.com> Signed-off-by: dependabot[bot] Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: Corban Riley Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: spongeboi Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .changeset/config.json | 2 +- .github/ISSUE_TEMPLATE/bug_report.md | 20 +- .github/ISSUE_TEMPLATE/custom.md | 3 - .github/ISSUE_TEMPLATE/feature_request.md | 3 +- .github/workflows/nextjs.yml | 93 + .github/workflows/on_pr_pnpm-format-label.yml | 4 - .github/workflows/publish-dists.yml | 91 + .github/workflows/web-sdk.yml | 137 + .gitmodules | 3 + README.md | 280 +- SECURITY.md | 3 +- corepack.tgz | Bin 0 -> 4311947 bytes extras/docs/eslint.config.js | 7 +- extras/docs/next.config.js | 12 +- extras/docs/package.json | 23 +- extras/web/eslint.config.js | 7 +- extras/web/next.config.js | 12 +- extras/web/package.json | 23 +- foundry.lock | 1 + lefthook.yml | 5 - lib/signals-implicit-mode/.env.sample | 1 + .../.github/workflows/test.yml | 56 + lib/signals-implicit-mode/.gitmodules | 9 + lib/signals-implicit-mode/README.md | 84 + lib/signals-implicit-mode/foundry.toml | 22 + .../lib/forge-std/.gitattributes | 1 + .../lib/forge-std/.github/CODEOWNERS | 1 + .../lib/forge-std/.github/workflows/ci.yml | 95 + .../lib/forge-std/.github/workflows/sync.yml | 31 + .../lib/forge-std/CONTRIBUTING.md | 193 + .../lib/forge-std/LICENSE-APACHE | 203 + .../lib/forge-std/LICENSE-MIT | 25 + .../lib/forge-std/README.md | 268 + .../lib/forge-std/RELEASE_CHECKLIST.md | 12 + .../lib/forge-std/foundry.toml | 27 + .../lib/forge-std/package.json | 16 + .../lib/forge-std/scripts/vm.py | 646 + .../lib/forge-std/src/Base.sol | 48 + .../lib/forge-std/src/Config.sol | 60 + .../lib/forge-std/src/LibVariable.sol | 477 + .../lib/forge-std/src/Script.sol | 28 + .../lib/forge-std/src/StdAssertions.sol | 764 + .../lib/forge-std/src/StdChains.sol | 287 + .../lib/forge-std/src/StdCheats.sol | 829 + .../lib/forge-std/src/StdConfig.sol | 612 + .../lib/forge-std/src/StdConstants.sol | 30 + .../lib/forge-std/src/StdError.sol | 15 + .../lib/forge-std/src/StdInvariant.sol | 122 + .../lib/forge-std/src/StdJson.sol | 283 + .../lib/forge-std/src/StdMath.sol | 43 + .../lib/forge-std/src/StdStorage.sol | 473 + .../lib/forge-std/src/StdStyle.sol | 333 + .../lib/forge-std/src/StdToml.sol | 283 + .../lib/forge-std/src/StdUtils.sol | 208 + .../lib/forge-std/src/Test.sol | 34 + .../lib/forge-std/src/Vm.sol | 2494 ++ .../lib/forge-std/src/console.sol | 1560 ++ .../lib/forge-std/src/console2.sol | 4 + .../lib/forge-std/src/interfaces/IERC1155.sol | 105 + .../lib/forge-std/src/interfaces/IERC165.sol | 12 + .../lib/forge-std/src/interfaces/IERC20.sol | 43 + .../lib/forge-std/src/interfaces/IERC4626.sol | 190 + .../lib/forge-std/src/interfaces/IERC6909.sol | 72 + .../lib/forge-std/src/interfaces/IERC721.sol | 164 + .../lib/forge-std/src/interfaces/IERC7540.sol | 150 + .../lib/forge-std/src/interfaces/IERC7575.sol | 241 + .../forge-std/src/interfaces/IMulticall3.sol | 73 + .../lib/forge-std/src/safeconsole.sol | 13937 +++++++++++ .../lib/forge-std/test/CommonBase.t.sol | 44 + .../lib/forge-std/test/Config.t.sol | 352 + .../lib/forge-std/test/LibVariable.t.sol | 434 + .../lib/forge-std/test/StdAssertions.t.sol | 141 + .../lib/forge-std/test/StdChains.t.sol | 227 + .../lib/forge-std/test/StdCheats.t.sol | 639 + .../lib/forge-std/test/StdConstants.t.sol | 38 + .../lib/forge-std/test/StdError.t.sol | 120 + .../lib/forge-std/test/StdJson.t.sol | 49 + .../lib/forge-std/test/StdMath.t.sol | 202 + .../lib/forge-std/test/StdStorage.t.sol | 488 + .../lib/forge-std/test/StdStyle.t.sol | 110 + .../lib/forge-std/test/StdToml.t.sol | 49 + .../lib/forge-std/test/StdUtils.t.sol | 342 + .../lib/forge-std/test/Vm.t.sol | 18 + .../test/compilation/CompilationScript.sol | 10 + .../compilation/CompilationScriptBase.sol | 10 + .../test/compilation/CompilationTest.sol | 10 + .../test/compilation/CompilationTestBase.sol | 10 + .../test/fixtures/broadcast.log.json | 187 + .../lib/forge-std/test/fixtures/config.toml | 81 + .../lib/forge-std/test/fixtures/test.json | 8 + .../lib/forge-std/test/fixtures/test.toml | 6 + .../lib/sequence-v3/.env.sample | 7 + .../sequence-v3/.github/workflows/tests.yml | 148 + .../lib/sequence-v3/.gitmodules | 12 + .../lib/sequence-v3/.prettierignore | 4 + .../lib/sequence-v3/.prettierrc | 7 + .../lib/sequence-v3/LICENSE | 201 + .../lib/sequence-v3/README.md | 53 + .../lib/sequence-v3/build_proxy.sh | 21 + .../lib/sequence-v3/docs/CHAINED.md | 450 + .../lib/sequence-v3/docs/CONFIGURATIONS.md | 279 + .../lib/sequence-v3/docs/PAYLOAD.md | 392 + .../lib/sequence-v3/docs/SESSIONS.md | 502 + .../lib/sequence-v3/docs/SIGNATURE.md | 367 + .../lib/sequence-v3/foundry.toml | 31 + .../lib/sequence-v3/lefthook.yml | 8 + .../lib/account-abstraction/.eslintrc.js | 79 + .../.github/workflows/build.yml | 89 + .../lib/account-abstraction/.solcover.js | 8 + .../lib/account-abstraction/.solhint.json | 12 + .../lib/account-abstraction/.solhintignore | 1 + .../lib/account-abstraction/LICENSE | 674 + .../lib/account-abstraction/README.md | 11 + ...bstraction_Incremental_Audit_Feb_2023.pdf" | Bin 0 -> 565821 bytes .../contracts/core/BaseAccount.sol | 113 + .../contracts/core/BasePaymaster.sol | 151 + .../contracts/core/EntryPoint.sol | 800 + .../contracts/core/EntryPointSimulations.sol | 190 + .../contracts/core/Helpers.sol | 106 + .../contracts/core/NonceManager.sol | 43 + .../contracts/core/SenderCreator.sol | 38 + .../contracts/core/StakeManager.sol | 145 + .../contracts/core/UserOperationLib.sol | 139 + .../contracts/interfaces/IAccount.sol | 39 + .../contracts/interfaces/IAccountExecute.sol | 20 + .../contracts/interfaces/IAggregator.sol | 44 + .../contracts/interfaces/IEntryPoint.sol | 223 + .../interfaces/IEntryPointSimulations.sol | 73 + .../contracts/interfaces/INonceManager.sol | 27 + .../contracts/interfaces/IPaymaster.sol | 63 + .../contracts/interfaces/IStakeManager.sol | 111 + .../interfaces/PackedUserOperation.sol | 28 + .../contracts/package.json | 29 + .../samples/LegacyTokenPaymaster.sol | 115 + .../contracts/samples/SimpleAccount.sol | 150 + .../samples/SimpleAccountFactory.sol | 52 + .../contracts/samples/TokenPaymaster.sol | 217 + .../contracts/samples/VerifyingPaymaster.sol | 96 + .../contracts/samples/bls/BLSAccount.sol | 65 + .../samples/bls/BLSAccountFactory.sol | 61 + .../contracts/samples/bls/BLSHelper.sol | 232 + .../samples/bls/BLSSignatureAggregator.sol | 171 + .../contracts/samples/bls/IBLSAccount.sol | 16 + .../contracts/samples/bls/lib/BLSOpen.sol | 64 + .../hubble-contracts/contracts/libs/BLS.sol | 440 + .../contracts/libs/ModExp.sol | 652 + .../samples/callback/TokenCallbackHandler.sol | 51 + .../contracts/samples/utils/IOracle.sol | 10 + .../contracts/samples/utils/OracleHelper.sol | 170 + .../contracts/samples/utils/UniswapHelper.sol | 111 + .../contracts/utils/Exec.sol | 70 + .../deploy/1_deploy_entrypoint.ts | 19 + .../deploy/2_deploy_SimpleAccountFactory.ts | 33 + .../deployments/arbitrum/.chainId | 1 + .../deployments/arbitrum/EntryPoint.json | 1318 + .../a4c52f0671aad8941c53d6ead2063803.json | 68 + .../deployments/gnosis/.chainId | 1 + .../deployments/gnosis/EntryPoint.json | 1318 + .../a4c52f0671aad8941c53d6ead2063803.json | 68 + .../deployments/goerli/.chainId | 1 + .../deployments/goerli/EntryPoint.json | 1318 + .../a4c52f0671aad8941c53d6ead2063803.json | 68 + .../deployments/kovan/.chainId | 1 + .../deployments/kovan/EntryPoint.json | 1073 + .../deployments/kovan/SimpleWallet.json | 338 + .../deployments/kovan/TestCounter.json | 118 + .../9255faacf3ae4e81db1326413027bfa0.json | 86 + .../deployments/mainnet/.chainId | 1 + .../deployments/mainnet/EntryPoint.json | 1318 + .../mainnet/SimpleAccountFactory.json | 107 + .../02113a2ed1850c3774563305ee607f11.json | 329 + .../a4c52f0671aad8941c53d6ead2063803.json | 68 + .../cfbebdf1101dd2bc0f310cb0b7d62cb7.json | 59 + .../deployments/matic/.chainId | 1 + .../deployments/matic/EntryPoint.json | 1318 + .../a4c52f0671aad8941c53d6ead2063803.json | 68 + .../cfbebdf1101dd2bc0f310cb0b7d62cb7.json | 59 + .../deployments/mumbai/.chainId | 1 + .../deployments/mumbai/EntryPoint.json | 1318 + .../a4c52f0671aad8941c53d6ead2063803.json | 68 + .../deployments/optimism/.chainId | 1 + .../deployments/optimism/EntryPoint.json | 1318 + .../a4c52f0671aad8941c53d6ead2063803.json | 68 + .../deployments/sepolia/.chainId | 1 + .../deployments/sepolia/EntryPoint.json | 1318 + .../a4c52f0671aad8941c53d6ead2063803.json | 68 + .../account-abstraction/erc/ERCS/erc-4337.md | 1017 + .../account-abstraction/erc/ERCS/erc-7562.md | 393 + .../erc/assets/erc-4337/bundle-seq-pm.svg | 1 + .../erc/assets/erc-4337/bundle-seq.svg | 1 + .../erc/assets/erc-4337/image1.png | Bin 0 -> 32181 bytes .../erc/assets/erc-4337/image2.png | Bin 0 -> 27514 bytes .../gascalc/0-init-gas-checker.ts | 12 + .../gascalc/1-simple-wallet.gas.ts | 17 + .../gascalc/2-paymaster.gas.ts | 59 + .../gascalc/3-huge-tx-gas.ts | 27 + .../gascalc/4-paymaster-postop.gas.ts | 62 + .../gascalc/5-token-paymaster.gas.ts | 159 + .../account-abstraction/gascalc/GasChecker.ts | 459 + .../lib/account-abstraction/hardhat.config.ts | 86 + .../lib/account-abstraction/package.json | 71 + .../reports/gas-checker.txt | 55 + .../scripts/check-gas-reports | 17 + .../scripts/docker-gascalc | 7 + .../scripts/docker-gascalc.yml | 20 + .../lib/account-abstraction/scripts/gascalc | 15 + .../account-abstraction/scripts/hh-wrapper | 5 + .../scripts/postpack-contracts-package.sh | 6 + .../scripts/prepack-contracts-package.sh | 17 + .../scripts/sample-script.js | 32 + .../account-abstraction/scripts/solcErrors | 12 + .../lib/account-abstraction/src/AASigner.ts | 458 + .../account-abstraction/src/Create2Factory.ts | 126 + .../lib/account-abstraction/src/Utils.ts | 15 + .../lib/account-abstraction/src/runop.ts | 158 + .../test/0-create2factory.test.ts | 43 + .../lib/account-abstraction/test/UserOp.ts | 364 + .../account-abstraction/test/UserOperation.ts | 30 + .../lib/account-abstraction/test/aa.init.ts | 8 + .../account-abstraction/test/chaiHelper.ts | 73 + .../lib/account-abstraction/test/debugTx.ts | 34 + .../test/entrypoint.test.ts | 1929 ++ .../test/entrypointsimulations.test.ts | 534 + .../account-abstraction/test/helpers.test.ts | 74 + .../test/paymaster.test.ts | 415 + .../test/samples/OracleHelper.test.ts | 287 + .../test/samples/TokenPaymaster.test.ts | 588 + .../test/simple-wallet.test.ts | 208 + .../account-abstraction/test/solidityTypes.ts | 11 + .../test/testExecAccount.test.ts | 61 + .../lib/account-abstraction/test/testutils.ts | 529 + .../test/verifying_paymaster.test.ts | 191 + .../account-abstraction/test/y.bls.test.ts | 249 + .../lib/account-abstraction/tsconfig.json | 31 + .../lib/account-abstraction/yarn.lock | 10502 ++++++++ .../lib/erc2470-libs/.gitattributes | 1 + .../lib/erc2470-libs/.githooks/pre-commit | 30 + .../erc2470-libs/.github/workflows/test.yml | 34 + .../sequence-v3/lib/erc2470-libs/.gitmodules | 3 + .../lib/erc2470-libs/.solhint.json | 9 + .../sequence-v3/lib/erc2470-libs/README.md | 80 + .../sequence-v3/lib/erc2470-libs/foundry.toml | 6 + .../erc2470-libs/lib/forge-std/.gitattributes | 1 + .../lib/forge-std/.github/workflows/ci.yml | 128 + .../lib/forge-std/.github/workflows/sync.yml | 31 + .../erc2470-libs/lib/forge-std/LICENSE-APACHE | 203 + .../erc2470-libs/lib/forge-std/LICENSE-MIT | 25 + .../lib/erc2470-libs/lib/forge-std/README.md | 252 + .../erc2470-libs/lib/forge-std/foundry.toml | 21 + .../erc2470-libs/lib/forge-std/package.json | 16 + .../erc2470-libs/lib/forge-std/scripts/vm.py | 635 + .../erc2470-libs/lib/forge-std/src/Base.sol | 35 + .../erc2470-libs/lib/forge-std/src/Script.sol | 27 + .../lib/forge-std/src/StdAssertions.sol | 669 + .../lib/forge-std/src/StdChains.sol | 263 + .../lib/forge-std/src/StdCheats.sol | 817 + .../lib/forge-std/src/StdError.sol | 15 + .../lib/forge-std/src/StdInvariant.sol | 122 + .../lib/forge-std/src/StdJson.sol | 283 + .../lib/forge-std/src/StdMath.sol | 43 + .../lib/forge-std/src/StdStorage.sol | 473 + .../lib/forge-std/src/StdStyle.sol | 333 + .../lib/forge-std/src/StdToml.sol | 283 + .../lib/forge-std/src/StdUtils.sol | 226 + .../erc2470-libs/lib/forge-std/src/Test.sol | 33 + .../lib/erc2470-libs/lib/forge-std/src/Vm.sol | 1968 ++ .../lib/forge-std/src/console.sol | 1560 ++ .../lib/forge-std/src/console2.sol | 4 + .../lib/forge-std/src/interfaces/IERC1155.sol | 105 + .../lib/forge-std/src/interfaces/IERC165.sol | 12 + .../lib/forge-std/src/interfaces/IERC20.sol | 43 + .../lib/forge-std/src/interfaces/IERC4626.sol | 190 + .../lib/forge-std/src/interfaces/IERC721.sol | 164 + .../forge-std/src/interfaces/IMulticall3.sol | 73 + .../lib/forge-std/src/mocks/MockERC20.sol | 234 + .../lib/forge-std/src/mocks/MockERC721.sol | 231 + .../lib/forge-std/src/safeconsole.sol | 13937 +++++++++++ .../lib/forge-std/test/StdAssertions.t.sol | 145 + .../lib/forge-std/test/StdChains.t.sol | 228 + .../lib/forge-std/test/StdCheats.t.sol | 618 + .../lib/forge-std/test/StdError.t.sol | 120 + .../lib/forge-std/test/StdJson.t.sol | 49 + .../lib/forge-std/test/StdMath.t.sol | 202 + .../lib/forge-std/test/StdStorage.t.sol | 471 + .../lib/forge-std/test/StdStyle.t.sol | 110 + .../lib/forge-std/test/StdToml.t.sol | 49 + .../lib/forge-std/test/StdUtils.t.sol | 342 + .../erc2470-libs/lib/forge-std/test/Vm.t.sol | 18 + .../test/compilation/CompilationScript.sol | 10 + .../compilation/CompilationScriptBase.sol | 10 + .../test/compilation/CompilationTest.sol | 10 + .../test/compilation/CompilationTestBase.sol | 10 + .../test/fixtures/broadcast.log.json | 187 + .../lib/forge-std/test/fixtures/test.json | 8 + .../lib/forge-std/test/fixtures/test.toml | 6 + .../lib/forge-std/test/mocks/MockERC20.t.sol | 441 + .../lib/forge-std/test/mocks/MockERC721.t.sol | 721 + .../script/MockERC20Deployer.s.sol | 14 + .../script/SingletonDeployer.s.sol | 66 + .../erc2470-libs/src/ISingletonFactory.sol | 12 + .../sequence-v3/lib/forge-std/.gitattributes | 1 + .../lib/forge-std/.github/workflows/ci.yml | 128 + .../lib/forge-std/.github/workflows/sync.yml | 31 + .../sequence-v3/lib/forge-std/CONTRIBUTING.md | 193 + .../sequence-v3/lib/forge-std/LICENSE-APACHE | 203 + .../lib/sequence-v3/lib/forge-std/LICENSE-MIT | 25 + .../lib/sequence-v3/lib/forge-std/README.md | 268 + .../sequence-v3/lib/forge-std/foundry.toml | 23 + .../sequence-v3/lib/forge-std/package.json | 16 + .../sequence-v3/lib/forge-std/scripts/vm.py | 646 + .../sequence-v3/lib/forge-std/src/Base.sol | 42 + .../sequence-v3/lib/forge-std/src/Script.sol | 28 + .../lib/forge-std/src/StdAssertions.sol | 669 + .../lib/forge-std/src/StdChains.sol | 286 + .../lib/forge-std/src/StdCheats.sol | 829 + .../lib/forge-std/src/StdConstants.sol | 30 + .../lib/forge-std/src/StdError.sol | 15 + .../lib/forge-std/src/StdInvariant.sol | 122 + .../sequence-v3/lib/forge-std/src/StdJson.sol | 283 + .../sequence-v3/lib/forge-std/src/StdMath.sol | 43 + .../lib/forge-std/src/StdStorage.sol | 473 + .../lib/forge-std/src/StdStyle.sol | 333 + .../sequence-v3/lib/forge-std/src/StdToml.sol | 283 + .../lib/forge-std/src/StdUtils.sol | 209 + .../sequence-v3/lib/forge-std/src/Test.sol | 34 + .../lib/sequence-v3/lib/forge-std/src/Vm.sol | 2397 ++ .../sequence-v3/lib/forge-std/src/console.sol | 1560 ++ .../lib/forge-std/src/console2.sol | 4 + .../lib/forge-std/src/interfaces/IERC1155.sol | 105 + .../lib/forge-std/src/interfaces/IERC165.sol | 12 + .../lib/forge-std/src/interfaces/IERC20.sol | 43 + .../lib/forge-std/src/interfaces/IERC4626.sol | 190 + .../lib/forge-std/src/interfaces/IERC6909.sol | 72 + .../lib/forge-std/src/interfaces/IERC721.sol | 164 + .../lib/forge-std/src/interfaces/IERC7540.sol | 150 + .../lib/forge-std/src/interfaces/IERC7575.sol | 241 + .../forge-std/src/interfaces/IMulticall3.sol | 73 + .../lib/forge-std/src/safeconsole.sol | 13937 +++++++++++ .../lib/forge-std/test/CommonBase.t.sol | 44 + .../lib/forge-std/test/StdAssertions.t.sol | 141 + .../lib/forge-std/test/StdChains.t.sol | 227 + .../lib/forge-std/test/StdCheats.t.sol | 639 + .../lib/forge-std/test/StdConstants.t.sol | 38 + .../lib/forge-std/test/StdError.t.sol | 120 + .../lib/forge-std/test/StdJson.t.sol | 49 + .../lib/forge-std/test/StdMath.t.sol | 202 + .../lib/forge-std/test/StdStorage.t.sol | 488 + .../lib/forge-std/test/StdStyle.t.sol | 110 + .../lib/forge-std/test/StdToml.t.sol | 49 + .../lib/forge-std/test/StdUtils.t.sol | 342 + .../sequence-v3/lib/forge-std/test/Vm.t.sol | 18 + .../test/compilation/CompilationScript.sol | 10 + .../compilation/CompilationScriptBase.sol | 10 + .../test/compilation/CompilationTest.sol | 10 + .../test/compilation/CompilationTestBase.sol | 10 + .../test/fixtures/broadcast.log.json | 187 + .../lib/forge-std/test/fixtures/test.json | 8 + .../lib/forge-std/test/fixtures/test.toml | 6 + .../.changeset/config.json | 12 + .../lib/openzeppelin-contracts/.codecov.yml | 16 + .../lib/openzeppelin-contracts/.editorconfig | 21 + .../openzeppelin-contracts/.githooks/pre-push | 8 + .../.github/ISSUE_TEMPLATE/bug_report.md | 20 + .../.github/ISSUE_TEMPLATE/config.yml | 4 + .../.github/ISSUE_TEMPLATE/feature_request.md | 15 + .../.github/PULL_REQUEST_TEMPLATE.md | 19 + .../.github/actions/gas-compare/action.yml | 50 + .../.github/actions/setup/action.yml | 22 + .../.github/actions/storage-layout/action.yml | 56 + .../.github/workflows/actionlint.yml | 18 + .../.github/workflows/changeset.yml | 28 + .../.github/workflows/checks.yml | 136 + .../.github/workflows/docs.yml | 19 + .../.github/workflows/formal-verification.yml | 86 + .../.github/workflows/release-cycle.yml | 212 + .../.github/workflows/upgradeable.yml | 34 + .../lib/openzeppelin-contracts/.gitmodules | 10 + .../lib/openzeppelin-contracts/.mocharc.js | 4 + .../lib/openzeppelin-contracts/.prettierrc | 15 + .../lib/openzeppelin-contracts/.solcover.js | 21 + .../lib/openzeppelin-contracts/CHANGELOG.md | 1158 + .../openzeppelin-contracts/CODE_OF_CONDUCT.md | 73 + .../openzeppelin-contracts/CONTRIBUTING.md | 36 + .../lib/openzeppelin-contracts/FUNDING.json | 7 + .../lib/openzeppelin-contracts/GUIDELINES.md | 154 + .../lib/openzeppelin-contracts/LICENSE | 22 + .../lib/openzeppelin-contracts/README.md | 106 + .../lib/openzeppelin-contracts/RELEASING.md | 45 + .../lib/openzeppelin-contracts/SECURITY.md | 43 + .../openzeppelin-contracts/audits/2017-03.md | 293 + .../openzeppelin-contracts/audits/2018-10.pdf | Bin 0 -> 1000527 bytes .../audits/2022-10-Checkpoints.pdf | Bin 0 -> 155606 bytes .../audits/2022-10-ERC4626.pdf | Bin 0 -> 204184 bytes .../audits/2023-05-v4.9.pdf | Bin 0 -> 485395 bytes .../audits/2023-10-v5.0.pdf | Bin 0 -> 910284 bytes .../audits/2024-10-v5.1.pdf | Bin 0 -> 395831 bytes .../openzeppelin-contracts/audits/README.md | 18 + .../openzeppelin-contracts/certora/Makefile | 54 + .../openzeppelin-contracts/certora/README.md | 60 + .../access_manager_AccessManager.sol.patch | 97 + .../AccessControlDefaultAdminRulesHarness.sol | 46 + .../harnesses/AccessControlHarness.sol | 6 + .../harnesses/AccessManagedHarness.sol | 36 + .../harnesses/AccessManagerHarness.sol | 116 + .../harnesses/DoubleEndedQueueHarness.sol | 58 + .../harnesses/ERC20FlashMintHarness.sol | 36 + .../certora/harnesses/ERC20PermitHarness.sol | 16 + .../certora/harnesses/ERC20WrapperHarness.sol | 34 + .../harnesses/ERC3156FlashBorrowerHarness.sol | 13 + .../certora/harnesses/ERC721Harness.sol | 33 + .../harnesses/ERC721ReceiverHarness.sol | 11 + .../harnesses/EnumerableMapHarness.sol | 55 + .../harnesses/EnumerableSetHarness.sol | 35 + .../harnesses/InitializableHarness.sol | 23 + .../certora/harnesses/NoncesHarness.sol | 14 + .../certora/harnesses/Ownable2StepHarness.sol | 10 + .../certora/harnesses/OwnableHarness.sol | 10 + .../certora/harnesses/PausableHarness.sol | 18 + .../harnesses/TimelockControllerHarness.sol | 13 + .../certora/reports/2021-10.pdf | Bin 0 -> 92882 bytes .../certora/reports/2022-03.pdf | Bin 0 -> 199401 bytes .../certora/reports/2022-05.pdf | Bin 0 -> 132223 bytes .../lib/openzeppelin-contracts/certora/run.js | 161 + .../openzeppelin-contracts/certora/specs.json | 110 + .../certora/specs/AccessControl.spec | 119 + .../specs/AccessControlDefaultAdminRules.spec | 464 + .../certora/specs/AccessManaged.spec | 34 + .../certora/specs/AccessManager.spec | 826 + .../certora/specs/DoubleEndedQueue.spec | 300 + .../certora/specs/ERC20.spec | 352 + .../certora/specs/ERC20FlashMint.spec | 55 + .../certora/specs/ERC20Wrapper.spec | 198 + .../certora/specs/ERC721.spec | 679 + .../certora/specs/EnumerableMap.spec | 333 + .../certora/specs/EnumerableSet.spec | 246 + .../certora/specs/Initializable.spec | 165 + .../certora/specs/Nonces.spec | 92 + .../certora/specs/Ownable.spec | 77 + .../certora/specs/Ownable2Step.spec | 108 + .../certora/specs/Pausable.spec | 96 + .../certora/specs/TimelockController.spec | 274 + .../certora/specs/helpers/helpers.spec | 12 + .../certora/specs/methods/IAccessControl.spec | 8 + .../IAccessControlDefaultAdminRules.spec | 36 + .../certora/specs/methods/IAccessManaged.spec | 5 + .../certora/specs/methods/IAccessManager.spec | 33 + .../certora/specs/methods/IERC20.spec | 11 + .../certora/specs/methods/IERC2612.spec | 5 + .../specs/methods/IERC3156FlashBorrower.spec | 3 + .../specs/methods/IERC3156FlashLender.spec | 5 + .../certora/specs/methods/IERC5313.spec | 3 + .../certora/specs/methods/IERC721.spec | 17 + .../specs/methods/IERC721Receiver.spec | 3 + .../certora/specs/methods/IOwnable.spec | 5 + .../certora/specs/methods/IOwnable2Step.spec | 7 + .../contracts/access/AccessControl.sol | 209 + .../contracts/access/IAccessControl.sol | 98 + .../contracts/access/Ownable.sol | 100 + .../contracts/access/Ownable2Step.sol | 67 + .../contracts/access/README.adoc | 45 + .../AccessControlDefaultAdminRules.sol | 396 + .../extensions/AccessControlEnumerable.sol | 82 + .../IAccessControlDefaultAdminRules.sol | 192 + .../extensions/IAccessControlEnumerable.sol | 31 + .../access/manager/AccessManaged.sol | 113 + .../access/manager/AccessManager.sol | 740 + .../access/manager/AuthorityUtils.sol | 32 + .../access/manager/IAccessManaged.sol | 32 + .../access/manager/IAccessManager.sol | 401 + .../contracts/access/manager/IAuthority.sol | 14 + .../contracts/account/README.adoc | 12 + .../account/utils/draft-ERC4337Utils.sol | 170 + .../account/utils/draft-ERC7579Utils.sol | 278 + .../contracts/finance/README.adoc | 14 + .../contracts/finance/VestingWallet.sol | 159 + .../contracts/finance/VestingWalletCliff.sol | 54 + .../contracts/governance/Governor.sol | 833 + .../contracts/governance/IGovernor.sol | 441 + .../contracts/governance/README.adoc | 181 + .../governance/TimelockController.sol | 472 + .../extensions/GovernorCountingFractional.sol | 196 + .../GovernorCountingOverridable.sol | 225 + .../extensions/GovernorCountingSimple.sol | 102 + .../extensions/GovernorPreventLateQuorum.sol | 92 + .../extensions/GovernorSettings.sol | 112 + .../governance/extensions/GovernorStorage.sol | 125 + .../extensions/GovernorTimelockAccess.sol | 349 + .../extensions/GovernorTimelockCompound.sol | 167 + .../extensions/GovernorTimelockControl.sol | 170 + .../governance/extensions/GovernorVotes.sol | 64 + .../GovernorVotesQuorumFraction.sol | 110 + .../contracts/governance/utils/IVotes.sol | 59 + .../contracts/governance/utils/Votes.sol | 252 + .../governance/utils/VotesExtended.sol | 84 + .../contracts/interfaces/IERC1155.sol | 6 + .../interfaces/IERC1155MetadataURI.sol | 6 + .../contracts/interfaces/IERC1155Receiver.sol | 6 + .../contracts/interfaces/IERC1271.sol | 17 + .../contracts/interfaces/IERC1363.sol | 86 + .../contracts/interfaces/IERC1363Receiver.sol | 32 + .../contracts/interfaces/IERC1363Spender.sol | 26 + .../contracts/interfaces/IERC165.sol | 6 + .../interfaces/IERC1820Implementer.sol | 20 + .../contracts/interfaces/IERC1820Registry.sol | 112 + .../contracts/interfaces/IERC1967.sol | 24 + .../contracts/interfaces/IERC20.sol | 6 + .../contracts/interfaces/IERC20Metadata.sol | 6 + .../contracts/interfaces/IERC2309.sol | 19 + .../contracts/interfaces/IERC2612.sol | 8 + .../contracts/interfaces/IERC2981.sol | 26 + .../contracts/interfaces/IERC3156.sol | 7 + .../interfaces/IERC3156FlashBorrower.sol | 27 + .../interfaces/IERC3156FlashLender.sol | 41 + .../contracts/interfaces/IERC4626.sol | 230 + .../contracts/interfaces/IERC4906.sol | 20 + .../contracts/interfaces/IERC5267.sol | 28 + .../contracts/interfaces/IERC5313.sol | 16 + .../contracts/interfaces/IERC5805.sol | 9 + .../contracts/interfaces/IERC6372.sol | 17 + .../contracts/interfaces/IERC721.sol | 6 + .../interfaces/IERC721Enumerable.sol | 6 + .../contracts/interfaces/IERC721Metadata.sol | 6 + .../contracts/interfaces/IERC721Receiver.sol | 6 + .../contracts/interfaces/IERC777.sol | 200 + .../contracts/interfaces/IERC777Recipient.sol | 35 + .../contracts/interfaces/IERC777Sender.sol | 35 + .../contracts/interfaces/README.adoc | 85 + .../contracts/interfaces/draft-IERC1822.sol | 20 + .../contracts/interfaces/draft-IERC4337.sol | 253 + .../contracts/interfaces/draft-IERC6093.sol | 161 + .../contracts/interfaces/draft-IERC7579.sol | 226 + .../contracts/interfaces/draft-IERC7674.sol | 17 + .../contracts/metatx/ERC2771Context.sol | 86 + .../contracts/metatx/ERC2771Forwarder.sol | 369 + .../contracts/metatx/README.adoc | 17 + .../contracts/mocks/AccessManagedTarget.sol | 34 + .../contracts/mocks/AccessManagerMock.sol | 21 + .../contracts/mocks/ArraysMock.sol | 127 + .../contracts/mocks/AuthorityMock.sol | 69 + .../contracts/mocks/Base64Dirty.sol | 19 + .../contracts/mocks/BatchCaller.sol | 20 + .../contracts/mocks/CallReceiverMock.sol | 73 + .../contracts/mocks/ConstructorMock.sol | 34 + .../contracts/mocks/ContextMock.sol | 35 + .../contracts/mocks/DummyImplementation.sol | 65 + .../contracts/mocks/EIP712Verifier.sol | 16 + .../contracts/mocks/ERC1271WalletMock.sol | 24 + .../ERC165/ERC165InterfacesSupported.sol | 58 + .../mocks/ERC165/ERC165MaliciousData.sol | 12 + .../mocks/ERC165/ERC165MissingData.sol | 7 + .../mocks/ERC165/ERC165NotSupported.sol | 5 + .../mocks/ERC165/ERC165ReturnBomb.sol | 18 + .../contracts/mocks/ERC2771ContextMock.sol | 28 + .../mocks/ERC3156FlashBorrowerMock.sol | 53 + .../contracts/mocks/EtherReceiverMock.sol | 17 + .../contracts/mocks/InitializableMock.sol | 130 + .../mocks/MerkleProofCustomHashMock.sol | 62 + .../contracts/mocks/MerkleTreeMock.sol | 44 + .../contracts/mocks/MulticallHelper.sol | 23 + .../MultipleInheritanceInitializableMocks.sol | 131 + .../contracts/mocks/PausableMock.sol | 31 + .../contracts/mocks/ReentrancyAttack.sol | 12 + .../contracts/mocks/ReentrancyMock.sol | 50 + .../mocks/ReentrancyTransientMock.sol | 50 + .../mocks/RegressionImplementation.sol | 61 + .../SingleInheritanceInitializableMocks.sol | 49 + .../contracts/mocks/Stateless.sol | 49 + .../contracts/mocks/StorageSlotMock.sol | 87 + .../contracts/mocks/TimelockReentrant.sol | 26 + .../contracts/mocks/TransientSlotMock.sol | 61 + .../contracts/mocks/UpgradeableBeaconMock.sol | 27 + .../contracts/mocks/VotesExtendedMock.sol | 42 + .../contracts/mocks/VotesMock.sol | 42 + .../mocks/account/utils/ERC7579UtilsMock.sol | 23 + .../contracts/mocks/compound/CompTimelock.sol | 174 + .../mocks/docs/ERC20WithAutoMinerReward.sol | 22 + .../contracts/mocks/docs/ERC4626Fees.sol | 109 + .../contracts/mocks/docs/MyNFT.sol | 9 + .../AccessControlERC20MintBase.sol | 25 + .../AccessControlERC20MintMissing.sol | 24 + .../AccessControlERC20MintOnlyRole.sol | 23 + .../access-control/AccessControlModified.sol | 14 + .../AccessControlNonRevokableAdmin.sol | 17 + .../AccessManagedERC20MintBase.sol | 16 + .../docs/access-control/MyContractOwnable.sol | 17 + .../mocks/docs/governance/MyGovernor.sol | 81 + .../mocks/docs/governance/MyToken.sol | 21 + .../docs/governance/MyTokenTimestampBased.sol | 32 + .../mocks/docs/governance/MyTokenWrapped.sol | 28 + .../mocks/docs/token/ERC1155/GameItems.sol | 21 + .../token/ERC1155/MyERC115HolderContract.sol | 7 + .../mocks/docs/token/ERC20/GLDToken.sol | 11 + .../mocks/docs/token/ERC721/GameItem.sol | 19 + .../mocks/docs/utilities/Base64NFT.sol | 27 + .../mocks/docs/utilities/Multicall.sol | 15 + .../GovernorCountingOverridableMock.sol | 18 + .../governance/GovernorFractionalMock.sol | 14 + .../mocks/governance/GovernorMock.sol | 14 + .../GovernorPreventLateQuorumMock.sol | 40 + .../mocks/governance/GovernorStorageMock.sol | 79 + .../governance/GovernorTimelockAccessMock.sol | 70 + .../GovernorTimelockCompoundMock.sol | 69 + .../GovernorTimelockControlMock.sol | 69 + .../mocks/governance/GovernorVoteMock.sol | 20 + .../governance/GovernorWithParamsMock.sol | 51 + .../contracts/mocks/proxy/BadBeacon.sol | 11 + .../mocks/proxy/ClashingImplementation.sol | 19 + .../mocks/proxy/UUPSUpgradeableMock.sol | 35 + .../mocks/token/ERC1155ReceiverMock.sol | 74 + .../mocks/token/ERC1363ForceApproveMock.sol | 14 + .../mocks/token/ERC1363NoReturnMock.sol | 34 + .../mocks/token/ERC1363ReceiverMock.sol | 52 + .../mocks/token/ERC1363ReturnFalseMock.sol | 34 + .../mocks/token/ERC1363SpenderMock.sol | 47 + .../mocks/token/ERC20ApprovalMock.sol | 10 + .../mocks/token/ERC20DecimalsMock.sol | 17 + .../mocks/token/ERC20ExcessDecimalsMock.sol | 9 + .../mocks/token/ERC20FlashMintMock.sol | 26 + .../mocks/token/ERC20ForceApproveMock.sol | 13 + .../mocks/token/ERC20GetterHelper.sol | 38 + .../contracts/mocks/token/ERC20Mock.sol | 16 + .../mocks/token/ERC20MulticallMock.sol | 8 + .../mocks/token/ERC20NoReturnMock.sol | 28 + .../contracts/mocks/token/ERC20Reentrant.sol | 39 + .../mocks/token/ERC20ReturnFalseMock.sol | 19 + .../ERC20VotesAdditionalCheckpointsMock.sol | 31 + .../mocks/token/ERC20VotesLegacyMock.sol | 253 + .../mocks/token/ERC20VotesTimestampMock.sol | 29 + .../mocks/token/ERC4626LimitsMock.sol | 23 + .../contracts/mocks/token/ERC4626Mock.sol | 17 + .../mocks/token/ERC4626OffsetMock.sol | 17 + .../contracts/mocks/token/ERC4646FeesMock.sol | 40 + .../token/ERC721ConsecutiveEnumerableMock.sol | 42 + .../mocks/token/ERC721ConsecutiveMock.sol | 61 + .../mocks/token/ERC721ReceiverMock.sol | 47 + .../mocks/token/ERC721URIStorageMock.sol | 17 + .../contracts/package.json | 32 + .../contracts/proxy/Clones.sol | 262 + .../contracts/proxy/ERC1967/ERC1967Proxy.sol | 40 + .../contracts/proxy/ERC1967/ERC1967Utils.sol | 177 + .../contracts/proxy/Proxy.sol | 69 + .../contracts/proxy/README.adoc | 87 + .../contracts/proxy/beacon/BeaconProxy.sol | 57 + .../contracts/proxy/beacon/IBeacon.sol | 16 + .../proxy/beacon/UpgradeableBeacon.sol | 70 + .../proxy/transparent/ProxyAdmin.sol | 45 + .../TransparentUpgradeableProxy.sol | 118 + .../contracts/proxy/utils/Initializable.sol | 228 + .../contracts/proxy/utils/UUPSUpgradeable.sol | 147 + .../contracts/token/ERC1155/ERC1155.sol | 401 + .../contracts/token/ERC1155/IERC1155.sol | 123 + .../token/ERC1155/IERC1155Receiver.sol | 59 + .../contracts/token/ERC1155/README.adoc | 43 + .../ERC1155/extensions/ERC1155Burnable.sol | 28 + .../ERC1155/extensions/ERC1155Pausable.sol | 38 + .../ERC1155/extensions/ERC1155Supply.sol | 90 + .../ERC1155/extensions/ERC1155URIStorage.sol | 61 + .../extensions/IERC1155MetadataURI.sol | 20 + .../token/ERC1155/utils/ERC1155Holder.sol | 42 + .../token/ERC1155/utils/ERC1155Utils.sol | 88 + .../contracts/token/ERC20/ERC20.sol | 312 + .../contracts/token/ERC20/IERC20.sol | 79 + .../contracts/token/ERC20/README.adoc | 75 + .../token/ERC20/extensions/ERC1363.sol | 137 + .../token/ERC20/extensions/ERC20Burnable.sol | 39 + .../token/ERC20/extensions/ERC20Capped.sol | 56 + .../token/ERC20/extensions/ERC20FlashMint.sol | 134 + .../token/ERC20/extensions/ERC20Pausable.sol | 33 + .../token/ERC20/extensions/ERC20Permit.sol | 83 + .../token/ERC20/extensions/ERC20Votes.sol | 83 + .../token/ERC20/extensions/ERC20Wrapper.sol | 91 + .../token/ERC20/extensions/ERC4626.sol | 282 + .../token/ERC20/extensions/IERC20Metadata.sol | 26 + .../token/ERC20/extensions/IERC20Permit.sol | 90 + .../draft-ERC20TemporaryApproval.sol | 119 + .../token/ERC20/utils/ERC1363Utils.sol | 95 + .../contracts/token/ERC20/utils/SafeERC20.sol | 198 + .../contracts/token/ERC721/ERC721.sol | 456 + .../contracts/token/ERC721/IERC721.sol | 135 + .../token/ERC721/IERC721Receiver.sol | 28 + .../contracts/token/ERC721/README.adoc | 69 + .../ERC721/extensions/ERC721Burnable.sol | 26 + .../ERC721/extensions/ERC721Consecutive.sol | 176 + .../ERC721/extensions/ERC721Enumerable.sol | 174 + .../ERC721/extensions/ERC721Pausable.sol | 37 + .../token/ERC721/extensions/ERC721Royalty.sol | 27 + .../ERC721/extensions/ERC721URIStorage.sol | 61 + .../token/ERC721/extensions/ERC721Votes.sol | 47 + .../token/ERC721/extensions/ERC721Wrapper.sol | 102 + .../ERC721/extensions/IERC721Enumerable.sol | 29 + .../ERC721/extensions/IERC721Metadata.sol | 27 + .../token/ERC721/utils/ERC721Holder.sol | 24 + .../token/ERC721/utils/ERC721Utils.sol | 50 + .../contracts/token/common/ERC2981.sol | 143 + .../contracts/token/common/README.adoc | 10 + .../contracts/utils/Address.sol | 150 + .../contracts/utils/Arrays.sol | 482 + .../contracts/utils/Base64.sol | 123 + .../contracts/utils/Bytes.sol | 114 + .../contracts/utils/CAIP10.sol | 54 + .../contracts/utils/CAIP2.sol | 51 + .../contracts/utils/Comparators.sol | 19 + .../contracts/utils/Context.sol | 28 + .../contracts/utils/Create2.sol | 92 + .../contracts/utils/Errors.sol | 34 + .../contracts/utils/Multicall.sol | 37 + .../contracts/utils/Nonces.sol | 46 + .../contracts/utils/NoncesKeyed.sol | 74 + .../contracts/utils/Packing.sol | 1656 ++ .../contracts/utils/Panic.sol | 57 + .../contracts/utils/Pausable.sol | 119 + .../contracts/utils/README.adoc | 149 + .../contracts/utils/ReentrancyGuard.sol | 87 + .../utils/ReentrancyGuardTransient.sol | 61 + .../contracts/utils/ShortStrings.sol | 122 + .../contracts/utils/SlotDerivation.sol | 155 + .../contracts/utils/StorageSlot.sol | 143 + .../contracts/utils/Strings.sol | 441 + .../contracts/utils/TransientSlot.sol | 183 + .../contracts/utils/cryptography/ECDSA.sol | 180 + .../contracts/utils/cryptography/EIP712.sol | 160 + .../contracts/utils/cryptography/Hashes.sol | 31 + .../utils/cryptography/MerkleProof.sol | 514 + .../utils/cryptography/MessageHashUtils.sol | 84 + .../contracts/utils/cryptography/P256.sol | 370 + .../contracts/utils/cryptography/RSA.sol | 154 + .../utils/cryptography/SignatureChecker.sol | 50 + .../contracts/utils/introspection/ERC165.sol | 27 + .../utils/introspection/ERC165Checker.sol | 124 + .../contracts/utils/introspection/IERC165.sol | 25 + .../contracts/utils/math/Math.sol | 685 + .../contracts/utils/math/SafeCast.sol | 1162 + .../contracts/utils/math/SignedMath.sol | 68 + .../contracts/utils/structs/BitMaps.sol | 60 + .../contracts/utils/structs/Checkpoints.sol | 630 + .../utils/structs/CircularBuffer.sol | 140 + .../utils/structs/DoubleEndedQueue.sol | 156 + .../contracts/utils/structs/EnumerableMap.sol | 905 + .../contracts/utils/structs/EnumerableSet.sol | 375 + .../contracts/utils/structs/Heap.sol | 256 + .../contracts/utils/structs/MerkleTree.sol | 175 + .../contracts/utils/types/Time.sol | 133 + .../vendor/compound/ICompoundTimelock.sol | 86 + .../contracts/vendor/compound/LICENSE | 11 + .../lib/openzeppelin-contracts/docs/README.md | 16 + .../openzeppelin-contracts/docs/antora.yml | 7 + .../lib/openzeppelin-contracts/docs/config.js | 21 + .../ROOT/images/access-control-multiple.svg | 97 + .../ROOT/images/access-manager-functions.svg | 47 + .../modules/ROOT/images/access-manager.svg | 99 + .../modules/ROOT/images/erc4626-attack-3a.png | Bin 0 -> 60433 bytes .../modules/ROOT/images/erc4626-attack-3b.png | Bin 0 -> 66184 bytes .../modules/ROOT/images/erc4626-attack-6.png | Bin 0 -> 56290 bytes .../modules/ROOT/images/erc4626-attack.png | Bin 0 -> 58886 bytes .../modules/ROOT/images/erc4626-deposit.png | Bin 0 -> 115497 bytes .../docs/modules/ROOT/images/erc4626-mint.png | Bin 0 -> 112787 bytes .../ROOT/images/erc4626-rate-linear.png | Bin 0 -> 50813 bytes .../ROOT/images/erc4626-rate-loglog.png | Bin 0 -> 72818 bytes .../ROOT/images/erc4626-rate-loglogext.png | Bin 0 -> 109923 bytes .../docs/modules/ROOT/images/tally-exec.png | Bin 0 -> 231859 bytes .../docs/modules/ROOT/images/tally-vote.png | Bin 0 -> 40507 bytes .../docs/modules/ROOT/nav.adoc | 23 + .../modules/ROOT/pages/access-control.adoc | 288 + .../ROOT/pages/backwards-compatibility.adoc | 48 + .../docs/modules/ROOT/pages/crowdsales.adoc | 11 + .../docs/modules/ROOT/pages/drafts.adoc | 19 + .../docs/modules/ROOT/pages/erc1155.adoc | 118 + .../docs/modules/ROOT/pages/erc20-supply.adoc | 71 + .../docs/modules/ROOT/pages/erc20.adoc | 67 + .../docs/modules/ROOT/pages/erc4626.adoc | 214 + .../docs/modules/ROOT/pages/erc721.adoc | 58 + .../ROOT/pages/extending-contracts.adoc | 51 + .../docs/modules/ROOT/pages/faq.adoc | 13 + .../docs/modules/ROOT/pages/governance.adoc | 239 + .../docs/modules/ROOT/pages/index.adoc | 70 + .../docs/modules/ROOT/pages/tokens.adoc | 31 + .../docs/modules/ROOT/pages/upgradeable.adoc | 77 + .../docs/modules/ROOT/pages/utilities.adoc | 388 + .../docs/modules/ROOT/pages/wizard.adoc | 15 + .../docs/templates/contract.hbs | 137 + .../docs/templates/helpers.js | 46 + .../docs/templates/page.hbs | 4 + .../docs/templates/properties.js | 72 + .../openzeppelin-contracts/eslint.config.mjs | 26 + .../lib/openzeppelin-contracts/foundry.toml | 15 + .../fv-requirements.txt | 4 + .../openzeppelin-contracts/hardhat.config.js | 124 + .../hardhat/async-test-sanity.js | 3 + .../hardhat/env-artifacts.js | 29 + .../hardhat/ignore-unreachable-warnings.js | 45 + .../hardhat/remappings.js | 18 + .../hardhat/skip-foundry-tests.js | 6 + .../hardhat/task-test-get-files.js | 25 + .../lib/erc4626-tests/ERC4626.prop.sol | 404 + .../lib/erc4626-tests/ERC4626.test.sol | 349 + .../lib/erc4626-tests/LICENSE | 661 + .../lib/erc4626-tests/README.md | 121 + .../lib/forge-std/.gitattributes | 1 + .../lib/forge-std/.github/workflows/ci.yml | 128 + .../lib/forge-std/.github/workflows/sync.yml | 31 + .../lib/forge-std/LICENSE-APACHE | 203 + .../lib/forge-std/LICENSE-MIT | 25 + .../lib/forge-std/README.md | 235 + .../lib/forge-std/foundry.toml | 21 + .../lib/forge-std/package.json | 16 + .../lib/forge-std/scripts/vm.py | 635 + .../lib/forge-std/src/Base.sol | 35 + .../lib/forge-std/src/Script.sol | 27 + .../lib/forge-std/src/StdAssertions.sol | 669 + .../lib/forge-std/src/StdChains.sol | 263 + .../lib/forge-std/src/StdCheats.sol | 817 + .../lib/forge-std/src/StdError.sol | 15 + .../lib/forge-std/src/StdInvariant.sol | 122 + .../lib/forge-std/src/StdJson.sol | 283 + .../lib/forge-std/src/StdMath.sol | 43 + .../lib/forge-std/src/StdStorage.sol | 473 + .../lib/forge-std/src/StdStyle.sol | 333 + .../lib/forge-std/src/StdToml.sol | 283 + .../lib/forge-std/src/StdUtils.sol | 226 + .../lib/forge-std/src/Test.sol | 33 + .../lib/forge-std/src/Vm.sol | 1968 ++ .../lib/forge-std/src/console.sol | 1560 ++ .../lib/forge-std/src/console2.sol | 4 + .../lib/forge-std/src/interfaces/IERC1155.sol | 105 + .../lib/forge-std/src/interfaces/IERC165.sol | 12 + .../lib/forge-std/src/interfaces/IERC20.sol | 43 + .../lib/forge-std/src/interfaces/IERC4626.sol | 190 + .../lib/forge-std/src/interfaces/IERC721.sol | 164 + .../forge-std/src/interfaces/IMulticall3.sol | 73 + .../lib/forge-std/src/mocks/MockERC20.sol | 234 + .../lib/forge-std/src/mocks/MockERC721.sol | 231 + .../lib/forge-std/src/safeconsole.sol | 13937 +++++++++++ .../lib/forge-std/test/StdAssertions.t.sol | 145 + .../lib/forge-std/test/StdChains.t.sol | 228 + .../lib/forge-std/test/StdCheats.t.sol | 618 + .../lib/forge-std/test/StdError.t.sol | 120 + .../lib/forge-std/test/StdJson.t.sol | 49 + .../lib/forge-std/test/StdMath.t.sol | 202 + .../lib/forge-std/test/StdStorage.t.sol | 471 + .../lib/forge-std/test/StdStyle.t.sol | 110 + .../lib/forge-std/test/StdToml.t.sol | 49 + .../lib/forge-std/test/StdUtils.t.sol | 342 + .../lib/forge-std/test/Vm.t.sol | 18 + .../test/compilation/CompilationScript.sol | 10 + .../compilation/CompilationScriptBase.sol | 10 + .../test/compilation/CompilationTest.sol | 10 + .../test/compilation/CompilationTestBase.sol | 10 + .../test/fixtures/broadcast.log.json | 187 + .../lib/forge-std/test/fixtures/test.json | 8 + .../lib/forge-std/test/fixtures/test.toml | 6 + .../lib/forge-std/test/mocks/MockERC20.t.sol | 441 + .../lib/forge-std/test/mocks/MockERC721.t.sol | 721 + .../lib/halmos-cheatcodes/LICENSE | 661 + .../lib/halmos-cheatcodes/README.md | 100 + .../lib/halmos-cheatcodes/src/SVM.sol | 35 + .../lib/halmos-cheatcodes/src/SymTest.sol | 11 + .../lib/openzeppelin-contracts/logo.svg | 15 + .../lib/openzeppelin-contracts/netlify.toml | 3 + .../openzeppelin-contracts/package-lock.json | 11554 +++++++++ .../lib/openzeppelin-contracts/package.json | 92 + .../lib/openzeppelin-contracts/remappings.txt | 1 + .../lib/openzeppelin-contracts/renovate.json | 4 + .../scripts/checks/compare-layout.js | 20 + .../scripts/checks/compareGasReports.js | 247 + .../scripts/checks/coverage.sh | 18 + .../scripts/checks/extract-layout.js | 38 + .../scripts/checks/generation.sh | 6 + .../scripts/checks/inheritance-ordering.js | 55 + .../scripts/checks/pragma-consistency.js | 49 + .../openzeppelin-contracts/scripts/gen-nav.js | 41 + .../scripts/generate/format-lines.js | 16 + .../scripts/generate/helpers/sanitize.js | 5 + .../scripts/generate/run.js | 58 + .../scripts/generate/templates/Arrays.js | 384 + .../scripts/generate/templates/Arrays.opts.js | 3 + .../scripts/generate/templates/Checkpoints.js | 242 + .../generate/templates/Checkpoints.opts.js | 17 + .../generate/templates/Checkpoints.t.js | 137 + .../generate/templates/EnumerableMap.js | 272 + .../generate/templates/EnumerableMap.opts.js | 19 + .../generate/templates/EnumerableSet.js | 247 + .../generate/templates/EnumerableSet.opts.js | 12 + .../scripts/generate/templates/MerkleProof.js | 187 + .../generate/templates/MerkleProof.opts.js | 11 + .../scripts/generate/templates/Packing.js | 92 + .../generate/templates/Packing.opts.js | 3 + .../scripts/generate/templates/Packing.t.js | 48 + .../scripts/generate/templates/SafeCast.js | 136 + .../scripts/generate/templates/Slot.opts.js | 15 + .../generate/templates/SlotDerivation.js | 119 + .../generate/templates/SlotDerivation.t.js | 127 + .../scripts/generate/templates/StorageSlot.js | 77 + .../generate/templates/StorageSlotMock.js | 57 + .../generate/templates/TransientSlot.js | 80 + .../generate/templates/TransientSlotMock.js | 35 + .../scripts/generate/templates/conversion.js | 30 + .../scripts/git-user-config.sh | 6 + .../openzeppelin-contracts/scripts/helpers.js | 7 + .../openzeppelin-contracts/scripts/prepack.sh | 23 + .../scripts/prepare-docs.sh | 26 + .../openzeppelin-contracts/scripts/prepare.sh | 5 + .../scripts/release/format-changelog.js | 33 + .../scripts/release/synchronize-versions.js | 15 + .../scripts/release/update-comment.js | 34 + .../scripts/release/version.sh | 11 + .../release/workflow/exit-prerelease.sh | 8 + .../release/workflow/github-release.js | 48 + .../release/workflow/integrity-check.sh | 20 + .../scripts/release/workflow/pack.sh | 26 + .../scripts/release/workflow/publish.sh | 26 + .../scripts/release/workflow/rerun.js | 7 + .../workflow/set-changesets-pr-title.js | 17 + .../scripts/release/workflow/start.sh | 35 + .../scripts/release/workflow/state.js | 112 + .../scripts/remove-ignored-artifacts.js | 45 + .../scripts/solhint-custom/index.js | 84 + .../scripts/solhint-custom/package.json | 5 + .../scripts/update-docs-branch.js | 65 + .../scripts/upgradeable/README.md | 21 + .../scripts/upgradeable/patch-apply.sh | 19 + .../scripts/upgradeable/patch-save.sh | 18 + .../scripts/upgradeable/transpile-onto.sh | 54 + .../scripts/upgradeable/transpile.sh | 50 + .../scripts/upgradeable/upgradeable.patch | 361 + .../slither.config.json | 5 + .../openzeppelin-contracts/solhint.config.js | 26 + .../openzeppelin-contracts/test/TESTING.md | 3 + .../test/access/AccessControl.behavior.js | 874 + .../test/access/AccessControl.test.js | 19 + .../test/access/Ownable.test.js | 79 + .../test/access/Ownable2Step.test.js | 102 + .../AccessControlDefaultAdminRules.test.js | 32 + .../AccessControlEnumerable.test.js | 24 + .../test/access/manager/AccessManaged.test.js | 146 + .../access/manager/AccessManager.behavior.js | 257 + .../access/manager/AccessManager.predicate.js | 456 + .../test/access/manager/AccessManager.test.js | 2489 ++ .../access/manager/AuthorityUtils.test.js | 102 + .../account/utils/draft-ERC4337Utils.test.js | 288 + .../account/utils/draft-ERC7579Utils.t.sol | 421 + .../account/utils/draft-ERC7579Utils.test.js | 353 + .../test/bin/EntryPoint070.abi | 1 + .../test/bin/EntryPoint070.bytecode | Bin 0 -> 16035 bytes .../test/bin/SenderCreator070.abi | 1 + .../test/bin/SenderCreator070.bytecode | Bin 0 -> 451 bytes .../test/finance/VestingWallet.behavior.js | 87 + .../test/finance/VestingWallet.test.js | 65 + .../test/finance/VestingWalletCliff.test.js | 70 + .../test/governance/Governor.t.sol | 55 + .../test/governance/Governor.test.js | 992 + .../governance/TimelockController.test.js | 1279 + .../GovernorCountingFractional.test.js | 248 + .../GovernorCountingOverridable.test.js | 346 + .../extensions/GovernorERC721.test.js | 131 + .../GovernorPreventLateQuorum.test.js | 185 + .../extensions/GovernorStorage.test.js | 155 + .../extensions/GovernorTimelockAccess.test.js | 864 + .../GovernorTimelockCompound.test.js | 448 + .../GovernorTimelockControl.test.js | 504 + .../GovernorVotesQuorumFraction.test.js | 165 + .../extensions/GovernorWithParams.test.js | 245 + .../test/governance/utils/ERC6372.behavior.js | 28 + .../test/governance/utils/Votes.behavior.js | 325 + .../test/governance/utils/Votes.test.js | 102 + .../governance/utils/VotesExtended.test.js | 152 + .../test/helpers/access-manager.js | 85 + .../test/helpers/account.js | 14 + .../test/helpers/chains.js | 109 + .../test/helpers/constants.js | 4 + .../test/helpers/deploy.js | 14 + .../test/helpers/eip712-types.js | 59 + .../test/helpers/eip712.js | 45 + .../test/helpers/enums.js | 12 + .../test/helpers/erc4337-entrypoint.js | 31 + .../test/helpers/erc4337.js | 111 + .../test/helpers/erc7579.js | 58 + .../test/helpers/governance.js | 215 + .../test/helpers/iterate.js | 36 + .../test/helpers/math.js | 33 + .../test/helpers/methods.js | 14 + .../test/helpers/random.js | 19 + .../test/helpers/storage.js | 48 + .../test/helpers/strings.js | 5 + .../test/helpers/time.js | 30 + .../test/helpers/txpool.js | 29 + .../test/metatx/ERC2771Context.test.js | 133 + .../test/metatx/ERC2771Forwarder.t.sol | 279 + .../test/metatx/ERC2771Forwarder.test.js | 384 + .../test/proxy/Clones.behaviour.js | 160 + .../test/proxy/Clones.t.sol | 91 + .../test/proxy/Clones.test.js | 175 + .../test/proxy/ERC1967/ERC1967Proxy.test.js | 23 + .../test/proxy/ERC1967/ERC1967Utils.test.js | 162 + .../test/proxy/Proxy.behaviour.js | 185 + .../test/proxy/beacon/BeaconProxy.test.js | 141 + .../proxy/beacon/UpgradeableBeacon.test.js | 55 + .../test/proxy/transparent/ProxyAdmin.test.js | 82 + .../TransparentUpgradeableProxy.behaviour.js | 357 + .../TransparentUpgradeableProxy.test.js | 28 + .../test/proxy/utils/Initializable.test.js | 216 + .../test/proxy/utils/UUPSUpgradeable.test.js | 120 + .../test/sanity.test.js | 27 + .../test/token/ERC1155/ERC1155.behavior.js | 763 + .../test/token/ERC1155/ERC1155.test.js | 213 + .../extensions/ERC1155Burnable.test.js | 66 + .../extensions/ERC1155Pausable.test.js | 105 + .../ERC1155/extensions/ERC1155Supply.test.js | 119 + .../extensions/ERC1155URIStorage.test.js | 70 + .../token/ERC1155/utils/ERC1155Holder.test.js | 56 + .../token/ERC1155/utils/ERC1155Utils.test.js | 299 + .../test/token/ERC20/ERC20.behavior.js | 269 + .../test/token/ERC20/ERC20.test.js | 199 + .../token/ERC20/extensions/ERC1363.test.js | 370 + .../ERC20/extensions/ERC20Burnable.test.js | 105 + .../ERC20/extensions/ERC20Capped.test.js | 55 + .../ERC20/extensions/ERC20FlashMint.test.js | 164 + .../ERC20/extensions/ERC20Pausable.test.js | 129 + .../ERC20/extensions/ERC20Permit.test.js | 109 + .../token/ERC20/extensions/ERC20Votes.test.js | 546 + .../ERC20/extensions/ERC20Wrapper.test.js | 203 + .../test/token/ERC20/extensions/ERC4626.t.sol | 41 + .../token/ERC20/extensions/ERC4626.test.js | 888 + .../draft-ERC20TemporaryApproval.test.js | 142 + .../test/token/ERC20/utils/SafeERC20.test.js | 427 + .../test/token/ERC721/ERC721.behavior.js | 972 + .../test/token/ERC721/ERC721.test.js | 23 + .../token/ERC721/ERC721Enumerable.test.js | 28 + .../ERC721/extensions/ERC721Burnable.test.js | 77 + .../ERC721/extensions/ERC721Consecutive.t.sol | 181 + .../extensions/ERC721Consecutive.test.js | 236 + .../ERC721/extensions/ERC721Pausable.test.js | 81 + .../ERC721/extensions/ERC721Royalty.test.js | 57 + .../extensions/ERC721URIStorage.test.js | 121 + .../ERC721/extensions/ERC721Votes.test.js | 194 + .../ERC721/extensions/ERC721Wrapper.test.js | 201 + .../token/ERC721/utils/ERC721Holder.test.js | 20 + .../token/ERC721/utils/ERC721Utils.test.js | 94 + .../test/token/common/ERC2981.behavior.js | 152 + .../test/utils/Address.test.js | 281 + .../test/utils/Arrays.t.sol | 31 + .../test/utils/Arrays.test.js | 223 + .../test/utils/Base64.t.sol | 34 + .../test/utils/Base64.test.js | 59 + .../test/utils/Bytes.test.js | 88 + .../test/utils/CAIP.test.js | 53 + .../test/utils/Context.behavior.js | 48 + .../test/utils/Context.test.js | 18 + .../test/utils/Create2.t.sol | 17 + .../test/utils/Create2.test.js | 190 + .../test/utils/Multicall.test.js | 72 + .../test/utils/Nonces.behavior.js | 189 + .../test/utils/Nonces.test.js | 16 + .../test/utils/NoncesKeyed.test.js | 17 + .../test/utils/Packing.t.sol | 993 + .../test/utils/Packing.test.js | 70 + .../test/utils/Panic.test.js | 37 + .../test/utils/Pausable.test.js | 90 + .../test/utils/ReentrancyGuard.test.js | 50 + .../test/utils/ShortStrings.t.sol | 109 + .../test/utils/ShortStrings.test.js | 64 + .../test/utils/SlotDerivation.t.sol | 248 + .../test/utils/SlotDerivation.test.js | 58 + .../test/utils/StorageSlot.test.js | 73 + .../test/utils/Strings.t.sol | 50 + .../test/utils/Strings.test.js | 342 + .../test/utils/TransientSlot.test.js | 59 + .../test/utils/cryptography/ECDSA.test.js | 211 + .../test/utils/cryptography/EIP712.test.js | 105 + .../utils/cryptography/MerkleProof.test.js | 213 + .../cryptography/MessageHashUtils.test.js | 68 + .../test/utils/cryptography/P256.t.sol | 44 + .../test/utils/cryptography/P256.test.js | 156 + .../test/utils/cryptography/RSA.helper.js | 17 + .../test/utils/cryptography/RSA.test.js | 102 + .../utils/cryptography/SigVer15_186-3.rsp | 3850 +++ .../cryptography/SignatureChecker.test.js | 61 + .../ecdsa_secp256r1_sha256_p1363_test.json | 3719 +++ .../test/utils/introspection/ERC165.test.js | 18 + .../utils/introspection/ERC165Checker.test.js | 245 + .../SupportsInterface.behavior.js | 145 + .../test/utils/math/Math.t.sol | 311 + .../test/utils/math/Math.test.js | 562 + .../test/utils/math/SafeCast.test.js | 159 + .../test/utils/math/SignedMath.t.sol | 80 + .../test/utils/math/SignedMath.test.js | 53 + .../test/utils/structs/BitMap.test.js | 149 + .../test/utils/structs/Checkpoints.t.sol | 332 + .../test/utils/structs/Checkpoints.test.js | 146 + .../test/utils/structs/CircularBuffer.test.js | 83 + .../utils/structs/DoubleEndedQueue.test.js | 102 + .../utils/structs/EnumerableMap.behavior.js | 151 + .../test/utils/structs/EnumerableMap.test.js | 65 + .../utils/structs/EnumerableSet.behavior.js | 116 + .../test/utils/structs/EnumerableSet.test.js | 61 + .../test/utils/structs/Heap.t.sol | 74 + .../test/utils/structs/Heap.test.js | 113 + .../test/utils/structs/MerkleTree.test.js | 100 + .../test/utils/types/Time.test.js | 135 + .../lib/sequence-v3/package.json | 13 + .../lib/sequence-v3/pnpm-lock.yaml | 157 + .../lib/sequence-v3/pnpm-workspace.yaml | 2 + .../lib/sequence-v3/script/Deploy.s.sol | 36 + .../lib/sequence-v3/script/DeployMocks.s.sol | 19 + .../lib/sequence-v3/src/Estimator.sol | 111 + .../lib/sequence-v3/src/Factory.sol | 28 + .../lib/sequence-v3/src/Guest.sol | 76 + .../lib/sequence-v3/src/Simulator.sol | 109 + .../lib/sequence-v3/src/Stage1Module.sol | 29 + .../lib/sequence-v3/src/Stage2Module.sol | 27 + .../lib/sequence-v3/src/Wallet.huff | 55 + .../lib/sequence-v3/src/Wallet.sol | 67 + .../src/extensions/passkeys/Passkeys.sol | 123 + .../src/extensions/recovery/Recovery.sol | 217 + .../src/extensions/sessions/SessionErrors.sol | 56 + .../extensions/sessions/SessionManager.sol | 133 + .../src/extensions/sessions/SessionSig.sol | 421 + .../explicit/ExplicitSessionManager.sol | 171 + .../explicit/IExplicitSessionManager.sol | 41 + .../sessions/explicit/Permission.sol | 112 + .../sessions/explicit/PermissionValidator.sol | 135 + .../sessions/implicit/Attestation.sol | 122 + .../implicit/ISignalsImplicitMode.sol | 26 + .../implicit/ImplicitSessionManager.sol | 83 + .../lib/sequence-v3/src/modules/Calls.sol | 124 + .../sequence-v3/src/modules/ERC4337v07.sol | 73 + .../lib/sequence-v3/src/modules/Hooks.sol | 124 + .../src/modules/Implementation.sol | 50 + .../lib/sequence-v3/src/modules/Nonce.sol | 48 + .../lib/sequence-v3/src/modules/Payload.sol | 278 + .../src/modules/ReentrancyGuard.sol | 38 + .../lib/sequence-v3/src/modules/Storage.sol | 37 + .../sequence-v3/src/modules/auth/BaseAuth.sol | 174 + .../sequence-v3/src/modules/auth/BaseSig.sol | 500 + .../sequence-v3/src/modules/auth/SelfAuth.sol | 19 + .../src/modules/auth/Stage1Auth.sol | 62 + .../src/modules/auth/Stage2Auth.sol | 45 + .../src/modules/interfaces/IAccount.sol | 65 + .../src/modules/interfaces/IAuth.sol | 17 + .../src/modules/interfaces/ICheckpointer.sol | 25 + .../interfaces/IDelegatedExtension.sol | 25 + .../modules/interfaces/IERC1155Receiver.sol | 38 + .../src/modules/interfaces/IERC1271.sol | 35 + .../modules/interfaces/IERC223Receiver.sol | 15 + .../modules/interfaces/IERC721Receiver.sol | 21 + .../modules/interfaces/IERC777Receiver.sol | 24 + .../src/modules/interfaces/IEntryPoint.sol | 10 + .../src/modules/interfaces/IPartialAuth.sol | 35 + .../src/modules/interfaces/ISapient.sol | 38 + .../lib/sequence-v3/src/utils/Base64.sol | 169 + .../lib/sequence-v3/src/utils/LibBytes.sol | 120 + .../lib/sequence-v3/src/utils/LibOptim.sol | 68 + .../lib/sequence-v3/src/utils/P256.sol | 153 + .../lib/sequence-v3/src/utils/WebAuthn.sol | 333 + .../lib/sequence-v3/test/Factory.t.sol | 32 + .../lib/sequence-v3/test/Guest.t.sol | 287 + .../lib/sequence-v3/test/Stage1Module.t.sol | 1305 + .../lib/sequence-v3/test/Wallet.t.sol | 110 + .../test/extensions/passkeys/Passkeys.t.sol | 540 + .../test/extensions/recovery/Recovery.t.sol | 595 + .../extensions/sessions/Attestation.t.sol | 51 + .../test/extensions/sessions/Permission.t.sol | 157 + .../extensions/sessions/SessionCalls.t.sol | 299 + .../extensions/sessions/SessionManager.t.sol | 855 + .../test/extensions/sessions/SessionSig.t.sol | 1020 + .../extensions/sessions/SessionTestBase.sol | 209 + .../explicit/ExplicitSessionManager.t.sol | 866 + .../explicit/PermissionValidator.t.sol | 323 + .../implicit/ImplicitSessionManager.t.sol | 221 + .../recovery/RecoveryDenialOfService.t.sol | 199 + .../sessions/ExtendedSessionTestBase.sol | 175 + .../sessions/SessionDenialOfService.t.sol | 191 + .../sessions/SessionLimitIncrementTest.t.sol | 76 + .../extensions/sessions/SessionSelfCall.t.sol | 72 + .../sessions/SessionSignatureAbuse.t.sol | 143 + .../sessions/SessionUsingERC4337.t.sol | 142 + .../sessions/SessionValueForwarding.t.sol | 295 + .../ERC4337v07/ERC4337Entrypoint.t.sol | 179 + .../lib/sequence-v3/test/mocks/AcceptAll.sol | 10 + .../lib/sequence-v3/test/mocks/CanReenter.sol | 11 + .../lib/sequence-v3/test/mocks/Emitter.sol | 39 + .../lib/sequence-v3/test/mocks/MockERC20.sol | 46 + .../test/mocks/MockPayableReceiver.sol | 8 + .../sequence-v3/test/mocks/ValueForwarder.sol | 14 + .../sequence-v3/test/modules/BaseSig.t.sol | 2550 ++ .../lib/sequence-v3/test/modules/Calls.t.sol | 457 + .../sequence-v3/test/modules/ERC4337v07.t.sol | 246 + .../lib/sequence-v3/test/modules/Hooks.t.sol | 174 + .../test/modules/Implementation.t.sol | 31 + .../lib/sequence-v3/test/modules/Nonce.t.sol | 50 + .../sequence-v3/test/modules/Payload.t.sol | 381 + .../lib/sequence-v3/test/utils/Base64.t.sol | 161 + .../lib/sequence-v3/test/utils/LibBytes.t.sol | 335 + .../sequence-v3/test/utils/PrimitivesRPC.sol | 581 + .../lib/sequence-v3/test/utils/TestUtils.sol | 129 + lib/signals-implicit-mode/script/Deploy.s.sol | 18 + .../src/helper/SignalsImplicitMode.sol | 55 + .../src/registry/IImplicitProjectRegistry.sol | 70 + .../registry/IImplicitProjectValidation.sol | 25 + .../src/registry/ImplicitProjectRegistry.sol | 189 + .../test/ImplicitProjectRegistry.t.sol | 710 + .../test/SignalsImplicitMode.t.sol | 115 + lib/signals-implicit-mode/test/TestHelper.sol | 61 + .../test/mock/SignalsImplicitModeMock.sol | 12 + package.json | 177 +- packages/multicall/package.json | 2 +- packages/services/api/CHANGELOG.md | 36 - packages/services/api/package.json | 10 +- packages/services/api/src/api.gen.ts | 3987 ++- packages/services/builder/CHANGELOG.md | 36 - packages/services/builder/package.json | 10 +- packages/services/guard/CHANGELOG.md | 755 +- packages/services/guard/package.json | 12 +- .../services/guard/src/client/guard.gen.ts | 9 +- .../services/identity-instrument/package.json | 10 +- packages/services/indexer/CHANGELOG.md | 394 +- packages/services/indexer/package.json | 10 +- packages/services/marketplace/CHANGELOG.md | 36 - packages/services/marketplace/package.json | 10 +- .../marketplace/src/marketplace.gen.ts | 1375 +- packages/services/metadata/CHANGELOG.md | 388 +- packages/services/metadata/package.json | 10 +- .../services/metadata/src/metadata.gen.ts | 2264 +- packages/services/relayer/CHANGELOG.md | 707 +- packages/services/relayer/hardhat.config.js | 15 + packages/services/relayer/package.json | 15 +- packages/services/relayer/src/index.ts | 4 +- .../services/relayer/src/local-relayer.ts | 125 + .../services/relayer/src/provider-relayer.ts | 284 + .../services/relayer/src/rpc-relayer/index.ts | 1 + .../relayer/src/rpc-relayer/relayer.gen.ts | 2037 ++ packages/tests/package.json | 2 +- packages/utils/abi/CHANGELOG.md | 420 +- packages/utils/abi/package.json | 10 +- packages/wallet/core/package.json | 18 +- packages/wallet/core/src/index.ts | 9 +- .../wallet/core/src/preconditions/codec.ts | 193 + .../wallet/core/src/preconditions/index.ts | 3 + .../core/src/preconditions/selectors.ts | 41 + .../wallet/core/src/preconditions/types.ts | 201 + packages/wallet/core/src/relayer/bundler.ts | 23 + .../wallet/core/src/relayer/bundlers/index.ts | 1 + .../core/src/relayer/bundlers/pimlico.ts | 177 + packages/wallet/core/src/relayer/index.ts | 7 + packages/wallet/core/src/relayer/relayer.ts | 87 + .../wallet/core/src/relayer/standard/abi.ts | 13 + .../core/src/relayer/standard/eip6963.ts | 70 + .../wallet/core/src/relayer/standard/index.ts | 5 + .../wallet/core/src/relayer/standard/local.ts | 347 + .../core/src/relayer/standard/pk-relayer.ts | 133 + .../core/src/relayer/standard/rpc/index.ts | 375 + .../src/relayer/standard/rpc/relayer.gen.ts | 2037 ++ .../core/src/relayer/standard/sequence.ts | 95 + packages/wallet/core/src/signers/guard.ts | 7 +- .../wallet/core/src/signers/pk/encrypted.ts | 4 +- .../core/src/signers/session-manager.ts | 50 +- .../core/src/signers/session/explicit.ts | 5 +- .../core/src/signers/session/implicit.ts | 17 +- .../core/src/signers/session/session.ts | 8 - packages/wallet/core/src/state/local/index.ts | 2 +- .../wallet/core/src/state/sequence/index.ts | 30 +- .../src/utils/session/permission-builder.ts | 4 +- packages/wallet/core/src/wallet.ts | 8 +- packages/wallet/core/test/constants.ts | 7 +- .../wallet/core/test/preconditions.test.ts | 283 + .../core/test/preconditions/codec.test.ts | 554 + .../core/test/preconditions/selectors.test.ts | 415 + .../core/test/preconditions/types.test.ts | 443 + .../wallet/core/test/relayer/bundler.test.ts | 6 +- .../wallet/core/test/relayer/relayer.test.ts | 366 + .../wallet/core/test/session-manager.test.ts | 330 +- .../test/signers-session-implicit.test.ts | 4 +- packages/wallet/core/vitest.config.ts | 9 + packages/wallet/dapp-client/eslint.config.mjs | 4 +- packages/wallet/dapp-client/package.json | 21 +- .../dapp-client/src/ChainSessionManager.ts | 303 +- packages/wallet/dapp-client/src/DappClient.ts | 608 +- .../wallet/dapp-client/src/DappTransport.ts | 105 +- packages/wallet/dapp-client/src/index.ts | 22 +- .../wallet/dapp-client/src/types/index.ts | 92 +- .../wallet/dapp-client/src/utils/constants.ts | 4 +- .../wallet/dapp-client/src/utils/storage.ts | 126 +- packages/wallet/package.json | 2 +- .../wallet/primitives-cli/eslint.config.mjs | 4 +- packages/wallet/primitives-cli/package.json | 20 +- .../primitives-cli/src/subcommands/address.ts | 2 +- .../primitives-cli/src/subcommands/server.ts | 4 +- .../primitives-cli/src/subcommands/session.ts | 20 +- packages/wallet/primitives/eslint.config.mjs | 4 +- packages/wallet/primitives/package.json | 10 +- packages/wallet/primitives/src/config.ts | 46 - packages/wallet/primitives/src/constants.ts | 3 +- packages/wallet/primitives/src/context.ts | 42 - packages/wallet/primitives/src/erc-6492.ts | 14 +- .../wallet/primitives/src/extensions/index.ts | 12 - packages/wallet/primitives/src/network.ts | 115 +- packages/wallet/primitives/src/payload.ts | 4 - packages/wallet/primitives/src/permission.ts | 4 +- .../wallet/primitives/src/session-config.ts | 243 +- .../primitives/src/session-signature.ts | 173 +- .../wallet/primitives/test/address.test.ts | 28 +- .../wallet/primitives/test/config.test.ts | 63 - .../wallet/primitives/test/erc-6492.test.ts | 14 +- .../primitives/test/session-config.test.ts | 297 +- .../primitives/test/session-signature.test.ts | 235 +- packages/wallet/wdk/.env.test | 5 + packages/wallet/wdk/package.json | 26 +- .../wallet/wdk/src/dbs/auth-commitments.ts | 2 +- packages/wallet/wdk/src/identity/signer.ts | 2 +- packages/wallet/wdk/src/sequence/guards.ts | 27 +- .../src/sequence/handlers/authcode-pkce.ts | 8 +- .../wdk/src/sequence/handlers/authcode.ts | 19 +- .../wallet/wdk/src/sequence/handlers/guard.ts | 33 +- .../wdk/src/sequence/handlers/mnemonic.ts | 8 +- .../wallet/wdk/src/sequence/handlers/otp.ts | 10 +- packages/wallet/wdk/src/sequence/manager.ts | 168 +- packages/wallet/wdk/src/sequence/sessions.ts | 192 +- packages/wallet/wdk/src/sequence/signers.ts | 19 +- .../wallet/wdk/src/sequence/transactions.ts | 17 +- .../wallet/wdk/src/sequence/types/module.ts | 2 +- .../wallet/wdk/src/sequence/types/signer.ts | 2 +- .../src/sequence/types/transaction-request.ts | 3 +- packages/wallet/wdk/src/sequence/wallets.ts | 89 +- .../wallet/wdk/test/authcode-pkce.test.ts | 22 +- packages/wallet/wdk/test/authcode.test.ts | 90 +- packages/wallet/wdk/test/constants.ts | 17 +- packages/wallet/wdk/test/guard.test.ts | 76 +- .../wallet/wdk/test/identity-auth-dbs.test.ts | 8 +- .../wallet/wdk/test/identity-signer.test.ts | 32 +- packages/wallet/wdk/test/messages.test.ts | 30 +- packages/wallet/wdk/test/otp.test.ts | 16 +- packages/wallet/wdk/test/passkeys.test.ts | 8 +- packages/wallet/wdk/test/recovery.test.ts | 12 +- packages/wallet/wdk/test/sessions.test.ts | 512 +- packages/wallet/wdk/test/setup.ts | 2 +- packages/wallet/wdk/test/transactions.test.ts | 78 +- packages/wallet/wdk/test/wallets.test.ts | 167 +- packages/wallet/wdk/vitest.config.ts | 1 + pnpm-lock.yaml | 19977 ++++++++-------- pnpm-workspace.yaml | 13 +- repo/eslint-config/package.json | 20 +- repo/typescript-config/package.json | 2 +- repo/ui/package.json | 18 +- turbo.json | 3 +- .../packages/services/metadata/CHANGELOG.md | 2 + 1344 files changed, 295315 insertions(+), 19831 deletions(-) create mode 100644 .github/workflows/nextjs.yml create mode 100644 .github/workflows/publish-dists.yml create mode 100644 .github/workflows/web-sdk.yml create mode 100644 .gitmodules create mode 100644 corepack.tgz create mode 100644 foundry.lock create mode 100644 lib/signals-implicit-mode/.env.sample create mode 100644 lib/signals-implicit-mode/.github/workflows/test.yml create mode 100644 lib/signals-implicit-mode/.gitmodules create mode 100644 lib/signals-implicit-mode/README.md create mode 100644 lib/signals-implicit-mode/foundry.toml create mode 100644 lib/signals-implicit-mode/lib/forge-std/.gitattributes create mode 100644 lib/signals-implicit-mode/lib/forge-std/.github/CODEOWNERS create mode 100644 lib/signals-implicit-mode/lib/forge-std/.github/workflows/ci.yml create mode 100644 lib/signals-implicit-mode/lib/forge-std/.github/workflows/sync.yml create mode 100644 lib/signals-implicit-mode/lib/forge-std/CONTRIBUTING.md create mode 100644 lib/signals-implicit-mode/lib/forge-std/LICENSE-APACHE create mode 100644 lib/signals-implicit-mode/lib/forge-std/LICENSE-MIT create mode 100644 lib/signals-implicit-mode/lib/forge-std/README.md create mode 100644 lib/signals-implicit-mode/lib/forge-std/RELEASE_CHECKLIST.md create mode 100644 lib/signals-implicit-mode/lib/forge-std/foundry.toml create mode 100644 lib/signals-implicit-mode/lib/forge-std/package.json create mode 100644 lib/signals-implicit-mode/lib/forge-std/scripts/vm.py create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/Base.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/Config.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/LibVariable.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/Script.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/StdAssertions.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/StdChains.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/StdCheats.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/StdConfig.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/StdConstants.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/StdError.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/StdInvariant.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/StdJson.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/StdMath.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/StdStorage.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/StdStyle.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/StdToml.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/StdUtils.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/Test.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/Vm.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/console.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/console2.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/interfaces/IERC1155.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/interfaces/IERC165.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/interfaces/IERC20.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/interfaces/IERC4626.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/interfaces/IERC6909.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/interfaces/IERC721.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/interfaces/IERC7540.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/interfaces/IERC7575.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/interfaces/IMulticall3.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/src/safeconsole.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/test/CommonBase.t.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/test/Config.t.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/test/LibVariable.t.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/test/StdAssertions.t.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/test/StdChains.t.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/test/StdCheats.t.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/test/StdConstants.t.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/test/StdError.t.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/test/StdJson.t.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/test/StdMath.t.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/test/StdStorage.t.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/test/StdStyle.t.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/test/StdToml.t.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/test/StdUtils.t.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/test/Vm.t.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/test/compilation/CompilationScript.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/test/compilation/CompilationScriptBase.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/test/compilation/CompilationTest.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/test/compilation/CompilationTestBase.sol create mode 100644 lib/signals-implicit-mode/lib/forge-std/test/fixtures/broadcast.log.json create mode 100644 lib/signals-implicit-mode/lib/forge-std/test/fixtures/config.toml create mode 100644 lib/signals-implicit-mode/lib/forge-std/test/fixtures/test.json create mode 100644 lib/signals-implicit-mode/lib/forge-std/test/fixtures/test.toml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/.env.sample create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/.github/workflows/tests.yml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/.gitmodules create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/.prettierignore create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/.prettierrc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/LICENSE create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/README.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/build_proxy.sh create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/docs/CHAINED.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/docs/CONFIGURATIONS.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/docs/PAYLOAD.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/docs/SESSIONS.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/docs/SIGNATURE.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/foundry.toml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lefthook.yml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/.eslintrc.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/.github/workflows/build.yml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/.solcover.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/.solhint.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/.solhintignore create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/LICENSE create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/README.md create mode 100644 "lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/audits/EIP_4337_\342\200\223_Ethereum_Account_Abstraction_Incremental_Audit_Feb_2023.pdf" create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/core/BaseAccount.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/core/BasePaymaster.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/core/EntryPoint.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/core/EntryPointSimulations.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/core/Helpers.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/core/NonceManager.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/core/SenderCreator.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/core/StakeManager.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/core/UserOperationLib.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/interfaces/IAccount.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/interfaces/IAccountExecute.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/interfaces/IAggregator.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/interfaces/IEntryPoint.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/interfaces/IEntryPointSimulations.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/interfaces/INonceManager.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/interfaces/IPaymaster.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/interfaces/IStakeManager.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/interfaces/PackedUserOperation.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/package.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/samples/LegacyTokenPaymaster.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/samples/SimpleAccount.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/samples/SimpleAccountFactory.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/samples/TokenPaymaster.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/samples/VerifyingPaymaster.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/samples/bls/BLSAccount.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/samples/bls/BLSAccountFactory.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/samples/bls/BLSHelper.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/samples/bls/BLSSignatureAggregator.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/samples/bls/IBLSAccount.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/samples/bls/lib/BLSOpen.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/samples/bls/lib/hubble-contracts/contracts/libs/BLS.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/samples/bls/lib/hubble-contracts/contracts/libs/ModExp.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/samples/callback/TokenCallbackHandler.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/samples/utils/IOracle.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/samples/utils/OracleHelper.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/samples/utils/UniswapHelper.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/contracts/utils/Exec.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deploy/1_deploy_entrypoint.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deploy/2_deploy_SimpleAccountFactory.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/arbitrum/.chainId create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/arbitrum/EntryPoint.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/arbitrum/solcInputs/a4c52f0671aad8941c53d6ead2063803.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/gnosis/.chainId create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/gnosis/EntryPoint.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/gnosis/solcInputs/a4c52f0671aad8941c53d6ead2063803.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/goerli/.chainId create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/goerli/EntryPoint.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/goerli/solcInputs/a4c52f0671aad8941c53d6ead2063803.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/kovan/.chainId create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/kovan/EntryPoint.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/kovan/SimpleWallet.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/kovan/TestCounter.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/kovan/solcInputs/9255faacf3ae4e81db1326413027bfa0.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/mainnet/.chainId create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/mainnet/EntryPoint.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/mainnet/SimpleAccountFactory.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/mainnet/solcInputs/02113a2ed1850c3774563305ee607f11.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/mainnet/solcInputs/a4c52f0671aad8941c53d6ead2063803.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/mainnet/solcInputs/cfbebdf1101dd2bc0f310cb0b7d62cb7.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/matic/.chainId create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/matic/EntryPoint.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/matic/solcInputs/a4c52f0671aad8941c53d6ead2063803.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/matic/solcInputs/cfbebdf1101dd2bc0f310cb0b7d62cb7.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/mumbai/.chainId create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/mumbai/EntryPoint.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/mumbai/solcInputs/a4c52f0671aad8941c53d6ead2063803.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/optimism/.chainId create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/optimism/EntryPoint.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/optimism/solcInputs/a4c52f0671aad8941c53d6ead2063803.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/sepolia/.chainId create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/sepolia/EntryPoint.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/deployments/sepolia/solcInputs/a4c52f0671aad8941c53d6ead2063803.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/erc/ERCS/erc-4337.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/erc/ERCS/erc-7562.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/erc/assets/erc-4337/bundle-seq-pm.svg create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/erc/assets/erc-4337/bundle-seq.svg create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/erc/assets/erc-4337/image1.png create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/erc/assets/erc-4337/image2.png create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/gascalc/0-init-gas-checker.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/gascalc/1-simple-wallet.gas.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/gascalc/2-paymaster.gas.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/gascalc/3-huge-tx-gas.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/gascalc/4-paymaster-postop.gas.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/gascalc/5-token-paymaster.gas.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/gascalc/GasChecker.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/hardhat.config.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/package.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/reports/gas-checker.txt create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/scripts/check-gas-reports create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/scripts/docker-gascalc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/scripts/docker-gascalc.yml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/scripts/gascalc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/scripts/hh-wrapper create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/scripts/postpack-contracts-package.sh create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/scripts/prepack-contracts-package.sh create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/scripts/sample-script.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/scripts/solcErrors create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/src/AASigner.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/src/Create2Factory.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/src/Utils.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/src/runop.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/test/0-create2factory.test.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/test/UserOp.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/test/UserOperation.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/test/aa.init.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/test/chaiHelper.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/test/debugTx.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/test/entrypoint.test.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/test/entrypointsimulations.test.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/test/helpers.test.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/test/paymaster.test.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/test/samples/OracleHelper.test.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/test/samples/TokenPaymaster.test.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/test/simple-wallet.test.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/test/solidityTypes.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/test/testExecAccount.test.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/test/testutils.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/test/verifying_paymaster.test.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/test/y.bls.test.ts create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/tsconfig.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/account-abstraction/yarn.lock create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/.gitattributes create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/.githooks/pre-commit create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/.github/workflows/test.yml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/.gitmodules create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/.solhint.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/README.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/foundry.toml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/.gitattributes create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/.github/workflows/ci.yml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/.github/workflows/sync.yml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/LICENSE-APACHE create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/LICENSE-MIT create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/README.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/foundry.toml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/package.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/scripts/vm.py create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/src/Base.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/src/Script.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/src/StdAssertions.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/src/StdChains.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/src/StdCheats.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/src/StdError.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/src/StdInvariant.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/src/StdJson.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/src/StdMath.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/src/StdStorage.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/src/StdStyle.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/src/StdToml.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/src/StdUtils.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/src/Test.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/src/Vm.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/src/console.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/src/console2.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/src/interfaces/IERC1155.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/src/interfaces/IERC165.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/src/interfaces/IERC20.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/src/interfaces/IERC4626.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/src/interfaces/IERC721.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/src/interfaces/IMulticall3.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/src/mocks/MockERC20.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/src/mocks/MockERC721.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/src/safeconsole.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/test/StdAssertions.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/test/StdChains.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/test/StdCheats.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/test/StdError.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/test/StdJson.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/test/StdMath.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/test/StdStorage.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/test/StdStyle.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/test/StdToml.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/test/StdUtils.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/test/Vm.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/test/compilation/CompilationScript.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/test/compilation/CompilationScriptBase.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/test/compilation/CompilationTest.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/test/compilation/CompilationTestBase.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/test/fixtures/broadcast.log.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/test/fixtures/test.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/test/fixtures/test.toml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/test/mocks/MockERC20.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/lib/forge-std/test/mocks/MockERC721.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/script/MockERC20Deployer.s.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/script/SingletonDeployer.s.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/erc2470-libs/src/ISingletonFactory.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/.gitattributes create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/.github/workflows/ci.yml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/.github/workflows/sync.yml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/CONTRIBUTING.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/LICENSE-APACHE create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/LICENSE-MIT create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/README.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/foundry.toml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/package.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/scripts/vm.py create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/Base.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/Script.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/StdAssertions.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/StdChains.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/StdCheats.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/StdConstants.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/StdError.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/StdInvariant.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/StdJson.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/StdMath.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/StdStorage.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/StdStyle.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/StdToml.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/StdUtils.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/Test.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/Vm.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/console.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/console2.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/interfaces/IERC1155.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/interfaces/IERC165.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/interfaces/IERC20.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/interfaces/IERC4626.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/interfaces/IERC6909.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/interfaces/IERC721.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/interfaces/IERC7540.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/interfaces/IERC7575.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/interfaces/IMulticall3.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/src/safeconsole.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/test/CommonBase.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/test/StdAssertions.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/test/StdChains.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/test/StdCheats.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/test/StdConstants.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/test/StdError.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/test/StdJson.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/test/StdMath.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/test/StdStorage.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/test/StdStyle.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/test/StdToml.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/test/StdUtils.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/test/Vm.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/test/compilation/CompilationScript.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/test/compilation/CompilationScriptBase.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/test/compilation/CompilationTest.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/test/compilation/CompilationTestBase.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/test/fixtures/broadcast.log.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/test/fixtures/test.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/forge-std/test/fixtures/test.toml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/.changeset/config.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/.codecov.yml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/.editorconfig create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/.githooks/pre-push create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/bug_report.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/config.yml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/feature_request.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/.github/PULL_REQUEST_TEMPLATE.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/.github/actions/gas-compare/action.yml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/.github/actions/setup/action.yml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/.github/actions/storage-layout/action.yml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/.github/workflows/actionlint.yml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/.github/workflows/changeset.yml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/.github/workflows/checks.yml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/.github/workflows/docs.yml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/.github/workflows/formal-verification.yml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/.github/workflows/release-cycle.yml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/.github/workflows/upgradeable.yml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/.gitmodules create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/.mocharc.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/.prettierrc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/.solcover.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/CHANGELOG.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/CODE_OF_CONDUCT.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/CONTRIBUTING.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/FUNDING.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/GUIDELINES.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/LICENSE create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/README.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/RELEASING.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/SECURITY.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/audits/2017-03.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/audits/2018-10.pdf create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/audits/2022-10-Checkpoints.pdf create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/audits/2022-10-ERC4626.pdf create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/audits/2023-05-v4.9.pdf create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/audits/2023-10-v5.0.pdf create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/audits/2024-10-v5.1.pdf create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/audits/README.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/Makefile create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/README.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/diff/access_manager_AccessManager.sol.patch create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/harnesses/AccessControlDefaultAdminRulesHarness.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/harnesses/AccessControlHarness.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/harnesses/AccessManagedHarness.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/harnesses/AccessManagerHarness.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/harnesses/DoubleEndedQueueHarness.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/harnesses/ERC20FlashMintHarness.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/harnesses/ERC20PermitHarness.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/harnesses/ERC20WrapperHarness.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/harnesses/ERC3156FlashBorrowerHarness.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/harnesses/ERC721Harness.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/harnesses/ERC721ReceiverHarness.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/harnesses/EnumerableMapHarness.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/harnesses/EnumerableSetHarness.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/harnesses/InitializableHarness.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/harnesses/NoncesHarness.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/harnesses/Ownable2StepHarness.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/harnesses/OwnableHarness.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/harnesses/PausableHarness.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/harnesses/TimelockControllerHarness.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/reports/2021-10.pdf create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/reports/2022-03.pdf create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/reports/2022-05.pdf create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/run.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/AccessControl.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/AccessControlDefaultAdminRules.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/AccessManaged.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/AccessManager.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/DoubleEndedQueue.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/ERC20.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/ERC20FlashMint.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/ERC20Wrapper.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/ERC721.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/EnumerableMap.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/EnumerableSet.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/Initializable.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/Nonces.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/Ownable.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/Ownable2Step.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/Pausable.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/TimelockController.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/helpers/helpers.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/methods/IAccessControl.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/methods/IAccessControlDefaultAdminRules.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/methods/IAccessManaged.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/methods/IAccessManager.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/methods/IERC20.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/methods/IERC2612.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/methods/IERC3156FlashBorrower.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/methods/IERC3156FlashLender.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/methods/IERC5313.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/methods/IERC721.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/methods/IERC721Receiver.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/methods/IOwnable.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/certora/specs/methods/IOwnable2Step.spec create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/access/AccessControl.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/access/Ownable.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/access/README.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/access/extensions/AccessControlDefaultAdminRules.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/access/extensions/AccessControlEnumerable.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlDefaultAdminRules.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/access/manager/AccessManaged.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/access/manager/AccessManager.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/access/manager/AuthorityUtils.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/access/manager/IAccessManaged.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/access/manager/IAccessManager.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/access/manager/IAuthority.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/account/README.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/account/utils/draft-ERC4337Utils.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/account/utils/draft-ERC7579Utils.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/finance/README.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/finance/VestingWallet.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/finance/VestingWalletCliff.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/governance/Governor.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/governance/IGovernor.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/governance/README.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/governance/TimelockController.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorCountingFractional.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorCountingOverridable.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorCountingSimple.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorPreventLateQuorum.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorSettings.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorStorage.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockAccess.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockCompound.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockControl.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotes.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotesQuorumFraction.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/governance/utils/Votes.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/governance/utils/VotesExtended.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC1155.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC1155MetadataURI.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC1155Receiver.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC1363Receiver.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC1363Spender.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC1820Implementer.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC1820Registry.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC2309.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC2612.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC2981.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC3156.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC3156FlashBorrower.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC3156FlashLender.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC4906.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC5313.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC5805.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC6372.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC721.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC721Enumerable.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC721Metadata.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC721Receiver.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC777.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC777Recipient.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/IERC777Sender.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/README.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC4337.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC7579.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC7674.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/metatx/ERC2771Context.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/metatx/ERC2771Forwarder.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/metatx/README.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/AccessManagedTarget.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/AccessManagerMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/ArraysMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/AuthorityMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/Base64Dirty.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/BatchCaller.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/CallReceiverMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/ConstructorMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/ContextMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/DummyImplementation.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/EIP712Verifier.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/ERC1271WalletMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165InterfacesSupported.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165MaliciousData.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165MissingData.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165NotSupported.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165ReturnBomb.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/ERC2771ContextMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/ERC3156FlashBorrowerMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/EtherReceiverMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/InitializableMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/MerkleProofCustomHashMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/MerkleTreeMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/MulticallHelper.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/MultipleInheritanceInitializableMocks.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/PausableMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/ReentrancyAttack.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/ReentrancyMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/ReentrancyTransientMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/RegressionImplementation.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/SingleInheritanceInitializableMocks.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/Stateless.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/StorageSlotMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/TimelockReentrant.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/TransientSlotMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/UpgradeableBeaconMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/VotesExtendedMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/VotesMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/account/utils/ERC7579UtilsMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/compound/CompTimelock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/docs/ERC20WithAutoMinerReward.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/docs/ERC4626Fees.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/docs/MyNFT.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessControlERC20MintBase.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessControlERC20MintMissing.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessControlERC20MintOnlyRole.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessControlModified.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessControlNonRevokableAdmin.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessManagedERC20MintBase.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/MyContractOwnable.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyGovernor.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyToken.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyTokenTimestampBased.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyTokenWrapped.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/docs/token/ERC1155/GameItems.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/docs/token/ERC1155/MyERC115HolderContract.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/docs/token/ERC20/GLDToken.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/docs/token/ERC721/GameItem.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/docs/utilities/Base64NFT.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/docs/utilities/Multicall.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorCountingOverridableMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorFractionalMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorPreventLateQuorumMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorStorageMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockAccessMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockCompoundMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockControlMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorVoteMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorWithParamsMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/proxy/BadBeacon.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/proxy/ClashingImplementation.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/proxy/UUPSUpgradeableMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC1155ReceiverMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC1363ForceApproveMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC1363NoReturnMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC1363ReceiverMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC1363ReturnFalseMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC1363SpenderMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ApprovalMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC20DecimalsMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ExcessDecimalsMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC20FlashMintMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ForceApproveMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC20GetterHelper.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC20Mock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC20MulticallMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC20NoReturnMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC20Reentrant.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ReturnFalseMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC20VotesAdditionalCheckpointsMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC20VotesLegacyMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC20VotesTimestampMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC4626LimitsMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC4626Mock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC4626OffsetMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC4646FeesMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ConsecutiveEnumerableMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ConsecutiveMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ReceiverMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/mocks/token/ERC721URIStorageMock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/package.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/proxy/Clones.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/proxy/README.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/proxy/beacon/BeaconProxy.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/proxy/beacon/UpgradeableBeacon.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC1155/ERC1155.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC1155/README.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Burnable.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Pausable.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Supply.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155URIStorage.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Utils.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC20/README.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC1363.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Capped.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20FlashMint.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Pausable.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Permit.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Votes.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Wrapper.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC4626.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-ERC20TemporaryApproval.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC20/utils/ERC1363Utils.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC721/README.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Burnable.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Consecutive.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Enumerable.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Pausable.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Royalty.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721URIStorage.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Votes.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Wrapper.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/common/ERC2981.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/token/common/README.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/Address.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/Arrays.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/Base64.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/Bytes.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/CAIP10.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/CAIP2.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/Comparators.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/Context.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/Create2.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/Errors.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/Multicall.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/Nonces.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/NoncesKeyed.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/Packing.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/Panic.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/Pausable.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/README.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/Strings.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/cryptography/Hashes.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/cryptography/P256.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/cryptography/RSA.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/math/Math.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/structs/CircularBuffer.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/structs/DoubleEndedQueue.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/structs/Heap.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/structs/MerkleTree.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/utils/types/Time.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/vendor/compound/ICompoundTimelock.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/contracts/vendor/compound/LICENSE create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/README.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/antora.yml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/config.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/images/access-control-multiple.svg create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/images/access-manager-functions.svg create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/images/access-manager.svg create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3a.png create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3b.png create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-6.png create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack.png create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-deposit.png create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-mint.png create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-linear.png create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglog.png create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglogext.png create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-exec.png create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-vote.png create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/nav.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/pages/access-control.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/pages/backwards-compatibility.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/pages/crowdsales.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/pages/drafts.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc1155.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20-supply.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc4626.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc721.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/pages/extending-contracts.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/pages/faq.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/pages/governance.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/pages/index.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/pages/tokens.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/pages/upgradeable.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/pages/utilities.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/modules/ROOT/pages/wizard.adoc create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/templates/contract.hbs create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/templates/helpers.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/templates/page.hbs create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/docs/templates/properties.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/eslint.config.mjs create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/foundry.toml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/fv-requirements.txt create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/hardhat.config.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/hardhat/async-test-sanity.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/hardhat/env-artifacts.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/hardhat/ignore-unreachable-warnings.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/hardhat/remappings.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/hardhat/skip-foundry-tests.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/hardhat/task-test-get-files.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/erc4626-tests/ERC4626.prop.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/erc4626-tests/ERC4626.test.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/erc4626-tests/LICENSE create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/erc4626-tests/README.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/.gitattributes create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/.github/workflows/ci.yml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/.github/workflows/sync.yml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/LICENSE-APACHE create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/LICENSE-MIT create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/README.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/foundry.toml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/package.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/scripts/vm.py create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/src/Base.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/src/Script.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/src/StdToml.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/src/Test.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/src/console.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/src/console2.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC1155.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC165.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC20.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC4626.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC721.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/src/mocks/MockERC20.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/src/mocks/MockERC721.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/src/safeconsole.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/test/StdAssertions.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/test/StdChains.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/test/StdCheats.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/test/StdError.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/test/StdJson.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/test/StdMath.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/test/StdStorage.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/test/StdStyle.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/test/StdToml.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/test/StdUtils.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/test/Vm.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationScript.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationScriptBase.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationTest.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationTestBase.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/test/fixtures/broadcast.log.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/test/fixtures/test.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/test/fixtures/test.toml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/test/mocks/MockERC20.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/forge-std/test/mocks/MockERC721.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/halmos-cheatcodes/LICENSE create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/halmos-cheatcodes/README.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/SVM.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/SymTest.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/logo.svg create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/netlify.toml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/package-lock.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/package.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/remappings.txt create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/renovate.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/checks/compare-layout.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/checks/compareGasReports.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/checks/coverage.sh create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/checks/extract-layout.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/checks/generation.sh create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/checks/inheritance-ordering.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/checks/pragma-consistency.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/gen-nav.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/generate/format-lines.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/generate/helpers/sanitize.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/generate/run.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/generate/templates/Arrays.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/generate/templates/Arrays.opts.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.opts.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.t.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableMap.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableMap.opts.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableSet.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableSet.opts.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/generate/templates/MerkleProof.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/generate/templates/MerkleProof.opts.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/generate/templates/Packing.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/generate/templates/Packing.opts.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/generate/templates/Packing.t.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/generate/templates/SafeCast.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/generate/templates/Slot.opts.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/generate/templates/SlotDerivation.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/generate/templates/SlotDerivation.t.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/generate/templates/StorageSlot.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/generate/templates/StorageSlotMock.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/generate/templates/TransientSlot.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/generate/templates/TransientSlotMock.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/generate/templates/conversion.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/git-user-config.sh create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/helpers.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/prepack.sh create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/prepare-docs.sh create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/prepare.sh create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/release/format-changelog.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/release/synchronize-versions.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/release/update-comment.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/release/version.sh create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/release/workflow/exit-prerelease.sh create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/release/workflow/github-release.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/release/workflow/integrity-check.sh create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/release/workflow/pack.sh create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/release/workflow/publish.sh create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/release/workflow/rerun.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/release/workflow/set-changesets-pr-title.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/release/workflow/start.sh create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/release/workflow/state.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/remove-ignored-artifacts.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/solhint-custom/index.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/solhint-custom/package.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/update-docs-branch.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/upgradeable/README.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/upgradeable/patch-apply.sh create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/upgradeable/patch-save.sh create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/upgradeable/transpile-onto.sh create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/upgradeable/transpile.sh create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/scripts/upgradeable/upgradeable.patch create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/slither.config.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/solhint.config.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/TESTING.md create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/access/AccessControl.behavior.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/access/AccessControl.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/access/Ownable.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/access/Ownable2Step.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/access/extensions/AccessControlDefaultAdminRules.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/access/extensions/AccessControlEnumerable.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/access/manager/AccessManaged.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/access/manager/AccessManager.behavior.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/access/manager/AccessManager.predicate.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/access/manager/AccessManager.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/access/manager/AuthorityUtils.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/account/utils/draft-ERC4337Utils.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/account/utils/draft-ERC7579Utils.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/account/utils/draft-ERC7579Utils.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/bin/EntryPoint070.abi create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/bin/EntryPoint070.bytecode create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/bin/SenderCreator070.abi create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/bin/SenderCreator070.bytecode create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/finance/VestingWallet.behavior.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/finance/VestingWallet.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/finance/VestingWalletCliff.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/governance/Governor.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/governance/Governor.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/governance/TimelockController.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/governance/extensions/GovernorCountingFractional.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/governance/extensions/GovernorCountingOverridable.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/governance/extensions/GovernorERC721.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/governance/extensions/GovernorPreventLateQuorum.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/governance/extensions/GovernorStorage.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/governance/extensions/GovernorTimelockAccess.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/governance/extensions/GovernorTimelockCompound.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/governance/extensions/GovernorTimelockControl.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/governance/extensions/GovernorVotesQuorumFraction.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/governance/extensions/GovernorWithParams.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/governance/utils/ERC6372.behavior.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/governance/utils/Votes.behavior.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/governance/utils/Votes.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/governance/utils/VotesExtended.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/helpers/access-manager.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/helpers/account.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/helpers/chains.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/helpers/constants.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/helpers/deploy.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/helpers/eip712-types.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/helpers/eip712.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/helpers/enums.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/helpers/erc4337-entrypoint.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/helpers/erc4337.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/helpers/erc7579.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/helpers/governance.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/helpers/iterate.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/helpers/math.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/helpers/methods.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/helpers/random.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/helpers/storage.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/helpers/strings.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/helpers/time.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/helpers/txpool.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/metatx/ERC2771Context.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/metatx/ERC2771Forwarder.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/metatx/ERC2771Forwarder.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/proxy/Clones.behaviour.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/proxy/Clones.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/proxy/Clones.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/proxy/ERC1967/ERC1967Proxy.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/proxy/ERC1967/ERC1967Utils.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/proxy/Proxy.behaviour.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/proxy/beacon/BeaconProxy.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/proxy/beacon/UpgradeableBeacon.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/proxy/transparent/ProxyAdmin.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/proxy/transparent/TransparentUpgradeableProxy.behaviour.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/proxy/transparent/TransparentUpgradeableProxy.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/proxy/utils/Initializable.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/proxy/utils/UUPSUpgradeable.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/sanity.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC1155/ERC1155.behavior.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC1155/ERC1155.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Burnable.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Pausable.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Supply.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155URIStorage.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC1155/utils/ERC1155Holder.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC1155/utils/ERC1155Utils.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC20/ERC20.behavior.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC20/ERC20.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC1363.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Burnable.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Capped.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20FlashMint.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Pausable.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Permit.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Votes.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Wrapper.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC4626.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC4626.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC20/extensions/draft-ERC20TemporaryApproval.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC20/utils/SafeERC20.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC721/ERC721.behavior.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC721/ERC721.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC721/ERC721Enumerable.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Burnable.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Consecutive.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Consecutive.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Pausable.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Royalty.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721URIStorage.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Votes.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Wrapper.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC721/utils/ERC721Holder.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/ERC721/utils/ERC721Utils.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/token/common/ERC2981.behavior.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/Address.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/Arrays.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/Arrays.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/Base64.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/Base64.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/Bytes.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/CAIP.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/Context.behavior.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/Context.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/Create2.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/Create2.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/Multicall.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/Nonces.behavior.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/Nonces.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/NoncesKeyed.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/Packing.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/Packing.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/Panic.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/Pausable.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/ReentrancyGuard.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/ShortStrings.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/ShortStrings.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/SlotDerivation.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/SlotDerivation.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/StorageSlot.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/Strings.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/Strings.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/TransientSlot.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/cryptography/ECDSA.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/cryptography/EIP712.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/cryptography/MerkleProof.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/cryptography/MessageHashUtils.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/cryptography/P256.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/cryptography/P256.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/cryptography/RSA.helper.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/cryptography/RSA.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/cryptography/SigVer15_186-3.rsp create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/cryptography/SignatureChecker.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/cryptography/ecdsa_secp256r1_sha256_p1363_test.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/introspection/ERC165.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/introspection/ERC165Checker.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/introspection/SupportsInterface.behavior.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/math/Math.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/math/Math.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/math/SafeCast.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/math/SignedMath.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/math/SignedMath.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/structs/BitMap.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/structs/Checkpoints.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/structs/Checkpoints.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/structs/CircularBuffer.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/structs/DoubleEndedQueue.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/structs/EnumerableMap.behavior.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/structs/EnumerableMap.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/structs/EnumerableSet.behavior.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/structs/EnumerableSet.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/structs/Heap.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/structs/Heap.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/structs/MerkleTree.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/lib/openzeppelin-contracts/test/utils/types/Time.test.js create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/package.json create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/pnpm-lock.yaml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/pnpm-workspace.yaml create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/script/Deploy.s.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/script/DeployMocks.s.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/Estimator.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/Factory.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/Guest.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/Simulator.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/Stage1Module.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/Stage2Module.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/Wallet.huff create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/Wallet.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/extensions/passkeys/Passkeys.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/extensions/recovery/Recovery.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/extensions/sessions/SessionErrors.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/extensions/sessions/SessionManager.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/extensions/sessions/SessionSig.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/extensions/sessions/explicit/ExplicitSessionManager.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/extensions/sessions/explicit/IExplicitSessionManager.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/extensions/sessions/explicit/Permission.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/extensions/sessions/explicit/PermissionValidator.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/extensions/sessions/implicit/Attestation.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/extensions/sessions/implicit/ISignalsImplicitMode.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/extensions/sessions/implicit/ImplicitSessionManager.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/modules/Calls.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/modules/ERC4337v07.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/modules/Hooks.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/modules/Implementation.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/modules/Nonce.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/modules/Payload.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/modules/ReentrancyGuard.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/modules/Storage.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/modules/auth/BaseAuth.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/modules/auth/BaseSig.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/modules/auth/SelfAuth.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/modules/auth/Stage1Auth.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/modules/auth/Stage2Auth.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/modules/interfaces/IAccount.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/modules/interfaces/IAuth.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/modules/interfaces/ICheckpointer.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/modules/interfaces/IDelegatedExtension.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/modules/interfaces/IERC1155Receiver.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/modules/interfaces/IERC1271.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/modules/interfaces/IERC223Receiver.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/modules/interfaces/IERC721Receiver.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/modules/interfaces/IERC777Receiver.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/modules/interfaces/IEntryPoint.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/modules/interfaces/IPartialAuth.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/modules/interfaces/ISapient.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/utils/Base64.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/utils/LibBytes.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/utils/LibOptim.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/utils/P256.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/src/utils/WebAuthn.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/Factory.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/Guest.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/Stage1Module.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/Wallet.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/extensions/passkeys/Passkeys.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/extensions/recovery/Recovery.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/extensions/sessions/Attestation.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/extensions/sessions/Permission.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/extensions/sessions/SessionCalls.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/extensions/sessions/SessionManager.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/extensions/sessions/SessionSig.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/extensions/sessions/SessionTestBase.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/extensions/sessions/explicit/ExplicitSessionManager.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/extensions/sessions/explicit/PermissionValidator.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/extensions/sessions/implicit/ImplicitSessionManager.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/integrations/extensions/recovery/RecoveryDenialOfService.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/integrations/extensions/sessions/ExtendedSessionTestBase.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/integrations/extensions/sessions/SessionDenialOfService.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/integrations/extensions/sessions/SessionLimitIncrementTest.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/integrations/extensions/sessions/SessionSelfCall.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/integrations/extensions/sessions/SessionSignatureAbuse.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/integrations/extensions/sessions/SessionUsingERC4337.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/integrations/extensions/sessions/SessionValueForwarding.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/integrations/modules/ERC4337v07/ERC4337Entrypoint.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/mocks/AcceptAll.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/mocks/CanReenter.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/mocks/Emitter.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/mocks/MockERC20.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/mocks/MockPayableReceiver.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/mocks/ValueForwarder.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/modules/BaseSig.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/modules/Calls.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/modules/ERC4337v07.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/modules/Hooks.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/modules/Implementation.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/modules/Nonce.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/modules/Payload.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/utils/Base64.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/utils/LibBytes.t.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/utils/PrimitivesRPC.sol create mode 100644 lib/signals-implicit-mode/lib/sequence-v3/test/utils/TestUtils.sol create mode 100644 lib/signals-implicit-mode/script/Deploy.s.sol create mode 100644 lib/signals-implicit-mode/src/helper/SignalsImplicitMode.sol create mode 100644 lib/signals-implicit-mode/src/registry/IImplicitProjectRegistry.sol create mode 100644 lib/signals-implicit-mode/src/registry/IImplicitProjectValidation.sol create mode 100644 lib/signals-implicit-mode/src/registry/ImplicitProjectRegistry.sol create mode 100644 lib/signals-implicit-mode/test/ImplicitProjectRegistry.t.sol create mode 100644 lib/signals-implicit-mode/test/SignalsImplicitMode.t.sol create mode 100644 lib/signals-implicit-mode/test/TestHelper.sol create mode 100644 lib/signals-implicit-mode/test/mock/SignalsImplicitModeMock.sol create mode 100644 packages/services/relayer/hardhat.config.js create mode 100644 packages/services/relayer/src/local-relayer.ts create mode 100644 packages/services/relayer/src/provider-relayer.ts create mode 100644 packages/services/relayer/src/rpc-relayer/index.ts create mode 100644 packages/services/relayer/src/rpc-relayer/relayer.gen.ts create mode 100644 packages/wallet/core/src/preconditions/codec.ts create mode 100644 packages/wallet/core/src/preconditions/index.ts create mode 100644 packages/wallet/core/src/preconditions/selectors.ts create mode 100644 packages/wallet/core/src/preconditions/types.ts create mode 100644 packages/wallet/core/src/relayer/bundler.ts create mode 100644 packages/wallet/core/src/relayer/bundlers/index.ts create mode 100644 packages/wallet/core/src/relayer/bundlers/pimlico.ts create mode 100644 packages/wallet/core/src/relayer/index.ts create mode 100644 packages/wallet/core/src/relayer/relayer.ts create mode 100644 packages/wallet/core/src/relayer/standard/abi.ts create mode 100644 packages/wallet/core/src/relayer/standard/eip6963.ts create mode 100644 packages/wallet/core/src/relayer/standard/index.ts create mode 100644 packages/wallet/core/src/relayer/standard/local.ts create mode 100644 packages/wallet/core/src/relayer/standard/pk-relayer.ts create mode 100644 packages/wallet/core/src/relayer/standard/rpc/index.ts create mode 100644 packages/wallet/core/src/relayer/standard/rpc/relayer.gen.ts create mode 100644 packages/wallet/core/src/relayer/standard/sequence.ts create mode 100644 packages/wallet/core/test/preconditions.test.ts create mode 100644 packages/wallet/core/test/preconditions/codec.test.ts create mode 100644 packages/wallet/core/test/preconditions/selectors.test.ts create mode 100644 packages/wallet/core/test/preconditions/types.test.ts create mode 100644 packages/wallet/core/test/relayer/relayer.test.ts create mode 100644 packages/wallet/core/vitest.config.ts create mode 100644 packages/wallet/wdk/.env.test diff --git a/.changeset/config.json b/.changeset/config.json index 4f8345f46..bfd12d278 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -7,5 +7,5 @@ "access": "restricted", "baseBranch": "master", "updateInternalDependencies": "patch", - "ignore": ["@0xsequence/wallet-primitives-cli", "docs", "web"] + "ignore": [] } diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 81c7b58d8..b5c68e55b 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -2,9 +2,8 @@ name: Bug report about: Create a report to help us improve title: '' -labels: 'bug' +labels: '' assignees: '' - --- **Describe the bug** @@ -12,6 +11,7 @@ A clear and concise description of what the bug is. **To Reproduce** Steps to reproduce the behavior: + 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' @@ -24,15 +24,17 @@ A clear and concise description of what you expected to happen. If applicable, add screenshots to help explain your problem. **Desktop (please complete the following information):** - - OS: [e.g. iOS] - - Browser [e.g. chrome, safari] - - Version [e.g. 22] + +- OS: [e.g. iOS] +- Browser [e.g. chrome, safari] +- Version [e.g. 22] **Smartphone (please complete the following information):** - - Device: [e.g. iPhone6] - - OS: [e.g. iOS8.1] - - Browser [e.g. stock browser, safari] - - Version [e.g. 22] + +- Device: [e.g. iPhone6] +- OS: [e.g. iOS8.1] +- Browser [e.g. stock browser, safari] +- Version [e.g. 22] **Additional context** Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/custom.md b/.github/ISSUE_TEMPLATE/custom.md index 48d5f81fa..96a47352a 100644 --- a/.github/ISSUE_TEMPLATE/custom.md +++ b/.github/ISSUE_TEMPLATE/custom.md @@ -4,7 +4,4 @@ about: Describe this issue template's purpose here. title: '' labels: '' assignees: '' - --- - - diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 36014cde5..2f28cead0 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -2,9 +2,8 @@ name: Feature request about: Suggest an idea for this project title: '' -labels: 'enhancement' +labels: '' assignees: '' - --- **Is your feature request related to a problem? Please describe.** diff --git a/.github/workflows/nextjs.yml b/.github/workflows/nextjs.yml new file mode 100644 index 000000000..974fcb999 --- /dev/null +++ b/.github/workflows/nextjs.yml @@ -0,0 +1,93 @@ +# Sample workflow for building and deploying a Next.js site to GitHub Pages +# +# To get started with Next.js see: https://nextjs.org/docs/getting-started +# +name: Deploy Next.js site to Pages + +on: + # Runs on pushes targeting the default branch + push: + branches: ["master"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + # Build job + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Detect package manager + id: detect-package-manager + run: | + if [ -f "${{ github.workspace }}/yarn.lock" ]; then + echo "manager=yarn" >> $GITHUB_OUTPUT + echo "command=install" >> $GITHUB_OUTPUT + echo "runner=yarn" >> $GITHUB_OUTPUT + exit 0 + elif [ -f "${{ github.workspace }}/package.json" ]; then + echo "manager=npm" >> $GITHUB_OUTPUT + echo "command=ci" >> $GITHUB_OUTPUT + echo "runner=npx --no-install" >> $GITHUB_OUTPUT + exit 0 + else + echo "Unable to determine package manager" + exit 1 + fi + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: "20" + cache: ${{ steps.detect-package-manager.outputs.manager }} + - name: Setup Pages + uses: actions/configure-pages@v5 + with: + # Automatically inject basePath in your Next.js configuration file and disable + # server side image optimization (https://nextjs.org/docs/api-reference/next/image#unoptimized). + # + # You may remove this line if you want to manage the configuration yourself. + static_site_generator: next + - name: Restore cache + uses: actions/cache@v4 + with: + path: | + .next/cache + # Generate a new cache whenever packages or source files change. + key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }} + # If source files changed but packages didn't, rebuild from a prior cache. + restore-keys: | + ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}- + - name: Install dependencies + run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }} + - name: Build with Next.js + run: ${{ steps.detect-package-manager.outputs.runner }} next build + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: ./out + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.github/workflows/on_pr_pnpm-format-label.yml b/.github/workflows/on_pr_pnpm-format-label.yml index 83f23775a..84fb27cb3 100644 --- a/.github/workflows/on_pr_pnpm-format-label.yml +++ b/.github/workflows/on_pr_pnpm-format-label.yml @@ -1,9 +1,5 @@ name: pnpm-format-label -permissions: - contents: read - issues: write - on: pull_request: types: [labeled] diff --git a/.github/workflows/publish-dists.yml b/.github/workflows/publish-dists.yml new file mode 100644 index 000000000..b8fd53b96 --- /dev/null +++ b/.github/workflows/publish-dists.yml @@ -0,0 +1,91 @@ +name: Publish Dists for Packages + +permissions: + contents: write + +on: + workflow_dispatch: + push: + branches: + - master + +jobs: + build-and-push: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - uses: ./.github/actions/install-dependencies + + - name: Build package + run: pnpm run build + + - name: Prepare dist branch + run: | + PACKAGES=("services/guard" "services/identity-instrument" "services/relayer" "wallet/core" "wallet/primitives" "wallet/wdk" "wallet/dapp-client") + + for PACKAGE in "${PACKAGES[@]}"; do + BRANCH="dists/$PACKAGE" + PKG_DIR="packages/$PACKAGE" + + echo "📦 Publishing $PACKAGE to $BRANCH" + + mkdir -p /tmp/$PACKAGE + shopt -s dotglob + cp -r $PKG_DIR/* /tmp/$PACKAGE || true + + cd /tmp/$PACKAGE + git init + git checkout -b $BRANCH + + git config user.name "github-actions" + git config user.email "actions@github.com" + + echo "🔧 Rewriting workspace: deps in package.json..." + node -e ' + const fs = require("fs"); + const path = require("path"); + const pkgPath = path.resolve("package.json"); + const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8")); + const repo = "github:0xsequence/sequence.js"; + + const versions = { + "@0xsequence/guard": `${repo}#dists/services/guard`, + "@0xsequence/identity-instrument": `${repo}#dists/services/identity-instrument`, + "@0xsequence/relayer": `${repo}#dists/services/relayer`, + "@0xsequence/wallet-core": `${repo}#dists/wallet/core`, + "@0xsequence/wallet-primitives": `${repo}#dists/wallet/primitives`, + "@0xsequence/wallet-wdk": `${repo}#dists/wallet/wdk`, + }; + + const rewrite = (deps = {}) => { + for (const k in deps) { + if (deps[k].startsWith("workspace:")) { + const version = versions[k]; + + if (!version) { + console.warn(`No version found for ${k}, skipping...`); + continue; + } + + deps[k] = version; + console.log(`→ ${k} → ${deps[k]}`); + } + } + }; + + rewrite(pkg.dependencies); + fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2)); + ' + + git add . + git commit -m "Build: publish $PACKAGE dist" + + git remote add origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git + git push -f origin HEAD:$BRANCH + + cd - + done diff --git a/.github/workflows/web-sdk.yml b/.github/workflows/web-sdk.yml new file mode 100644 index 000000000..e7253f1e3 --- /dev/null +++ b/.github/workflows/web-sdk.yml @@ -0,0 +1,137 @@ +name: Web-SDK +on: + pull_request: + branches: + - master + - main + push: + branches: + - master + - main + +jobs: + master: + if: "! startsWith(github.event.head_commit.message, '[CI Skip]')" + runs-on: ubuntu-22.04 + name: Build and Deploy + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Web-SDK + uses: actions/setup-node@v3 + with: + node-version: '18''20''22' + cache: 'yarn''npm''pnpm' + - name: Web SDK + id: Install the Web SDK dependencies + run: | + npm install @0xsequence/connect @0xsequence/hooks wagmi ethers viem 0xsequence @tanstack/react-query + # or + pnpm install @0xsequence/connect @0xsequence/hooks wagmi ethers viem 0xsequence @tanstack/react-query + # or + yarn add @0xsequence/connect @0xsequence/hooks wagmi ethers viem 0xsequence @tanstack/react-query + + # === Deploy static pages === + - name: Deploy to Cloudflare Pages + id: cloudflare_deployment + uses: cloudflare/pages-action@v1 + with: + apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} + accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + projectName: 'w3o' + gitHubToken: ${{ secrets.GH_AUTOMATION_TOKEN }} + branch: 'main' + directory: './packages/demo/build' + wranglerVersion: '3' + +# Sample workflow for building and deploying a Next.js site to GitHub Pages +# +# To get started with Next.js see: https://nextjs.org/docs/getting-started +# +# Runs on pushes targeting the default branch + push: + branches: ["master"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + # Build job + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Detect package manager + id: detect-package-manager + run: | + if [ -f "${{ github.workspace }}/yarn.lock" ]; then + echo "manager=yarn" >> $GITHUB_OUTPUT + echo "command=install" >> $GITHUB_OUTPUT + echo "runner=yarn" >> $GITHUB_OUTPUT + exit 0 + elif [ -f "${{ github.workspace }}/package.json" ]; then + echo "manager=npm" >> $GITHUB_OUTPUT + echo "command=ci" >> $GITHUB_OUTPUT + echo "runner=npx --no-install" >> $GITHUB_OUTPUT + exit 0 + else + echo "Unable to determine package manager" + exit 1 + fi + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: "20" + cache: ${{ steps.detect-package-manager.outputs.manager }} + - name: Setup Pages + uses: actions/configure-pages@v5 + with: + # Automatically inject basePath in your Next.js configuration file and disable + # server side image optimization (https://nextjs.org/docs/api-reference/next/image#unoptimized). + # + # You may remove this line if you want to manage the configuration yourself. + static_site_generator: next + - name: Restore cache + uses: actions/cache@v4 + with: + path: | + .next/cache + # Generate a new cache whenever packages or source files change. + key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }} + # If source files changed but packages didn't, rebuild from a prior cache. + restore-keys: | + ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}- + - name: Install dependencies + run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }} + - name: Build with Next.js + run: ${{ steps.detect-package-manager.outputs.runner }} next build + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: ./out + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 000000000..6131d7399 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "lib/signals-implicit-mode"] + path = lib/signals-implicit-mode + url = https://github.com/0xsequence/signals-implicit-mode diff --git a/README.md b/README.md index 93f43b66e..4c663ccf8 100644 --- a/README.md +++ b/README.md @@ -1,275 +1,39 @@ - - +## sequence.js v3 core libraries and SDK -
- -

- - - - wagmi logo - - -

- -

- Reactive primitives for Ethereum apps (https://sequence.xyz/) -

- -

- - - - Version - - - - - - OpenSSF Best Practices - - - - - - OpenSSF Best Practices - - -
- - - - MIT License - - - - - - Downloads per month - - - - - - Best of JS - - - - - - Code coverage - - -

+**NOTE: please see [v2](https://github.com/0xsequence/sequence.js/tree/v2) branch for sequence.js 2.x.x** --- -## Documentation - -For documentation and guides, visit [wagmi.sh](https://wagmi.sh). - -## Community - -For help, discussion about best practices, or any other conversation that would benefit from being searchable: +Sequence v3 core libraries and [wallet-contracts-v3](https://github.com/0xsequence/wallet-contracts-v3) SDK. -[Discuss Wagmi on GitHub](https://github.com/wevm/wagmi/discussions) +## Packages -For casual chit-chat with others using the framework: +- `@0xsequence/wallet-primitives`: stateless low-level utilities specifically for interacting directly with sequence wallet's smart contracts +- `@0xsequence/wallet-core`: higher level utilities for creating and using sequence wallets +- `@0xsequence/wallet-wdk`: all-in-one wallet development kit for building a sequence wallet product -[Join the Wagmi Discord](https://discord.gg/SghfWBKexF) +## Development -## Contributing +### Getting Started -Contributions to Wagmi are greatly appreciated! If you're interested in contributing to Wagmi, please read the [Contributing Guide](https://wagmi.sh/dev/contributing) **before submitting a pull request**. +1. Install dependencies: + `pnpm install` -## Sponsors +2. Build all packages: + `pnpm build` -If you find Wagmi useful or use it for work, please consider [sponsoring Wagmi](https://github.com/sponsors/wevm?metadata_campaign=gh_readme_support). Thank you 🙏 +### Development Workflow -

- - - - paradigm logo - - - - - - ithaca logo - - -

+- Run development mode across all packages: + `pnpm dev` -

- - - - family logo - - - - - - context logo - - - - - - WalletConnect logo - - - - - - PartyDAO logo - - - - - - Dynamic logo - - - - - - Sushi logo - - - - - - Stripe logo - - - - - - Privy logo - - - - - - pancake logo - - - - - - celo logo - - - - - - rainbow logo - - - - - - pimlico logo - - - - - - zora logo - - - - - - lattice logo - - - - - - supa logo - - - - - - zksync logo - - - - - - syndicate logo - - - - - - reservoir logo - - - - - - linea logo - - - - - - uniswap logo - - - - - - biconomy logo - - - - - - thirdweb logo - - - - - - polymarket logo - - - - - - routescan logo - - - - - - sequence logo - - - - - - gemini logo - - -

+- Run tests: + `pnpm test` -[Sponsor Wagmi](https://github.com/sponsors/wevm?metadata_campaign=gh_readme_support_bottom) + > **Note:** Tests require [anvil](https://github.com/foundry-rs/foundry/tree/master/anvil) and [forge](https://github.com/foundry-rs/foundry) to be installed. You can run a local anvil instance using `pnpm run test:anvil`. -
-
+- Linting and formatting is enforced via git hooks - - Powered by Vercel - -
- - Powered by QuickNode - +## License +Apache-2.0 diff --git a/SECURITY.md b/SECURITY.md index 6112730aa..c9a2fbd4c 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -16,4 +16,5 @@ currently being supported with security updates. Use this section to tell people how to report a vulnerability. -Tell them to email [your-security-email@example.com], and they can expect an initial response within 48 hours. We will provide regular updates on the status of the reported vulnerability. +To report a vulnerability, please email us at [dev@wevm.dev](mailto:dev@wevm.dev). We aim to provide an initial response within 48 hours and will keep you updated on the status of the reported vulnerability. + diff --git a/corepack.tgz b/corepack.tgz new file mode 100644 index 0000000000000000000000000000000000000000..afa76b295c7db9783722ef00487b4fa4ddd20901 GIT binary patch literal 4311947 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