github.com/hashgraph/hedera-sdk-go/v2@v2.48.0/internal_token_transfer.go (about)

     1  package hedera
     2  
     3  /*-
     4   *
     5   * Hedera Go SDK
     6   *
     7   * Copyright (C) 2020 - 2024 Hedera Hashgraph, LLC
     8   *
     9   * Licensed under the Apache License, Version 2.0 (the "License");
    10   * you may not use this file except in compliance with the License.
    11   * You may obtain a copy of the License at
    12   *
    13   *      http://www.apache.org/licenses/LICENSE-2.0
    14   *
    15   * Unless required by applicable law or agreed to in writing, software
    16   * distributed under the License is distributed on an "AS IS" BASIS,
    17   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    18   * See the License for the specific language governing permissions and
    19   * limitations under the License.
    20   *
    21   */
    22  
    23  import (
    24  	"github.com/hashgraph/hedera-protobufs-go/services"
    25  )
    26  
    27  type _TokenTransfer struct {
    28  	Transfers        []*_HbarTransfer
    29  	ExpectedDecimals *uint32
    30  }
    31  
    32  func _TokenTransferPrivateFromProtobuf(pb *services.TokenTransferList) *_TokenTransfer {
    33  	if pb == nil {
    34  		return &_TokenTransfer{}
    35  	}
    36  
    37  	var decimals *uint32
    38  	if pb.ExpectedDecimals != nil {
    39  		temp := pb.ExpectedDecimals.GetValue()
    40  		decimals = &temp
    41  	}
    42  
    43  	return &_TokenTransfer{
    44  		Transfers:        _HbarTransferFromProtobuf(pb.Transfers),
    45  		ExpectedDecimals: decimals,
    46  	}
    47  }
    48  
    49  func (transfer *_TokenTransfer) _ToProtobuf() []*services.AccountAmount {
    50  	transfers := make([]*services.AccountAmount, 0)
    51  	for _, t := range transfer.Transfers {
    52  		transfers = append(transfers, &services.AccountAmount{
    53  			AccountID:  t.accountID._ToProtobuf(),
    54  			Amount:     t.Amount.AsTinybar(),
    55  			IsApproval: t.IsApproved,
    56  		})
    57  	}
    58  	return transfers
    59  }