0.13.1 • Published 2 days ago

@encointer/util v0.13.1

Weekly downloads
38
License
MIT
Repository
github
Last release
2 days ago

@encointer/util

Utilities for Encointer App and Explorer. Contains methods to work with substrate-based Encointer node.

Installation

yarn add @encointer/util

Fixed-point numbers

Package contains parser from fixed-point number representation created with substrate-fixed crate into floating-point Number. Conversion from floating-point to fixed-point also supported. Several bit-length for decimal and fractional parts supported out of the box: 4, 8, 16, 32, 64.

Usage

To decode number with 64 bits of decimal part and 64 bits of fractional part use parseI64F64. To encode number as fixed point with 4 bits for decimal and fractional use functions toI16F16 (returns fixed-point as BigNum) and encodeFloatToI4F4 (returns Uint8Array).

import { parseI32F32, toI16F16 } from '@encointer/util'
import BN from 'bn.js'

/// Got fixed-point encoded number
const balanceFixPoint = new BN('110000000000000000000000000000001', 2)
console.log(balanceFixPoint)          // -> <BN: 180000001>

/// Parse to Number
const balance = parseI32F32(balanceFixPoint)
console.log(balance)                  // -> 1.5000000002328306

/// Convert to smaller word size
const balance32bit = toI16F16(balance)
console.log(balance32bit)             // -> <BN: 18000>
console.log(balance32bit.toString(2)) // -> 11000000000000000

Various bit-length support

Function parserFixPoint used to produce function converting fixed-point to Number. For example to decode decimal 2 bits and fractional 6 bits use this function to create new parser.

Parameters: upper: 0..128 - number of bits in decimal part lower: 0..128 - number of bits in fractional part

Produced function parameters: raw: substrate_fixed::types::IF as I<upper+lower> precision: 0..lower number bits in fractional part to process

const parseI2F6 = parserFixPoint(2, 6);
0.13.1

2 days ago

0.12.6

2 days ago

0.13.0-alpha.0

2 days ago

0.12.5-alpha.9

4 days ago

0.12.5

4 days ago

0.12.5-alpha.5

5 days ago

0.12.5-alpha.6

5 days ago

0.12.5-alpha.7

5 days ago

0.12.5-alpha.8

5 days ago

0.12.5-alpha.3

6 days ago

0.12.5-alpha.4

6 days ago

0.12.5-alpha.1

6 days ago

0.12.5-alpha.2

6 days ago

0.12.5-alpha.0

6 days ago

0.12.3-alpha.0

7 days ago

0.12.4-alpha.0

7 days ago

0.12.4

7 days ago

0.12.2-alpha.0

7 days ago

0.12.1

17 days ago

0.12.0

19 days ago

0.12.0-alpha.13

24 days ago

0.12.0-alpha.11

24 days ago

0.12.0-alpha.12

24 days ago

0.12.0-alpha.10

25 days ago

0.12.0-alpha.8

25 days ago

0.12.0-alpha.9

25 days ago

0.12.0-alpha.5

25 days ago

0.12.0-alpha.6

25 days ago

0.12.0-alpha.7

25 days ago

0.12.0-alpha.0

26 days ago

0.12.0-alpha.1

26 days ago

0.12.0-alpha.2

26 days ago

0.12.0-alpha.4

26 days ago

0.10.0-alpha.0

10 months ago

0.11.0

8 months ago

0.10.0

10 months ago

0.8.7

2 years ago

0.8.7-alpha.0

2 years ago

0.9.0-alpha.2

2 years ago

0.9.0-alpha.3

2 years ago

0.8.6

2 years ago

0.8.6-alpha.0

2 years ago

0.8.5

2 years ago

0.6.6

2 years ago

0.7.2-alpha.0

2 years ago

0.6.0-2

2 years ago

0.6.0-1

2 years ago

0.6.4-alpha.1

2 years ago

0.5.1-alpha.0

2 years ago

0.6.6-alpha.5

2 years ago

0.6.6-alpha.0

2 years ago

0.7.2

2 years ago

0.7.1

2 years ago

0.5.0

2 years ago

0.6.6-alpha.3

2 years ago

0.7.0

2 years ago

0.6.6-alpha.1

2 years ago

0.5.1

2 years ago

0.6.0-alpha.1

2 years ago

0.6.0-alpha.2

2 years ago

0.6.0-alpha.0

2 years ago

0.6.0-alpha.7

2 years ago

0.6.0-alpha.8

2 years ago

0.6.0-alpha.5

2 years ago

0.6.0-alpha.6

2 years ago

0.6.0-alpha.3

2 years ago

0.6.0-alpha.4

2 years ago

0.6.5-alpha.0

2 years ago

0.6.5-alpha.1

2 years ago

0.6.3-alpha.0

2 years ago

0.6.3

2 years ago

0.5.0-alpha.7

2 years ago

0.6.2

2 years ago

0.5.0-alpha.6

2 years ago

0.6.5

2 years ago

0.6.4

2 years ago

0.6.1

2 years ago

0.6.0

2 years ago

0.5.0-alpha.3

2 years ago

0.5.0-alpha.2

2 years ago

0.5.0-alpha.1

2 years ago

0.5.0-alpha.0

2 years ago

0.5.0-alpha.4

2 years ago

0.4.3

3 years ago

0.4.2

3 years ago

0.4.1

3 years ago

0.4.0

3 years ago

0.3.4

3 years ago

0.3.3

3 years ago

0.3.2

3 years ago

0.2.0-alpha.0

3 years ago

0.3.0

3 years ago

0.2.0

3 years ago

0.1.2

3 years ago

0.1.2-next.1

3 years ago

0.1.2-next.0

3 years ago

0.1.0

3 years ago