mirror of
https://github.com/luxfi/warp.git
synced 2026-10-30 15:13:04 +00:00
Lux Partners Limited is not the entity behind this work. Every place the old name stood — copyright lines, site footers, brand config, legal and compliance text — now names the company that actually holds it. lux.fund is the exception and is not renamed to match: that site belongs to Lux Assets Management LLC, a different company, and it says so. Two kinds of line were left for a person rather than rewritten. A dated news item recording that Lux Partners Limited was established in the Isle of Man is a historical fact, and renaming it would falsify the record. And a sentence asserting that the company is domiciled in the Isle of Man is a claim about a jurisdiction, not a name — an Inc or an LLC is not an Isle of Man company, so swapping the name there would assert something untrue. Co-authored-by: Hanzo Dev <[email protected]>
41 lines
826 B
Go
41 lines
826 B
Go
// Copyright (C) 2019-2025, Lux Industries Inc. All rights reserved.
|
|
// See the file LICENSE for licensing terms.
|
|
|
|
package warp
|
|
|
|
import (
|
|
"errors"
|
|
"math"
|
|
)
|
|
|
|
// Constants
|
|
const (
|
|
// KiB is 1024 bytes
|
|
KiB = 1024
|
|
|
|
// SignatureLen is the length of a BLS signature
|
|
SignatureLen = 96
|
|
|
|
// PublicKeyLen is the length of a BLS public key
|
|
PublicKeyLen = 48
|
|
)
|
|
|
|
// CheckMulDoesNotOverflow checks if a * b would overflow uint64
|
|
func CheckMulDoesNotOverflow(a, b uint64) error {
|
|
if a == 0 || b == 0 {
|
|
return nil
|
|
}
|
|
if a > math.MaxUint64/b {
|
|
return errors.New("multiplication would overflow")
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// AddUint64 adds two uint64 values and returns an error if overflow
|
|
func AddUint64(a, b uint64) (uint64, error) {
|
|
if a > math.MaxUint64-b {
|
|
return 0, errors.New("addition would overflow")
|
|
}
|
|
return a + b, nil
|
|
}
|