mirror of
https://github.com/Xahau/xahau.js.git
synced 2025-11-20 20:25:48 +00:00
Initial change from Babel/JS to TypeScript (#70)
* will compile as typescript * migrated test suite to use JestJS * Migrated to Jest testing framework and typescript source files * updated deps * updated prepublish * resolved 1 failing test * changed decimal .0 on four tests, it appears that these were the only four tests expecting integer values to have '.0' * added linter * added package-lock * removed tslint in favor of eslint * changed yarn to npm * updated version 2.6->3.0 * removing package lock * updated node version in nvmrc and jest version in package * removed nvmrc * removed some unused functions * replaced data driven with file from master * commitint yarn.lock * removing babel as a dependency in favor of typescript compiling to es5 * removing babel deps * resolved testing issues by migrating helper function * added partial linting functionality for test suite * updated imports for decodeLedgerData * updated test * updated yarn.lock * removed a console.log * added eslint-jest-plugin to package * reverting to old linting, will add linting in next PR * removed comments in shamap * re-adding .nvmrc * npm -> yarn * added . to .eslintrc * added .eslintrc * removing linting for this PR * Changed linting to print a message so that linting doesnt fail in CI * changing back * added newline so diff wont show * removed eslint deps, since linting will be dealt with in a later PR * changed function calls to describe(...)
This commit is contained in:
21
packages/ripple-binary-codec/src/quality.ts
Normal file
21
packages/ripple-binary-codec/src/quality.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
const Decimal = require('decimal.js');
|
||||
import { bytesToHex, slice, parseBytes } from './utils/bytes-utils';
|
||||
import { coreTypes } from './types';
|
||||
import { BN } from 'bn.js';
|
||||
|
||||
module.exports = {
|
||||
encode(arg) {
|
||||
const quality = arg instanceof Decimal ? arg : new Decimal(arg);
|
||||
const exponent = quality.e - 15;
|
||||
const qualityString = quality.times('1e' + -exponent).abs().toString();
|
||||
const bytes = new coreTypes.UInt64(new BN(qualityString)).toBytes();
|
||||
bytes[0] = exponent + 100;
|
||||
return bytes;
|
||||
},
|
||||
decode(arg) {
|
||||
const bytes = slice(parseBytes(arg), -8);
|
||||
const exponent = bytes[0] - 100;
|
||||
const mantissa = new Decimal('0x' + bytesToHex(slice(bytes, 1)));
|
||||
return mantissa.times('1e' + exponent);
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user