Entry Function

If you haven't created a MSafe wallet, please follow the instruction Create a MSafe Wallet to create a new MSafe wallet.

You can call any MOVE entry function with MSafe. Other than Transfer Coin and Smart Contract | Module Publish, popular use cases are:

  1. Protocol parameter change;

  2. Emergency control;

  3. Interact with any MOVE module.

Initiate a call to an entry function

Select a created MSafe account, and select n) New transaction to initiate a new transaction. Select 4 to call a module function.

Please choose your transaction type

	1)	Transfer APT
	2)	Transfer COIN
	3)	Register COIN
	4)	Custom module interaction
	5)	Module publish

Please input your option:		4

Select module

Then the terminal will prompt arguments for which module to interact with:

Start Custom module interaction

	Module name (E.g. 0x1::coin):		0x1908fe0d337d7bd718c8465030c5f306377ac396f3d7acce92f526ae41637cc0::message

Pulling ABI from chain...

Here we simply use the message module in Aptos move example. The move src file is also included in the CLI-MSafe repository, and under ./tests/move.

Select entry function

After inputing the published module name, the MSafe CLI will fetch ABI data from blockchain, and display public entry functions:

Please select the function you want to interact with:

	1)	set_message
	b)	Back

Please input your option:		1

In this case, there is only one public entry function set_message from the module ABI. Select the function, and input the parameters which is the input to the function.

Note at this stage, calling an entry function only allows limited type of arguments, including:

  1. u128, u64, u32, u16, u8

  2. address

  3. &signer

  4. vector<u8>

We will support more types shortly.

Input type arguments

First input the number of type arguments. In this case, we do not have type arguments inputs with the entry function signature. Thus, input 0 for Number Type Arguments.

Number Type Arguments:		0

For other functions that take type arguments as input, input the number of arguments and fill in the full name of the argument (E.g. 0x1::coin::CoinInfo).

Input function arguments

The ABI contains function argument types. Follow the instructions to input all parameters:

Start to input arguments:

	1: Type signer			&signer
	2: Type 0x1::string::String	"hello momentum safe"

Note that the signer object is automatically filled in since it cannot be parsed in but through signature verification in MOVE vm.

Confirm and submit

Transaction confirmation:

Action:			Entry function
Call function:		0x1908fe0d337d7bd718c8465030c5f306377ac396f3d7acce92f526ae41637cc0::message::set_message
Arguments (1):		[string]	"hello momentum safe"
Sender:			0x1908fe0d337d7bd718c8465030c5f306377ac396f3d7acce92f526ae41637cc0
Sequence Number:	4
Expiration:		Sun Oct 09 2022 11:58:45 GMT-0700 (Pacific Daylight Time)
Gas Price:		100
Max Gas:		5000

Confirm with transaction details, and submit on chain

Transaction information correct? [Y/n]

	Transaction 0x121f435278c7e48a49d421cc60951b053c17fe050a8b39047f9145280294e740 submitted to blockchain
	Transaction confirmed on chain.

Confirm for other owners

For other owners, confirm and execute the transaction either on CLI or web application.

Pending transactions:

		| SN	| Action			| Confirmation	|

	1)	| 4	| Entry Function		| 1 / 2
	n)	New transaction
	r)	Refresh
	b)	Back

Last updated