'Restore a payment from the network
:param data: PaymentPayload
:return: Restored payment
:rtype: Payment'

@classmethod
def from_network(cls, data):

    assert hasattr(data, 'trader_id'), isinstance(data.trader_id, TraderId)
    assert hasattr(data, 'message_number'), isinstance(data.message_number, MessageNumber)
    assert hasattr(data, 'transaction_trader_id'), isinstance(data.transaction_trader_id, TraderId)
    assert hasattr(data, 'transaction_number'), isinstance(data.transaction_number, TransactionNumber)
    assert hasattr(data, 'transferee_quantity'), isinstance(data.transferee_quantity, Quantity)
    assert hasattr(data, 'transferee_price'), isinstance(data.transferee_price, Price)
    assert hasattr(data, 'address_from'), isinstance(data.address_from, WalletAddress)
    assert hasattr(data, 'address_to'), isinstance(data.address_to, WalletAddress)
    assert hasattr(data, 'payment_id'), isinstance(data.payment_id, PaymentId)
    assert hasattr(data, 'timestamp'), isinstance(data.timestamp, Timestamp)
    assert hasattr(data, 'success'), isinstance(data.success, bool)
    return cls(MessageId(data.trader_id, data.message_number), TransactionId(data.transaction_trader_id, data.transaction_number), data.transferee_quantity, data.transferee_price, data.address_from, data.address_to, data.payment_id, data.timestamp, data.success)
