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:
- Determinar sobre operación creando una Transacción
- El remitente firma la transacción
- El pagador de tarifas firma la transacción
- Enviar la transacción
Determinar Sobre Operación
Sección titulada «Determinar Sobre Operació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, )
Firmar la Transacción
Sección titulada «Firmar la Transacción»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,)
Enviar la Transacción
Sección titulada «Enviar la Transacción»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, )