def support(cls, claim_name: str, claim_id: str, amount: int, holding_address: str, funding_accounts: List['Account'], change_account: 'Account', signing_channel: Output = None): ledger, _ = cls.ensure_all_have_same_ledger_and_wallet( funding_accounts, change_account) if signing_channel is not None: support = Support() support.emoji = '👍' support_output = Output.pay_support_data_pubkey_hash( amount, claim_name, claim_id, support, ledger.address_to_hash160(holding_address)) support_output.sign(signing_channel, b'placeholder txid:nout') else: support_output = Output.pay_support_pubkey_hash( amount, claim_name, claim_id, ledger.address_to_hash160(holding_address)) return cls.create([], [support_output], funding_accounts, change_account, sign=False)
def support(self) -> Support: if self.is_support_data: if not isinstance(self.script.values['support'], Support): self.script.values['support'] = Support.from_bytes( self.script.values['support']) return self.script.values['support'] raise ValueError( 'Only supports with data can be represented as Supports.')