github.com/hashgraph/hedera-sdk-go/v2@v2.48.0/hbar_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 "github.com/hashgraph/hedera-protobufs-go/services"
    24  
    25  type _HbarTransfer struct {
    26  	accountID  *AccountID
    27  	Amount     Hbar
    28  	IsApproved bool
    29  }
    30  
    31  func _HbarTransferFromProtobuf(pb []*services.AccountAmount) []*_HbarTransfer {
    32  	result := make([]*_HbarTransfer, 0)
    33  	for _, acc := range pb {
    34  		result = append(result, &_HbarTransfer{
    35  			accountID:  _AccountIDFromProtobuf(acc.AccountID),
    36  			Amount:     HbarFromTinybar(acc.Amount),
    37  			IsApproved: acc.GetIsApproval(),
    38  		})
    39  	}
    40  
    41  	return result
    42  }
    43  
    44  func (transfer *_HbarTransfer) _ToProtobuf() *services.AccountAmount { //nolint
    45  	var account *services.AccountID
    46  	if transfer.accountID != nil {
    47  		account = transfer.accountID._ToProtobuf()
    48  	}
    49  
    50  	return &services.AccountAmount{
    51  		AccountID:  account,
    52  		Amount:     transfer.Amount.AsTinybar(),
    53  		IsApproval: transfer.IsApproved,
    54  	}
    55  }