Skip to content

Commit d7e97bb

Browse files
committed
STRV TM added to migration script
1 parent 023632a commit d7e97bb

File tree

1 file changed

+33
-18
lines changed

1 file changed

+33
-18
lines changed

migrations/2_deploy_contracts.js

Lines changed: 33 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ const PolymathRegistry = artifacts.require('./PolymathRegistry.sol')
22
const GeneralTransferManagerFactory = artifacts.require('./GeneralTransferManagerFactory.sol')
33
const GeneralPermissionManagerFactory = artifacts.require('./GeneralPermissionManagerFactory.sol')
44
const PercentageTransferManagerFactory = artifacts.require('./PercentageTransferManagerFactory.sol')
5+
const SingleTradeVolumeRestrictionTMFactory = artifacts.require('./SingleTradeVolumeRestrictionTMFactory.sol')
56
const USDTieredSTOProxyFactory = artifacts.require('./USDTieredSTOProxyFactory.sol');
67
const CountTransferManagerFactory = artifacts.require('./CountTransferManagerFactory.sol')
78
const 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

Comments
 (0)