UNPKG

@melonproject/protocol

Version:

Technology Regulated and Operated Investment Funds

26 lines (25 loc) 1.82 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); // tslint:disable:max-line-length const Contracts_1 = require("../../../Contracts"); const deployContract_1 = require("../../../utils/solidity/deployContract"); const deployErc20Proxy_1 = require("./deployErc20Proxy"); const addAuthorizedAddress_1 = require("../third-party/0x/transactions/addAuthorizedAddress"); const registerAssetProxy_1 = require("../third-party/0x/transactions/registerAssetProxy"); const changeZRXAsset_1 = require("../third-party/0x/transactions/changeZRXAsset"); exports.deploy0xExchange = (environment, { zrxToken, erc20Proxy: givenErc20Proxy }) => __awaiter(this, void 0, void 0, function* () { const exchange = yield deployContract_1.deployContract(environment, Contracts_1.Contracts.ZeroExExchange, []); const erc20Proxy = givenErc20Proxy || (yield deployErc20Proxy_1.deployErc20Proxy(environment)); yield addAuthorizedAddress_1.addAuthorizedAddress(environment, erc20Proxy, { exchange }); yield registerAssetProxy_1.registerAssetProxy(environment, exchange, { assetProxy: erc20Proxy }); yield changeZRXAsset_1.changeZRXAsset(environment, exchange, { zrxToken }); return exchange; });