Skip to content
This repository has been archived by the owner on Mar 16, 2023. It is now read-only.

Commit

Permalink
feat(sdk): parse integer input to be the correct type
Browse files Browse the repository at this point in the history
  • Loading branch information
LeilaWang committed Feb 13, 2020
1 parent 51866e8 commit c73ba2f
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 14 deletions.
30 changes: 16 additions & 14 deletions packages/extension/src/client/apis/ZkAsset.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ import Web3Service from '~/client/services/Web3Service';
import ConnectionService from '~/client/services/ConnectionService';
import ContractError from '~/client/utils/ContractError';
import ApiError from '~/client/utils/ApiError';
import parseInputTransactions from '~/client/utils/parseInputTransactions';
import parseInputInteger from '~/client/utils/parseInputInteger';
import SubscriptionManager from './SubscriptionManager';

const dataProperties = [
Expand Down Expand Up @@ -197,8 +199,8 @@ export default class ZkAsset {
{
proofType: 'DEPOSIT_PROOF',
assetAddress: this.address,
transactions,
numberOfOutputNotes,
transactions: parseInputTransactions(transactions),
numberOfOutputNotes: parseInputInteger(numberOfOutputNotes),
userAccess,
},
);
Expand Down Expand Up @@ -238,9 +240,9 @@ export default class ZkAsset {
{
proofType: 'WITHDRAW_PROOF',
assetAddress: this.address,
amount,
amount: parseInputInteger(amount),
to: to || address,
numberOfInputNotes,
numberOfInputNotes: parseInputInteger(numberOfInputNotes),
},
);
};
Expand Down Expand Up @@ -274,9 +276,9 @@ export default class ZkAsset {
{
proofType: 'TRANSFER_PROOF',
assetAddress: this.address,
transactions,
numberOfInputNotes,
numberOfOutputNotes,
transactions: parseInputTransactions(transactions),
numberOfInputNotes: parseInputInteger(numberOfInputNotes),
numberOfOutputNotes: parseInputInteger(numberOfOutputNotes),
userAccess,
},
);
Expand Down Expand Up @@ -395,10 +397,10 @@ export default class ZkAsset {
{
proofType: 'CREATE_NOTE_FROM_BALANCE_PROOF',
assetAddress: this.address,
amount,
amount: parseInputInteger(amount),
userAccess,
numberOfInputNotes,
numberOfOutputNotes,
numberOfInputNotes: parseInputInteger(numberOfInputNotes),
numberOfOutputNotes: parseInputInteger(numberOfOutputNotes),
},
) || {};

Expand Down Expand Up @@ -429,10 +431,10 @@ export default class ZkAsset {
'fetchNotesFromBalance',
{
assetAddress: this.address,
greaterThan,
lessThan,
equalTo,
numberOfNotes,
greaterThan: parseInputInteger(greaterThan),
lessThan: parseInputInteger(lessThan),
equalTo: parseInputInteger(equalTo),
numberOfNotes: parseInputInteger(numberOfNotes),
},
);
}
12 changes: 12 additions & 0 deletions packages/extension/src/client/utils/parseInputInteger.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
export default function parseInputInteger(val) {
if (typeof val === 'string') {
if (val === '') {
return undefined;
}
if (val.trim().match(/^[0-9]{1,}$/)) {
return parseInt(val, 10);
}
}

return val;
}
12 changes: 12 additions & 0 deletions packages/extension/src/client/utils/parseInputTransactions.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import parseInputInteger from './parseInputInteger';

export default function parseInputTransactions(transactions) {
if (!Array.isArray(transactions)) {
return transactions;
}

return transactions.map(tx => ({
...tx,
amount: parseInputInteger(tx.amount),
}));
}

0 comments on commit c73ba2f

Please sign in to comment.