@evmts/plugin-rollup v0.0.1
@evmts/plugin-rollup
A rollup plugin for importing solidity files.
Instalation
pnpm i @evmts/plugin-rollup
Vite usage
Install rollup plugin
npm i @evmts/plugin-rollup
Add to your vite config
import { tsSolPlugin } from '@evmts/plugin-rollup`
import { defineConfig } from 'vite'
export default defineConfig({
plugins: [tsSolPlugin()]
})
Rollup usage
const { tsSolPlugin } = require('@evmts');
module.exports = {
...
plugins: [tsSolPlugin()]
};
How it works
Under the hood this plugin will transform solidity imports
When the plugin sees a solidity import it will make the following changes
- Update the import to import a .ts file
- import scripts from './MyScript.sol'
+ import scripts from './MyScript.sol.ts'
Insert a new typescript file MyScript.sol.ts as an artifact
// MyScript.sol.ts
export default {
name,
artifactPath,
contractPath,
address,
abi,
bytecode,
}
The typescript can then go ahead and use the artifacts however it pleases
Usage in @evmts/core
See full evms-core for how it's used in evmts. This plugin can be used in other repos as well.
Usage in other libraries
Currently only @evmts/core
is using this but this could easily be adapted or extended for other libraries.
Autocompletion and Typesafety
For typesafety and autocompletion in your editor add @evmts/ts-plugin to your tsconfig.json.
Custom Ts plugins are for developer experience only
The typescript compiler does not use custom ts plugins at compile time only in your editor. You will get red squiggly lines telling you something is wrong but it will still compile.
Other plugins
See plugin-webpack if using webpack