solana_kit_fixed_points 0.5.0 copy "solana_kit_fixed_points: ^0.5.0" to clipboard
solana_kit_fixed_points: ^0.5.0 copied to clipboard

Fixed-point number helpers for the Solana Kit Dart SDK.

solana_kit_fixed_points #

pub package CI Coverage

Fixed-point number helpers for the Solana Kit Dart SDK.

Ports the @solana/kit fixed-points API to Dart, providing binary and decimal fixed-point arithmetic, conversions, comparisons, formatting, codecs, parsing, rounding, and raw range utilities.

Installation #

dependencies:
  solana_kit_fixed_points: ^0.4.0

Usage #

Binary fixed-point arithmetic #

import 'package:solana_kit_fixed_points/solana_kit_fixed_points.dart';

// Create a binary fixed-point value
final a = BinaryFixedPoint.fromBigInt(BigInt.from(1500), precision: 8);
final b = BinaryFixedPoint.fromBigInt(BigInt.from(500), precision: 8);

// Arithmetic
final sum = a + b;
final product = a * b;
final quotient = a ~/ b;

// Comparisons
print(a > b);  // true
print(a == b); // false

// Conversions
final asDecimal = a.toDecimal();
final asBigInt = a.toBigInt();

Decimal fixed-point arithmetic #

final price = DecimalFixedPoint.fromString('1.23456789', decimals: 9);
final quantity = DecimalFixedPoint.fromString('100.0', decimals: 9);

final total = price * quantity;
print(total.toString()); // '123.456789000'

Formatting #

final value = DecimalFixedPoint.fromString('1234.5678', decimals: 4);

// Format with fixed decimal places
print(value.toStringAsFixed(2)); // '1234.57'

// Format with significant digits
print(value.toStringAsPrecision(6)); // '1234.57'

Codecs #

// Binary codec for on-chain encoding
final codec = getBinaryFixedPointCodec(precision: 8);
final bytes = codec.encode(fixedPointValue);
final decoded = codec.decode(bytes);

Features #

  • Binary fixed-pointBinaryFixedPoint with configurable precision (power-of-2 scaling)
  • Decimal fixed-pointDecimalFixedPoint with configurable decimal places (power-of-10 scaling)
  • Arithmetic+, -, *, ~/, % operators for both types
  • Comparisons==, <, >, <=, >= with structural equality
  • Conversions — convert between binary and decimal representations
  • FormattingtoStringAsFixed, toStringAsPrecision, custom formatters
  • Codecs — binary encoders/decoders for on-chain serialization
  • Parsing — parse from strings, BigInt, int, and double
  • Rounding — configurable rounding modes (halfUp, down, up)
  • Ranges — min/max values for a given precision or decimal count

Upstream reference #

Port of @solana/kit fixed-points.

0
likes
150
points
28
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Fixed-point number helpers for the Solana Kit Dart SDK.

Homepage
Repository (GitHub)
View/report issues

License

MIT (license)

More

Packages that depend on solana_kit_fixed_points