code: def get_aligned_abi_inputs(abi, args):
      
      input_abis = abi.get('inputs', [])
  
      if isinstance(args, abc.Mapping):
          # `args` is mapping.  Align values according to abi order.
          args = tuple(args[abi['name']] for abi in input_abis)
  
      return (
          tuple(collapse_if_tuple(abi) for abi in input_abis),
          type(args)(
              _align_abi_input(abi, arg)
              for abi, arg in zip(input_abis, args)
          ),
      )
docs: Takes a function ABI (``abi``) and a sequence or mapping of args (``args``).
      Returns a list of type strings for the function's inputs and a list of
      arguments which have been aligned to the layout of those types.  The args
      contained in ``args`` may contain nested mappings or sequences corresponding
      to tuple-encoded values in ``abi``.