Skip to content

List of improvements  #3

@wasm-forge

Description

@wasm-forge

The ongoing list of issues to fix and features to implement:

  • Add generator for candid values
  • Add an individual canister via command
  • The ic-test tool needs to detect if .dfx is available and report a corresponding message
  • The alloy dependencies are not needed if the project under test does not test EVM contracts
  • Convenient user interface to ask user additional questions via CLI UI
  • order alphabetically canister names
  • only generate canister types "custom" and "rust"
  • search for foundry.toml in subfolders as well
  • make sure foundry.toml paths work and they are relative to foundry.toml
  • keep $HOME unexpanded when saving into ic-test.json
  • the default state for not generating frontend canister is always reset, it should remember this configuration on the next launch
  • panic error when there are no canisters found, rather quit with a reasonable error message
  • "ic-test new" should automatically go into interactive mode just like "ic-test" alone
  • do not try to do "dfx build" internally, only ask user to do it
  • dfx.json must exist when launching the tool, otherwise show an error message
  • dfx.json does not have to exist if skip_dfx_json is true
  • option to launch the generator from a different project root (--root parameter)

binding generator improvements:

  • into generated files, add #!cfg attr to ignore fmt warnings
  • if no init arguments, the // init args comment is not needed
  • rename test var name to the less generic icp_test
  • generate an example method call let result = canister_name./*method_name*/(todo!()).call().await;
  • fix generating numbers, when no concrete number value was present in the candid value
  • more generator tests
  • fix generator sometimes mixing todo! with the structure/enum name

convenience improvements:

  • if foundry.toml not found, ask user to enter its path
  • Beautify argument names in the generated deploy function (change arg0, arg1, ... to something else)
  • Beautify argument names in the generated canister rust functions (change arg0, arg1, ... to actual names from Candid, where possible)
  • Calling generated methods requiring text arguments forces to explicitly convert &str to String
  • it is easy to forget to call "call()" after building the canister call, introduce #[must_use] to get a warning

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions