Skip to content

This is a modified MoveVM fork for the use of MoveVM in the pallet-move Substrate repo. Please check the pallet-move repository to learn more about this project.

License

Notifications You must be signed in to change notification settings

eigerco/substrate-move

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

License

MoveVM for Substrate

This repository is part of the pallet-move project, which enables users to write smart contracts in Substrate-based blockchains with the Move language. This is a modified MoveVM fork for the use of MoveVM in the pallet-move Substrate repo.

Requirements

smove is a package manager for Move language in Substrate. Follow the instructions to install it.

Development

For the initial development setup, run the script:

./scripts/dev_setup.sh -ypt

Design

pallet-move uses the move-vm-backend to interact with the MoveVM.

The integral part of MoveVM functionality still lies within the language directory and contains only the necessary modifications which make the MoveVM operable within the Substrate framework.

Testing

To run tests for the MoveVM implementation, execute:

cargo test

To run tests for the move-vm-backend implementation, execute:

cargo test -p move-vm-backend --features build-move-projects-for-test # the `backend` main crate
cargo test -p move-vm-backend-common --features build-move-projects-for-test # helper crate for interaction with smove and pallet-move
cargo test -p move-vm-support # helper crate for interaction with language directory

Note: the feature flag build-move-projects-for-test needs to be provided only once in order to build all the necessary move-vm-backend/tests/assets/move-projects/ projects for test purposes (with the smove-build-all.sh script). Also, the feature flag needs to be provided whenever any of those Move projects are modified.

Open / Planned Points

  • clean clippy warnings for the latest rustc compiler
  • improve get_resource API (input params and the output value)

See also

  • pallet-move - Main repo containing the Move pallet.
  • move-stdlib - Provides elementary Move functions in Move smart contracts.
  • smove - Handles the gas estimation, the serialization of script and module transactions, and the inspection of the module's ABIs.
  • substrate-stdlib - Provides elementary Substrate functions in Move smart contracts.

License

Move is licensed as Apache 2.0.

About Eiger

We are engineers. We contribute to various ecosystems by building low level implementations and core components. We believe in Move and in Polkadot and wanted to bring them together. Read more about this project on our blog.

Contact us at hello@eiger.co Follow us on X/Twitter

About

This is a modified MoveVM fork for the use of MoveVM in the pallet-move Substrate repo. Please check the pallet-move repository to learn more about this project.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 67.5%
  • Move 25.3%
  • SMT 2.3%
  • TeX 2.1%
  • JavaScript 1.3%
  • Boogie 0.6%
  • Other 0.9%