Search in sources :

Example 46 with Offer

use of bisq.core.offer.Offer in project bisq-core by bisq-network.

the class TradeManager method handleInitialTakeOfferRequest.

private void handleInitialTakeOfferRequest(TradeMessage message, NodeAddress peerNodeAddress) {
    log.trace("handleNewMessage: message = " + message.getClass().getSimpleName() + " from " + peerNodeAddress);
    try {
        Validator.nonEmptyStringOf(message.getTradeId());
    } catch (Throwable t) {
        log.warn("Invalid requestDepositTxInputsMessage " + message.toString());
        return;
    }
    Optional<OpenOffer> openOfferOptional = openOfferManager.findOpenOffer(message.getTradeId());
    if (openOfferOptional.isPresent() && openOfferOptional.get().getState() == OpenOffer.State.AVAILABLE) {
        Offer offer = openOfferOptional.get().getOffer();
        openOfferManager.reserveOpenOffer(openOfferOptional.get());
        checkArgument(message instanceof PayDepositRequest, "message must be PayDepositRequest");
        PayDepositRequest payDepositRequest = (PayDepositRequest) message;
        Trade trade;
        if (offer.isBuyOffer())
            trade = new BuyerAsMakerTrade(offer, Coin.valueOf(payDepositRequest.getTxFee()), Coin.valueOf(payDepositRequest.getTakerFee()), payDepositRequest.isCurrencyForTakerFeeBtc(), tradableListStorage, btcWalletService);
        else
            trade = new SellerAsMakerTrade(offer, Coin.valueOf(payDepositRequest.getTxFee()), Coin.valueOf(payDepositRequest.getTakerFee()), payDepositRequest.isCurrencyForTakerFeeBtc(), tradableListStorage, btcWalletService);
        initTrade(trade, trade.getProcessModel().isUseSavingsWallet(), trade.getProcessModel().getFundsNeededForTradeAsLong());
        tradableList.add(trade);
        ((MakerTrade) trade).handleTakeOfferRequest(message, peerNodeAddress, errorMessage -> {
            if (takeOfferRequestErrorMessageHandler != null)
                takeOfferRequestErrorMessageHandler.handleErrorMessage(errorMessage);
        });
    } else {
        // TODO respond
        // (RequestDepositTxInputsMessage)message.
        // messageService.sendEncryptedMessage(peerAddress,messageWithPubKey.getMessage().);
        log.debug("We received a take offer request but don't have that offer anymore.");
    }
}
Also used : PayDepositRequest(bisq.core.trade.messages.PayDepositRequest) OpenOffer(bisq.core.offer.OpenOffer) Offer(bisq.core.offer.Offer) OpenOffer(bisq.core.offer.OpenOffer)

Example 47 with Offer

use of bisq.core.offer.Offer in project bisq-core by bisq-network.

the class ReceiptPredicatesTest method testIsSepaRelated.

@Test
public void testIsSepaRelated() {
    Offer offer = mock(Offer.class);
    PaymentMethod.SEPA = mock(PaymentMethod.class);
    when(offer.getPaymentMethod()).thenReturn(PaymentMethod.SEPA);
    assertTrue(predicates.isSepaRelated(offer, mock(SepaInstantAccount.class)));
    assertTrue(predicates.isSepaRelated(offer, mock(SepaAccount.class)));
    PaymentMethod.SEPA_INSTANT = mock(PaymentMethod.class);
    when(offer.getPaymentMethod()).thenReturn(PaymentMethod.SEPA_INSTANT);
    assertTrue(predicates.isSepaRelated(offer, mock(SepaInstantAccount.class)));
    assertTrue(predicates.isSepaRelated(offer, mock(SepaAccount.class)));
}
Also used : Offer(bisq.core.offer.Offer) PaymentMethod(bisq.core.payment.payload.PaymentMethod) PrepareForTest(org.powermock.core.classloader.annotations.PrepareForTest) Test(org.junit.Test)

Example 48 with Offer

use of bisq.core.offer.Offer in project bisq-core by bisq-network.

the class ReceiptPredicatesTest method testIsSameOrSpecificBank.

