diff --git a/chain/block.go b/chain/block.go index 7966266f3f..a23b01cd1d 100644 --- a/chain/block.go +++ b/chain/block.go @@ -10,6 +10,7 @@ import ( "fmt" "time" + "github.com/ava-labs/avalanchego/database" "github.com/ava-labs/avalanchego/ids" "github.com/ava-labs/avalanchego/snow/consensus/snowman" "github.com/ava-labs/avalanchego/snow/engine/snowman/block" @@ -426,7 +427,10 @@ func (b *StatefulBlock) innerVerify(ctx context.Context, vctx VerifyContext) err if err != nil { return err } - parentHeight := binary.BigEndian.Uint64(parentHeightRaw) + parentHeight, err := database.ParseUInt64(parentHeightRaw) + if err != nil { + return err + } if b.Hght != parentHeight+1 { return ErrInvalidBlockHeight } @@ -440,7 +444,11 @@ func (b *StatefulBlock) innerVerify(ctx context.Context, vctx VerifyContext) err if err != nil { return err } - parentTimestamp := int64(binary.BigEndian.Uint64(parentTimestampRaw)) + parentTimestampUint64, err := database.ParseUInt64(parentTimestampRaw) + if err != nil { + return err + } + parentTimestamp := int64(parentTimestampUint64) if b.Tmstmp < parentTimestamp+r.GetMinBlockGap() { return ErrTimestampTooEarly } @@ -731,7 +739,10 @@ func (b *StatefulBlock) View(ctx context.Context, verify bool) (state.View, erro if err != nil { return nil, err } - acceptedHeight := binary.BigEndian.Uint64(acceptedHeightRaw) + acceptedHeight, err := database.ParseUInt64(acceptedHeightRaw) + if err != nil { + return nil, err + } if acceptedHeight == b.Hght { b.vm.Logger().Info("accepted block not processed but found post-execution state on-disk", zap.Uint64("height", b.Hght), diff --git a/docs/tutorials/morpheusvm/morpheusvm.md b/docs/tutorials/morpheusvm/morpheusvm.md index 02aa47366b..97b227a690 100644 --- a/docs/tutorials/morpheusvm/morpheusvm.md +++ b/docs/tutorials/morpheusvm/morpheusvm.md @@ -332,7 +332,11 @@ func innerGetBalance( if err != nil { return 0, false, err } - return binary.BigEndian.Uint64(v), true, nil + val, err := database.ParseUInt64(v) + if err != nil { + return 0, false, err + } + return val, true, nil } ``` diff --git a/examples/morpheusvm/storage/storage.go b/examples/morpheusvm/storage/storage.go index ce9f88e13d..5c7ff3914b 100644 --- a/examples/morpheusvm/storage/storage.go +++ b/examples/morpheusvm/storage/storage.go @@ -96,7 +96,11 @@ func innerGetBalance( if err != nil { return 0, false, err } - return binary.BigEndian.Uint64(v), true, nil + val, err := database.ParseUInt64(v) + if err != nil { + return 0, false, err + } + return val, true, nil } func SetBalance( diff --git a/examples/vmwithcontracts/storage/storage.go b/examples/vmwithcontracts/storage/storage.go index 1022f76b95..314057f621 100644 --- a/examples/vmwithcontracts/storage/storage.go +++ b/examples/vmwithcontracts/storage/storage.go @@ -105,7 +105,11 @@ func innerGetBalance( if err != nil { return 0, false, err } - return binary.BigEndian.Uint64(v), true, nil + val, err := database.ParseUInt64(v) + if err != nil { + return 0, false, err + } + return val, true, nil } func SetBalance( diff --git a/vm/storage.go b/vm/storage.go index 46290084a1..77d69c1f7f 100644 --- a/vm/storage.go +++ b/vm/storage.go @@ -82,7 +82,7 @@ func (vm *VM) GetLastAcceptedHeight() (uint64, error) { if err != nil { return 0, err } - return binary.BigEndian.Uint64(b), nil + return database.ParseUInt64(b) } func (vm *VM) SetLastProcessedHeight(height uint64) error { @@ -98,7 +98,7 @@ func (vm *VM) GetLastProcessedHeight() (uint64, error) { if err != nil { return 0, err } - return binary.BigEndian.Uint64(b), nil + return database.ParseUInt64(b) } func (vm *VM) shouldCompact(expiryHeight uint64) bool { @@ -199,7 +199,7 @@ func (vm *VM) GetBlockIDHeight(blkID ids.ID) (uint64, error) { if err != nil { return 0, err } - return binary.BigEndian.Uint64(b), nil + return database.ParseUInt64(b) } // CompactDiskBlocks forces compaction on the entire range of blocks up to [lastExpired]. diff --git a/x/contracts/simulator/state/manager.go b/x/contracts/simulator/state/manager.go index 7e8b77f1ff..f8c11c1784 100644 --- a/x/contracts/simulator/state/manager.go +++ b/x/contracts/simulator/state/manager.go @@ -55,7 +55,7 @@ func (p *ContractStateManager) GetBalance(ctx context.Context, address codec.Add return 0, err } - return binary.BigEndian.Uint64(v), nil + return database.ParseUInt64(v) } func (p *ContractStateManager) SetBalance(ctx context.Context, address codec.Address, amount uint64) error {