| 248 | } |
| 249 | |
| 250 | std::vector<EventDefinition const*> ContractDefinition::interfaceEvents(bool _requireCallGraph) const |
| 251 | { |
| 252 | std::set<EventDefinition const*, CompareByID> result; |
| 253 | for (ContractDefinition const* contract: annotation().linearizedBaseContracts) |
| 254 | result += contract->events(); |
| 255 | solAssert(annotation().creationCallGraph.set() == annotation().deployedCallGraph.set()); |
| 256 | if (_requireCallGraph) |
| 257 | solAssert(annotation().creationCallGraph.set()); |
| 258 | if (annotation().creationCallGraph.set()) |
| 259 | result += usedInterfaceEvents(); |
| 260 | // We could filter out all events that do not have an external interface |
| 261 | // if _requireCallGraph is false. |
| 262 | return util::convertContainer<std::vector<EventDefinition const*>>(std::move(result)); |
| 263 | } |
| 264 | |
| 265 | std::vector<ErrorDefinition const*> ContractDefinition::interfaceErrors(bool _requireCallGraph) const |
| 266 | { |