From 499b086b5784e496c55449c5d774b76897a7e85d Mon Sep 17 00:00:00 2001
From: mainnet-pat <mainnet_pat@protonmail.com>
Date: Sun, 20 Oct 2024 17:30:26 +0000
Subject: [PATCH] Cleanup imports, change bch ops to CScriptOps

---
 basicswap/interface/bch.py                    | 72 +++++++++----------
 .../contrib/bch_test_framework/script.py      | 69 +++++++++---------
 basicswap/protocols/xmr_swap_1.py             | 28 --------
 3 files changed, 71 insertions(+), 98 deletions(-)

diff --git a/basicswap/interface/bch.py b/basicswap/interface/bch.py
index 07d2bcc..93dc351 100644
--- a/basicswap/interface/bch.py
+++ b/basicswap/interface/bch.py
@@ -6,14 +6,14 @@
 # file LICENSE or http://www.opensource.org/licenses/mit-license.php.
 
 from typing import Union
-from basicswap.contrib.test_framework.messages import COutPoint, CTransaction, CTxIn, CTxOut
+from basicswap.contrib.test_framework.messages import COutPoint, CTransaction, CTxIn
 from basicswap.util import b2h, b2i, ensure, i2h
 from basicswap.util.script import decodePushData, decodeScriptNum
 from .btc import BTCInterface, ensure_op, find_vout_for_address_from_txobj, findOutput
 from basicswap.rpc import make_rpc_func
 from basicswap.chainparams import Coins
 from basicswap.interface.contrib.bch_test_framework.cashaddress import Address
-from basicswap.util.crypto import hash160, sha256
+from basicswap.util.crypto import sha256
 from basicswap.interface.contrib.bch_test_framework.script import (
     OP_TXINPUTCOUNT,
     OP_1,
@@ -45,9 +45,7 @@ from basicswap.interface.contrib.bch_test_framework.script import (
     OP_CHECKSIG,
     OP_HASH256,
 )
-from basicswap.contrib.test_framework.script import (
-    CScript, CScriptOp,
-)
+from basicswap.contrib.test_framework.script import CScript
 from coincurve.keys import (
     PrivateKey,
     PublicKey,
@@ -245,39 +243,39 @@ class BCHInterface(BTCInterface):
             # // Bob has BCH and/or CashTokens, wants XMR.
             # 
             # // Verify 1-in-1-out TX form
-            CScriptOp(OP_TXINPUTCOUNT),
-            CScriptOp(OP_1), CScriptOp(OP_NUMEQUALVERIFY),
-            CScriptOp(OP_TXOUTPUTCOUNT),
-            CScriptOp(OP_1), CScriptOp(OP_NUMEQUALVERIFY),
+            OP_TXINPUTCOUNT,
+            OP_1, OP_NUMEQUALVERIFY,
+            OP_TXOUTPUTCOUNT,
+            OP_1, OP_NUMEQUALVERIFY,
 
             # // int miningFee
             mining_fee,
             # // Verify pre-agreed mining fee and that the rest of BCH is forwarded
             # // to the output.
-            CScriptOp(OP_0), CScriptOp(OP_UTXOVALUE),
-            CScriptOp(OP_0), CScriptOp(OP_OUTPUTVALUE),
-            CScriptOp(OP_SUB), CScriptOp(OP_NUMEQUALVERIFY),
+            OP_0, OP_UTXOVALUE,
+            OP_0, OP_OUTPUTVALUE,
+            OP_SUB, OP_NUMEQUALVERIFY,
 
             # # // Verify that any CashTokens are forwarded to the output.
-            CScriptOp(OP_0), CScriptOp(OP_UTXOTOKENCATEGORY),
-            CScriptOp(OP_0), CScriptOp(OP_OUTPUTTOKENCATEGORY),
-            CScriptOp(OP_EQUALVERIFY),
-            CScriptOp(OP_0), CScriptOp(OP_UTXOTOKENCOMMITMENT),
-            CScriptOp(OP_0), CScriptOp(OP_OUTPUTTOKENCOMMITMENT),
-            CScriptOp(OP_EQUALVERIFY),
-            CScriptOp(OP_0), CScriptOp(OP_UTXOTOKENAMOUNT),
-            CScriptOp(OP_0), CScriptOp(OP_OUTPUTTOKENAMOUNT),
-            CScriptOp(OP_NUMEQUALVERIFY),
+            OP_0, OP_UTXOTOKENCATEGORY,
+            OP_0, OP_OUTPUTTOKENCATEGORY,
+            OP_EQUALVERIFY,
+            OP_0, OP_UTXOTOKENCOMMITMENT,
+            OP_0, OP_OUTPUTTOKENCOMMITMENT,
+            OP_EQUALVERIFY,
+            OP_0, OP_UTXOTOKENAMOUNT,
+            OP_0, OP_OUTPUTTOKENAMOUNT,
+            OP_NUMEQUALVERIFY,
 
             # // If sequence is not used then it is a regular swap TX.
-            CScriptOp(OP_0), CScriptOp(OP_INPUTSEQUENCENUMBER),
-            CScriptOp(OP_NOTIF),
+            OP_0, OP_INPUTSEQUENCENUMBER,
+            OP_NOTIF,
                 # // bytes aliceOutput
                 out_1,
                 # // Verify that the BCH and/or CashTokens are forwarded to Alice's
                 # // output.
-                CScriptOp(OP_0), CScriptOp(OP_OUTPUTBYTECODE),
-                CScriptOp(OP_OVER), CScriptOp(OP_EQUALVERIFY),
+                OP_0, OP_OUTPUTBYTECODE,
+                OP_OVER, OP_EQUALVERIFY,
 
                 # // pubkey bobPubkeyVES
                 public_key,
@@ -286,7 +284,7 @@ class BCHInterface(BTCInterface):
                 # // locking bytecode.
                 # // By decrypting Bob's VES and publishing it, Alice reveals her
                 # // XMR key share to Bob.
-                CScriptOp(OP_CHECKDATASIG),
+                OP_CHECKDATASIG,
 
                 # // If a TX using this path is mined then Alice gets her BCH.
                 # // Bob uses the revealed XMR key share to collect his XMR.
@@ -294,22 +292,22 @@ class BCHInterface(BTCInterface):
             # // Refund will become available when timelock expires, and it would
             # // expire because Alice didn't collect on time, either of her own accord
             # // or because Bob bailed out and witheld the encrypted signature.
-            CScriptOp(OP_ELSE),
+            OP_ELSE,
                 # // int timelock_0
                 timelock,
                 # // Verify refund timelock.
-                CScriptOp(OP_CHECKSEQUENCEVERIFY), CScriptOp(OP_DROP),
+                OP_CHECKSEQUENCEVERIFY, OP_DROP,
 
                 # // bytes refundLockingBytecode
                 out_2,
 
                 # // Verify that the BCH and/or CashTokens are forwarded to Refund
                 # // contract.
-                CScriptOp(OP_0), CScriptOp(OP_OUTPUTBYTECODE),
-                CScriptOp(OP_EQUAL),
+                OP_0, OP_OUTPUTBYTECODE,
+                OP_EQUAL,
 
                 # // BCH and/or CashTokens are simply forwarded to Refund contract.
-            CScriptOp(OP_ENDIF)
+            OP_ENDIF
         ])
 
     def pubkey_to_segwit_address(self, pk: bytes) -> str:
