Exemple #1
0
    def _parse_struct(self, struct):
        name = struct['attributes']['name']
        if 'canonicalName' in struct['attributes']:
            canonicalName = struct['attributes']['canonicalName']
        else:
            canonicalName = self.name + '.' + name

        if 'children' in struct:
            children = struct['children']
        else:
            children = []  # empty struct
        st = StructureSolc(name, canonicalName, children)
        st.set_contract(self)
        st.set_offset(struct['src'], self.slither)
        self._structures[name] = st
Exemple #2
0
    def _parse_struct(self, struct: Dict):
        if self.is_compact_ast:
            name = struct["name"]
            attributes = struct
        else:
            name = struct["attributes"][self.get_key()]
            attributes = struct["attributes"]
        if "canonicalName" in attributes:
            canonicalName = attributes["canonicalName"]
        else:
            canonicalName = self._contract.name + "." + name

        if self.get_children("members") in struct:
            children = struct[self.get_children("members")]
        else:
            children = []  # empty struct

        st = Structure()
        st.set_contract(self._contract)
        st.set_offset(struct["src"], self._contract.slither)

        st_parser = StructureSolc(st, name, canonicalName, children, self)
        self._contract.structures_as_dict[name] = st
        self._structures_parser.append(st_parser)
Exemple #3
0
    def _parse_struct(self, struct):
        if self.is_compact_ast:
            name = struct['name']
            attributes = struct
        else:
            name = struct['attributes'][self.get_key()]
            attributes = struct['attributes']
        if 'canonicalName' in attributes:
            canonicalName = attributes['canonicalName']
        else:
            canonicalName = self.name + '.' + name

        if self.get_children('members') in struct:
            children = struct[self.get_children('members')]
        else:
            children = []  # empty struct
        st = StructureSolc(name, canonicalName, children)
        st.set_contract(self)
        st.set_offset(struct['src'], self.slither)
        self._structures[name] = st
Exemple #4
0
 def _analyze_struct(self, struct: StructureSolc):  # pylint: disable=no-self-use
     struct.analyze()
Exemple #5
0
 def _analyze_struct(self, struct: StructureSolc):
     struct.analyze()