Saltearse al contenido

Transacciones Sin Orden

Las transacciones sin orden te permiten crear transacciones que no especifican un orden de ejecución entre ellas. Esto es particularmente útil en escenarios donde múltiples máquinas necesitan firmar una transacción, pero el orden en el que firman no afecta el resultado de la transacción o importa al creador.

Crear y ejecutar una transacción multi-agente sigue un flujo similar al flujo de transacción simple, y el flujo de transacción multi-agente.

Por ejemplo, para crear una transacción de firma única que use transacciones sin orden, especifica el nonce en el método build.simple así:

const transaction = await aptos.transaction.build.simple({
sender: sender.accountAddress,
data: {
// Todas las transacciones en Aptos se implementan a través de contratos inteligentes.
function: "0x1::aptos_account::transfer",
functionArguments: [destination.accountAddress, 100],
},
options: {
replayProtectionNonce: 12345, // Este es el nonce que se usará para asegurar que la transacción sea única.
}
});

De manera similar, si estás construyendo una transacción multi-agente, puedes especificar el replayProtectionNonce en el método build.multiAgent:

const transaction = await aptos.transaction.build.multiAgent({
sender: sender.accountAddress,
secondarySignerAddresses: [bob.accountAddress], // Lista de firmantes secundarios
data: {
// Todas las transacciones en Aptos se implementan a través de contratos inteligentes.
function: "0x1::aptos_account::transfer",
functionArguments: [destination.accountAddress, 100],
},
options: {
replayProtectionNonce: 12345, // Este es el nonce que se usará para asegurar que la transacción sea única.
}
});

Y lo mismo si estás construyendo una transacción patrocinada, puedes especificar el replayProtectionNonce en el método build.multiAgent:

const transaction = await aptos.transaction.build.multiAgent({
sender: sender.accountAddress,
withFeePayer: true, // Esto indica que la transacción será patrocinada.
data: {
// Todas las transacciones en Aptos se implementan a través de contratos inteligentes.
function: "0x1::aptos_account::transfer",
functionArguments: [destination.accountAddress, 100],
},
options: {
replayProtectionNonce: 12345, // Este es el nonce que se usará para asegurar que la transacción sea única.
}
});

Después de eso, simplemente sigue los mismos pasos que harías para una transacción simple:

  1. Simular la transacción (opcional).
  2. Firmar la transacción.
  3. Enviar la transacción a la red.
  4. Esperar a que la transacción sea ejecutada.