Ir 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 secciones anteriores, puedes construir una transacción usando buildSimpleTransaction con el constructor de transacciones lean. Para transacciones patrocinadas, especifica withFeePayer = true.

val txn =
aptos.buildSimpleTransaction(
sender = alice.accountAddress,
withFeePayer = true,
) {
function = "0x1::coin::transfer"
typeArgs("0x1::aptos_coin::AptosCoin")
args(bob.accountAddress, 1_000_000UL)
}

Una vez construida, el remitente firma la transacción usando sign.

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

Firmar la Transacción como Pagador de Tarifas

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

El pagador de tarifas firma usando signAsFeePayer.

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

Envía la transacción con ambos autenticadores.

val pendingTxn =
aptos
.submitTransaction.simple(
transaction = txn,
senderAuthenticator = aliceAuthenticator,
feePayerAuthenticator = feePayerAuthenticator,
)
.expect("Failed to submit transaction")