@@ -54,11 +54,13 @@ window.addEventListener('load', async () => {
54
54
} ) ;
55
55
56
56
// Generate a security token
57
- await polymathAPI . securityTokenRegistry . generateSecurityToken ( {
57
+ await polymathAPI . securityTokenRegistry . generateNewSecurityToken ( {
58
58
name : tokenName ! ,
59
59
ticker : ticker ! ,
60
- details : 'http://' ,
60
+ tokenDetails : 'http://' ,
61
61
divisible : false ,
62
+ treasuryWallet : myAddress ,
63
+ protocolVersion : '0' ,
62
64
} ) ;
63
65
64
66
// Create a Security Token Instance
@@ -83,16 +85,12 @@ window.addEventListener('load', async () => {
83
85
names . push ( instanceFactory . name ( ) ) ;
84
86
} ) ;
85
87
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 ) ;
91
89
92
90
const factory = await polymathAPI . moduleFactory . getModuleFactory ( modules [ index ] ) ;
93
91
const setupCost = await factory . setupCostInPoly ( ) ;
94
92
95
- // Call to add count transfer manager module with max 3 holders
93
+ // Call to add count transfer manager module
96
94
await tickerSecurityTokenInstance . addModule ( {
97
95
moduleName,
98
96
address : modules [ index ] ,
@@ -118,16 +116,29 @@ window.addEventListener('load', async () => {
118
116
name : ModuleName . GeneralTransferManager ,
119
117
address : generalTMAddress ,
120
118
} ) ;
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
+ } ) ;
122
136
123
137
// 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 ' } ) ;
125
139
126
140
// VRTM
127
141
const delay = 3000 ;
128
- const randomBeneficiary1 = '0x3444444444444444444444444444444444444444' ;
129
- const randomBeneficiary2 = '0x5544444444444444444444444444444444444444' ;
130
- const randomBeneficiary3 = '0x6644444444444444444444444444444444444444' ;
131
142
132
143
// Subscribe to event of add individual daily restriction
133
144
await vrtm . subscribeAsync ( {
@@ -152,7 +163,7 @@ window.addEventListener('load', async () => {
152
163
allowedTokens : new BigNumber ( 10 ) ,
153
164
} ) ;
154
165
// Transfer
155
- await tickerSecurityTokenInstance . transfer ( { to : randomBeneficiary1 , value : new BigNumber ( 10 ) } ) ;
166
+ await tickerSecurityTokenInstance . transfer ( { to : randomBeneficiaries [ 0 ] , value : new BigNumber ( 10 ) } ) ;
156
167
// Modify vrtm daily and try transferring again after sleeping (time pass), then remove
157
168
await vrtm . modifyIndividualDailyRestriction ( {
158
169
holder : myAddress ,
@@ -161,15 +172,15 @@ window.addEventListener('load', async () => {
161
172
allowedTokens : new BigNumber ( 50 ) ,
162
173
restrictionType : RestrictionType . Percentage ,
163
174
} ) ;
164
- await tickerSecurityTokenInstance . transfer ( { to : randomBeneficiary2 , value : new BigNumber ( 20 ) } ) ;
175
+ await tickerSecurityTokenInstance . transfer ( { to : randomBeneficiaries [ 1 ] , value : new BigNumber ( 20 ) } ) ;
165
176
// Remove
166
177
await vrtm . removeIndividualDailyRestriction ( {
167
178
investor : myAddress ,
168
179
} ) ;
169
180
170
181
// Add individual restriction
171
182
await vrtm . addIndividualRestriction ( {
172
- holder : randomBeneficiary1 ,
183
+ holder : randomBeneficiaries [ 0 ] ,
173
184
startTime : new Date ( Date . now ( ) . valueOf ( ) + delay ) ,
174
185
endTime : new Date ( 2035 , 1 ) ,
175
186
allowedTokens : new BigNumber ( 20 ) ,
@@ -178,65 +189,65 @@ window.addEventListener('load', async () => {
178
189
} ) ;
179
190
// Modify individual restriction
180
191
await vrtm . modifyIndividualRestriction ( {
181
- holder : randomBeneficiary1 ,
192
+ holder : randomBeneficiaries [ 0 ] ,
182
193
startTime : new Date ( Date . now ( ) . valueOf ( ) + delay ) ,
183
194
endTime : new Date ( 2035 , 2 ) ,
184
195
allowedTokens : new BigNumber ( 25 ) ,
185
196
restrictionType : RestrictionType . Fixed ,
186
197
rollingPeriodInDays : 2 ,
187
198
} ) ;
188
199
// Transfer
189
- await tickerSecurityTokenInstance . transfer ( { to : randomBeneficiary1 , value : new BigNumber ( 15 ) } ) ;
200
+ await tickerSecurityTokenInstance . transfer ( { to : randomBeneficiaries [ 0 ] , value : new BigNumber ( 15 ) } ) ;
190
201
// Remove
191
202
await vrtm . removeIndividualRestriction ( {
192
- investor : randomBeneficiary1 ,
203
+ investor : randomBeneficiaries [ 0 ] ,
193
204
} ) ;
194
205
195
206
// Add Individual Daily Restriction Multi
196
207
await vrtm . addIndividualDailyRestrictionMulti ( {
197
- holders : [ myAddress , randomBeneficiary2 ] ,
208
+ holders : [ myAddress , randomBeneficiaries [ 1 ] ] ,
198
209
startTimes : [ new Date ( Date . now ( ) . valueOf ( ) + delay ) , new Date ( Date . now ( ) . valueOf ( ) + delay ) ] ,
199
210
endTimes : [ new Date ( 2035 , 1 ) , new Date ( 2035 , 1 ) ] ,
200
211
allowedTokens : [ new BigNumber ( 20 ) , new BigNumber ( 20 ) ] ,
201
212
restrictionTypes : [ RestrictionType . Fixed , RestrictionType . Fixed ] ,
202
213
} ) ;
203
214
// 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 ) } ) ;
206
217
// Modify Individual Daily Restriction Multi
207
218
await vrtm . modifyIndividualDailyRestrictionMulti ( {
208
- holders : [ myAddress , randomBeneficiary2 ] ,
219
+ holders : [ myAddress , randomBeneficiaries [ 1 ] ] ,
209
220
startTimes : [ new Date ( Date . now ( ) . valueOf ( ) + delay ) , new Date ( Date . now ( ) . valueOf ( ) + delay ) ] ,
210
221
endTimes : [ new Date ( 2035 , 2 ) , new Date ( 2035 , 2 ) ] ,
211
222
allowedTokens : [ new BigNumber ( 30 ) , new BigNumber ( 30 ) ] ,
212
223
restrictionTypes : [ RestrictionType . Fixed , RestrictionType . Fixed ] ,
213
224
} ) ;
214
225
// Remove Individual Daily Restriction Multi
215
- await vrtm . removeIndividualDailyRestrictionMulti ( { holders : [ myAddress , randomBeneficiary2 ] } ) ;
226
+ await vrtm . removeIndividualDailyRestrictionMulti ( { holders : [ myAddress , randomBeneficiaries [ 1 ] ] } ) ;
216
227
217
228
// Add individual restriction multi
218
229
await vrtm . addIndividualRestrictionMulti ( {
219
- holders : [ myAddress , randomBeneficiary2 ] ,
230
+ holders : [ myAddress , randomBeneficiaries [ 1 ] ] ,
220
231
startTimes : [ new Date ( Date . now ( ) . valueOf ( ) + delay ) , new Date ( Date . now ( ) . valueOf ( ) + delay ) ] ,
221
232
endTimes : [ new Date ( 2035 , 1 ) , new Date ( 2035 , 1 ) ] ,
222
233
allowedTokens : [ new BigNumber ( 20 ) , new BigNumber ( 20 ) ] ,
223
234
restrictionTypes : [ RestrictionType . Fixed , RestrictionType . Fixed ] ,
224
235
rollingPeriodInDays : [ 2 , 3 ] ,
225
236
} ) ;
226
237
// 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 ) } ) ;
229
240
// Modify individual restriction multi
230
241
await vrtm . modifyIndividualRestrictionMulti ( {
231
- holders : [ myAddress , randomBeneficiary2 ] ,
242
+ holders : [ myAddress , randomBeneficiaries [ 1 ] ] ,
232
243
startTimes : [ new Date ( Date . now ( ) . valueOf ( ) + delay ) , new Date ( Date . now ( ) . valueOf ( ) + delay ) ] ,
233
244
endTimes : [ new Date ( 2035 , 2 ) , new Date ( 2035 , 2 ) ] ,
234
245
allowedTokens : [ new BigNumber ( 30 ) , new BigNumber ( 30 ) ] ,
235
246
restrictionTypes : [ RestrictionType . Fixed , RestrictionType . Fixed ] ,
236
247
rollingPeriodInDays : [ 3 , 4 ] ,
237
248
} ) ;
238
249
// Remove
239
- await vrtm . removeIndividualRestrictionMulti ( { holders : [ myAddress , randomBeneficiary2 ] } ) ;
250
+ await vrtm . removeIndividualRestrictionMulti ( { holders : [ myAddress , randomBeneficiaries [ 1 ] ] } ) ;
240
251
241
252
// Add default restriction for all, sleep, tx and remove
242
253
await vrtm . addDefaultRestriction ( {
@@ -247,8 +258,8 @@ window.addEventListener('load', async () => {
247
258
rollingPeriodInDays : 2 ,
248
259
} ) ;
249
260
// 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 ) } ) ;
252
263
// Modify Default restriction
253
264
await vrtm . modifyDefaultRestriction ( {
254
265
startTime : new Date ( Date . now ( ) . valueOf ( ) + delay ) ,
@@ -268,8 +279,8 @@ window.addEventListener('load', async () => {
268
279
restrictionType : RestrictionType . Percentage ,
269
280
} ) ;
270
281
// 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 ) } ) ;
273
284
// Modify default daily restriction
274
285
await vrtm . modifyDefaultDailyRestriction ( {
275
286
startTime : new Date ( Date . now ( ) . valueOf ( ) + delay ) ,
@@ -294,12 +305,12 @@ window.addEventListener('load', async () => {
294
305
} ,
295
306
} ) ;
296
307
297
- await vrtm . changeExemptWalletList ( { wallet : randomBeneficiary3 , change : true } ) ;
308
+ await vrtm . changeExemptWalletList ( { wallet : randomBeneficiaries [ 2 ] , change : true } ) ;
298
309
299
310
// 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 ] } ) ) ;
303
314
console . log ( await tickerSecurityTokenInstance . balanceOf ( { owner : myAddress } ) ) ;
304
315
305
316
vrtm . unsubscribeAll ( ) ;
0 commit comments