@Test
public void testIsSameOrSpecificBank() {
    PaymentMethod.SAME_BANK = mock(PaymentMethod.class);
    Offer offer = mock(Offer.class);
    when(offer.getPaymentMethod()).thenReturn(PaymentMethod.SAME_BANK);
    assertTrue(predicates.isOfferRequireSameOrSpecificBank(offer, mock(NationalBankAccount.class)));
}
Also used : Offer(bisq.core.offer.Offer) PaymentMethod(bisq.core.payment.payload.PaymentMethod) PrepareForTest(org.powermock.core.classloader.annotations.PrepareForTest) Test(org.junit.Test)

Example 49 with Offer

use of bisq.core.offer.Offer in project bisq-core by bisq-network.

the class ReceiptPredicatesTest method testIsMatchingCurrency.

@Test
public void testIsMatchingCurrency() {
    Offer offer = mock(Offer.class);
    when(offer.getCurrencyCode()).thenReturn("USD");
    PaymentAccount account = mock(PaymentAccount.class);
    when(account.getTradeCurrencies()).thenReturn(Lists.newArrayList(new CryptoCurrency("BTC", "Bitcoin"), new CryptoCurrency("ETH", "Ether")));
    assertFalse(predicates.isMatchingCurrency(offer, account));
}
Also used : CryptoCurrency(bisq.core.locale.CryptoCurrency) Offer(bisq.core.offer.Offer) PrepareForTest(org.powermock.core.classloader.annotations.PrepareForTest) Test(org.junit.Test)

Example 50 with Offer

use of bisq.core.offer.Offer in project bisq-core by bisq-network.

the class TradableListTest method protoTesting.

@Test
public void protoTesting(@Mocked OfferPayload offerPayload) {
    Storage<TradableList<OpenOffer>> storage = new Storage<>(null, null);
    TradableList<OpenOffer> openOfferTradableList = new TradableList<>(storage, "filename");
    PB.PersistableEnvelope message = (PB.PersistableEnvelope) openOfferTradableList.toProtoMessage();
    assertTrue(message.getMessageCase().equals(TRADABLE_LIST));
    // test adding an OpenOffer and convert toProto
    Offer offer = new Offer(offerPayload);
    OpenOffer openOffer = new OpenOffer(offer, storage);
    // openOfferTradableList = new TradableList<OpenOffer>(storage,Lists.newArrayList(openOffer));
    openOfferTradableList.add(openOffer);
    message = (PB.PersistableEnvelope) openOfferTradableList.toProtoMessage();
    assertTrue(message.getMessageCase().equals(TRADABLE_LIST));
    assertEquals(1, message.getTradableList().getTradableList().size());
}
Also used : PB(io.bisq.generated.protobuffer.PB) Storage(bisq.common.storage.Storage) Offer(bisq.core.offer.Offer) OpenOffer(bisq.core.offer.OpenOffer) OpenOffer(bisq.core.offer.OpenOffer) Test(org.junit.Test)

Aggregations

Offer (bisq.core.offer.Offer)53 Coin (org.bitcoinj.core.Coin)18 Test (org.junit.Test)13 OfferPayload (bisq.core.offer.OfferPayload)12 PrepareForTest (org.powermock.core.classloader.annotations.PrepareForTest)12 Price (bisq.core.monetary.Price)9 OfferMaker.btcUsdOffer (bisq.core.offer.OfferMaker.btcUsdOffer)8 NodeAddress (bisq.network.p2p.NodeAddress)8 PaymentMethod (bisq.core.payment.payload.PaymentMethod)7 Contract (bisq.core.trade.Contract)7 Volume (bisq.core.monetary.Volume)6 PeerInfoIcon (bisq.desktop.components.PeerInfoIcon)6 Popup (bisq.desktop.main.overlays.popups.Popup)6 OpenOffer (bisq.core.offer.OpenOffer)5 PaymentAccount (bisq.core.payment.PaymentAccount)5 MainView (bisq.desktop.main.MainView)5 Button (javafx.scene.control.Button)5 TableCell (javafx.scene.control.TableCell)5 TableColumn (javafx.scene.control.TableColumn)5 BtcWalletService (bisq.core.btc.wallet.BtcWalletService)4