Generate Transaction

Once an application is connected to Martian wallet via connect method, an app can generate a transaction request serialized byte string using window.martian.generateTransaction()and it will return a Promise that resolves when the request is successful and reject (throw when awaited) when the request is not valid/fails. It takes three parameter listed below

  • sender: Aptos Address of the owner

  • payload: function: EntryFunctionId; type_arguments: Array; arguments: Array;

  • options?: It allow to overwrite default transaction options.

// Default transaction Options
{
   sender: senderAddress.hex(),
   sequence_number: account.sequence_number,
   max_gas_amount: "4000",
   gas_unit_price: "1",
   gas_currency_code: "XUS",
   // Unix timestamp, in seconds + 10 seconds
   expiration_timestamp_secs: (Math.floor(Date.now() / 1000) + 10).toString(),
 }

Below is an example code describing the way to generate a transaction.

// Generate a transaction
const response = await window.martian.connect();
const sender = response.address;
const payload = {
    function: "0x1::coin::transfer",
    type_arguments: ["0x1::aptos_coin::AptosCoin"],
    arguments: ["0x96da8990a7230a82250e85d943ca95e2e9319e5558b0f544f2d7a6aad327e46f", 50]
};
// example to set custom gas amount, default options are mentioned above
const options = {
    max_gas_amount: "10000"
}
const transactionRequest = await window.martian.generateTransaction(sender, payload, options);

Last updated