Saltearse al contenido

Transacciones Patrocinadas (Pagador de Tarifas)

El SDK de Kotlin proporciona soporte para transacciones patrocinadas también conocidas como transacciones de pagador de tarifas.

El flujo estándar para enviar una transacción patrocinada es el siguiente:

  1. Determinar sobre operación creando una Transacción
  2. El remitente firma la transacción
  3. El pagador de tarifas firma la transacción
  4. Enviar la transacción

Como ya hemos visto en la sección anterior, puedes construir una transacción por ti mismo usando el método buildTransaction.simple o usar los constructores de transacciones pre-construidos como transferCoinTransaction. Sin embargo, en el caso de transacciones patrocinadas, necesitas especificar el parámetro opcional withFeePayer como true en todos los casos.

val txn = aptos.buildTransaction.simple(
sender = alice.accountAddress,
data =
entryFunctionData {
function = "0x1::coin::transfer"
typeArguments = typeArguments { +TypeTagStruct("0x1::aptos_coin::AptosCoin") }
functionArguments = functionArguments {
+bob.accountAddress
+U64(SEND_AMOUNT_UNITS.toULong())
}
},
withFeePayer = true,
)

O

val txn = aptos.transferCoinTransaction(
sender = alice,
receiver = bob.accountAddress,
amount = SEND_AMOUNT_UNITS,
withFeePayer = true,
)

Una vez que hayas construido una transacción, tú (el remitente) puedes firmarla usando el método sign.

val aliceAuthenticator = aptos.sign(
sender = alice,
transaction = txn,
)

Firmar la Transacción como Pagador de Tarifas

Sección titulada «Firmar la Transacción como Pagador de Tarifas»

Para firmar la transacción como pagador de tarifas, puedes usar el método signAsFeePayer.

val signerAuthenticator = aptos.signAsFeePayer(
feePayer = sponsor,
transaction = txn,
)

Finalmente, puedes enviar la transacción a la red usando el método submit.

val committedTxn = aptos.submitTransaction.simple(
transaction = txn,
senderAuthenticator = aliceAuthenticator,
feePayerAuthenticator = signerAuthenticator,
)