github.com/hashgraph/hedera-sdk-go/v2@v2.48.0/account_balance.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 AccountBalance struct {
    28  	Hbars Hbar
    29  	// Deprecated: Use `AccountBalance.Tokens` instead
    30  	Token         map[TokenID]uint64
    31  	Tokens        TokenBalanceMap
    32  	TokenDecimals TokenDecimalMap
    33  }
    34  
    35  func _AccountBalanceFromProtobuf(pb *services.CryptoGetAccountBalanceResponse) AccountBalance { //nolint
    36  	if pb == nil {
    37  		return AccountBalance{}
    38  	}
    39  	var tokens map[TokenID]uint64
    40  	if pb.TokenBalances != nil { //nolint
    41  		tokens = make(map[TokenID]uint64, len(pb.TokenBalances)) //nolint
    42  		for _, token := range pb.TokenBalances {                 //nolint
    43  			if t := _TokenIDFromProtobuf(token.TokenId); t != nil {
    44  				tokens[*t] = token.Balance
    45  			}
    46  		}
    47  	}
    48  	return AccountBalance{
    49  		Hbars:         HbarFromTinybar(int64(pb.Balance)),
    50  		Token:         tokens,
    51  		Tokens:        _TokenBalanceMapFromProtobuf(pb.TokenBalances), //nolint
    52  		TokenDecimals: _TokenDecimalMapFromProtobuf(pb.TokenBalances), //nolint
    53  	}
    54  }
    55  
    56  func (balance *AccountBalance) _ToProtobuf() *services.CryptoGetAccountBalanceResponse { //nolint
    57  	return &services.CryptoGetAccountBalanceResponse{
    58  		Balance: uint64(balance.Hbars.AsTinybar()),
    59  	}
    60  }