Skip to content
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

Restructure the plugin to rely on Starknet.js #396

Open
ivpavici opened this issue Jun 29, 2023 · 2 comments
Open

Restructure the plugin to rely on Starknet.js #396

ivpavici opened this issue Jun 29, 2023 · 2 comments
Assignees
Labels
breaking A breaking change enhancement New feature or request

Comments

@ivpavici
Copy link
Contributor

Originally, the Hardhat Plugin was designed as a wrapper around the official Starknet CLI, since back then that was the only option to reliably interact with the network.

Now, Starknet CLI will be deprecated soon, and also Starknet.js is mature enough to replace all of the functionalities of the CLI.

This will be a major change, a lot of code could be deleted (and open issues closed). Maintenance will also be a lot easier.

This is actually the way Hardhat works on Ethereum - it relies on Ethers.js for interactions with the Ethereum blockchain, so the community should not be surprised with this change.

A migration guide should also be written.

@ivpavici ivpavici added enhancement New feature or request breaking A breaking change labels Jun 29, 2023
@FabijanC
Copy link
Collaborator

There are two things to do, maybe it could be seen as two stages:

  1. Related to Create a starknet.js wrapper #140, we can just replace the current Starknet CLI logic with starknet.js
  2. Remove our custom Contract and Account abstraction, making the users rely on starknet.js only.
    1. Would we need to change our compilation artifacts to match those required by starknet.js?
    2. How should we connect the network specifications from hardhat.config.ts and CLI (--starknet-network parameter of hardhat test) with the network provider of starknet.js?

@ivpavici
Copy link
Contributor Author

I would use the opportunity once this is done to introduce other breaking issues as well, marked by the breaking tag

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking A breaking change enhancement New feature or request
Projects
Status: 🏗 In progress
Development

No branches or pull requests

3 participants