code: func (api *API) TraverseBundle(trunkTxHash Hash, bndl bundle.Bundle) (bundle.Bundle, error) {
  	if err := Validate(ValidateTransactionHashes(trunkTxHash)); err != nil {
  		return nil, err
  	}
  	tailTrytes, err := api.GetTrytes(trunkTxHash)
  	if err != nil {
  		return nil, err
  	}
  	tx, err := transaction.AsTransactionObject(tailTrytes[0], trunkTxHash)
  	if err != nil {
  		return nil, err
  	}
  	// tail tx ?
  	if len(bndl) == 0 {
  		if !transaction.IsTailTransaction(tx) {
  			return nil, ErrInvalidTailTransaction
  		}
  	}
  	bndl = append(bndl, *tx)
  	if tx.CurrentIndex == tx.LastIndex {
  		return bndl, nil
  	}
  	return api.TraverseBundle(tx.TrunkTransaction, bndl)
  }
docs: // TraverseBundle fetches the bundle of a given tail transaction by traversing through the trunk transactions.
  // It does not validate the bundle.