From 87a45983a1f59a280b37a6f1edb215f08866b90a Mon Sep 17 00:00:00 2001 From: Leonard Lyubich Date: Mon, 24 Jan 2022 20:03:23 +0300 Subject: [PATCH] [#1084] accounting: Keep balance precision from contract Do not convert balance response of Balance contract to Fixed8. Signed-off-by: Leonard Lyubich --- pkg/services/accounting/morph/executor.go | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/pkg/services/accounting/morph/executor.go b/pkg/services/accounting/morph/executor.go index 7ec66232a7..bd6dc2e76d 100644 --- a/pkg/services/accounting/morph/executor.go +++ b/pkg/services/accounting/morph/executor.go @@ -6,7 +6,6 @@ import ( "github.com/nspcc-dev/neofs-api-go/v2/accounting" "github.com/nspcc-dev/neofs-node/pkg/morph/client/balance/wrapper" accountingSvc "github.com/nspcc-dev/neofs-node/pkg/services/accounting" - "github.com/nspcc-dev/neofs-node/pkg/util/precision" "github.com/nspcc-dev/neofs-sdk-go/owner" ) @@ -14,8 +13,6 @@ type morphExecutor struct { client *wrapper.Wrapper } -const fixed8Precision = 8 - func NewExecutor(client *wrapper.Wrapper) accountingSvc.ServiceExecutor { return &morphExecutor{ client: client, @@ -33,16 +30,9 @@ func (s *morphExecutor) Balance(ctx context.Context, body *accounting.BalanceReq return nil, err } - // Convert amount to Fixed8 precision. This way it will definitely fit - // int64 value. - // Max Fixed8 decimal integer value that fit into int64: 92 233 720 368. - // Max Fixed12 decimal integer value that fit into int64: 9 223 372. - // Max Fixed16 decimal integer value that fit into int64: 922. - fixed8Amount := precision.Convert(balancePrecision, fixed8Precision, amount) - dec := new(accounting.Decimal) - dec.SetValue(fixed8Amount.Int64()) - dec.SetPrecision(fixed8Precision) + dec.SetValue(amount.Int64()) + dec.SetPrecision(balancePrecision) res := new(accounting.BalanceResponseBody) res.SetBalance(dec)