aboutsummaryrefslogtreecommitdiffstats
path: root/packages/contracts/migrations/2_deploy_independent_contracts.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/contracts/migrations/2_deploy_independent_contracts.ts')
-rw-r--r--packages/contracts/migrations/2_deploy_independent_contracts.ts43
1 files changed, 43 insertions, 0 deletions
diff --git a/packages/contracts/migrations/2_deploy_independent_contracts.ts b/packages/contracts/migrations/2_deploy_independent_contracts.ts
new file mode 100644
index 000000000..10947655b
--- /dev/null
+++ b/packages/contracts/migrations/2_deploy_independent_contracts.ts
@@ -0,0 +1,43 @@
+import {Artifacts} from '../util/artifacts';
+import {ContractInstance, MultiSigConfigByNetwork} from '../util/types';
+const {
+ MultiSigWalletWithTimeLock,
+ TokenTransferProxy,
+ EtherToken,
+ TokenRegistry,
+} = new Artifacts(artifacts);
+
+let multiSigConfigByNetwork: MultiSigConfigByNetwork;
+try {
+ /* tslint:disable */
+ const multiSigConfig = require('./config/multisig');
+ multiSigConfigByNetwork = multiSigConfig.multiSig;
+ /* tslint:enable */
+} catch (e) {
+ multiSigConfigByNetwork = {};
+}
+
+module.exports = (deployer: any, network: string, accounts: string[]) => {
+ const defaultConfig = {
+ owners: [accounts[0], accounts[1]],
+ confirmationsRequired: 2,
+ secondsRequired: 0,
+ };
+ const config = multiSigConfigByNetwork[network] || defaultConfig;
+ if (network !== 'live') {
+ deployer.deploy(MultiSigWalletWithTimeLock, config.owners, config.confirmationsRequired, config.secondsRequired)
+ .then(() => {
+ return deployer.deploy(TokenTransferProxy);
+ }).then(() => {
+ return deployer.deploy(TokenRegistry);
+ }).then(() => {
+ return deployer.deploy(EtherToken);
+ });
+ } else {
+ deployer.deploy([
+ [MultiSigWalletWithTimeLock, config.owners, config.confirmationsRequired, config.secondsRequired],
+ TokenTransferProxy,
+ TokenRegistry,
+ ]);
+ }
+};