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.
Construir Transacciones Sin Orden
Sección titulada «Construir Transacciones Sin Orden»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:
- Simular la transacción (opcional).
- Firmar la transacción.
- Enviar la transacción a la red.
- Esperar a que la transacción sea ejecutada.