@@ -108,6 +108,9 @@ window.addEventListener('load', async () => {
108
108
109
109
const randomBeneficiary1 = '0x2222222222222222222222222222222222222222' ;
110
110
const randomBeneficiary2 = '0x3333333333333333333333333333333333333333' ;
111
+ const firstLockUpName = 'Lockup1' ;
112
+ const secondLockUpName = 'Lockup2' ;
113
+ const thirdLockUpName = 'Lockup3' ;
111
114
112
115
await generalTM . modifyKYCDataMulti ( {
113
116
investors : [ myAddress , randomBeneficiary1 , randomBeneficiary2 ] ,
@@ -134,17 +137,61 @@ window.addEventListener('load', async () => {
134
137
} ,
135
138
} ) ;
136
139
137
- // Add new lock up to user multi
138
- const startTime = new Date ( Date . now ( ) + 10000 ) ;
139
-
140
+ // Add new lock up to user multi, so we can test the lockup
140
141
await lockUpTM . addNewLockUpToUserMulti ( {
141
142
userAddresses : [ myAddress , randomBeneficiary1 , randomBeneficiary2 ] ,
143
+ startTimes : [ new Date ( 2030 , 1 , 1 ) , new Date ( 2030 , 1 , 1 ) , new Date ( 2030 , 1 , 1 ) ] ,
144
+ lockUpPeriodSeconds : [ new BigNumber ( 5 ) , new BigNumber ( 5 ) , new BigNumber ( 5 ) ] ,
145
+ releaseFrequenciesSeconds : [ new BigNumber ( 1 ) , new BigNumber ( 1 ) , new BigNumber ( 1 ) ] ,
146
+ lockupAmounts : [ new BigNumber ( 100 ) , new BigNumber ( 100 ) , new BigNumber ( 100 ) ] ,
147
+ lockupNames : [ firstLockUpName , secondLockUpName , thirdLockUpName ] ,
148
+ } ) ;
149
+
150
+ // Try out transfer above lockup, will fail
151
+ try {
152
+ await tickerSecurityTokenInstance . transfer ( { to : randomBeneficiary2 , value : new BigNumber ( 1 ) } ) ;
153
+ } catch ( e ) {
154
+ console . log ( 'Transfer above lockup amount fails as expected' ) ;
155
+ }
156
+
157
+ // Subscribe to event of modify lock up type
158
+ await lockUpTM . subscribeAsync ( {
159
+ eventName : LockUpTransferManagerEvents . ModifyLockUpType ,
160
+ indexFilterValues : { } ,
161
+ callback : async ( error , log ) => {
162
+ if ( error ) {
163
+ console . log ( error ) ;
164
+ } else {
165
+ console . log ( 'Modify Lock Up Type' , log ) ;
166
+ }
167
+ } ,
168
+ } ) ;
169
+
170
+ const startTime = new Date ( Date . now ( ) + 10000 ) ;
171
+ // Modify the lockup types so that we can test in real time
172
+ await lockUpTM . modifyLockUpTypeMulti ( {
142
173
startTimes : [ startTime , startTime , startTime ] ,
143
174
lockUpPeriodSeconds : [ new BigNumber ( 5 ) , new BigNumber ( 5 ) , new BigNumber ( 5 ) ] ,
144
175
releaseFrequenciesSeconds : [ new BigNumber ( 1 ) , new BigNumber ( 1 ) , new BigNumber ( 1 ) ] ,
145
176
lockupAmounts : [ new BigNumber ( 20 ) , new BigNumber ( 10 ) , new BigNumber ( 10 ) ] ,
146
- lockupNames : [ 'Lockup1' , 'Lockup2' , 'Lockup3' ] ,
177
+ lockupNames : [ firstLockUpName , secondLockUpName , thirdLockUpName ] ,
178
+ } ) ;
179
+
180
+ // Subscribe to event of remove lockup from user
181
+ await lockUpTM . subscribeAsync ( {
182
+ eventName : LockUpTransferManagerEvents . RemoveLockUpFromUser ,
183
+ indexFilterValues : { } ,
184
+ callback : async ( error , log ) => {
185
+ if ( error ) {
186
+ console . log ( error ) ;
187
+ } else {
188
+ console . log ( 'Remove lockup from user' , log ) ;
189
+ }
190
+ } ,
147
191
} ) ;
192
+ // Example removing lockup from beneficiary 2 and removing lockup type
193
+ await lockUpTM . removeLockUpFromUser ( { userAddress : randomBeneficiary2 , lockupName : thirdLockUpName } ) ;
194
+ await lockUpTM . removeLockupType ( { lockupName : thirdLockUpName } ) ;
148
195
149
196
// Try to transfer 50, it is below lockup and will pass
150
197
await tickerSecurityTokenInstance . transfer ( { to : randomBeneficiary2 , value : new BigNumber ( 50 ) } ) ;
@@ -178,7 +225,7 @@ window.addEventListener('load', async () => {
178
225
179
226
// Transfer out the rest of tokens now that lockup is over
180
227
await tickerSecurityTokenInstance . transfer ( { to : randomBeneficiary2 , value : new BigNumber ( 19 ) } ) ;
181
- console . log ( '19 last tokens transferred to randomBeneficiary2' ) ;
228
+ console . log ( '19 more tokens transferred to randomBeneficiary2' ) ;
182
229
183
230
tickerSecurityTokenInstance . unsubscribeAll ( ) ;
184
231
} ) ;
0 commit comments