add
This commit is contained in:
63
ccxt/static_dependencies/starkware/crypto/utils.py
Normal file
63
ccxt/static_dependencies/starkware/crypto/utils.py
Normal file
@@ -0,0 +1,63 @@
|
||||
from typing import (
|
||||
AsyncGenerator,
|
||||
Optional,
|
||||
TypeVar,
|
||||
)
|
||||
|
||||
import sys
|
||||
|
||||
if sys.version_info.minor >= 11:
|
||||
from typing import Literal, ParamSpec
|
||||
else:
|
||||
from typing_extensions import Literal, ParamSpec
|
||||
|
||||
T = TypeVar("T")
|
||||
P = ParamSpec("P")
|
||||
K = TypeVar("K")
|
||||
V = TypeVar("V")
|
||||
TAsyncGenerator = TypeVar("TAsyncGenerator", bound=AsyncGenerator)
|
||||
NumType = TypeVar("NumType", int, float)
|
||||
HASH_BYTES = 32
|
||||
|
||||
# If more shared types start popping up here extract to types.py.
|
||||
Endianness = Literal["big", "little"]
|
||||
TComparable = TypeVar("TComparable", bound="Comparable")
|
||||
|
||||
def to_bytes(
|
||||
value: int,
|
||||
length: Optional[int] = None,
|
||||
byte_order: Optional[Endianness] = None,
|
||||
signed: Optional[bool] = None,
|
||||
) -> bytes:
|
||||
"""
|
||||
Converts the given integer to a bytes object of given length and byte order.
|
||||
The default values are 32B width (which is the hash result width) and 'big', respectively.
|
||||
"""
|
||||
if length is None:
|
||||
length = HASH_BYTES
|
||||
|
||||
if byte_order is None:
|
||||
byte_order = "big"
|
||||
|
||||
if signed is None:
|
||||
signed = False
|
||||
|
||||
return int.to_bytes(value, length=length, byteorder=byte_order, signed=signed)
|
||||
|
||||
|
||||
def from_bytes(
|
||||
value: bytes,
|
||||
byte_order: Optional[Endianness] = None,
|
||||
signed: Optional[bool] = None,
|
||||
) -> int:
|
||||
"""
|
||||
Converts the given bytes object (parsed according to the given byte order) to an integer.
|
||||
Default byte order is 'big'.
|
||||
"""
|
||||
if byte_order is None:
|
||||
byte_order = "big"
|
||||
|
||||
if signed is None:
|
||||
signed = False
|
||||
|
||||
return int.from_bytes(value, byteorder=byte_order, signed=signed)
|
||||
Reference in New Issue
Block a user