```\nfunction updateAndDistributeERC20(\n  address split,\n  ERC20 token,\n  address[] calldata accounts,\n  uint32[] calldata percentAllocations,\n  uint32 distributorFee,\n  address distributorAddress\n)\n  external\n  override\n  onlySplitController(split)\n  validSplit(accounts, percentAllocations, distributorFee)\n{\n  _updateSplit(split, accounts, percentAllocations, distributorFee);\n  // know splitHash is valid immediately after updating; only accessible via controller\n  _distributeERC20(\n    split,\n    token,\n    accounts,\n    percentAllocations,\n    distributorFee,\n    distributorAddress\n  );\n}\n```\n