If you're using Web3 v1 then you can use web3.eth.getTransactionReceipt(tx). It returns logs property as a part of a result.
You can categorize events by looking at their topics property.
Sample getTransactionReceipt result:
When calculating the signature of an event that uses structs, each struct is represented as a tuple of the types of the variables it contains. To create the tuple for your question, we need to look at the source of SoloMargin.
Based on the source published to Etherscan, I extracted the code needed to create the event:
pragma solidity 0.5.7;
This event's signature is:
This is keccak256 hash of the following string:
When logged event is stored in transaction receipt, the type of event is stored as a keccak256 hash of event signature. The signature is a string looking like this: Transfer(address,address,uint256).
You may query hashes of all event signatures, but in general there is no way to decode these hashes into plain text signatures.
All the signature hashes may be ...