calcTxSignedWithFeeDelegation function

Transaction calcTxSignedWithFeeDelegation(
  1. Wallet caller,
  2. Wallet payer,
  3. Transaction tx
)

Implementation

Transaction calcTxSignedWithFeeDelegation(
    Wallet caller, Wallet payer, Transaction tx) {
  assert(tx.isDelegated() == true);

  var callerHash = tx.getSigningHash(null);
  var payerHash = tx.getSigningHash(caller.adressString.toLowerCase());

  var finalSig = caller.sign(callerHash) + payer.sign(payerHash);

  tx.signature = Uint8List.fromList(finalSig);

  assert(tx.getOriginAsAddressString()!.toLowerCase() ==
      caller.adressString.toLowerCase());
  assert(tx.getDelegatorAsAddressString()!.toLowerCase() ==
      payer.adressString.toLowerCase());

  return tx;
}