-
-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
✨ Feat: Add higher level vm and blockchain concepts to tevm #818
✨ Feat: Add higher level vm and blockchain concepts to tevm #818
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
🦋 Changeset detectedLatest commit: caf62a9 The changes in this PR will be included in the next version bump. This PR includes changesets to release 4 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Warning Rate Limit Exceeded@roninjin10 has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 14 minutes and 9 seconds before requesting another review. How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. WalkthroughThe documentation across various modules of a bundler has been updated with changes to function signatures, type annotations, and module links. Simplification of return and parameter types is a common theme, along with the addition of details and definitions in module descriptions. The Changes
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
Current dependencies on/for this PR:
This stack of pull requests is managed by Graphite. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review Status
Actionable comments generated: 13
Configuration used: CodeRabbit UI
Files ignored due to path filters (2)
pnpm-lock.yaml
is excluded by:!**/*.yaml
vm/vm/package.json
is excluded by:!**/*.json
Files selected for processing (18)
- bundler/base/docs/modules.md (1 hunks)
- bundler/bun/docs/modules.md (2 hunks)
- bundler/compiler/docs/modules.md (1 hunks)
- bundler/config/docs/modules.md (1 hunks)
- bundler/esbuild/docs/modules.md (1 hunks)
- bundler/resolutions/docs/modules.md (1 hunks)
- bundler/rollup/docs/modules.md (1 hunks)
- bundler/rspack/docs/modules.md (1 hunks)
- bundler/runtime/docs/modules.md (2 hunks)
- bundler/solc/docs/modules.md (4 hunks)
- bundler/unplugin/docs/modules.md (3 hunks)
- bundler/vite/docs/modules.md (1 hunks)
- bundler/webpack/docs/modules.md (1 hunks)
- tevm/docs/modules/index.md (1 hunks)
- tevm/docs/modules/vm.md (4 hunks)
- vm/vm/docs/modules.md (3 hunks)
- vm/vm/src/Tevm.ts (2 hunks)
- vm/vm/src/createTevm.js (4 hunks)
Files skipped from review due to trivial changes (1)
- tevm/docs/modules/index.md
Additional comments: 22
bundler/vite/docs/modules.md (1)
- 15-26: The simplification of type annotations in the function signature and parameter descriptions is a good practice for readability and maintainability, as long as the simplified types are still accurate and informative.
bundler/esbuild/docs/modules.md (1)
- 15-26: The simplification of type annotations in the function signature and parameter descriptions is a good practice for readability and maintainability, as long as the simplified types are still accurate and informative.
bundler/rollup/docs/modules.md (1)
- 15-26: The simplification of type annotations in the function signature and parameter descriptions is a good practice for readability and maintainability, as long as the simplified types are still accurate and informative.
bundler/rspack/docs/modules.md (1)
- 15-26: The simplification of type annotations in the function signature and parameter descriptions is a good practice for readability and maintainability, as long as the simplified types are still accurate and informative.
bundler/webpack/docs/modules.md (1)
- 15-26: The simplification of type annotations in the function signature and parameter descriptions is a good practice for readability and maintainability, as long as the simplified types are still accurate and informative.
bundler/bun/docs/modules.md (1)
- 21-32: > Note: This review was outside the patches, so it was mapped to the patch with the greatest overlap. Original lines [15-29]
The simplification of type annotations in the function signature and parameter descriptions is a good practice for readability and maintainability, as long as the simplified types are still accurate and informative.
bundler/runtime/docs/modules.md (1)
- 26-44: > Note: This review was outside the patches, so it was mapped to the patch with the greatest overlap. Original lines [19-41]
The simplification of type annotations in the type alias
ModuleType
and the function signature forgenerateRuntime
is a good practice for readability and maintainability, as long as the simplified types are still accurate and informative.bundler/solc/docs/modules.md (3)
21-21: The change to the
fileLevelOption
variable to assign an empty string with single quotes is a minor change and seems correct.31-31: The reference to the
releases
constant without backticks is a simplification and seems correct.60-79: > Note: This review was outside the patches, so it was mapped to the patch with the greatest overlap. Original lines [41-76]
The simplification of return types and parameter types for the functions
createSolc
andsolcCompile
by removing backticks and backslash escapes is a good practice for readability and maintainability, as long as the simplified types are still accurate and informative.bundler/unplugin/docs/modules.md (1)
- 27-50: > Note: This review was outside the patches, so it was mapped to the patch with the greatest overlap. Original lines [20-68]
The alterations in the type parameter declarations and the return types for the functions
createUnplugin
andtevmUnplugin
are a good practice for readability and maintainability, as long as the altered types are still accurate and informative.vm/vm/src/Tevm.ts (2)
2-2: The import of the
VM
type from@ethereumjs/vm
is correct and necessary for the new functionality being introduced.45-49: The addition of the new readonly property
_vm
to theTevm
interface is consistent with the PR objectives to enhance thetevm
with more sophisticated VM capabilities.bundler/base/docs/modules.md (1)
- 15-29: The simplification of the
bundler
function's return type fromObject
toobject
and the update of parameter types to remove backticks and dollar signs are good practices for readability and maintainability.tevm/docs/modules/vm.md (4)
43-43: The update to the line number where
CreateEVMOptions
is defined seems to be accurate and reflects the changes in the source code.58-58: The update to the line number where
CustomPrecompile
is defined seems to be accurate and reflects the changes in the source code.77-77: The update to the line number where
ForkOptions
is defined seems to be accurate and reflects the changes in the source code.118-118: The update to the line number where
Tevm
is defined seems to be accurate and reflects the changes in the source code.vm/vm/docs/modules.md (3)
83-83: The addition of the
_vm
property to theTevm
type is consistent with the PR objectives to enhance thetevm
with more sophisticated VM capabilities.118-118: The update to the line number where
Tevm
is defined inTevm.ts
seems to be accurate and reflects the changes in the source code.169-169: The update to the line number where
createTevm
is defined increateTevm.js
seems to be accurate and reflects the changes in the source code.vm/vm/src/createTevm.js (1)
- 3-8: The addition of imports for various Ethereum-related modules is necessary for the new functionality being introduced in the
tevm
.
@@ -6,24 +6,24 @@ | |||
|
|||
### Functions | |||
|
|||
- [vitePluginTevm](modules.md#viteplugintevm) | |||
- [vitePluginTevm](undefined) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The link to the vitePluginTevm
function is set to undefined
, which seems incorrect. This should be a valid link to the function's documentation or implementation.
@@ -6,24 +6,24 @@ | |||
|
|||
### Functions | |||
|
|||
- [esbuildPluginTevm](modules.md#esbuildplugintevm) | |||
- [esbuildPluginTevm](undefined) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The link to the esbuildPluginTevm
function is set to undefined
, which seems incorrect. This should be a valid link to the function's documentation or implementation.
@@ -6,24 +6,24 @@ | |||
|
|||
### Functions | |||
|
|||
- [rollupPluginTevm](modules.md#rollupplugintevm) | |||
- [rollupPluginTevm](undefined) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The link to the rollupPluginTevm
function is set to undefined
, which seems incorrect. This should be a valid link to the function's documentation or implementation.
@@ -6,24 +6,24 @@ | |||
|
|||
### Functions | |||
|
|||
- [rspackPluginTevm](modules.md#rspackplugintevm) | |||
- [rspackPluginTevm](undefined) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The link to the rspackPluginTevm
function is set to undefined
, which seems incorrect. This should be a valid link to the function's documentation or implementation.
@@ -6,24 +6,24 @@ | |||
|
|||
### Functions | |||
|
|||
- [webpackPluginTevm](modules.md#webpackplugintevm) | |||
- [webpackPluginTevm](undefined) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The link to the webpackPluginTevm
function is set to undefined
, which seems incorrect. This should be a valid link to the function's documentation or implementation.
- [moduleFactory](undefined) | ||
- [resolveImports](undefined) | ||
- [types](undefined) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The links to the modules moduleFactory
, resolveImports
, and types
are set to undefined
, which seems incorrect. These should be valid links to the modules' documentation or implementation.
- [resolveArtifacts](undefined) | ||
- [resolveArtifactsSync](undefined) | ||
- [types](undefined) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The links to the modules resolveArtifacts
, resolveArtifactsSync
, and types
are set to undefined
, which seems incorrect. These should be valid links to the modules' documentation or implementation.
- [defaultConfig](undefined) | ||
- [defineConfig](undefined) | ||
- [loadConfig](undefined) | ||
- [types](undefined) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The links to the modules defaultConfig
, defineConfig
, loadConfig
, and types
are set to undefined
, which seems incorrect. These should be valid links to the modules' documentation or implementation.
@@ -6,18 +6,18 @@ | |||
|
|||
### Type Aliases | |||
|
|||
- [CompilerOption](modules.md#compileroption) | |||
- [CompilerOption](undefined) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The link to the CompilerOption
type alias is set to undefined
, which seems incorrect. This should be a valid link to the type's documentation or implementation.
- [createUnplugin](undefined) | ||
- [tevmUnplugin](undefined) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The links to the functions createUnplugin
and tevmUnplugin
are set to undefined
, which seems incorrect. These should be valid links to the functions' documentation or implementation.
21cf0ab
to
7e27a19
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review Status
Actionable comments generated: 1
Configuration used: CodeRabbit UI
Files ignored due to path filters (2)
pnpm-lock.yaml
is excluded by:!**/*.yaml
vm/vm/package.json
is excluded by:!**/*.json
Files selected for processing (19)
- .changeset/ten-sloths-lick.md (1 hunks)
- bundler/base/docs/modules.md (1 hunks)
- bundler/bun/docs/modules.md (2 hunks)
- bundler/compiler/docs/modules.md (1 hunks)
- bundler/config/docs/modules.md (1 hunks)
- bundler/esbuild/docs/modules.md (1 hunks)
- bundler/resolutions/docs/modules.md (1 hunks)
- bundler/rollup/docs/modules.md (1 hunks)
- bundler/rspack/docs/modules.md (1 hunks)
- bundler/runtime/docs/modules.md (2 hunks)
- bundler/solc/docs/modules.md (4 hunks)
- bundler/unplugin/docs/modules.md (3 hunks)
- bundler/vite/docs/modules.md (1 hunks)
- bundler/webpack/docs/modules.md (1 hunks)
- tevm/docs/modules/index.md (1 hunks)
- tevm/docs/modules/vm.md (4 hunks)
- vm/vm/docs/modules.md (3 hunks)
- vm/vm/src/Tevm.ts (2 hunks)
- vm/vm/src/createTevm.js (4 hunks)
Files skipped from review as they are similar to previous changes (18)
- bundler/base/docs/modules.md
- bundler/bun/docs/modules.md
- bundler/compiler/docs/modules.md
- bundler/config/docs/modules.md
- bundler/esbuild/docs/modules.md
- bundler/resolutions/docs/modules.md
- bundler/rollup/docs/modules.md
- bundler/rspack/docs/modules.md
- bundler/runtime/docs/modules.md
- bundler/solc/docs/modules.md
- bundler/unplugin/docs/modules.md
- bundler/vite/docs/modules.md
- bundler/webpack/docs/modules.md
- tevm/docs/modules/index.md
- tevm/docs/modules/vm.md
- vm/vm/docs/modules.md
- vm/vm/src/Tevm.ts
- vm/vm/src/createTevm.js
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review Status
Actionable comments generated: 0
Configuration used: CodeRabbit UI
Files selected for processing (1)
- .changeset/ten-sloths-lick.md (1 hunks)
Files skipped from review as they are similar to previous changes (1)
- .changeset/ten-sloths-lick.md
Apply suggestions from code review Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
1a9f7bc
to
caf62a9
Compare
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.⚠️ ⚠️ ⚠️ ⚠️ ⚠️ ⚠️ `main` is currently in **pre mode** so this branch has prereleases rather than normal releases. If you want to exit prereleases, run `changeset pre exit` on `main`.⚠️ ⚠️ ⚠️ ⚠️ ⚠️ ⚠️ # Releases ## @tevm/[email protected] ### Major Changes - [#828](#828) [`3b5f6729`](3b5f672) Thanks [@roninjin10](https://github.com/roninjin10)! - - Changed name of `TevmContract` to `Contract` - Changed name of `createTevmContract` to `createContract` - Added `Script` to be a Contract with bytecode - Removed bytecode from `Contract` - Added a new `withAddress` method for adding an address to a contract - Removed need to explicitly pass in undefined for optional params ## withAddress Before we had to spred contracts like this: ```typescript client.readContract({ address: contractAddress, ...Erc20Contract.read.balanceOf(userAddress), }); ``` Now Tevm can create a contract with an address attatched ```typescript client.readContract( Erc20Contract.withAddress(contractAddress).read.balanceOf(userAddress) ); ``` ## @tevm/[email protected] ### Minor Changes - [#822](#822) [`39a5b5e5`](39a5b5e) Thanks [@roninjin10](https://github.com/roninjin10)! - Added eth methods such as chainId getCode and getStorageAt to Tevm.eth. ### Patch Changes - [#804](#804) [`d514d111`](d514d11) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed bug with viem extension not decoding rawData into data - Updated dependencies \[[`8b3218b1`](8b3218b), [`39a5b5e5`](39a5b5e), [`98d76506`](98d7650)]: - @tevm/[email protected] ## [email protected] ### Minor Changes - [#822](#822) [`39a5b5e5`](39a5b5e) Thanks [@roninjin10](https://github.com/roninjin10)! - Added eth methods such as chainId getCode and getStorageAt to Tevm.eth. ### Patch Changes - [#804](#804) [`d514d111`](d514d11) Thanks [@roninjin10](https://github.com/roninjin10)! - Update tevm package to export all of tevm. Now users only need to `npm install tevm` to use all of tevm - Updated dependencies \[[`87427f30`](87427f3), [`8b3218b1`](8b3218b), [`cae17b7d`](cae17b7), [`39a5b5e5`](39a5b5e), [`3b5f6729`](3b5f672), [`0ee22d0a`](0ee22d0), [`0ee22d0a`](0ee22d0), [`d514d111`](d514d11), [`941a630a`](941a630), [`98d76506`](98d7650)]: - @tevm/[email protected] - @tevm/[email protected] - @tevm/[email protected] - @tevm/[email protected] - @tevm/[email protected] ## @tevm/[email protected] ### Minor Changes - [#820](#820) [`cae17b7d`](cae17b7) Thanks [@roninjin10](https://github.com/roninjin10)! - Added all eth_\* debug_\_ and anvil\_\_ JSON-rpc methods and handlers to API. - [#822](#822) [`39a5b5e5`](39a5b5e) Thanks [@roninjin10](https://github.com/roninjin10)! - Added eth methods such as chainId getCode and getStorageAt to Tevm.eth. ### Patch Changes - [#811](#811) [`87427f30`](87427f3) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed bug with EVM errors requiring importing ethereumjs enum to typematch - [#800](#800) [`0ee22d0a`](0ee22d0) Thanks [@roninjin10](https://github.com/roninjin10)! - Renamed TevmClient type to Tevm - [#800](#800) [`0ee22d0a`](0ee22d0) Thanks [@roninjin10](https://github.com/roninjin10)! - Added JSDOC to @tevm/api - [#808](#808) [`941a630a`](941a630) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed bug with 'to' and 'error' properties not quite working correctly for tevm. To was listed as require instead of only existing when no errors. ## @tevm/[email protected] ### Minor Changes - [#805](#805) [`8b3218b1`](8b3218b) Thanks [@0xNonCents](https://github.com/0xNonCents)! - Enable State Load and Dump actions - [#822](#822) [`39a5b5e5`](39a5b5e) Thanks [@roninjin10](https://github.com/roninjin10)! - Added eth methods such as chainId getCode and getStorageAt to Tevm.eth. - [#823](#823) [`f7865314`](f786531) Thanks [@roninjin10](https://github.com/roninjin10)! - Added support for debug_traceCall handler ### Patch Changes - [#804](#804) [`d514d111`](d514d11) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed bug with tevm account not updating code hash when deployedBytecode is put into state - Updated dependencies \[[`3b4a347d`](3b4a347), [`39a5b5e5`](39a5b5e), [`d514d111`](d514d11), [`d514d111`](d514d11), [`aec294ba`](aec294b)]: - @tevm/[email protected] - @tevm/[email protected] ## @tevm/[email protected] ### Minor Changes - [#805](#805) [`8b3218b1`](8b3218b) Thanks [@0xNonCents](https://github.com/0xNonCents)! - Enable State Load and Dump actions ## @tevm/[email protected] ### Minor Changes - [#805](#805) [`8b3218b1`](8b3218b) Thanks [@0xNonCents](https://github.com/0xNonCents)! - Enable State Load and Dump actions - [#822](#822) [`39a5b5e5`](39a5b5e) Thanks [@roninjin10](https://github.com/roninjin10)! - Added eth methods such as chainId getCode and getStorageAt to Tevm.eth. - [#818](#818) [`98d76506`](98d7650) Thanks [@roninjin10](https://github.com/roninjin10)! - Added blockchain to the Tevm VM so anvil, hardhat, and eth_json_rpc requests can be handled ### Patch Changes - Updated dependencies \[[`87427f30`](87427f3), [`d514d111`](d514d11), [`39a5b5e5`](39a5b5e), [`8b3218b1`](8b3218b), [`d514d111`](d514d11), [`cae17b7d`](cae17b7), [`39a5b5e5`](39a5b5e), [`3b5f6729`](3b5f672), [`0ee22d0a`](0ee22d0), [`0ee22d0a`](0ee22d0), [`941a630a`](941a630), [`f7865314`](f786531)]: - @tevm/[email protected] - @tevm/[email protected] - @tevm/[email protected] - @tevm/[email protected] - @tevm/[email protected] - @tevm/[email protected] ## @tevm/[email protected] ### Patch Changes - Updated dependencies \[[`3b5f6729`](3b5f672)]: - @tevm/[email protected] ## @tevm/[email protected] ### Patch Changes - [#822](#822) [`39a5b5e5`](39a5b5e) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed bug with swallowing errors that didn't return text - [#804](#804) [`d514d111`](d514d11) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed bug with checking method falsely ## @tevm/[email protected] ### Patch Changes - Updated dependencies \[[`8b3218b1`](8b3218b), [`39a5b5e5`](39a5b5e), [`3b5f6729`](3b5f672), [`d514d111`](d514d11), [`98d76506`](98d7650)]: - @tevm/[email protected] - @tevm/[email protected] - @tevm/[email protected] ## @tevm/[email protected] ### Patch Changes - Updated dependencies \[[`3b5f6729`](3b5f672)]: - @tevm/[email protected] ## @tevm/[email protected] ### Patch Changes - [#809](#809) [`0efe3b03`](0efe3b0) Thanks [@roninjin10](https://github.com/roninjin10)! - Added jsdoc to createHttpHandler - Updated dependencies \[[`3b4a347d`](3b4a347), [`d514d111`](d514d11), [`aec294ba`](aec294b)]: - @tevm/[email protected] ## @tevm/[email protected] ### Patch Changes - [#807](#807) [`3b4a347d`](3b4a347) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed bug with zod validator swallowing missing `to` parameter errors - [#804](#804) [`d514d111`](d514d11) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed bug with JsonRpcRequest throwing for requests with no params - [#806](#806) [`aec294ba`](aec294b) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed bug in zod validators for contract params which falsely listed `to` as optional - Updated dependencies \[[`87427f30`](87427f3), [`cae17b7d`](cae17b7), [`39a5b5e5`](39a5b5e), [`0ee22d0a`](0ee22d0), [`0ee22d0a`](0ee22d0), [`941a630a`](941a630)]: - @tevm/[email protected] Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Description
To be able to reach full JSON-RPC and anvil_ hardhat_ compatibility we need to add blockchain and vm to Tevm
Testing
Explain the quality checks that have been done on the code changes
Additional Information
Your ENS/address:
Summary by CodeRabbit
Documentation
tevm
documentation.Tevm
type within thevm
module.New Features
_vm
property to theTevm
interface to support additional virtual machine functionalities.