dethcrypto / eth-sdk

Type-safe, lightweight SDKs for Ethereum smart contracts
MIT License
432 stars 40 forks source link

Allow custom package name & version for the generated sdk #114

Open volkyeth opened 2 years ago

volkyeth commented 2 years ago

As Originally reported by @johanneskares in https://github.com/dethcrypto/eth-sdk/issues/102#issuecomment-1130059542, the generated package is not compatible with yarn workspaces:

Now I can include it as depdendency in my monorepo. Only problem is, I manually have to change the name of the generated package, because yarn doesn't like the name of the package .dethcrypto/eth-sdk-client in package.json. When I do

yarn workspace my-package add .dethcrypto/eth-sdk-client

I get Usage Error: The .dethcrypto/eth-sdk-client string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?

When I manually edit it to dethcrypto-eth-sdk-client-generated, everything works fine.

Customizing the generated package name in the config would solve this. Also, to use it as a standalone package in a monorepo setup - which is great if you're going to use the sdk in both the backend and front-end - it needs a version, which could either be included as a static field in the configuration, or initialized to a configurable value and then dynamically incremented in subsequent updates

The way it works today, I have to rewrite the sdk's package.json every time I update it

johanneskares commented 2 years ago

I switched over to using wagmi's getContract. You can just commit the json ABI and don't need a separate generation step.

https://github.com/wagmi-dev/abitype/discussions/48#discussioncomment-4031467