Skip to content

@tevm/[email protected]

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 02 Jul 05:29
· 279 commits to main since this release
bb3fae1

@tevm/plugin

2.0.0-next.86

Patch Changes

2.0.0-next.83

Patch Changes

2.0.0-next.80

Patch Changes

2.0.0-next.79

Patch Changes

1.1.0-next.77

Patch Changes

1.1.0-next.74

Patch Changes

  • #1186 7765446 Thanks @roninjin10! - Moved files around to colocate code better. Some packages are disappearing

    • Tevm/Zod is now part of Tevm/actions
    • Tevm/actions-types moved to Tevm/actions
    • Tevm/procedures-types moved to Tevm/procedures
  • Updated dependencies [7765446]:

1.1.0-next.73

Patch Changes

1.1.0-next.72

Minor Changes

Patch Changes

1.1.0-next.70

Patch Changes

1.1.0-next.69

Patch Changes

1.1.0-next.60

Patch Changes

1.1.0-next.52

Patch Changes

1.1.0-next.47

Patch Changes

1.0.0-next.41

Patch Changes

1.0.0-next.40

Patch Changes

1.0.0-next.28

Patch Changes

1.0.0-next.25

Patch Changes

1.0.0-next.23

Major Changes

Patch Changes

1.0.0-next.21

Patch Changes

1.0.0-next.19

Patch Changes

1.0.0-next.18

Patch Changes

1.0.0-next.17

Patch Changes

1.0.0-next.16

Minor Changes

  • #714 95b534c3 Thanks @roninjin10! - Added ability to resolve most paths in tsconfig that look similar to '@/': ['./']

Patch Changes

1.0.0-next.15

Patch Changes

1.0.0-next.13

Patch Changes

1.0.0-next.12

Patch Changes

1.0.0-next.11

Patch Changes

1.0.0-next.10

Patch Changes

1.0.0-next.9

Patch Changes

1.0.0-next.8

Patch Changes

1.0.0-next.6

Patch Changes

1.0.0-next.5

Patch Changes

1.0.0-next.4

Patch Changes

1.0.0-next.3

Patch Changes

1.0.0-next.2

Patch Changes

1.0.0-next.0

Patch Changes

0.11.2

Patch Changes

0.10.0

Patch Changes

  • #469 dbc2da6 Thanks @roninjin10! - Made @tevm/config loading async

  • #468 e99fcd0 Thanks @roninjin10! - Improved peformance of bundler via enabling async mode

    Previously all bundlers including the Bun bundler ran with syncronous IO such as readFileSync. With the introduction of async mode the bundler now is more non blocking when it is bundling now. Solc is still syncronous but all IO is now async.

    @tevm/base now takes a File-Access-Object as a param. This FileAccessObject is the same shape as node:fs module. Bun uses this generic interace to use native Bun file access.

  • #475 cb83c0c Thanks @roninjin10! - Added snapshot test of vite bundler build outputs

  • Updated dependencies [dbc2da6, 1c4cbd2, e99fcd0, cb83c0c]:

0.9.0

Patch Changes

0.8.1

Patch Changes

  • #453 c23302a Thanks @roninjin10! - Started publishing every commit to main so all Tevm changes can be used early. To use the latest main branch release install with @main tag. e.g. npm install @tevm/ts-plugin@main

  • Updated dependencies [c23302a]:

0.8.0

Minor Changes

  • #438 eedb7e0 Thanks @roninjin10! - Improve peformance by 98% (5x) testing against 101 simple NFT contract imports

    Major change: remove bytecode from Tevm. Needing the bytecode is a niche use case and removing it improves peformance of the compiler significantly. In future bytecode will be brought back as an optional prop

    This improves peformance by 98% (50x) testing against 101 simple NFT contract imports

    Because Tevm is still considered in alpha this will not cause a major semver bump

Patch Changes

0.7.1

Patch Changes

0.7.0

