signTransactionRaw function

Future<Uint8List> signTransactionRaw(
  1. Transaction transaction,
  2. Credentials c, {
  3. int? chainId = 1,
})

Implementation

Future<Uint8List> signTransactionRaw(Transaction transaction, Credentials c,
    {int? chainId = 1}) async {
  if (transaction.isEIP1559 && chainId != null) {
    final encodedTx = LengthTrackingByteSink();
    encodedTx.addByte(0x02);
    encodedTx.add(rlp
        .encode(_encodeEIP1559ToRlp(transaction, null, BigInt.from(chainId))));

    encodedTx.close();
    final signature = await c.signToSignature(encodedTx.asBytes(),
        chainId: chainId, isEIP1559: transaction.isEIP1559);

    return uint8ListFromList(rlp.encode(
        _encodeEIP1559ToRlp(transaction, signature, BigInt.from(chainId))));
  }
  final innerSignature =
      chainId == null ? null : MsgSignature(BigInt.zero, BigInt.zero, chainId);

  final encoded =
      uint8ListFromList(rlp.encode(_encodeToRlp(transaction, innerSignature)));
  final signature = await c.signToSignature(encoded, chainId: chainId);

  return uint8ListFromList(rlp.encode(_encodeToRlp(transaction, signature)));
}