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

Astar Treasury Proposal Roadmap - ink!DevHub 1.0 #218

Merged
merged 20 commits into from
Mar 25, 2024
Merged

Conversation

ipapandinas
Copy link
Contributor

Redo normal merge after having rebase #205

prxgr4mm3r and others added 20 commits February 12, 2024 11:33
…191)

In node install command, having version locking mechanism, and allow
users specify which version to install with command args.
Add command `swanky node version`

---------

Co-authored-by: Igor Papandinas <[email protected]>
Co-authored-by: Igor Papandinas <[email protected]>
Co-authored-by: Igor Papandinas <[email protected]>
- created a new `env` command
- moved the `check` functionality under `env` command
- implemented an `install` command to install all or individual deps
- added the *env* section to *swanky.config* on `init` with default
version from docker base-image
- implemented the edit flow for the *env* section in *swanky.config*
This PR are connected to [Ganache-like testing feature
#49](inkdevhub/swanky-node#49). The main
purpose of this issue is to make testing easier by implementing next
features:
> * block time stamp manipulation (can mine a block with arbitrary block
time stamp)
> * block number manipulation
> * taking a snapshot and retrieve later
> * Balance manipulation of accounts
> * Impersonate any account

All of them can already implemented in
[Chopsticks](https://github.com/AcalaNetwork/chopsticks). Below I will
explain how to use it.
Firstly, you should set up your swanky project with `swanky init` and
choose that you want to install swanky-node. Then you should use `swanky
node chopsticks init` to initiate chopsticks config, which will be
stored in the `./node/config/` folder. Then you start the node(`swanky
node start`) and fork it with chopsticks(`swanky node chopsticks
start`).
Now we have a testing node that has all the features that we need.
Chopsticks allow to use of different RPC calls. Full list of them you
can check
[here](https://acalanetwork.github.io/chopsticks/docs/chopsticks/README.html).
For example, you can do timestamp manipulation by `dev_timeTravel' RPC
call:
```TypeScript
import { WsProvider } from '@polkadot/rpc-provider'
const ws = new WsProvider(`ws://localhost:8000`)
await ws.send('dev_timeTravel', ['Jan 1, 2023'])
```
Or go back to any block by 'dev_setHead':
```TypeScript
import { WsProvider } from '@polkadot/rpc-provider'
const ws = new WsProvider(`ws://localhost:8000`)
await ws.send('dev_setHead', [1000000])
```

---------

Co-authored-by: Igor Papandinas <[email protected]>
Added clear command and documentation.
Co-authored-by: Igor Papandinas <[email protected]>
@ipapandinas ipapandinas merged commit e8aec83 into master Mar 25, 2024
8 checks passed
@ipapandinas ipapandinas deleted the ink-devhub-1 branch March 25, 2024 13:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants