sign method

  1. @override
EthTxData sign()
override

Implementation

@override
EthTxData sign() {
  Uint8List msg = txData.getMessageToSign();
  txData.message = msg.toStr();
  EcdaSignature result =
      EcdaSignature.signForEth(dynamicToUint8List(msg), wallet.privateKey);
  txData.data.r = hexToBigInt(dynamicToHex(result.r));
  txData.data.s = hexToBigInt(dynamicToHex(result.s));
  txData.isSigned = true;

  /// Set v value
  switch (txData.txType) {
    case EthTxType.eip1559:
      txData.data.v = result.v - 27;
      break;
    case EthTxType.legacy:
      txData.data.v = result.v + txData.network.chainId * 2 + 8;
      break;
  }

  txData.signature = txData.serialize().toStr();
  return txData;
}