Skip to main content

Grouped Transaction

Create and sign an atomic payment transaction (2 transactions grouped).

Preconditions

  • User has a wallet and has shared an account with the site

  • The transaction sender must match with one of the addresses shared by the user.

Interactive Example

Invalid Address
Invalid Address
In order to run this example, you need to execute connect() method.
Example code
import algosdk from "algosdk";
import MyAlgoConnect from '@randlabs/myalgo-connect';
 
const algodClient = new algosdk.Algodv2("",'https://node.testnet.algoexplorerapi.io', '');
const params = await algodClient.getTransactionParams().do();

const txn1 = algosdk.makePaymentTxnWithSuggestedParamsFromObject({
    suggestedParams: {
        ...params,
    },
    from: sender,
    to: receiver1, 
    amount: amount1
});

const txn2 = algosdk.makePaymentTxnWithSuggestedParamsFromObject({
    suggestedParams: {
        ...params,
    },
    from: sender,
    to: receiver2, 
    amount: amount2
});

const txnsArray = [ txn1, txn2 ];
const groupID = algosdk.computeGroupID(txnsArray)
for (let i = 0; i < 2; i++) txnsArray[i].group = groupID;

const txns = txnsArray.map(txn => ({
    txn: Buffer.from(txn.toByte()).toString('base64')
}));

const myAlgoConnect = new MyAlgoConnect();
const signedTxns = await myAlgoConnect.signTxns(txns);
import algosdk from "algosdk";
import MyAlgoConnect from '@randlabs/myalgo-connect';
 
const algodClient = new algosdk.Algodv2("",'https://node.testnet.algoexplorerapi.io', '');
const params = await algodClient.getTransactionParams().do();
const txn1 = algosdk.makePaymentTxnWithSuggestedParamsFromObject({
    suggestedParams: {
        ...params,
    },
    from: sender,
    to: receiver1, 
    amount: amount1
});
const txn2 = algosdk.makePaymentTxnWithSuggestedParamsFromObject({
    suggestedParams: {
        ...params,
    },
    from: sender,
    to: receiver2, 
    amount: amount2
});
const txnsArray = [ txn1, txn2 ];
const groupID = algosdk.computeGroupID(txnsArray)
for (let i = 0; i < 2; i++) txnsArray[i].group = groupID;
const myAlgoConnect = new MyAlgoConnect();
const signedTxns = await myAlgoConnect.signTransaction(txnsArray.map(txn => txn.toByte()));