@@ -2,6 +2,7 @@ const PolymathRegistry = artifacts.require('./PolymathRegistry.sol')
2
2
const GeneralTransferManagerFactory = artifacts . require ( './GeneralTransferManagerFactory.sol' )
3
3
const GeneralPermissionManagerFactory = artifacts . require ( './GeneralPermissionManagerFactory.sol' )
4
4
const PercentageTransferManagerFactory = artifacts . require ( './PercentageTransferManagerFactory.sol' )
5
+ const SingleTradeVolumeRestrictionTMFactory = artifacts . require ( './SingleTradeVolumeRestrictionTMFactory.sol' )
5
6
const USDTieredSTOProxyFactory = artifacts . require ( './USDTieredSTOProxyFactory.sol' ) ;
6
7
const CountTransferManagerFactory = artifacts . require ( './CountTransferManagerFactory.sol' )
7
8
const EtherDividendCheckpointFactory = artifacts . require ( './EtherDividendCheckpointFactory.sol' )
@@ -157,6 +158,10 @@ module.exports = function (deployer, network, accounts) {
157
158
// D) Deploy the CountTransferManagerFactory Contract (Factory used to generate the CountTransferManager contract use
158
159
// to track the counts of the investors of the security token)
159
160
return deployer . deploy ( CountTransferManagerFactory , PolyToken , 0 , 0 , 0 , { from : PolymathAccount } ) ;
161
+ } ) . then ( ( ) => {
162
+ // D) Deploy the SingleTradeVolumeRestrictionTMFactory Contract (Factory used to generate the SingleTradeVolumeRestrictionTM contract use
163
+ // to impose volume restriction on a single trade that the investors could do for a particular security token)
164
+ return deployer . deploy ( SingleTradeVolumeRestrictionTMFactory , PolyToken , 0 , 0 , 0 , { from : PolymathAccount } ) ;
160
165
} ) . then ( ( ) => {
161
166
// D) Deploy the PercentageTransferManagerFactory Contract (Factory used to generate the PercentageTransferManager contract use
162
167
// to track the percentage of investment the investors could do for a particular security token)
@@ -196,6 +201,10 @@ module.exports = function (deployer, network, accounts) {
196
201
} ) . then ( ( ) => {
197
202
// Update all addresses into the registry contract by calling the function updateFromregistry
198
203
return moduleRegistry . updateFromRegistry ( { from : PolymathAccount } ) ;
204
+ } ) . then ( ( ) => {
205
+ // D) Register the SingleTradeVolumeRestrictionTMFactory in the ModuleRegistry to make the factory available at the protocol level.
206
+ // So any securityToken can use that factory to generate the SingleTradeVolumeRestrictionTM contract.
207
+ return moduleRegistry . registerModule ( SingleTradeVolumeRestrictionTMFactory . address , { from : PolymathAccount } ) ;
199
208
} ) . then ( ( ) => {
200
209
// D) Register the PercentageTransferManagerFactory in the ModuleRegistry to make the factory available at the protocol level.
201
210
// So any securityToken can use that factory to generate the PercentageTransferManager contract.
@@ -239,6 +248,11 @@ module.exports = function (deployer, network, accounts) {
239
248
// contract, Factory should comes under the verified list of factories or those factories deployed by the securityToken issuers only.
240
249
// Here it gets verified because it is deployed by the third party account (Polymath Account) not with the issuer accounts.
241
250
return moduleRegistry . verifyModule ( PercentageTransferManagerFactory . address , true , { from : PolymathAccount } ) ;
251
+ } ) . then ( ( ) => {
252
+ // G) Once the SingleTradeVolumeRestrictionTMFactory registered with the ModuleRegistry contract then for making them accessble to the securityToken
253
+ // contract, Factory should comes under the verified list of factories or those factories deployed by the securityToken issuers only.
254
+ // Here it gets verified because it is deployed by the third party account (Polymath Account) not with the issuer accounts.
255
+ return moduleRegistry . verifyModule ( SingleTradeVolumeRestrictionTMFactory . address , true , { from : PolymathAccount } ) ;
242
256
} ) . then ( ( ) => {
243
257
// G) Once the GeneralPermissionManagerFactory registered with the ModuleRegistry contract then for making them accessble to the securityToken
244
258
// contract, Factory should comes under the verified list of factories or those factories deployed by the securityToken issuers only.
@@ -294,27 +308,28 @@ module.exports = function (deployer, network, accounts) {
294
308
console . log ( '\n' ) ;
295
309
console . log ( `
296
310
----------------------- Polymath Network Smart Contracts: -----------------------
297
- PolymathRegistry: ${ PolymathRegistry . address }
298
- SecurityTokenRegistry (Proxy): ${ SecurityTokenRegistryProxy . address }
299
- ModuleRegistry (Proxy): ${ ModuleRegistryProxy . address }
300
- FeatureRegistry: ${ FeatureRegistry . address }
301
-
302
- ETHOracle: ${ ETHOracle }
303
- POLYOracle: ${ POLYOracle }
311
+ PolymathRegistry: ${ PolymathRegistry . address }
312
+ SecurityTokenRegistry (Proxy): ${ SecurityTokenRegistryProxy . address }
313
+ ModuleRegistry (Proxy): ${ ModuleRegistryProxy . address }
314
+ FeatureRegistry: ${ FeatureRegistry . address }
304
315
305
- STFactory: ${ STFactory . address }
306
- GeneralTransferManagerFactory: ${ GeneralTransferManagerFactory . address }
307
- GeneralPermissionManagerFactory: ${ GeneralPermissionManagerFactory . address }
316
+ ETHOracle: ${ ETHOracle }
317
+ POLYOracle: ${ POLYOracle }
308
318
309
- CappedSTOFactory: ${ CappedSTOFactory . address }
310
- USDTieredSTOFactory: ${ USDTieredSTOFactory . address }
311
- USDTieredSTOProxyFactory: ${ USDTieredSTOProxyFactory . address }
319
+ STFactory: ${ STFactory . address }
320
+ GeneralTransferManagerFactory: ${ GeneralTransferManagerFactory . address }
321
+ GeneralPermissionManagerFactory: ${ GeneralPermissionManagerFactory . address }
322
+
323
+ CappedSTOFactory: ${ CappedSTOFactory . address }
324
+ USDTieredSTOFactory: ${ USDTieredSTOFactory . address }
325
+ USDTieredSTOProxyFactory: ${ USDTieredSTOProxyFactory . address }
312
326
313
- CountTransferManagerFactory: ${ CountTransferManagerFactory . address }
314
- PercentageTransferManagerFactory: ${ PercentageTransferManagerFactory . address }
315
- ManualApprovalTransferManagerFactory: ${ ManualApprovalTransferManagerFactory . address }
316
- EtherDividendCheckpointFactory: ${ EtherDividendCheckpointFactory . address }
317
- ERC20DividendCheckpointFactory: ${ ERC20DividendCheckpointFactory . address }
327
+ CountTransferManagerFactory: ${ CountTransferManagerFactory . address }
328
+ PercentageTransferManagerFactory: ${ PercentageTransferManagerFactory . address }
329
+ ManualApprovalTransferManagerFactory: ${ ManualApprovalTransferManagerFactory . address }
330
+ SingleTradeVolumeRestrictionTMFactory: ${ SingleTradeVolumeRestrictionTMFactory . address }
331
+ EtherDividendCheckpointFactory: ${ EtherDividendCheckpointFactory . address }
332
+ ERC20DividendCheckpointFactory: ${ ERC20DividendCheckpointFactory . address }
318
333
---------------------------------------------------------------------------------
319
334
` ) ;
320
335
console . log ( '\n' ) ;
0 commit comments