|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
|
|
# Copyright (c) 2022 tecnovert
|
|
|
|
# Distributed under the MIT software license, see the accompanying
|
|
|
|
# file LICENSE or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
|
|
|
|
from basicswap.script import (
|
|
|
|
OpCodes,
|
|
|
|
)
|
|
|
|
from basicswap.util.script import (
|
|
|
|
getP2WSH,
|
|
|
|
)
|
|
|
|
from basicswap.interface.btc import (
|
|
|
|
find_vout_for_address_from_txobj,
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
class ProtocolInterface:
|
|
|
|
swap_type = None
|
|
|
|
|
|
|
|
def getFundedInitiateTxTemplate(self, ci, amount: int, sub_fee: bool) -> bytes:
|
|
|
|
raise ValueError('base class')
|
|
|
|
|
|
|
|
def getMockScript(self) -> bytearray:
|
|
|
|
return bytearray([
|
|
|
|
OpCodes.OP_RETURN, OpCodes.OP_1])
|
|
|
|
|
|
|
|
def getMockScriptScriptPubkey(self, ci) -> bytearray:
|
|
|
|
script = self.getMockScript()
|
|
|
|
return ci.get_p2wsh_script_pubkey(script) if ci._use_segwit else ci.get_p2sh_script_pubkey(script)
|
|
|
|
|
|
|
|
def getMockAddrTo(self, ci):
|
|
|
|
script = self.getMockScript()
|
|
|
|
return ci.encode_p2wsh(getP2WSH(script)) if ci._use_segwit else ci.encode_p2sh(script)
|
|
|
|
|
|
|
|
def findMockVout(self, ci, itx_decoded):
|
|
|
|
mock_addr = self.getMockAddrTo(ci)
|
|
|
|
return find_vout_for_address_from_txobj(itx_decoded, mock_addr)
|