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 #205

Merged
merged 20 commits into from
Mar 25, 2024
Merged

Conversation

…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]>
@ipapandinas ipapandinas added the enhancement New feature or request label Feb 12, 2024
@ipapandinas ipapandinas added this to the Grant proposal roadmap milestone Feb 12, 2024
prxgr4mm3r and others added 16 commits February 26, 2024 14:44
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 96a4245 into master Mar 25, 2024
4 checks passed
@ipapandinas ipapandinas deleted the ink-devhub-1 branch March 25, 2024 12:47
@ipapandinas ipapandinas restored the ink-devhub-1 branch March 25, 2024 13:02
@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