def test_event_metadata_is_none_or_empty():
    event = jsonrpc.Event(
        data=jsonrpc.EventData(metadata=None, ),
        sequence_number=32,
    )
    assert txnmetadata.refund_metadata_from_event(event) == b""

    event = jsonrpc.Event(
        data=jsonrpc.EventData(metadata="", ),
        sequence_number=32,
    )
    assert txnmetadata.refund_metadata_from_event(event) == b""
def test_event_metadata_is_not_bcs_string():
    event = jsonrpc.Event(
        data=jsonrpc.EventData(metadata="1111122222", ),
        sequence_number=32,
    )
    with pytest.raises(txnmetadata.InvalidEventMetadataForRefundError):
        txnmetadata.refund_metadata_from_event(event)
Esempio n. 3
0
def test_find_refund_reference_event():
    # None for no transaction given
    assert txnmetadata.find_refund_reference_event(None, None) is None

    receiver = utils.account_address("f72589b71ff4f8d139674a3f7369c69b")
    txn = jsonrpc.Transaction()
    txn.events.add(data=jsonrpc.EventData(type="unknown", receiver="f72589b71ff4f8d139674a3f7369c69b"))
    txn.events.add(data=jsonrpc.EventData(type="receivedpayment", receiver="unknown"))

    # None for not found
    event = txnmetadata.find_refund_reference_event(txn, receiver)
    assert event is None

    txn.events.add(data=jsonrpc.EventData(type="receivedpayment", receiver="f72589b71ff4f8d139674a3f7369c69b"))
    event = txnmetadata.find_refund_reference_event(txn, receiver)
    assert event is not None
    assert event.data.type == "receivedpayment"
    assert event.data.receiver == "f72589b71ff4f8d139674a3f7369c69b"
def test_refund_metadata_from_event_that_has_from_subaddress():
    from_sub_address = "8f8b82153010a1bd"
    reference_event_seq = 324

    metadata = txnmetadata.general_metadata(
        utils.sub_address(from_sub_address))
    event = jsonrpc.Event(
        data=jsonrpc.EventData(metadata=metadata.hex(), ),
        sequence_number=reference_event_seq,
    )

    ret = txnmetadata.refund_metadata_from_event(event)
    assert ret is not None

    gm = diem_types.Metadata__GeneralMetadata.bcs_deserialize(ret)
    assert gm is not None
    assert gm.value.value.from_subaddress is None
    assert gm.value.value.to_subaddress.hex() == from_sub_address
    assert int(gm.value.value.referenced_event) == reference_event_seq