signBcHTransaction method

List<int> signBcHTransaction(
  1. List<int> digest
)

Signs a given transaction digest using the ECDSA deterministic signature scheme. The signature is adjusted for low-S encoding and verified against the public key.

Implementation

List<int> signBcHTransaction(List<int> digest) {
  ECDSASignature ecdsaSign = signingKey.signDigestDeterminstic(
      digest: digest, hashFunc: () => SHA256());
  if (ecdsaSign.s > ETHSignerConst.orderHalf) {
    ecdsaSign =
        ECDSASignature(ecdsaSign.r, ETHSignerConst.curveOrder - ecdsaSign.s);
  }
  final List<int> signature = BigintUtils.toDer([ecdsaSign.r, ecdsaSign.s]);
  return signature;
}