multiversx / mx-sdk-py-cli

Python Command Line Tools and SDK for interacting with the MultiversX blockchain and dApps.
Other
34 stars 36 forks source link

Merge feat/next(v9) into main #351

Closed popenta closed 9 months ago

popenta commented 10 months ago

This new version of mxpy(v9) contains quite a few changes over the previous one.

mxpy deps

By using the mxpy deps install rust command rust will be installed system-wide. When installing the rust module, sc-meta, twiggy and wasm-opt are also installed. The clang dependency has also been removed. You can not install it through mxpy anymore. You'll have to install it manually, if needed.

mxpy contract

From now on, mxpy will use sc-meta for displaying the available contract templates and for creating a new contract using the available templates.

For the mxpy contract new command:

For the mxpy contract templates command:

mxpy wallet

Two new sub-commands have been added for the wallet command group:

mxpy wallet sign-message

This command is used to sign a message. It requires the --message argument and you'll also need to pass in a wallet that will be used for signing the message.

When running mxpy wallet sign-message --message test --pem alice.pem the output will look something like this:

{
            "address": "erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th",
            "message": "test",
            "signature": "0x7aff43cd6e3d880a65033bf0a1b16274854fd7dfa9fe5faa7fa9a665ee851afd4c449310f5f1697d348e42d1819eaef69080e33e7652d7393521ed50d7427a0e"
}

mxpy wallet verify-message

This command is used for verifying a previously signed message. It requires the --address argument which is the bech32 address of the signer, the --message argument which represents the signed message(in readable format) and the --signature argument which is the message signature hex encoded.

To verify the message signed above we can run the following command:

mxpy wallet verify-message \
--address erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th \
--message test \
--signature 0x7aff43cd6e3d880a65033bf0a1b16274854fd7dfa9fe5faa7fa9a665ee851afd4c449310f5f1697d348e42d1819eaef69080e33e7652d7393521ed50d7427a0e

The output will look like this:

The message "test" was signed by erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th

In case the message was not signed by someone with that address the output will be:

The message "not signed" was NOT signed by erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th