Skip to content
This repository was archived by the owner on Jul 6, 2022. It is now read-only.

Commit 9c99f98

Browse files
committed
fix: 🐛 change numberOfTokens type
change numberOfTokens param type from number to bignumber
1 parent 52f5c20 commit 9c99f98

File tree

2 files changed

+20
-26
lines changed

2 files changed

+20
-26
lines changed

src/contract_wrappers/modules/wallet/__tests__/vesting_escrow_wallet_wrapper.test.ts

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -420,7 +420,7 @@ describe('VestingEscrowWalletWrapper', () => {
420420
// Real call
421421
const result = await target.getSchedule(mockedParams);
422422
// Result expectation
423-
expect(result.numberOfTokens).toEqual((expectedResult[0] as BigNumber).toNumber());
423+
expect(result.numberOfTokens).toEqual(expectedResult[0]);
424424
expect(result.duration).toEqual((expectedResult[1] as BigNumber).toNumber());
425425
expect(result.frequency).toEqual((expectedResult[2] as BigNumber).toNumber());
426426
expect(result.startTime).toEqual(bigNumberToDate(expectedResult[3] as BigNumber));
@@ -994,7 +994,7 @@ describe('VestingEscrowWalletWrapper', () => {
994994
const mockedParams = {
995995
beneficiary: '0x5555555555555555555555555555555555555555',
996996
templateName: 'template',
997-
numberOfTokens: 500,
997+
numberOfTokens: new BigNumber(500),
998998
duration: 100,
999999
frequency: 10,
10001000
startTime: new Date(2020, 10),
@@ -1044,7 +1044,7 @@ describe('VestingEscrowWalletWrapper', () => {
10441044
mockedMethod.sendTransactionAsync(
10451045
mockedParams.beneficiary,
10461046
stringToBytes32(mockedParams.templateName),
1047-
objectContaining(numberToBigNumber(mockedParams.numberOfTokens)),
1047+
objectContaining(mockedParams.numberOfTokens),
10481048
objectContaining(numberToBigNumber(mockedParams.duration)),
10491049
objectContaining(numberToBigNumber(mockedParams.frequency)),
10501050
objectContaining(dateToBigNumber(mockedParams.startTime)),
@@ -1064,7 +1064,7 @@ describe('VestingEscrowWalletWrapper', () => {
10641064
mockedMethod.sendTransactionAsync(
10651065
mockedParams.beneficiary,
10661066
stringToBytes32(mockedParams.templateName),
1067-
objectContaining(numberToBigNumber(mockedParams.numberOfTokens)),
1067+
objectContaining(mockedParams.numberOfTokens),
10681068
objectContaining(numberToBigNumber(mockedParams.duration)),
10691069
objectContaining(numberToBigNumber(mockedParams.frequency)),
10701070
objectContaining(dateToBigNumber(mockedParams.startTime)),
@@ -1424,7 +1424,7 @@ describe('VestingEscrowWalletWrapper', () => {
14241424
const mockedParams = {
14251425
beneficiaries: ['0x1555555555555555555555555555555555555555', '0x2555555555555555555555555555555555555555'],
14261426
templateNames: ['test 1', 'test 2'],
1427-
numberOfTokens: [500, 1000],
1427+
numberOfTokens: [new BigNumber(500), new BigNumber(1000)],
14281428
durations: [100, 200],
14291429
frequencies: [10, 20],
14301430
startTimes: [new Date(2020, 10), new Date(2022, 10)],
@@ -1477,9 +1477,7 @@ describe('VestingEscrowWalletWrapper', () => {
14771477
objectContaining(mockedParams.templateNames.map(name => {
14781478
return stringToBytes32(name);
14791479
})),
1480-
objectContaining(mockedParams.numberOfTokens.map(number => {
1481-
return numberToBigNumber(number);
1482-
})),
1480+
objectContaining(mockedParams.numberOfTokens),
14831481
objectContaining(mockedParams.durations.map(duration => {
14841482
return numberToBigNumber(duration);
14851483
})),
@@ -1507,9 +1505,7 @@ describe('VestingEscrowWalletWrapper', () => {
15071505
objectContaining(mockedParams.templateNames.map(name => {
15081506
return stringToBytes32(name);
15091507
})),
1510-
objectContaining(mockedParams.numberOfTokens.map(number => {
1511-
return numberToBigNumber(number);
1512-
})),
1508+
objectContaining(mockedParams.numberOfTokens),
15131509
objectContaining(mockedParams.durations.map(duration => {
15141510
return numberToBigNumber(duration);
15151511
})),

src/contract_wrappers/modules/wallet/vesting_escrow_wallet_wrapper.ts

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -234,8 +234,8 @@ interface PushAvailableTokensParams extends TxParams {
234234
/**
235235
* @param name Name of the template will be created
236236
* @param numberOfTokens Number of tokens that should be assigned to schedule
237-
* @param duration Duration of the vesting schedule
238-
* @param frequency Frequency of the vesting schedule
237+
* @param duration Duration of the vesting schedule in seconds
238+
* @param frequency Frequency of the vesting schedule in seconds
239239
*/
240240
interface AddTemplateParams extends TxParams {
241241
name: string;
@@ -262,7 +262,7 @@ interface RemoveTemplateParams extends TxParams {
262262
interface AddScheduleParams extends TxParams {
263263
beneficiary: string;
264264
templateName: string;
265-
numberOfTokens: number;
265+
numberOfTokens: BigNumber;
266266
duration: number;
267267
frequency: number;
268268
startTime: Date;
@@ -349,7 +349,7 @@ interface PushAvailableTokensMultiParams extends TxParams {
349349
interface AddScheduleMultiParams extends TxParams {
350350
beneficiaries: string[];
351351
templateNames: string[];
352-
numberOfTokens: number[];
352+
numberOfTokens: BigNumber[];
353353
durations: number[];
354354
frequencies: number[];
355355
startTimes: Date[];
@@ -397,7 +397,7 @@ interface Schedule {
397397
}
398398

399399
interface BeneficiarySchedule {
400-
numberOfTokens: number;
400+
numberOfTokens: BigNumber;
401401
duration: number;
402402
frequency: number;
403403
startTime: Date;
@@ -562,7 +562,7 @@ export default class VestingEscrowWalletWrapper extends ModuleWrapper {
562562
assert.assert(await this.isCallerAllowed(params.txData, Perm.Admin), 'Caller is not allowed');
563563
assert.assert(params.name !== '', 'Invalid name');
564564
assert.assert(!(await this.getAllTemplateNames()).includes(params.name), 'Template name already exists');
565-
await this.validateTemplate(params.numberOfTokens.toNumber(), params.duration, params.frequency);
565+
await this.validateTemplate(params.numberOfTokens, params.duration, params.frequency);
566566
return (await this.contract).addTemplate.sendTransactionAsync(
567567
stringToBytes32(params.name),
568568
params.numberOfTokens,
@@ -618,7 +618,7 @@ export default class VestingEscrowWalletWrapper extends ModuleWrapper {
618618
return (await this.contract).addSchedule.sendTransactionAsync(
619619
params.beneficiary,
620620
stringToBytes32(params.templateName),
621-
numberToBigNumber(params.numberOfTokens),
621+
params.numberOfTokens,
622622
numberToBigNumber(params.duration),
623623
numberToBigNumber(params.frequency),
624624
dateToBigNumber(params.startTime),
@@ -714,7 +714,7 @@ export default class VestingEscrowWalletWrapper extends ModuleWrapper {
714714
}
715715

716716
const response: BeneficiarySchedule = {
717-
numberOfTokens: result[0].toNumber(),
717+
numberOfTokens: result[0],
718718
duration: result[1].toNumber(),
719719
frequency: result[2].toNumber(),
720720
startTime: bigNumberToDate(result[3]),
@@ -798,9 +798,7 @@ export default class VestingEscrowWalletWrapper extends ModuleWrapper {
798798
params.templateNames.map(name => {
799799
return stringToBytes32(name);
800800
}),
801-
params.numberOfTokens.map(number => {
802-
return numberToBigNumber(number);
803-
}),
801+
params.numberOfTokens,
804802
params.durations.map(duration => {
805803
return numberToBigNumber(duration);
806804
}),
@@ -884,12 +882,12 @@ export default class VestingEscrowWalletWrapper extends ModuleWrapper {
884882
);
885883
};
886884

887-
private validateTemplate = async (numberOfTokens: number, duration: number, frequency: number) => {
888-
assert.assert(numberOfTokens > 0, 'Zero amount');
885+
private validateTemplate = async (numberOfTokens: BigNumber, duration: number, frequency: number) => {
886+
assert.assert(numberOfTokens.toNumber() > 0, 'Zero amount');
889887
assert.assert(duration % frequency === 0, 'Invalid frequency');
890888
const periodCount = duration / frequency;
891-
assert.assert(numberOfTokens % periodCount === 0, 'Invalid period count');
892-
const amountPerPeriod = numberOfTokens / periodCount;
889+
assert.assert(numberOfTokens.toNumber() % periodCount === 0, 'Invalid period count');
890+
const amountPerPeriod = numberOfTokens.toNumber() / periodCount;
893891
const granularity = await (await this.securityTokenContract()).granularity.callAsync();
894892
assert.assert(amountPerPeriod % granularity.toNumber() === 0, 'Invalid granularity');
895893
};

0 commit comments

Comments
 (0)