def test_compound_ether_withdraw(database, ethereum_manager, function_scope_messages_aggregator): """Data taken from: https://etherscan.io/tx/0x024bd402420c3ba2f95b875f55ce2a762338d2a14dac4887b78174254c9ab807 """ # TODO: For faster tests hard-code the transaction and the logs here so no remote query needed tx_hash = deserialize_evm_tx_hash( '0x024bd402420c3ba2f95b875f55ce2a762338d2a14dac4887b78174254c9ab807' ) # noqa: E501 events = get_decoded_events_of_transaction( ethereum_manager=ethereum_manager, database=database, msg_aggregator=function_scope_messages_aggregator, tx_hash=tx_hash, ) expected_events = [ HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=0, timestamp=1598813490000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.SPEND, event_subtype=HistoryEventSubType.FEE, asset=A_ETH, balance=Balance(amount=FVal('0.02858544'), usd_value=ZERO), location_label=ADDY, notes=f'Burned 0.02858544 ETH in gas from {ADDY}', counterparty=CPT_GAS, ), HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=1, timestamp=1598813490000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.SPEND, event_subtype=HistoryEventSubType.RETURN_WRAPPED, asset=A_CETH, balance=Balance(amount=FVal('24.97649991'), usd_value=ZERO), location_label=ADDY, notes='Return 24.97649991 cETH to compound', counterparty=CPT_COMPOUND, ), HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=2, timestamp=1598813490000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.WITHDRAWAL, event_subtype=HistoryEventSubType.REMOVE_ASSET, asset=A_ETH, balance=Balance(amount=FVal('0.500003923413507454'), usd_value=ZERO), location_label=ADDY, notes='Withdraw 0.500003923413507454 ETH from compound', counterparty=CPT_COMPOUND, ) ] assert events == expected_events
def test_compound_ether_deposit(database, ethereum_manager, function_scope_messages_aggregator): """Data taken from: https://etherscan.io/tx/0x06a8b9f758b0471886186c2a48dea189b3044916c7f94ee7f559026fefd91c39 """ # TODO: For faster tests hard-code the transaction and the logs here so no remote query needed tx_hash = deserialize_evm_tx_hash( '0x06a8b9f758b0471886186c2a48dea189b3044916c7f94ee7f559026fefd91c39' ) # noqa: E501 events = get_decoded_events_of_transaction( ethereum_manager=ethereum_manager, database=database, msg_aggregator=function_scope_messages_aggregator, tx_hash=tx_hash, ) expected_events = [ HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=0, timestamp=1598639099000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.SPEND, event_subtype=HistoryEventSubType.FEE, asset=A_ETH, balance=Balance(amount=FVal('0.014122318'), usd_value=ZERO), location_label=ADDY, notes=f'Burned 0.014122318 ETH in gas from {ADDY}', counterparty=CPT_GAS, ), HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=1, timestamp=1598639099000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.DEPOSIT, event_subtype=HistoryEventSubType.DEPOSIT_ASSET, asset=A_ETH, balance=Balance(amount=FVal('0.5'), usd_value=ZERO), location_label=ADDY, notes='Deposit 0.5 ETH to compound', counterparty=CPT_COMPOUND, ), HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=33, timestamp=1598639099000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.RECEIVE, event_subtype=HistoryEventSubType.RECEIVE_WRAPPED, asset=A_CETH, balance=Balance(amount=FVal('24.97649991'), usd_value=ZERO), location_label=ADDY, notes='Receive 24.97649991 cETH from compound', counterparty=CPT_COMPOUND, ) ] assert events == expected_events
def test_gitcoin_old_donation(database, ethereum_manager, function_scope_messages_aggregator): """Data taken from https://etherscan.io/tx/0x811ba23a10c76111289133ec6f90d3c33a604baa50053739210e870687a456d9 """ # TODO: For faster tests hard-code the transaction and the logs here so no remote query needed tx_hash = deserialize_evm_tx_hash('0x811ba23a10c76111289133ec6f90d3c33a604baa50053739210e870687a456d9') # noqa: E501 events = get_decoded_events_of_transaction( ethereum_manager=ethereum_manager, database=database, msg_aggregator=function_scope_messages_aggregator, tx_hash=tx_hash, ) expected_events = [ HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=0, timestamp=1569924574000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.SPEND, event_subtype=HistoryEventSubType.FEE, asset=A_ETH, balance=Balance(amount=FVal('0.000055118'), usd_value=ZERO), location_label=ADDY, notes=f'Burned 0.000055118 ETH in gas from {ADDY}', counterparty=CPT_GAS, ), HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=164, timestamp=1569924574000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.SPEND, event_subtype=HistoryEventSubType.DONATE, asset=A_SAI, balance=Balance(amount=FVal('0.95'), usd_value=ZERO), location_label=ADDY, notes='Donate 0.95 SAI to 0xEbDb626C95a25f4e304336b1adcAd0521a1Bdca1 via gitcoin', # noqa: E501 counterparty=CPT_GITCOIN, ), HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=165, timestamp=1569924574000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.SPEND, event_subtype=HistoryEventSubType.DONATE, asset=A_SAI, balance=Balance(amount=FVal('0.05'), usd_value=ZERO), location_label=ADDY, notes='Donate 0.05 SAI to 0x00De4B13153673BCAE2616b67bf822500d325Fc3 via gitcoin', # noqa: E501 counterparty=CPT_GITCOIN, ), ] assert events == expected_events
def test_hop_l2_deposit(database, ethereum_manager, function_scope_messages_aggregator): """Data taken from https://etherscan.io/tx/0xd46640417a686b399b2f2a920b0c58a35095759365cbe7b795bddec34b8c5eee """ # TODO: For faster tests hard-code the transaction and the logs here so no remote query needed tx_hash = deserialize_evm_tx_hash( '0xd46640417a686b399b2f2a920b0c58a35095759365cbe7b795bddec34b8c5eee' ) # noqa: E501 events = get_decoded_events_of_transaction( ethereum_manager=ethereum_manager, database=database, msg_aggregator=function_scope_messages_aggregator, tx_hash=tx_hash, ) expected_events = [ HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=0, timestamp=1653219722000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.SPEND, event_subtype=HistoryEventSubType.FEE, asset=A_ETH, balance=Balance(amount=FVal('0.001964214783875487')), location_label=ADDY, notes=f'Burned 0.001964214783875487 ETH in gas from {ADDY}', counterparty=CPT_GAS, ), HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=1, timestamp=1653219722000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.TRANSFER, event_subtype=HistoryEventSubType.BRIDGE, asset=A_ETH, balance=Balance(amount=FVal('0.2')), location_label=ADDY, notes= 'Bridge 0.2 ETH to Optimism at the same address via Hop protocol', counterparty=CPT_HOP, ) ] assert expected_events == events
def test_claim_aidrop(database, ethereum_manager, function_scope_messages_aggregator): """Data taken from https://etherscan.io/tx/0x1e58aed1baf70b57e6e3e880e1890e7fe607fddc94d62986c38fe70e483e594b """ # TODO: For faster tests hard-code the transaction and the logs here so no remote query needed tx_hash = deserialize_evm_tx_hash('0x1e58aed1baf70b57e6e3e880e1890e7fe607fddc94d62986c38fe70e483e594b') # noqa: E501 events = get_decoded_events_of_transaction( ethereum_manager=ethereum_manager, database=database, msg_aggregator=function_scope_messages_aggregator, tx_hash=tx_hash, ) expected_events = [ HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=0, timestamp=1652910214000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.SPEND, event_subtype=HistoryEventSubType.FEE, asset=A_ETH, balance=Balance(amount=FVal('0.0061843862')), location_label=ADDY, notes=f'Burned 0.0061843862 ETH in gas from {ADDY}', counterparty=CPT_GAS, ), HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=549, timestamp=1652910214000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.RECEIVE, event_subtype=HistoryEventSubType.AIRDROP, asset=A_ELFI, balance=Balance(amount=FVal('613.8986657935664')), location_label=ADDY, notes='Claim 613.8986657935664 ELFI from element-finance airdrop and delegate it to 0x7BAFC0D5c5892f2041FD9F2415A7611042218e22', # noqa: E501 counterparty=CPT_ELEMENT_FINANCE, ), ] assert events == expected_events
def test_aave_withdraw_v1(database, ethereum_manager, function_scope_messages_aggregator): """Data taken from https://etherscan.io/tx/0x4fed67963375a3f90916f0cf7cb9e4d12644629e36233025b36060494ffba486 """ # TODO: For faster tests hard-code the transaction and the logs here so no remote query needed tx_hash = deserialize_evm_tx_hash( '0x4fed67963375a3f90916f0cf7cb9e4d12644629e36233025b36060494ffba486' ) # noqa: E501 events = get_decoded_events_of_transaction( ethereum_manager=ethereum_manager, database=database, msg_aggregator=function_scope_messages_aggregator, tx_hash=tx_hash, ) amount = '7968.408929477087756071' interest = '88.663672238882760399' expected_events = [ HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=0, timestamp=1598217272000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.SPEND, event_subtype=HistoryEventSubType.FEE, asset=A_ETH, balance=Balance(amount=FVal('0.028562839354')), location_label=ADDY, notes=f'Burned 0.028562839354 ETH in gas from {ADDY}', counterparty=CPT_GAS, ), HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=98, timestamp=1598217272000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.RECEIVE, event_subtype=HistoryEventSubType.REWARD, asset=A_ADAI_V1, balance=Balance(amount=FVal(interest)), location_label=ADDY, notes=f'Gain {interest} aDAI from aave-v1 as interest', counterparty=CPT_AAVE_V1, ), HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=99, timestamp=1598217272000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.SPEND, event_subtype=HistoryEventSubType.RETURN_WRAPPED, asset=A_ADAI_V1, balance=Balance(amount=FVal(amount)), location_label=ADDY, notes=f'Return {amount} aDAI to aave-v1', counterparty=CPT_AAVE_V1, ), HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=102, timestamp=1598217272000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.WITHDRAWAL, event_subtype=HistoryEventSubType.REMOVE_ASSET, asset=A_DAI, balance=Balance(amount=FVal(amount)), location_label=ADDY, notes=f'Withdraw {amount} DAI from aave-v1', counterparty=CPT_AAVE_V1, ), ] assert expected_events == events
def test_aave_deposit_v1(database, ethereum_manager, function_scope_messages_aggregator): """Data taken from https://etherscan.io/tx/0x930879d66d13c37edf25cdbb2d2e85b65c3b2a026529ff4085146bb7a5398410 """ # TODO: For faster tests hard-code the transaction and the logs here so no remote query needed tx_hash = deserialize_evm_tx_hash( '0x930879d66d13c37edf25cdbb2d2e85b65c3b2a026529ff4085146bb7a5398410' ) # noqa: E501 events = get_decoded_events_of_transaction( ethereum_manager=ethereum_manager, database=database, msg_aggregator=function_scope_messages_aggregator, tx_hash=tx_hash, ) amount = '2507.675873220870275072' expected_events = [ HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=0, timestamp=1595376667000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.SPEND, event_subtype=HistoryEventSubType.FEE, asset=A_ETH, balance=Balance(amount=FVal('0.00825148723006')), location_label=ADDY, notes=f'Burned 0.00825148723006 ETH in gas from {ADDY}', counterparty=CPT_GAS, ), HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=93, timestamp=1595376667000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.RECEIVE, event_subtype=HistoryEventSubType.REWARD, asset=A_ADAI_V1, balance=Balance(amount=FVal('17.91499070977557364')), location_label=ADDY, notes='Gain 17.91499070977557364 aDAI from aave-v1 as interest', counterparty=CPT_AAVE_V1, ), HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=94, timestamp=1595376667000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.DEPOSIT, event_subtype=HistoryEventSubType.DEPOSIT_ASSET, asset=A_DAI, balance=Balance(amount=FVal(amount)), location_label=ADDY, notes=f'Deposit {amount} DAI to aave-v1 from {ADDY}', counterparty=CPT_AAVE_V1, ), HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=96, timestamp=1595376667000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.RECEIVE, event_subtype=HistoryEventSubType.RECEIVE_WRAPPED, asset=A_ADAI_V1, balance=Balance(amount=FVal(amount)), location_label=ADDY, notes=f'Receive {amount} aDAI from aave-v1 for {ADDY}', counterparty=CPT_AAVE_V1, ), ] assert expected_events == events
def test_aave_eth_withdraw_v1(database, ethereum_manager, function_scope_messages_aggregator): """Data taken from https://etherscan.io/tx/0xbd333bdd5784c10630aac5683e63f703e660a78d06f95b2ff2a8788a8dade787 """ # TODO: For faster tests hard-code the transaction and the logs here so no remote query needed tx_hash = deserialize_evm_tx_hash( '0xbd333bdd5784c10630aac5683e63f703e660a78d06f95b2ff2a8788a8dade787' ) # noqa: E501 events = get_decoded_events_of_transaction( ethereum_manager=ethereum_manager, database=database, msg_aggregator=function_scope_messages_aggregator, tx_hash=tx_hash, ) amount = '1.000240847792940067' interest = '0.000240847792940067' expected_events = [ HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=0, timestamp=1605789951000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.SPEND, event_subtype=HistoryEventSubType.FEE, asset=A_ETH, balance=Balance(amount=FVal('0.021740928')), location_label=ADDY2, notes=f'Burned 0.021740928 ETH in gas from {ADDY2}', counterparty=CPT_GAS, ), HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=1, timestamp=1605789951000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.SPEND, event_subtype=HistoryEventSubType.RETURN_WRAPPED, asset=A_AETH_V1, balance=Balance(amount=FVal(amount)), location_label=ADDY2, notes=f'Return {amount} aETH to aave-v1', counterparty=CPT_AAVE_V1, ), HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=2, timestamp=1605789951000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.WITHDRAWAL, event_subtype=HistoryEventSubType.REMOVE_ASSET, asset=A_ETH, balance=Balance(amount=FVal(amount)), location_label=ADDY2, notes=f'Withdraw {amount} ETH from aave-v1', counterparty=CPT_AAVE_V1, ), HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=135, timestamp=1605789951000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.RECEIVE, event_subtype=HistoryEventSubType.REWARD, asset=A_AETH_V1, balance=Balance(amount=FVal(interest)), location_label=ADDY2, notes=f'Gain {interest} aETH from aave-v1 as interest', counterparty=CPT_AAVE_V1, ), ] assert expected_events == events
def test_1inchv1_swap(database, ethereum_manager, function_scope_messages_aggregator): """Data taken from https://etherscan.io/tx/0x8b8652c502e80ce7c5441cdedc9184ea8f07a9c13b4c3446a47ae08c6c1d6efa """ # TODO: For faster tests hard-code the transaction and the logs here so no remote query needed tx_hash = deserialize_evm_tx_hash( '0x8b8652c502e80ce7c5441cdedc9184ea8f07a9c13b4c3446a47ae08c6c1d6efa' ) # noqa: E501 events = get_decoded_events_of_transaction( ethereum_manager=ethereum_manager, database=database, msg_aggregator=function_scope_messages_aggregator, tx_hash=tx_hash, ) chispender_addy = '0xed04A060050cc289d91779A8BB3942C3A6589254' expected_events = [ HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=0, timestamp=1594500575000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.SPEND, event_subtype=HistoryEventSubType.FEE, asset=A_ETH, balance=Balance(amount=FVal('0.00896373909')), location_label=ADDY, notes=f'Burned 0.00896373909 ETH in gas from {ADDY}', counterparty=CPT_GAS, ), HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=90, timestamp=1594500575000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.TRADE, event_subtype=HistoryEventSubType.SPEND, asset=A_USDC, balance=Balance(amount=FVal('138.75')), location_label=ADDY, notes=f'Swap 138.75 USDC in 1inch-v1 from {ADDY}', counterparty=CPT_ONEINCH_V1, ), HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=91, timestamp=1594500575000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.TRADE, event_subtype=HistoryEventSubType.RECEIVE, asset=A_DAI, balance=Balance(amount=FVal('135.959878392183347402')), location_label=ADDY, notes= f'Receive 135.959878392183347402 DAI from 1inch-v1 swap in {ADDY}', counterparty=CPT_ONEINCH_V1, ), HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=102, timestamp=1594500575000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.SPEND, event_subtype=HistoryEventSubType.NONE, asset=A_CHI, balance=Balance(), location_label=ADDY, notes=f'Send 0 CHI from {ADDY} to {ZERO_ADDRESS}', counterparty=ZERO_ADDRESS, ), HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=103, timestamp=1594500575000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.INFORMATIONAL, event_subtype=HistoryEventSubType.APPROVE, asset=A_CHI, balance=Balance(), location_label=ADDY, notes=f'Approve 0 CHI of {ADDY} for spending by {chispender_addy}', counterparty=chispender_addy, ), ] assert expected_events == events
def test_1inchv2_swap_for_eth(database, ethereum_manager, function_scope_messages_aggregator): """ Test an 1inchv2 swap for ETH. Data taken from https://etherscan.io/tx/0x5edc23d5a05e347afc60e64a4d5831ed2551985c21dceb85d267926ca2e2c13e """ # TODO: For faster tests hard-code the transaction and the logs here so no remote query needed tx_hash = deserialize_evm_tx_hash( '0x5edc23d5a05e347afc60e64a4d5831ed2551985c21dceb85d267926ca2e2c13e' ) # noqa: E501 events = get_decoded_events_of_transaction( ethereum_manager=ethereum_manager, database=database, msg_aggregator=function_scope_messages_aggregator, tx_hash=tx_hash, ) oneinch_v2_addy = '0x111111125434b319222CdBf8C261674aDB56F3ae' expected_events = [ HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=0, timestamp=1608498702000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.SPEND, event_subtype=HistoryEventSubType.FEE, asset=A_ETH, balance=Balance(amount=FVal('0.002618947')), location_label=ADDY, notes=f'Burned 0.002618947 ETH in gas from {ADDY}', counterparty=CPT_GAS, ), HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=217, timestamp=1608498702000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.TRADE, event_subtype=HistoryEventSubType.SPEND, asset=A_PAN, balance=Balance(amount=FVal('2152.63')), location_label=ADDY, notes='Swap 2152.63 PAN in 1inch-v2', counterparty=CPT_ONEINCH_V2, ), HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=218, timestamp=1608498702000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.TRADE, event_subtype=HistoryEventSubType.RECEIVE, asset=A_ETH, balance=Balance(amount=FVal('0.220582251767407014')), location_label=ADDY, notes='Receive 0.220582251767407014 ETH from 1inch-v2 swap', counterparty=CPT_ONEINCH_V2, ), HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=221, timestamp=1608498702000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.INFORMATIONAL, event_subtype=HistoryEventSubType.APPROVE, asset=A_PAN, balance=Balance(amount=FVal('1.157920892373161954235709850E+59')), location_label=ADDY, notes= f'Approve 1.157920892373161954235709850E+59 PAN of {ADDY} for spending by {oneinch_v2_addy}', # noqa: E501 counterparty=oneinch_v2_addy, ), ] assert expected_events == events
def test_compound_deposit_with_comp_claim( database, ethereum_manager, function_scope_messages_aggregator, ): """Data taken from: https://etherscan.io/tx/0xfdbfe6e9ce822bd988054945c86f2dff1fac6a12b4acb0b68c8805b5aa3b30ba """ # TODO: For faster tests hard-code the transaction and the logs here so no remote query needed tx_hash = deserialize_evm_tx_hash( '0xfdbfe6e9ce822bd988054945c86f2dff1fac6a12b4acb0b68c8805b5aa3b30ba' ) # noqa: E501 events = get_decoded_events_of_transaction( ethereum_manager=ethereum_manager, database=database, msg_aggregator=function_scope_messages_aggregator, tx_hash=tx_hash, ) amount = FVal('14309.930911242041089052') wrapped_amount = FVal('687371.5068874') interest = FVal('0.076123031460129653') expected_events = [ HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=0, timestamp=1607572696000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.SPEND, event_subtype=HistoryEventSubType.FEE, asset=A_ETH, balance=Balance(amount=FVal('0.00945248'), usd_value=ZERO), location_label=ADDY2, notes=f'Burned 0.00945248 ETH in gas from {ADDY2}', counterparty=CPT_GAS, ), HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=241, timestamp=1607572696000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.RECEIVE, event_subtype=HistoryEventSubType.REWARD, asset=A_COMP, balance=Balance(amount=interest), location_label=ADDY2, notes=f'Collect {interest} COMP from compound', counterparty=CPT_COMPOUND, ), HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=243, timestamp=1607572696000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.DEPOSIT, event_subtype=HistoryEventSubType.DEPOSIT_ASSET, asset=A_DAI, balance=Balance(amount=amount), location_label=ADDY2, notes=f'Deposit {amount} DAI to compound', counterparty=CPT_COMPOUND, ), HistoryBaseEntry( event_identifier=tx_hash.hex(), # pylint: disable=no-member sequence_index=250, timestamp=1607572696000, location=Location.BLOCKCHAIN, event_type=HistoryEventType.RECEIVE, event_subtype=HistoryEventSubType.RECEIVE_WRAPPED, asset=A_CDAI, balance=Balance(amount=wrapped_amount), location_label=ADDY2, notes=f'Receive {wrapped_amount} cDAI from compound', counterparty=CPT_COMPOUND, ) ] assert events == expected_events