Skip to content
This repository has been archived by the owner on Apr 15, 2019. It is now read-only.

Fix transaction amount inconsistency - Closes #127 #130

Merged
merged 3 commits into from
Apr 24, 2017
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/app/services/lsk.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ BigNumber.config({ ERRORS: false });

app.factory('lsk', () => ({
normalize(value) {
return new BigNumber(value || 0).dividedBy(Math.pow(10, 8)).toString();
return new BigNumber(value || 0).dividedBy(new BigNumber(10).pow(8)).toFixed();
},
from(value) {
return parseInt(value * Math.pow(10, 8), 10);
return new BigNumber(value * new BigNumber(10).pow(8)).round(0).toNumber();
},
}));
58 changes: 58 additions & 0 deletions src/test/services/lsk.spec.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
const chai = require('chai');

const expect = chai.expect;

describe('Factory: lsk', () => {
let lsk;

beforeEach(angular.mock.module('app'));

beforeEach(inject((_lsk_) => {
lsk = _lsk_;
}));

describe('normalize(value)', () => {
it('converts 1 to \'0.00000001\'', () => {
expect(lsk.normalize(1)).to.equal('0.00000001');
});
});

describe('from(value)', () => {
it('converts 0.00000001 to 1', () => {
expect(lsk.from(0.00000001)).to.equal(1);
});

it('converts 1 to 100000000', () => {
expect(lsk.from(1)).to.equal(100000000);
});

it('converts 10535.67379498 to 1053567379498', () => {
expect(lsk.from(10535.67379498)).to.equal(1053567379498);
});
});

describe('normalize(from(value))', () => {
it('is identity function on 1', () => {
const value = '1';
expect(lsk.normalize(lsk.from(value))).to.equal(value);
});

it('is identity function on 10535.67379498', () => {
const value = '10535.67379498';
expect(lsk.normalize(lsk.from(value))).to.equal(value);
});
});

describe('from(normalize(value))', () => {
it('is identity function on 100000000', () => {
const value = 100000000;
expect(lsk.from(lsk.normalize(value))).to.equal(value);
});

it('is identity function on 1053567379498', () => {
const value = 1053567379498;
expect(lsk.from(lsk.normalize(value))).to.equal(value);
});
});
});

1 change: 1 addition & 0 deletions src/test/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@ require('./components/timestamp/timestamp.spec');
require('./components/transactions/transactions.spec');

require('./services/peers/peers.spec');
require('./services/lsk.spec');

require('./util/animateOnChange/animateOnChange.spec');