@@ -334,9 +332,9 @@ class BCHInterface(BTCInterface):
             script = bytes.fromhex(script)
 
         return CScript([
-            CScriptOp(OP_HASH256),
+            OP_HASH256,
             sha256(sha256(script)),
-            CScriptOp(OP_EQUAL),
+            OP_EQUAL,
         ])
     
     def createSCLockTx(self, value: int, script: bytearray, vkbv: bytes = None) -> bytes:
@@ -347,11 +345,11 @@ class BCHInterface(BTCInterface):
 
     def getScriptForPubkeyHash(self, pkh: bytes) -> CScript:
         return CScript([
-            CScriptOp(OP_DUP),
-            CScriptOp(OP_HASH160),
+            OP_DUP,
+            OP_HASH160,
             pkh,
-            CScriptOp(OP_EQUALVERIFY),
-            CScriptOp(OP_CHECKSIG),
+            OP_EQUALVERIFY,
+            OP_CHECKSIG,
         ])
 
     def getTxSize(self, tx: CTransaction) -> int:
diff --git a/basicswap/interface/contrib/bch_test_framework/script.py b/basicswap/interface/contrib/bch_test_framework/script.py
index 3e7d59d..3b7956e 100644
--- a/basicswap/interface/contrib/bch_test_framework/script.py
+++ b/basicswap/interface/contrib/bch_test_framework/script.py
@@ -5,36 +5,39 @@
 # file LICENSE or http://www.opensource.org/licenses/mit-license.php.
 
 
