@@ -2,6 +2,7 @@ const PolymathRegistry = artifacts.require('./PolymathRegistry.sol')
22const GeneralTransferManagerFactory = artifacts . require ( './GeneralTransferManagerFactory.sol' )
33const GeneralPermissionManagerFactory = artifacts . require ( './GeneralPermissionManagerFactory.sol' )
44const PercentageTransferManagerFactory = artifacts . require ( './PercentageTransferManagerFactory.sol' )
5+ const SingleTradeVolumeRestrictionTMFactory = artifacts . require ( './SingleTradeVolumeRestrictionTMFactory.sol' )
56const USDTieredSTOProxyFactory = artifacts . require ( './USDTieredSTOProxyFactory.sol' ) ;
67const CountTransferManagerFactory = artifacts . require ( './CountTransferManagerFactory.sol' )
78const EtherDividendCheckpointFactory = artifacts . require ( './EtherDividendCheckpointFactory.sol' )
@@ -157,6 +158,10 @@ module.exports = function (deployer, network, accounts) {
157158 // D) Deploy the CountTransferManagerFactory Contract (Factory used to generate the CountTransferManager contract use
158159 // to track the counts of the investors of the security token)
159160 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 } ) ;
160165 } ) . then ( ( ) => {
161166 // D) Deploy the PercentageTransferManagerFactory Contract (Factory used to generate the PercentageTransferManager contract use
162167 // 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) {
196201 } ) . then ( ( ) => {
197202 // Update all addresses into the registry contract by calling the function updateFromregistry
198203 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 } ) ;
199208 } ) . then ( ( ) => {
200209 // D) Register the PercentageTransferManagerFactory in the ModuleRegistry to make the factory available at the protocol level.
201210 // So any securityToken can use that factory to generate the PercentageTransferManager contract.
@@ -239,6 +248,11 @@ module.exports = function (deployer, network, accounts) {
239248 // contract, Factory should comes under the verified list of factories or those factories deployed by the securityToken issuers only.
240249 // Here it gets verified because it is deployed by the third party account (Polymath Account) not with the issuer accounts.
241250 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 } ) ;
242256 } ) . then ( ( ) => {
243257 // G) Once the GeneralPermissionManagerFactory registered with the ModuleRegistry contract then for making them accessble to the securityToken
244258 // 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) {
294308 console . log ( '\n' ) ;
295309 console . log ( `
296310 ----------------------- 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 }
304315
305- STFactory: ${ STFactory . address }
306- GeneralTransferManagerFactory: ${ GeneralTransferManagerFactory . address }
307- GeneralPermissionManagerFactory: ${ GeneralPermissionManagerFactory . address }
316+ ETHOracle: ${ ETHOracle }
317+ POLYOracle: ${ POLYOracle }
308318
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 }
312326
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 }
318333 ---------------------------------------------------------------------------------
319334 ` ) ;
320335 console . log ( '\n' ) ;
0 commit comments