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 }