-OP_TXINPUTCOUNT = 0xc3
-OP_1 = 0x51
-OP_NUMEQUALVERIFY = 0x9d
-OP_TXOUTPUTCOUNT = 0xc4
-OP_0 = 0x00
-OP_UTXOVALUE = 0xc6
-OP_OUTPUTVALUE = 0xcc
-OP_SUB = 0x94
-OP_UTXOTOKENCATEGORY = 0xce
-OP_OUTPUTTOKENCATEGORY = 0xd1
-OP_EQUALVERIFY = 0x88
-OP_UTXOTOKENCOMMITMENT = 0xcf
-OP_OUTPUTTOKENCOMMITMENT = 0xd2
-OP_UTXOTOKENAMOUNT = 0xd0
-OP_OUTPUTTOKENAMOUNT = 0xd3
-OP_INPUTSEQUENCENUMBER = 0xcb
-OP_NOTIF = 0x64
-OP_OUTPUTBYTECODE = 0xcd
-OP_OVER = 0x78
-OP_CHECKDATASIG = 0xba
-OP_CHECKDATASIGVERIFY = 0xbb
-OP_ELSE = 0x67
-OP_CHECKSEQUENCEVERIFY = 0xb2
-OP_DROP = 0x75
-OP_EQUAL = 0x87
-OP_ENDIF = 0x68
-OP_HASH256 = 0xaa
-OP_PUSHBYTES_32 = 0x20
-OP_DUP = 0x76
-OP_HASH160 = 0xa9
-OP_CHECKSIG = 0xac
-OP_SHA256 = 0xa8
-OP_VERIFY = 0x69
\ No newline at end of file
+from basicswap.contrib.test_framework.script import CScriptOp
+
+
+OP_TXINPUTCOUNT = CScriptOp(0xc3)
+OP_1 = CScriptOp(0x51)
+OP_NUMEQUALVERIFY = CScriptOp(0x9d)
+OP_TXOUTPUTCOUNT = CScriptOp(0xc4)
+OP_0 = CScriptOp(0x00)
+OP_UTXOVALUE = CScriptOp(0xc6)
+OP_OUTPUTVALUE = CScriptOp(0xcc)
+OP_SUB = CScriptOp(0x94)
+OP_UTXOTOKENCATEGORY = CScriptOp(0xce)
+OP_OUTPUTTOKENCATEGORY = CScriptOp(0xd1)
+OP_EQUALVERIFY = CScriptOp(0x88)
+OP_UTXOTOKENCOMMITMENT = CScriptOp(0xcf)
+OP_OUTPUTTOKENCOMMITMENT = CScriptOp(0xd2)
+OP_UTXOTOKENAMOUNT = CScriptOp(0xd0)
+OP_OUTPUTTOKENAMOUNT = CScriptOp(0xd3)
+OP_INPUTSEQUENCENUMBER = CScriptOp(0xcb)
+OP_NOTIF = CScriptOp(0x64)
+OP_OUTPUTBYTECODE = CScriptOp(0xcd)
+OP_OVER = CScriptOp(0x78)
+OP_CHECKDATASIG = CScriptOp(0xba)
+OP_CHECKDATASIGVERIFY = CScriptOp(0xbb)
+OP_ELSE = CScriptOp(0x67)
+OP_CHECKSEQUENCEVERIFY = CScriptOp(0xb2)
+OP_DROP = CScriptOp(0x75)
+OP_EQUAL = CScriptOp(0x87)
+OP_ENDIF = CScriptOp(0x68)
+OP_HASH256 = CScriptOp(0xaa)
+OP_PUSHBYTES_32 = CScriptOp(0x20)
+OP_DUP = CScriptOp(0x76)
+OP_HASH160 = CScriptOp(0xa9)
+OP_CHECKSIG = CScriptOp(0xac)
+OP_SHA256 = CScriptOp(0xa8)
+OP_VERIFY = CScriptOp(0x69)
diff --git a/basicswap/protocols/xmr_swap_1.py b/basicswap/protocols/xmr_swap_1.py
index 695dcd2..c128687 100644
--- a/basicswap/protocols/xmr_swap_1.py
+++ b/basicswap/protocols/xmr_swap_1.py
@@ -6,34 +6,6 @@
 
 import traceback
 
-import unittest
-from basicswap.interface.contrib.bch_test_framework.script import (
-    OP_TXINPUTCOUNT,
-    OP_1,
-    OP_NUMEQUALVERIFY,
-    OP_TXOUTPUTCOUNT,
-    OP_0,
-    OP_UTXOVALUE,
-    OP_OUTPUTVALUE,
-    OP_SUB,
-    OP_UTXOTOKENCATEGORY,
-    OP_OUTPUTTOKENCATEGORY,
-    OP_EQUALVERIFY,
-    OP_UTXOTOKENCOMMITMENT,
-    OP_OUTPUTTOKENCOMMITMENT,
-    OP_UTXOTOKENAMOUNT,
-    OP_OUTPUTTOKENAMOUNT,
-    OP_INPUTSEQUENCENUMBER,
-    OP_NOTIF,
-    OP_OUTPUTBYTECODE,
-    OP_OVER,
-    OP_CHECKDATASIG,
-    OP_ELSE,
-    OP_CHECKSEQUENCEVERIFY,
-    OP_DROP,
-    OP_EQUAL,
-    OP_ENDIF,
-)
 from basicswap.util import (
     ensure,
 )