def to_abi_dict(self, custom_units_descriptions=None): abi_dict = { "name": self.name, "outputs": self._generate_output_abi(custom_units_descriptions), "inputs": [{ "type": canonicalize_type(arg.typ), "name": arg.name, "unit": print_unit(unit_from_type(arg.typ), custom_units_descriptions) } for arg in self.args], "constant": self.const, "payable": self.payable, "type": "constructor" if self.name == "__init__" else "function" } for abi_input in abi_dict['inputs']: delete_unit_if_empty(abi_input) return abi_dict
def _generate_output_abi(self, custom_units_descriptions=None): t = self.output_type if not t: return [] elif isinstance(t, TupleType): res = [(canonicalize_type(x), print_unit(unit_from_type(x), custom_units_descriptions)) for x in t.members] elif isinstance(t, TupleLike): res = [(canonicalize_type(x), print_unit(unit_from_type(x), custom_units_descriptions)) for x in t.tuple_members()] else: res = [(canonicalize_type(t), print_unit(unit_from_type(t), custom_units_descriptions))] abi_outputs = [{ "type": x, "name": "out", "unit": unit } for x, unit in res] for abi_output in abi_outputs: delete_unit_if_empty(abi_output) return abi_outputs
def to_abi_dict(self, custom_units_descriptions=None): func_type = "function" if self.name == "__init__": func_type = "constructor" if self.name == "__default__": func_type = "fallback" abi_dict = { "name": self.name, "outputs": self._generate_output_abi(custom_units_descriptions), "inputs": [{ "type": canonicalize_type(arg.typ), "name": arg.name, "unit": print_unit(unit_from_type(arg.typ), custom_units_descriptions) } for arg in self.args], "constant": self.const, "payable": self.payable, "type": func_type } for abi_input in abi_dict['inputs']: delete_unit_if_empty(abi_input) if self.name in ('__default__', '__init__'): del abi_dict['name'] if self.name == '__default__': del abi_dict['inputs'] del abi_dict['outputs'] return abi_dict
def to_abi_dict(self, custom_units_descriptions=None): abi_dict = { "name": self.name, "inputs": [{ "type": canonicalize_type(arg.typ, self.indexed_list[pos]), "name": arg.name, "indexed": self.indexed_list[pos], "unit": print_unit(unit_from_type(arg.typ), custom_units_descriptions) } for pos, arg in enumerate(self.args)] if self.args else [], "anonymous": False, "type": "event" } for abi_input in abi_dict['inputs']: delete_unit_if_empty(abi_input) return abi_dict