Search in sources :

Example 6 with MobileCoinLedger

use of org.thoughtcrime.securesms.payments.proto.MobileCoinLedger in project Signal-Android by WhisperSystems.

the class LedgerReconcileTest method single_receipt_payment_that_can_be_found_on_ledger_reconstructed_spend.

@Test
public void single_receipt_payment_that_can_be_found_on_ledger_reconstructed_spend() {
    List<Payment> localPayments = Collections.singletonList(payment("received", mob(2.5), keyImages(6), publicKeys(2)));
    MobileCoinLedger ledger = ledger(spentTxo(mob(2.5), keyImage(5), publicKey(2), block(1), block(2)));
    List<Payment> payments = reconcile(localPayments, new MobileCoinLedgerWrapper(ledger));
    assertEquals(2, payments.size());
    assertEquals(mob(-2.5), payments.get(0).getAmountWithDirection());
    assertEquals(mob(2.5), payments.get(1).getAmountWithDirection());
    assertEquals(2, payments.get(0).getBlockIndex());
    assertEquals("received", payments.get(1).getNote());
    assertEquals(1, payments.get(1).getBlockIndex());
}
Also used : Payment(org.thoughtcrime.securesms.payments.Payment) MobileCoinLedger(org.thoughtcrime.securesms.payments.proto.MobileCoinLedger) MobileCoinLedgerWrapper(org.thoughtcrime.securesms.payments.MobileCoinLedgerWrapper) Test(org.junit.Test)

Example 7 with MobileCoinLedger

use of org.thoughtcrime.securesms.payments.proto.MobileCoinLedger in project Signal-Android by WhisperSystems.

the class LedgerReconcileTest method single_unspent_transaction_on_ledger_only.

@Test
public void single_unspent_transaction_on_ledger_only() {
    MobileCoinLedger ledger = ledger(unspentTxo(mob(2.5), keyImage(2), publicKey(3), block(2)));
    List<Payment> payments = reconcile(Collections.emptyList(), new MobileCoinLedgerWrapper(ledger));
    assertEquals(1, payments.size());
    Payment payment = payments.get(0);
    assertEquals(mob(2.5), payment.getAmount());
    assertEquals(mob(2.5), payment.getAmountWithDirection());
    assertEquals(Direction.RECEIVED, payment.getDirection());
    assertEquals(mob(0), payment.getFee());
    assertEquals(Payee.UNKNOWN, payment.getPayee());
    assertEquals(State.SUCCESSFUL, payment.getState());
    assertEquals(UuidUtil.UNKNOWN_UUID, payment.getUuid());
    assertEquals("", payment.getNote());
}
Also used : Payment(org.thoughtcrime.securesms.payments.Payment) MobileCoinLedger(org.thoughtcrime.securesms.payments.proto.MobileCoinLedger) MobileCoinLedgerWrapper(org.thoughtcrime.securesms.payments.MobileCoinLedgerWrapper) Test(org.junit.Test)

Example 8 with MobileCoinLedger

use of org.thoughtcrime.securesms.payments.proto.MobileCoinLedger in project Signal-Android by WhisperSystems.

the class LedgerReconcileTest method single_spend_payment_that_can_be_found_on_ledger_reconstructed_receipt.

@Test
public void single_spend_payment_that_can_be_found_on_ledger_reconstructed_receipt() {
    List<Payment> localPayments = Collections.singletonList(payment("sent", mob(-1.5), keyImages(5), publicKeys(4)));
    MobileCoinLedger ledger = ledger(spentTxo(mob(2.5), keyImage(5), publicKey(2), block(1), block(2)), unspentTxo(mob(1), keyImage(3), publicKey(4), block(2)));
    List<Payment> payments = reconcile(localPayments, new MobileCoinLedgerWrapper(ledger));
    assertEquals(2, payments.size());
    assertEquals(mob(-1.5), payments.get(0).getAmountWithDirection());
    assertEquals(mob(2.5), payments.get(1).getAmountWithDirection());
}
Also used : Payment(org.thoughtcrime.securesms.payments.Payment) MobileCoinLedger(org.thoughtcrime.securesms.payments.proto.MobileCoinLedger) MobileCoinLedgerWrapper(org.thoughtcrime.securesms.payments.MobileCoinLedgerWrapper) Test(org.junit.Test)

Example 9 with MobileCoinLedger

use of org.thoughtcrime.securesms.payments.proto.MobileCoinLedger in project Signal-Android by WhisperSystems.

the class LedgerReconcileTest method single_receipt_payment_that_can_be_found_on_ledger_reconstructed_spend_with_change.

@Test
public void single_receipt_payment_that_can_be_found_on_ledger_reconstructed_spend_with_change() {
    List<Payment> localPayments = Collections.singletonList(payment("received", mob(2.5), keyImages(6), publicKeys(2)));
    MobileCoinLedger ledger = ledger(spentTxo(mob(2.5), keyImage(5), publicKey(2), block(1), block(2)), unspentTxo(mob(1.5), keyImage(7), publicKey(8), block(2)));
    List<Payment> payments = reconcile(localPayments, new MobileCoinLedgerWrapper(ledger));
    assertEquals(Arrays.asList(mob(-1), mob(2.5)), Stream.of(payments).map(Payment::getAmountWithDirection).toList());
    assertEquals("received", payments.get(1).getNote());
}
Also used : Payment(org.thoughtcrime.securesms.payments.Payment) MobileCoinLedger(org.thoughtcrime.securesms.payments.proto.MobileCoinLedger) MobileCoinLedgerWrapper(org.thoughtcrime.securesms.payments.MobileCoinLedgerWrapper) Test(org.junit.Test)

Example 10 with MobileCoinLedger

use of org.thoughtcrime.securesms.payments.proto.MobileCoinLedger in project Signal-Android by WhisperSystems.

the class LedgerReconcileTest method unknown_payment_is_first_in_list.

@Test
public void unknown_payment_is_first_in_list() {
    List<Payment> localPayments = Collections.singletonList(payment("received", mob(2.5), keyImages(16), publicKeys(12)));
    MobileCoinLedger ledger = ledger(spentTxo(mob(2.5), keyImage(5), publicKey(2), block(1), block(2)), unspentTxo(mob(1.5), keyImage(7), publicKey(8), block(3)));
    List<Payment> payments = reconcile(localPayments, new MobileCoinLedgerWrapper(ledger));
    assertEquals(Arrays.asList(mob(2.5), mob(1.5), mob(-2.5), mob(2.5)), Stream.of(payments).map(Payment::getAmountWithDirection).toList());
    assertEquals("received", payments.get(0).getNote());
}
Also used : Payment(org.thoughtcrime.securesms.payments.Payment) MobileCoinLedger(org.thoughtcrime.securesms.payments.proto.MobileCoinLedger) MobileCoinLedgerWrapper(org.thoughtcrime.securesms.payments.MobileCoinLedgerWrapper) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)11 MobileCoinLedgerWrapper (org.thoughtcrime.securesms.payments.MobileCoinLedgerWrapper)11 Payment (org.thoughtcrime.securesms.payments.Payment)11 MobileCoinLedger (org.thoughtcrime.securesms.payments.proto.MobileCoinLedger)11