I know that Bitcoin can do Schnorr which allows for one way to finalize an atomic swap but on the other side of the current swap implementation( that I am working with), the script needs to multiply a scalar by the curve generator to check for the correct secret scalar value. Is there a way Bitcoin script can handle this?
If I got your question right, you need to check if someone actually have a scalar
s such that
s*G == S? If you need to explicitly commit to
<s> OP_ECC_MULL_G <S> OP_CHECK_EQUAL_VERIFY
OP_ECC_MULL_G multiplies a scalar
s by secp's generator point. This is impossible to do with script, as it doesn't expose ECC operations directly.
If you just want to check whether the party has the secret, this is just a simple signature:
<S> OP_CHECK_SIG_VERIFY. One can only satisfy this script iff they known