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

Commit 29b50de

Browse files
committed
fix: 🐛 VRTM example
1 parent 1d65417 commit 29b50de

File tree

1 file changed

+48
-37
lines changed

1 file changed

+48
-37
lines changed

examples/volumeRestrictionTransferManager.ts

Lines changed: 48 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,13 @@ window.addEventListener('load', async () => {
5454
});
5555

5656
// Generate a security token
57-
await polymathAPI.securityTokenRegistry.generateSecurityToken({
57+
await polymathAPI.securityTokenRegistry.generateNewSecurityToken({
5858
name: tokenName!,
5959
ticker: ticker!,
60-
details: 'http://',
60+
tokenDetails: 'http://',
6161
divisible: false,
62+
treasuryWallet: myAddress,
63+
protocolVersion: '0',
6264
});
6365

6466
// Create a Security Token Instance
@@ -83,16 +85,12 @@ window.addEventListener('load', async () => {
8385
names.push(instanceFactory.name());
8486
});
8587
const resultNames = await Promise.all(names);
86-
87-
const finalNames = resultNames.map(name => {
88-
return bytes32ToString(name);
89-
});
90-
const index = finalNames.indexOf(moduleStringName);
88+
const index = resultNames.indexOf(moduleStringName);
9189

9290
const factory = await polymathAPI.moduleFactory.getModuleFactory(modules[index]);
9391
const setupCost = await factory.setupCostInPoly();
9492

95-
// Call to add count transfer manager module with max 3 holders
93+
// Call to add count transfer manager module
9694
await tickerSecurityTokenInstance.addModule({
9795
moduleName,
9896
address: modules[index],
@@ -118,16 +116,29 @@ window.addEventListener('load', async () => {
118116
name: ModuleName.GeneralTransferManager,
119117
address: generalTMAddress,
120118
});
121-
// await generalTM.changeAllowAllTransfers({ allowAllTransfers: true });
119+
120+
const randomBeneficiaries = [
121+
'0x3444444444444444444444444444444444444444',
122+
'0x5544444444444444444444444444444444444444',
123+
'0x6644444444444444444444444444444444444444',
124+
];
125+
126+
// Add all address in the whitelist
127+
await generalTM.modifyKYCDataMulti({
128+
investors: randomBeneficiaries.concat(myAddress),
129+
canSendAfter: [new Date(), new Date(), new Date(), new Date()],
130+
canReceiveAfter: [new Date(), new Date(), new Date(), new Date()],
131+
expiryTime: [new Date(2021, 10), new Date(2021, 10), new Date(2021, 10), new Date(2021, 10)],
132+
txData: {
133+
from: await polymathAPI.getAccount(),
134+
},
135+
});
122136

123137
// Mint yourself some tokens and make some transfers
124-
await tickerSecurityTokenInstance.issue({ investor: myAddress, value: new BigNumber(1000), data: '' });
138+
await tickerSecurityTokenInstance.issue({ investor: myAddress, value: new BigNumber(1000), data: '0x00' });
125139

126140
// VRTM
127141
const delay = 3000;
128-
const randomBeneficiary1 = '0x3444444444444444444444444444444444444444';
129-
const randomBeneficiary2 = '0x5544444444444444444444444444444444444444';
130-
const randomBeneficiary3 = '0x6644444444444444444444444444444444444444';
131142

132143
// Subscribe to event of add individual daily restriction
133144
await vrtm.subscribeAsync({
@@ -152,7 +163,7 @@ window.addEventListener('load', async () => {
152163
allowedTokens: new BigNumber(10),
153164
});
154165
// Transfer
155-
await tickerSecurityTokenInstance.transfer({ to: randomBeneficiary1, value: new BigNumber(10) });
166+
await tickerSecurityTokenInstance.transfer({ to: randomBeneficiaries[0], value: new BigNumber(10) });
156167
// Modify vrtm daily and try transferring again after sleeping (time pass), then remove
157168
await vrtm.modifyIndividualDailyRestriction({
158169
holder: myAddress,
@@ -161,15 +172,15 @@ window.addEventListener('load', async () => {
161172
allowedTokens: new BigNumber(50),
162173
restrictionType: RestrictionType.Percentage,
163174
});
164-
await tickerSecurityTokenInstance.transfer({ to: randomBeneficiary2, value: new BigNumber(20) });
175+
await tickerSecurityTokenInstance.transfer({ to: randomBeneficiaries[1], value: new BigNumber(20) });
165176
// Remove
166177
await vrtm.removeIndividualDailyRestriction({
167178
investor: myAddress,
168179
});
169180

170181
// Add individual restriction
171182
await vrtm.addIndividualRestriction({
172-
holder: randomBeneficiary1,
183+
holder: randomBeneficiaries[0],
173184
startTime: new Date(Date.now().valueOf() + delay),
174185
endTime: new Date(2035, 1),
175186
allowedTokens: new BigNumber(20),
@@ -178,65 +189,65 @@ window.addEventListener('load', async () => {
178189
});
179190
// Modify individual restriction
180191
await vrtm.modifyIndividualRestriction({
181-
holder: randomBeneficiary1,
192+
holder: randomBeneficiaries[0],
182193
startTime: new Date(Date.now().valueOf() + delay),
183194
endTime: new Date(2035, 2),
184195
allowedTokens: new BigNumber(25),
185196
restrictionType: RestrictionType.Fixed,
186197
rollingPeriodInDays: 2,
187198
});
188199
// Transfer
189-
await tickerSecurityTokenInstance.transfer({ to: randomBeneficiary1, value: new BigNumber(15) });
200+
await tickerSecurityTokenInstance.transfer({ to: randomBeneficiaries[0], value: new BigNumber(15) });
190201
// Remove
191202
await vrtm.removeIndividualRestriction({
192-
investor: randomBeneficiary1,
203+
investor: randomBeneficiaries[0],
193204
});
194205

195206
// Add Individual Daily Restriction Multi
196207
await vrtm.addIndividualDailyRestrictionMulti({
197-
holders: [myAddress, randomBeneficiary2],
208+
holders: [myAddress, randomBeneficiaries[1]],
198209
startTimes: [new Date(Date.now().valueOf() + delay), new Date(Date.now().valueOf() + delay)],
199210
endTimes: [new Date(2035, 1), new Date(2035, 1)],
200211
allowedTokens: [new BigNumber(20), new BigNumber(20)],
201212
restrictionTypes: [RestrictionType.Fixed, RestrictionType.Fixed],
202213
});
203214
// Transfers
204-
await tickerSecurityTokenInstance.transfer({ to: randomBeneficiary1, value: new BigNumber(10) });
205-
await tickerSecurityTokenInstance.transfer({ to: randomBeneficiary2, value: new BigNumber(10) });
215+
await tickerSecurityTokenInstance.transfer({ to: randomBeneficiaries[0], value: new BigNumber(10) });
216+
await tickerSecurityTokenInstance.transfer({ to: randomBeneficiaries[1], value: new BigNumber(10) });
206217
// Modify Individual Daily Restriction Multi
207218
await vrtm.modifyIndividualDailyRestrictionMulti({
208-
holders: [myAddress, randomBeneficiary2],
219+
holders: [myAddress, randomBeneficiaries[1]],
209220
startTimes: [new Date(Date.now().valueOf() + delay), new Date(Date.now().valueOf() + delay)],
210221
endTimes: [new Date(2035, 2), new Date(2035, 2)],
211222
allowedTokens: [new BigNumber(30), new BigNumber(30)],
212223
restrictionTypes: [RestrictionType.Fixed, RestrictionType.Fixed],
213224
});
214225
// Remove Individual Daily Restriction Multi
215-
await vrtm.removeIndividualDailyRestrictionMulti({ holders: [myAddress, randomBeneficiary2] });
226+
await vrtm.removeIndividualDailyRestrictionMulti({ holders: [myAddress, randomBeneficiaries[1]] });
216227

217228
// Add individual restriction multi
218229
await vrtm.addIndividualRestrictionMulti({
219-
holders: [myAddress, randomBeneficiary2],
230+
holders: [myAddress, randomBeneficiaries[1]],
220231
startTimes: [new Date(Date.now().valueOf() + delay), new Date(Date.now().valueOf() + delay)],
221232
endTimes: [new Date(2035, 1), new Date(2035, 1)],
222233
allowedTokens: [new BigNumber(20), new BigNumber(20)],
223234
restrictionTypes: [RestrictionType.Fixed, RestrictionType.Fixed],
224235
rollingPeriodInDays: [2, 3],
225236
});
226237
// Transfers
227-
await tickerSecurityTokenInstance.transfer({ to: randomBeneficiary1, value: new BigNumber(10) });
228-
await tickerSecurityTokenInstance.transfer({ to: randomBeneficiary2, value: new BigNumber(10) });
238+
await tickerSecurityTokenInstance.transfer({ to: randomBeneficiaries[0], value: new BigNumber(10) });
239+
await tickerSecurityTokenInstance.transfer({ to: randomBeneficiaries[1], value: new BigNumber(10) });
229240
// Modify individual restriction multi
230241
await vrtm.modifyIndividualRestrictionMulti({
231-
holders: [myAddress, randomBeneficiary2],
242+
holders: [myAddress, randomBeneficiaries[1]],
232243
startTimes: [new Date(Date.now().valueOf() + delay), new Date(Date.now().valueOf() + delay)],
233244
endTimes: [new Date(2035, 2), new Date(2035, 2)],
234245
allowedTokens: [new BigNumber(30), new BigNumber(30)],
235246
restrictionTypes: [RestrictionType.Fixed, RestrictionType.Fixed],
236247
rollingPeriodInDays: [3, 4],
237248
});
238249
// Remove
239-
await vrtm.removeIndividualRestrictionMulti({ holders: [myAddress, randomBeneficiary2] });
250+
await vrtm.removeIndividualRestrictionMulti({ holders: [myAddress, randomBeneficiaries[1]] });
240251

241252
// Add default restriction for all, sleep, tx and remove
242253
await vrtm.addDefaultRestriction({
@@ -247,8 +258,8 @@ window.addEventListener('load', async () => {
247258
rollingPeriodInDays: 2,
248259
});
249260
// Transfers
250-
await tickerSecurityTokenInstance.transfer({ to: randomBeneficiary1, value: new BigNumber(5) });
251-
await tickerSecurityTokenInstance.transfer({ to: randomBeneficiary2, value: new BigNumber(5) });
261+
await tickerSecurityTokenInstance.transfer({ to: randomBeneficiaries[0], value: new BigNumber(5) });
262+
await tickerSecurityTokenInstance.transfer({ to: randomBeneficiaries[1], value: new BigNumber(5) });
252263
// Modify Default restriction
253264
await vrtm.modifyDefaultRestriction({
254265
startTime: new Date(Date.now().valueOf() + delay),
@@ -268,8 +279,8 @@ window.addEventListener('load', async () => {
268279
restrictionType: RestrictionType.Percentage,
269280
});
270281
// Transfer
271-
await tickerSecurityTokenInstance.transfer({ to: randomBeneficiary1, value: new BigNumber(4) });
272-
await tickerSecurityTokenInstance.transfer({ to: randomBeneficiary2, value: new BigNumber(4) });
282+
await tickerSecurityTokenInstance.transfer({ to: randomBeneficiaries[0], value: new BigNumber(4) });
283+
await tickerSecurityTokenInstance.transfer({ to: randomBeneficiaries[1], value: new BigNumber(4) });
273284
// Modify default daily restriction
274285
await vrtm.modifyDefaultDailyRestriction({
275286
startTime: new Date(Date.now().valueOf() + delay),
@@ -294,12 +305,12 @@ window.addEventListener('load', async () => {
294305
},
295306
});
296307

297-
await vrtm.changeExemptWalletList({ wallet: randomBeneficiary3, change: true });
308+
await vrtm.changeExemptWalletList({ wallet: randomBeneficiaries[2], change: true });
298309

299310
// BalanceOf
300-
console.log(await tickerSecurityTokenInstance.balanceOf({ owner: randomBeneficiary1 }));
301-
console.log(await tickerSecurityTokenInstance.balanceOf({ owner: randomBeneficiary2 }));
302-
console.log(await tickerSecurityTokenInstance.balanceOf({ owner: randomBeneficiary3 }));
311+
console.log(await tickerSecurityTokenInstance.balanceOf({ owner: randomBeneficiaries[0] }));
312+
console.log(await tickerSecurityTokenInstance.balanceOf({ owner: randomBeneficiaries[1] }));
313+
console.log(await tickerSecurityTokenInstance.balanceOf({ owner: randomBeneficiaries[2] }));
303314
console.log(await tickerSecurityTokenInstance.balanceOf({ owner: myAddress }));
304315

305316
vrtm.unsubscribeAll();

0 commit comments

Comments
 (0)