code: func (t *Transactor) RequestTransfer(request *token.TransferRequest) (*token.TokenTransaction, error) {
  	var outputs []*token.PlainOutput
  
  	inputs, tokenType, _, err := t.getInputsFromTokenIds(request.GetTokenIds())
  	if err != nil {
  		return nil, err
  	}
  
  	for _, ttt := range request.GetShares() {
  		outputs = append(outputs, &token.PlainOutput{
  			Owner:    ttt.Recipient,
  			Type:     tokenType,
  			Quantity: ttt.Quantity,
  		})
  	}
  
  	// prepare transfer request
  	transaction := &token.TokenTransaction{
  		Action: &token.TokenTransaction_PlainAction{
  			PlainAction: &token.PlainTokenAction{
  				Data: &token.PlainTokenAction_PlainTransfer{
  					PlainTransfer: &token.PlainTransfer{
  						Inputs:  inputs,
  						Outputs: outputs,
  					},
  				},
  			},
  		},
  	}
  
  	return transaction, nil
  }
docs: // RequestTransfer creates a TokenTransaction of type transfer request
  //func (t *Transactor) RequestTransfer(inTokens []*token.InputId, tokensToTransfer []*token.RecipientTransferShare) (*token.TokenTransaction, error) {