Minor Changes

  • #417 11e30fa Thanks @roninjin10! - Added example app of usage of vite plugin in MUD framework

    What is mud

    MUD is a framework for ambitious Ethereum applications. It compresses the complexity of building EVM apps with a tightly integrated software stack.
    MUD and Tevm have similar goals. Tevm is approaching it from an unopionionated modular point of view whereas MUD is more of a batteries included opionated framework more similar to Ruby on Rails or NEXT.js. They don't compete with each other in their full form they very much complement each other.
    MUD's template only has a single contract import but this can be improved upon in future as that one contract is an entrypoint to system contracts. Also Tevm provides a more streamlined way to interact with third party contracts not built with MUD storage

    This mud template is also the first usage of Tevm in a monorepo. Usage in PNPM monorepo which is the strictist type of monorepo validates that Tevm works in all monorepos. This example project and it's upcoming e2e test will provide a tool to debug monorepos and test coverage for this use case

  • #426 0191aee Thanks @roninjin10! - Added svelte-ethers Tevm example app

    This example app is the first using Svelte for direct contract imports. The import happens in the svelte page

    <script>
      import { onMount } from 'svelte';
      import { writable } from 'svelte/store';
      import { EthersMintExample } from '../contracts/EthersMintExample.sol';
      import {createEthersContract} from '@tevm/ethers'
      import { Contract, JsonRpcProvider } from 'ethers'
    
      // Create stores for all reactive variables
      let totalSupply = writable('');
      let ownerOf = writable('');
      let balanceOf = writable('');
    
      const tokenId = BigInt('114511829')
    
      const provider = new JsonRpcProvider('https://goerli.optimism.io', 420)
      const ethersContract = createEthersContract(EthersMintExample, {
    		chainId: 420,
    		runner: provider,
    	})
    
      onMount(async () => {
        totalSupply.set(await ethersContract.totalSupply());
        ownerOf.set(await ethersContract.ownerOf(tokenId));
        if ($ownerOf?.toString()) {
          balanceOf.set(await ethersContract.balanceOf($ownerOf?.toString()));
        }
      });
    </script>
    
    <h1>Welcome to SvelteKit</h1>
    <p>Visit <a href="https://kit.svelte.dev">kit.svelte.dev</a> to read the documentation</p>
    <div>
      <div>
        <h3>totalSupply():</h3>
        <div>{$totalSupply?.toString()}</div>
        <br />
        <h3>ownerOf(): </h3>
        <div>{$ownerOf?.toString()}</div>
        <br />
        <h3>balanceOf($address):</h3>
        <div>{$balanceOf?.toString()}</div>
      </div>
    </div>

    Here you can see we import a contract directly from EthersMintExample.sol and use it with ethers.js

    • The svelte example is powered by @tevm/vite-plugin and @tevm/ts-plugin
    • This svelte example is using js with jsdoc which is now newly enabled
    • This is the first example app using the @tevm/ethers package which brings typesafe ethers.js contracts to the table
      • Note CLI typechecker will not be enabled until Beta release for now typesafety is purely in the editor

    App is extremely minimal as I have almost 0 experience using svelte. Contributions are welecome

Patch Changes

0.6.0

Patch Changes

0.5.7

Patch Changes

0.5.6

Patch Changes

0.5.5

Patch Changes

0.5.4

Patch Changes

0.5.3

Patch Changes

0.5.2

Patch Changes

0.5.1

Patch Changes

0.5.0

Minor Changes

  • #283 05a8efe Thanks @roninjin10! - Updated config schema to support etherscan
    • Solc version is now listed under compiler.solcVersion instead of solc
    • Foundry projects are now listed under compiler.foundryProject instead of forge
    • Local contracts are now specified under localContracts.contracts instead of deployments
    • New external option (unimplemented) externalContracts which is used to specifify contracts imported from etherscan in the next release

Patch Changes

0.4.2

Patch Changes

0.4.1

Patch Changes

0.4.0

Minor Changes

  • #268 a37844f Thanks @roninjin10! - Added support for detecting foundry.toml and remappings as tsconfig option. Set forge: true in plugin tsconfig options or forge: '/path/to/binary/forge' for a custom forge binary

Patch Changes

0.3.0

Minor Changes

Patch Changes

0.2.0

Minor Changes

Patch Changes

0.1.0

Minor Changes

Patch Changes

0.0.4

Patch Changes

0.0.3

Patch Changes

0.0.2

Patch Changes

0.0.2-next.0

Patch Changes

0.0.1

Patch Changes

  • Release working proof of concept