@gearbox-protocol/devops
Advanced tools
Comparing version 0.0.19 to 1.0.0-next.1
@@ -1,7 +0,8 @@ | ||
export * from "./verifier/verifierDeployer"; | ||
import "@nomiclabs/hardhat-ethers"; | ||
export * from "./logger/loggedDeployer"; | ||
export * from "./transaction/transaction"; | ||
export * from "./logger/loggedDeployer"; | ||
export * from "./utils/balanceComparator"; | ||
export * from "./utils/expect"; | ||
export * from "./utils/getNetwork"; | ||
export * from "./utils/testUtils"; | ||
export * from "./utils/getNetwork"; | ||
export * from "./verifier"; |
@@ -17,8 +17,9 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
__exportStar(require("./verifier/verifierDeployer"), exports); | ||
require("@nomiclabs/hardhat-ethers"); | ||
__exportStar(require("./logger/loggedDeployer"), exports); | ||
__exportStar(require("./transaction/transaction"), exports); | ||
__exportStar(require("./logger/loggedDeployer"), exports); | ||
__exportStar(require("./utils/balanceComparator"), exports); | ||
__exportStar(require("./utils/expect"), exports); | ||
__exportStar(require("./utils/getNetwork"), exports); | ||
__exportStar(require("./utils/testUtils"), exports); | ||
__exportStar(require("./utils/getNetwork"), exports); | ||
__exportStar(require("./verifier"), exports); |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.LoggedDeployer = void 0; | ||
var tslog_1 = require("tslog"); | ||
var LoggedDeployer = /** @class */ (function () { | ||
function LoggedDeployer() { | ||
const tslog_1 = require("tslog"); | ||
class LoggedDeployer { | ||
constructor() { | ||
this._logger = new tslog_1.Logger({ | ||
@@ -14,10 +14,9 @@ minLevel: "error", | ||
} | ||
LoggedDeployer.prototype.enableLogs = function () { | ||
enableLogs() { | ||
this._logger.setSettings({ minLevel: "debug" }); | ||
}; | ||
LoggedDeployer.prototype.disableLogs = function () { | ||
} | ||
disableLogs() { | ||
this._logger.setSettings({ minLevel: "error" }); | ||
}; | ||
return LoggedDeployer; | ||
}()); | ||
} | ||
} | ||
exports.LoggedDeployer = LoggedDeployer; |
import { TransactionReceipt } from "@ethersproject/providers"; | ||
import { ContractTransaction, ContractFactory, Contract } from "ethers"; | ||
import { Contract, ContractFactory, ContractTransaction } from "ethers"; | ||
import { Logger } from "tslog"; | ||
import { Verifier } from "../verifier"; | ||
export declare function waitForTransaction(transaction: Promise<ContractTransaction>, logger?: Logger): Promise<TransactionReceipt>; | ||
export declare type ContractFactoryConstructor<T extends ContractFactory> = new (...args: any[]) => T; | ||
export declare type ContractConstructor<T extends Contract> = new (...args: any[]) => T; | ||
export declare function deploy<T extends Contract>(name: string, logger: Logger | undefined, ...args: any[]): Promise<T>; | ||
export interface DeployOptions { | ||
logger?: Logger; | ||
verifier?: Verifier; | ||
confirmations?: number; | ||
} | ||
export declare function deploy<T extends Contract>(name: string, options: DeployOptions | undefined, ...args: any[]): Promise<T>; |
"use strict"; | ||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
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) : adopt(result.value).then(fulfilled, rejected); } | ||
step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
}); | ||
}; | ||
var __generator = (this && this.__generator) || function (thisArg, body) { | ||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
function verb(n) { return function (v) { return step([n, v]); }; } | ||
function step(op) { | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while (_) try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
if (y = 0, t) op = [op[0] & 2, t.value]; | ||
switch (op[0]) { | ||
case 0: case 1: t = op; break; | ||
case 4: _.label++; return { value: op[1], done: false }; | ||
case 5: _.label++; y = op[1]; op = [0]; continue; | ||
case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
default: | ||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
if (t[2]) _.ops.pop(); | ||
_.trys.pop(); continue; | ||
} | ||
op = body.call(thisArg, _); | ||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
} | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.deploy = exports.waitForTransaction = void 0; | ||
// @ts-ignore | ||
var hardhat_1 = require("hardhat"); | ||
var sdk_1 = require("@gearbox-protocol/sdk"); | ||
var waitingTime = function () { return __awaiter(void 0, void 0, void 0, function () { | ||
var chainId; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: return [4 /*yield*/, hardhat_1.ethers.getSigners()]; | ||
case 1: return [4 /*yield*/, (_a.sent())[0].getChainId()]; | ||
case 2: | ||
chainId = _a.sent(); | ||
return [2 /*return*/, chainId === 1337 ? 0 : chainId === 42 ? 2 : 4]; | ||
} | ||
}); | ||
}); }; | ||
function waitForTransaction(transaction, logger) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var request, txReceipt, _a, _b; | ||
return __generator(this, function (_c) { | ||
switch (_c.label) { | ||
case 0: return [4 /*yield*/, transaction]; | ||
case 1: | ||
request = _c.sent(); | ||
_b = (_a = request).wait; | ||
return [4 /*yield*/, waitingTime()]; | ||
case 2: return [4 /*yield*/, _b.apply(_a, [_c.sent()])]; | ||
case 3: | ||
txReceipt = _c.sent(); | ||
if (logger) { | ||
logger.debug("Tx: ".concat(txReceipt.transactionHash)); | ||
logger.debug("Gas used: ".concat(txReceipt.gasUsed.toString(), " @ ").concat((0, sdk_1.formatBN)(txReceipt.effectiveGasPrice, 9), " gwei. Total: ").concat((0, sdk_1.formatBN)(txReceipt.gasUsed.mul(txReceipt.effectiveGasPrice), 18), " ETH")); | ||
} | ||
return [2 /*return*/, txReceipt]; | ||
} | ||
}); | ||
}); | ||
const sdk_1 = require("@gearbox-protocol/sdk"); | ||
const hardhat_1 = require("hardhat"); | ||
async function waitForTransaction(transaction, logger) { | ||
const request = await transaction; | ||
const txReceipt = await request.wait(); | ||
if (logger) { | ||
logger.debug(`Tx: ${txReceipt.transactionHash}`); | ||
logger.debug(`Gas used: ${txReceipt.gasUsed.toString()} @ ${(0, sdk_1.formatBN)(txReceipt.effectiveGasPrice, 9)} gwei. Total: ${(0, sdk_1.formatBN)(txReceipt.gasUsed.mul(txReceipt.effectiveGasPrice), 18)} ETH`); | ||
} | ||
return txReceipt; | ||
} | ||
exports.waitForTransaction = waitForTransaction; | ||
function deploy(name, logger) { | ||
var args = []; | ||
for (var _i = 2; _i < arguments.length; _i++) { | ||
args[_i - 2] = arguments[_i]; | ||
async function deploy(name, options, ...args) { | ||
var _a, _b, _c, _d; | ||
const artifact = await hardhat_1.ethers.getContractFactory(name); | ||
const contract = (await artifact.deploy(...args)); | ||
(_a = options === null || options === void 0 ? void 0 : options.logger) === null || _a === void 0 ? void 0 : _a.debug(`Deploying ${name}...`); | ||
await contract.deployed(); | ||
const txReceipt = await contract.deployTransaction.wait(); | ||
(_b = options === null || options === void 0 ? void 0 : options.logger) === null || _b === void 0 ? void 0 : _b.debug(`Deployed ${name} to ${contract.address}`); | ||
(_c = options === null || options === void 0 ? void 0 : options.logger) === null || _c === void 0 ? void 0 : _c.debug(`Tx: ${txReceipt.transactionHash}`); | ||
(_d = options === null || options === void 0 ? void 0 : options.logger) === null || _d === void 0 ? void 0 : _d.debug(`Gas used: ${txReceipt.gasUsed.toString()} @ ${(0, sdk_1.formatBN)(txReceipt.effectiveGasPrice, 9)} gwei. Total: ${(0, sdk_1.formatBN)(txReceipt.gasUsed.mul(txReceipt.effectiveGasPrice), 18)} ETH`); | ||
if (options === null || options === void 0 ? void 0 : options.verifier) { | ||
options.verifier.addContract({ | ||
address: contract.address, | ||
constructorArguments: args, | ||
}); | ||
} | ||
return __awaiter(this, void 0, void 0, function () { | ||
var artifact, contract, txReceipt, _a, _b; | ||
return __generator(this, function (_c) { | ||
switch (_c.label) { | ||
case 0: return [4 /*yield*/, hardhat_1.ethers.getContractFactory(name)]; | ||
case 1: | ||
artifact = _c.sent(); | ||
return [4 /*yield*/, artifact.deploy.apply(artifact, args)]; | ||
case 2: | ||
contract = (_c.sent()); | ||
logger === null || logger === void 0 ? void 0 : logger.debug("Deploying ".concat(name, "...")); | ||
return [4 /*yield*/, contract.deployed()]; | ||
case 3: | ||
_c.sent(); | ||
_b = (_a = contract.deployTransaction).wait; | ||
return [4 /*yield*/, waitingTime()]; | ||
case 4: return [4 /*yield*/, _b.apply(_a, [_c.sent()])]; | ||
case 5: | ||
txReceipt = _c.sent(); | ||
logger === null || logger === void 0 ? void 0 : logger.debug("Deployed ".concat(name, " to ").concat(contract.address)); | ||
logger === null || logger === void 0 ? void 0 : logger.debug("Tx: ".concat(txReceipt.transactionHash)); | ||
logger === null || logger === void 0 ? void 0 : logger.debug("Gas used: ".concat(txReceipt.gasUsed.toString(), " @ ").concat((0, sdk_1.formatBN)(txReceipt.effectiveGasPrice, 9), " gwei. Total: ").concat((0, sdk_1.formatBN)(txReceipt.gasUsed.mul(txReceipt.effectiveGasPrice), 18), " ETH")); | ||
return [2 /*return*/, contract]; | ||
} | ||
}); | ||
}); | ||
if (options === null || options === void 0 ? void 0 : options.confirmations) { | ||
await contract.deployTransaction.wait(options.confirmations); | ||
} | ||
return contract; | ||
} | ||
exports.deploy = deploy; |
"use strict"; | ||
var __assign = (this && this.__assign) || function () { | ||
__assign = Object.assign || function(t) { | ||
for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
s = arguments[i]; | ||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) | ||
t[p] = s[p]; | ||
} | ||
return t; | ||
}; | ||
return __assign.apply(this, arguments); | ||
}; | ||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
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) : adopt(result.value).then(fulfilled, rejected); } | ||
step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
}); | ||
}; | ||
var __generator = (this && this.__generator) || function (thisArg, body) { | ||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
function verb(n) { return function (v) { return step([n, v]); }; } | ||
function step(op) { | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while (_) try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
if (y = 0, t) op = [op[0] & 2, t.value]; | ||
switch (op[0]) { | ||
case 0: case 1: t = op; break; | ||
case 4: _.label++; return { value: op[1], done: false }; | ||
case 5: _.label++; y = op[1]; op = [0]; continue; | ||
case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
default: | ||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
if (t[2]) _.ops.pop(); | ||
_.trys.pop(); continue; | ||
} | ||
op = body.call(thisArg, _); | ||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
} | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.BalanceComparator = void 0; | ||
var sdk_1 = require("@gearbox-protocol/sdk"); | ||
var expect_1 = require("./expect"); | ||
var getNetwork_1 = require("./getNetwork"); | ||
var BalanceComparator = /** @class */ (function () { | ||
function BalanceComparator(list, _provider) { | ||
const sdk_1 = require("@gearbox-protocol/sdk"); | ||
const expect_1 = require("./expect"); | ||
const getNetwork_1 = require("./getNetwork"); | ||
class BalanceComparator { | ||
constructor(list, _provider) { | ||
this._balanceSnapshot = {}; | ||
@@ -60,81 +13,49 @@ this._provider = _provider; | ||
} | ||
BalanceComparator.prototype.takeSnapshot = function (stage, holder) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var balances, network, _i, _a, symbol, token, _b, _c; | ||
var _d; | ||
return __generator(this, function (_e) { | ||
switch (_e.label) { | ||
case 0: | ||
balances = {}; | ||
return [4 /*yield*/, this.getNetwork()]; | ||
case 1: | ||
network = _e.sent(); | ||
_i = 0, _a = this._list; | ||
_e.label = 2; | ||
case 2: | ||
if (!(_i < _a.length)) return [3 /*break*/, 5]; | ||
symbol = _a[_i]; | ||
token = sdk_1.IERC20__factory.connect(sdk_1.tokenDataByNetwork[network][symbol], this._provider); | ||
_b = balances; | ||
_c = symbol; | ||
return [4 /*yield*/, token.balanceOf(holder)]; | ||
case 3: | ||
_b[_c] = _e.sent(); | ||
_e.label = 4; | ||
case 4: | ||
_i++; | ||
return [3 /*break*/, 2]; | ||
case 5: | ||
this._balanceSnapshot[stage] = __assign(__assign({}, this._balanceSnapshot[stage]), (_d = {}, _d[holder] = balances, _d)); | ||
return [2 /*return*/]; | ||
} | ||
}); | ||
}); | ||
}; | ||
BalanceComparator.prototype.compareSnapshots = function (stage, holder, compareWith) { | ||
for (var _i = 0, _a = this._list; _i < _a.length; _i++) { | ||
var symbol = _a[_i]; | ||
(0, expect_1.expect)(this.getBalance(stage, compareWith, symbol), " ".concat(String(stage), ": different balances for ").concat(symbol)).to.be.eq(this.getBalance(stage, holder, symbol)); | ||
async takeSnapshot(stage, holder) { | ||
let balances = {}; | ||
const network = await this.getNetwork(); | ||
for (let symbol of this._list) { | ||
const token = sdk_1.IERC20__factory.connect(sdk_1.tokenDataByNetwork[network][symbol], this._provider); | ||
balances[symbol] = await token.balanceOf(holder); | ||
} | ||
}; | ||
BalanceComparator.prototype.compareAllSnapshots = function (holder, compareWith) { | ||
for (var stage in this._balanceSnapshot) { | ||
this._balanceSnapshot[stage] = { | ||
...this._balanceSnapshot[stage], | ||
[holder]: balances, | ||
}; | ||
} | ||
compareSnapshots(stage, holder, compareWith) { | ||
for (let symbol of this._list) { | ||
(0, expect_1.expect)(this.getBalance(stage, compareWith, symbol), ` ${String(stage)}: different balances for ${symbol}`).to.be.eq(this.getBalance(stage, holder, symbol)); | ||
} | ||
} | ||
compareAllSnapshots(holder, compareWith) { | ||
// Seems to be working just fine | ||
// eslint-disable-next-line guard-for-in | ||
for (let stage in this._balanceSnapshot) { | ||
this.compareSnapshots(stage, holder, compareWith); | ||
} | ||
}; | ||
BalanceComparator.prototype.getBalance = function (stage, account, token) { | ||
} | ||
getBalance(stage, account, token) { | ||
var _a, _b; | ||
return (_b = (_a = this._balanceSnapshot[stage]) === null || _a === void 0 ? void 0 : _a[account]) === null || _b === void 0 ? void 0 : _b[token]; | ||
}; | ||
BalanceComparator.prototype.getBalanceOrThrow = function (stage, account, token) { | ||
var stageData = this._balanceSnapshot[stage]; | ||
} | ||
getBalanceOrThrow(stage, account, token) { | ||
const stageData = this._balanceSnapshot[stage]; | ||
if (!stageData) | ||
throw new Error("No balances exist for stage ".concat(String(stage))); | ||
var accountData = stageData[account]; | ||
throw new Error(`No balances exist for stage ${String(stage)}`); | ||
const accountData = stageData[account]; | ||
if (!accountData) | ||
throw new Error("No balances exist for stage ".concat(String(stage), " and account ").concat(account)); | ||
var balance = accountData[token]; | ||
throw new Error(`No balances exist for stage ${String(stage)} and account ${account}`); | ||
const balance = accountData[token]; | ||
if (!balance) | ||
throw new Error("No balance exists for stage ".concat(String(stage), ", account ").concat(account, " and token ").concat(token)); | ||
throw new Error(`No balance exists for stage ${String(stage)}, account ${account} and token ${token}`); | ||
return balance; | ||
}; | ||
BalanceComparator.prototype.getNetwork = function () { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var _a; | ||
return __generator(this, function (_b) { | ||
switch (_b.label) { | ||
case 0: | ||
if (!!this._networkType) return [3 /*break*/, 2]; | ||
_a = this; | ||
return [4 /*yield*/, (0, getNetwork_1.detectNetwork)()]; | ||
case 1: | ||
_a._networkType = _b.sent(); | ||
_b.label = 2; | ||
case 2: return [2 /*return*/, this._networkType]; | ||
} | ||
}); | ||
}); | ||
}; | ||
return BalanceComparator; | ||
}()); | ||
} | ||
async getNetwork() { | ||
if (!this._networkType) { | ||
this._networkType = await (0, getNetwork_1.detectNetwork)(); | ||
} | ||
return this._networkType; | ||
} | ||
} | ||
exports.BalanceComparator = BalanceComparator; |
@@ -1,1 +0,2 @@ | ||
export declare const expect: any; | ||
/// <reference types="chai" /> | ||
export declare const expect: Chai.ExpectStatic; |
"use strict"; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.expect = void 0; | ||
var ethereum_waffle_1 = require("ethereum-waffle"); | ||
var chai = require("chai"); | ||
chai.use(ethereum_waffle_1.solidity); | ||
exports.expect = chai.expect; | ||
const chai_1 = __importDefault(require("chai")); | ||
const ethereum_waffle_1 = require("ethereum-waffle"); | ||
chai_1.default.use(ethereum_waffle_1.solidity); | ||
exports.expect = chai_1.default.expect; |
"use strict"; | ||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
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) : adopt(result.value).then(fulfilled, rejected); } | ||
step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
}); | ||
}; | ||
var __generator = (this && this.__generator) || function (thisArg, body) { | ||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
function verb(n) { return function (v) { return step([n, v]); }; } | ||
function step(op) { | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while (_) try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
if (y = 0, t) op = [op[0] & 2, t.value]; | ||
switch (op[0]) { | ||
case 0: case 1: t = op; break; | ||
case 4: _.label++; return { value: op[1], done: false }; | ||
case 5: _.label++; y = op[1]; op = [0]; continue; | ||
case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
default: | ||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
if (t[2]) _.ops.pop(); | ||
_.trys.pop(); continue; | ||
} | ||
op = body.call(thisArg, _); | ||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
} | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.detectNetwork = void 0; | ||
// @ts-ignore | ||
var hardhat_1 = require("hardhat"); | ||
var sdk_1 = require("@gearbox-protocol/sdk"); | ||
function detectNetwork() { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var accounts, deployer, usdcMainnet, _a, usdcMainnet, _b; | ||
return __generator(this, function (_c) { | ||
switch (_c.label) { | ||
case 0: return [4 /*yield*/, hardhat_1.ethers.getSigners()]; | ||
case 1: | ||
accounts = (_c.sent()); | ||
deployer = accounts[0]; | ||
_c.label = 2; | ||
case 2: | ||
_c.trys.push([2, 4, , 9]); | ||
usdcMainnet = sdk_1.ERC20__factory.connect(sdk_1.tokenDataByNetwork.Mainnet.USDC, deployer); | ||
return [4 /*yield*/, usdcMainnet.balanceOf(sdk_1.ADDRESS_0x0)]; | ||
case 3: | ||
_c.sent(); | ||
return [2 /*return*/, "Mainnet"]; | ||
case 4: | ||
_a = _c.sent(); | ||
_c.label = 5; | ||
case 5: | ||
_c.trys.push([5, 7, , 8]); | ||
usdcMainnet = sdk_1.ERC20__factory.connect(sdk_1.tokenDataByNetwork.Kovan.USDC, deployer); | ||
return [4 /*yield*/, usdcMainnet.balanceOf(sdk_1.ADDRESS_0x0)]; | ||
case 6: | ||
_c.sent(); | ||
return [2 /*return*/, "Kovan"]; | ||
case 7: | ||
_b = _c.sent(); | ||
throw new Error("Unknown network"); | ||
case 8: return [3 /*break*/, 9]; | ||
case 9: return [2 /*return*/]; | ||
} | ||
}); | ||
}); | ||
const sdk_1 = require("@gearbox-protocol/sdk"); | ||
const hardhat_1 = require("hardhat"); | ||
async function detectNetwork() { | ||
const accounts = await hardhat_1.ethers.getSigners(); | ||
const deployer = accounts[0]; | ||
try { | ||
const usdcMainnet = sdk_1.ERC20__factory.connect(sdk_1.tokenDataByNetwork.Mainnet.USDC, deployer); | ||
await usdcMainnet.balanceOf(sdk_1.ADDRESS_0X0); | ||
return "Mainnet"; | ||
} | ||
catch (_a) { | ||
try { | ||
const usdcMainnet = sdk_1.ERC20__factory.connect(sdk_1.tokenDataByNetwork.Kovan.USDC, deployer); | ||
await usdcMainnet.balanceOf(sdk_1.ADDRESS_0X0); | ||
return "Kovan"; | ||
} | ||
catch (_b) { | ||
throw new Error("Unknown network"); | ||
} | ||
} | ||
} | ||
exports.detectNetwork = detectNetwork; |
"use strict"; | ||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
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) : adopt(result.value).then(fulfilled, rejected); } | ||
step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
}); | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.oneYearAhead = void 0; | ||
const sdk_1 = require("@gearbox-protocol/sdk"); | ||
const hardhat_1 = require("hardhat"); | ||
const getTimestamp = async (blockN) => { | ||
const blockNum = blockN || (await hardhat_1.ethers.provider.getBlockNumber()); | ||
const currentBlockchainTime = await hardhat_1.ethers.provider.getBlock(blockNum); | ||
return currentBlockchainTime.timestamp; | ||
}; | ||
var __generator = (this && this.__generator) || function (thisArg, body) { | ||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
function verb(n) { return function (v) { return step([n, v]); }; } | ||
function step(op) { | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while (_) try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
if (y = 0, t) op = [op[0] & 2, t.value]; | ||
switch (op[0]) { | ||
case 0: case 1: t = op; break; | ||
case 4: _.label++; return { value: op[1], done: false }; | ||
case 5: _.label++; y = op[1]; op = [0]; continue; | ||
case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
default: | ||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
if (t[2]) _.ops.pop(); | ||
_.trys.pop(); continue; | ||
} | ||
op = body.call(thisArg, _); | ||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
} | ||
const oneYearAhead = async () => { | ||
const currentTimestamp = await getTimestamp(); | ||
const oneYearLater = currentTimestamp + sdk_1.SECONDS_PER_YEAR; | ||
await hardhat_1.ethers.provider.send("evm_mine", [oneYearLater]); | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.oneYearAhead = void 0; | ||
// @ts-ignore | ||
var hardhat_1 = require("hardhat"); | ||
var sdk_1 = require("@gearbox-protocol/sdk"); | ||
var getTimestamp = function (blockN) { return __awaiter(void 0, void 0, void 0, function () { | ||
var blockNum, _a, currentBlockchainTime; | ||
return __generator(this, function (_b) { | ||
switch (_b.label) { | ||
case 0: | ||
_a = blockN; | ||
if (_a) return [3 /*break*/, 2]; | ||
return [4 /*yield*/, hardhat_1.ethers.provider.getBlockNumber()]; | ||
case 1: | ||
_a = (_b.sent()); | ||
_b.label = 2; | ||
case 2: | ||
blockNum = _a; | ||
return [4 /*yield*/, hardhat_1.ethers.provider.getBlock(blockNum)]; | ||
case 3: | ||
currentBlockchainTime = _b.sent(); | ||
return [2 /*return*/, currentBlockchainTime.timestamp]; | ||
} | ||
}); | ||
}); }; | ||
var oneYearAhead = function () { return __awaiter(void 0, void 0, void 0, function () { | ||
var currentTimestamp, oneYearLater; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: return [4 /*yield*/, getTimestamp()]; | ||
case 1: | ||
currentTimestamp = _a.sent(); | ||
oneYearLater = currentTimestamp + sdk_1.SECONDS_PER_YEAR; | ||
return [4 /*yield*/, hardhat_1.ethers.provider.send("evm_mine", [oneYearLater])]; | ||
case 2: | ||
_a.sent(); | ||
return [2 /*return*/]; | ||
} | ||
}); | ||
}); }; | ||
exports.oneYearAhead = oneYearAhead; |
{ | ||
"name": "@gearbox-protocol/devops", | ||
"version": "0.0.19", | ||
"version": "1.0.0-next.1", | ||
"description": "Gearbox Devops for SC development", | ||
"license": "MIT", | ||
"main": "./lib/index.js", | ||
"types": "./lib/index.d.ts", | ||
"license": "MIT", | ||
"files": [ | ||
"lib/" | ||
], | ||
"publishConfig": { | ||
"access": "public" | ||
}, | ||
"scripts": { | ||
"clean": "rm -rf lib", | ||
"build": "tsc", | ||
"dev": "tsc -w", | ||
"pub": "tsc && yarn publish" | ||
"pub": "tsc && yarn publish", | ||
"prepare": "husky install", | ||
"prettier": "prettier --write .", | ||
"prettier:ci": "npx prettier --check .", | ||
"lint": "eslint \"**/*.ts\" --fix", | ||
"lint:ci": "eslint \"**/*.ts\"", | ||
"typecheck:ci": "tsc --noEmit" | ||
}, | ||
"dependencies": { | ||
"axios": "^0.27.2" | ||
"axios": "^0.27.2", | ||
"chai": "^4.3.6" | ||
}, | ||
"devDependencies": { | ||
"@gearbox-protocol/sdk": "^0.0.45", | ||
"@types/axios": "^0.14.0", | ||
"@types/jest": "^26.0.4", | ||
"@types/node": "^14.0.23", | ||
"@gearbox-protocol/eslint-config": "^1.4.1", | ||
"@gearbox-protocol/prettier-config": "^1.4.1", | ||
"@gearbox-protocol/sdk": "^0.0.110", | ||
"@nomiclabs/hardhat-ethers": "^2.1.1", | ||
"@types/chai": "^4.3.3", | ||
"@types/jest": "^28.1.7", | ||
"@types/node": "^18.7.6", | ||
"dotenv": "^16.0.1", | ||
"eslint": "^8.22.0", | ||
"ethereum-waffle": "^3.4.4", | ||
"ethers": "^5.6.5", | ||
"hardhat": "^2.9.5", | ||
"jest": "^26.1.0", | ||
"prettier": "^2.3.0", | ||
"ethers": "^5.6.9", | ||
"hardhat": "^2.10.2", | ||
"husky": ">=6", | ||
"jest": "^28.1.3", | ||
"lint-staged": ">=10", | ||
"prettier": "^2.7.1", | ||
"tslog": "^3.3.3", | ||
"typescript": "^4.2.4" | ||
"typescript": "^4.7.4" | ||
}, | ||
"peerDependencies": { | ||
"@nomiclabs/hardhat-ethers": "*", | ||
"ethers": "*", | ||
"hardhat": "*" | ||
}, | ||
"prettier": "@gearbox-protocol/prettier-config", | ||
"lint-staged": { | ||
"*.{ts,js}": [ | ||
"eslint --fix", | ||
"prettier --write" | ||
], | ||
"*.{sol,json,md}": "prettier --write" | ||
} | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No README
QualityPackage does not have a README. This may indicate a failed publish or a low quality package.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
1
4
3
20850
5
18
20
449
2
+ Addedchai@^4.3.6
+ Added@adraffy/ens-normalize@1.10.1(transitive)
+ Added@ethersproject/abi@5.7.0(transitive)
+ Added@ethersproject/abstract-provider@5.7.0(transitive)
+ Added@ethersproject/abstract-signer@5.7.0(transitive)
+ Added@ethersproject/address@5.7.0(transitive)
+ Added@ethersproject/base64@5.7.0(transitive)
+ Added@ethersproject/basex@5.7.0(transitive)
+ Added@ethersproject/bignumber@5.7.0(transitive)
+ Added@ethersproject/bytes@5.7.0(transitive)
+ Added@ethersproject/constants@5.7.0(transitive)
+ Added@ethersproject/contracts@5.7.0(transitive)
+ Added@ethersproject/hash@5.7.0(transitive)
+ Added@ethersproject/hdnode@5.7.0(transitive)
+ Added@ethersproject/json-wallets@5.7.0(transitive)
+ Added@ethersproject/keccak256@5.7.0(transitive)
+ Added@ethersproject/logger@5.7.0(transitive)
+ Added@ethersproject/networks@5.7.1(transitive)
+ Added@ethersproject/pbkdf2@5.7.0(transitive)
+ Added@ethersproject/properties@5.7.0(transitive)
+ Added@ethersproject/providers@5.7.2(transitive)
+ Added@ethersproject/random@5.7.0(transitive)
+ Added@ethersproject/rlp@5.7.0(transitive)
+ Added@ethersproject/sha2@5.7.0(transitive)
+ Added@ethersproject/signing-key@5.7.0(transitive)
+ Added@ethersproject/solidity@5.7.0(transitive)
+ Added@ethersproject/strings@5.7.0(transitive)
+ Added@ethersproject/transactions@5.7.0(transitive)
+ Added@ethersproject/units@5.7.0(transitive)
+ Added@ethersproject/wallet@5.7.0(transitive)
+ Added@ethersproject/web@5.7.1(transitive)
+ Added@ethersproject/wordlists@5.7.0(transitive)
+ Added@fastify/busboy@2.1.1(transitive)
+ Added@metamask/eth-sig-util@4.0.1(transitive)
+ Added@noble/curves@1.2.0(transitive)
+ Added@noble/hashes@1.2.01.3.2(transitive)
+ Added@noble/secp256k1@1.7.1(transitive)
+ Added@nomicfoundation/edr@0.6.3(transitive)
+ Added@nomicfoundation/edr-darwin-arm64@0.6.3(transitive)
+ Added@nomicfoundation/edr-darwin-x64@0.6.3(transitive)
+ Added@nomicfoundation/edr-linux-arm64-gnu@0.6.3(transitive)
+ Added@nomicfoundation/edr-linux-arm64-musl@0.6.3(transitive)
+ Added@nomicfoundation/edr-linux-x64-gnu@0.6.3(transitive)
+ Added@nomicfoundation/edr-linux-x64-musl@0.6.3(transitive)
+ Added@nomicfoundation/edr-win32-x64-msvc@0.6.3(transitive)
+ Added@nomicfoundation/ethereumjs-common@4.0.4(transitive)
+ Added@nomicfoundation/ethereumjs-rlp@5.0.4(transitive)
+ Added@nomicfoundation/ethereumjs-tx@5.0.4(transitive)
+ Added@nomicfoundation/ethereumjs-util@9.0.4(transitive)
+ Added@nomicfoundation/solidity-analyzer@0.1.2(transitive)
+ Added@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.2(transitive)
+ Added@nomicfoundation/solidity-analyzer-darwin-x64@0.1.2(transitive)
+ Added@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.2(transitive)
+ Added@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.2(transitive)
+ Added@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.2(transitive)
+ Added@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.2(transitive)
+ Added@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.2(transitive)
+ Added@nomiclabs/hardhat-ethers@2.2.3(transitive)
+ Added@scure/base@1.1.9(transitive)
+ Added@scure/bip32@1.1.5(transitive)
+ Added@scure/bip39@1.1.1(transitive)
+ Added@sentry/core@5.30.0(transitive)
+ Added@sentry/hub@5.30.0(transitive)
+ Added@sentry/minimal@5.30.0(transitive)
+ Added@sentry/node@5.30.0(transitive)
+ Added@sentry/tracing@5.30.0(transitive)
+ Added@sentry/types@5.30.0(transitive)
+ Added@sentry/utils@5.30.0(transitive)
+ Added@types/bn.js@4.11.65.1.6(transitive)
+ Added@types/lru-cache@5.1.1(transitive)
+ Added@types/node@18.15.13(transitive)
+ Added@types/pbkdf2@3.1.2(transitive)
+ Added@types/secp256k1@4.0.6(transitive)
+ Addedadm-zip@0.4.16(transitive)
+ Addedaes-js@3.0.04.0.0-beta.5(transitive)
+ Addedagent-base@6.0.2(transitive)
+ Addedaggregate-error@3.1.0(transitive)
+ Addedansi-align@3.0.1(transitive)
+ Addedansi-colors@4.1.3(transitive)
+ Addedansi-escapes@4.3.2(transitive)
+ Addedansi-regex@5.0.1(transitive)
+ Addedansi-styles@3.2.14.3.0(transitive)
+ Addedanymatch@3.1.3(transitive)
+ Addedargparse@2.0.1(transitive)
+ Addedassertion-error@1.1.0(transitive)
+ Addedbalanced-match@1.0.2(transitive)
+ Addedbase-x@3.0.10(transitive)
+ Addedbech32@1.1.4(transitive)
+ Addedbinary-extensions@2.3.0(transitive)
+ Addedblakejs@1.2.1(transitive)
+ Addedbn.js@4.12.05.2.1(transitive)
+ Addedboxen@5.1.2(transitive)
+ Addedbrace-expansion@1.1.112.0.1(transitive)
+ Addedbraces@3.0.3(transitive)
+ Addedbrorand@1.1.0(transitive)
+ Addedbrowser-stdout@1.3.1(transitive)
+ Addedbrowserify-aes@1.2.0(transitive)
+ Addedbs58@4.0.1(transitive)
+ Addedbs58check@2.1.2(transitive)
+ Addedbuffer-from@1.1.2(transitive)
+ Addedbuffer-xor@1.0.3(transitive)
+ Addedbytes@3.1.2(transitive)
+ Addedcamelcase@6.3.0(transitive)
+ Addedchai@4.5.0(transitive)
+ Addedchalk@2.4.24.1.2(transitive)
+ Addedcheck-error@1.0.3(transitive)
+ Addedchokidar@3.6.04.0.1(transitive)
+ Addedci-info@2.0.0(transitive)
+ Addedcipher-base@1.0.4(transitive)
+ Addedclean-stack@2.2.0(transitive)
+ Addedcli-boxes@2.2.1(transitive)
+ Addedcliui@7.0.4(transitive)
+ Addedcolor-convert@1.9.32.0.1(transitive)
+ Addedcolor-name@1.1.31.1.4(transitive)
+ Addedcommand-exists@1.2.9(transitive)
+ Addedcommander@8.3.0(transitive)
+ Addedconcat-map@0.0.1(transitive)
+ Addedcookie@0.4.2(transitive)
+ Addedcreate-hash@1.2.0(transitive)
+ Addedcreate-hmac@1.1.7(transitive)
+ Addeddebug@4.3.7(transitive)
+ Addeddecamelize@4.0.0(transitive)
+ Addeddeep-eql@4.1.4(transitive)
+ Addeddepd@2.0.0(transitive)
+ Addeddiff@5.2.0(transitive)
+ Addedelliptic@6.5.4(transitive)
+ Addedemoji-regex@8.0.0(transitive)
+ Addedenquirer@2.4.1(transitive)
+ Addedenv-paths@2.2.1(transitive)
+ Addedescalade@3.2.0(transitive)
+ Addedescape-string-regexp@1.0.54.0.0(transitive)
+ Addedethereum-cryptography@0.1.31.2.0(transitive)
+ Addedethereumjs-abi@0.6.8(transitive)
+ Addedethereumjs-util@6.2.1(transitive)
+ Addedethers@5.7.26.13.3(transitive)
+ Addedethjs-util@0.1.6(transitive)
+ Addedevp_bytestokey@1.0.3(transitive)
+ Addedfill-range@7.1.1(transitive)
+ Addedfind-up@2.1.05.0.0(transitive)
+ Addedflat@5.0.2(transitive)
+ Addedfp-ts@1.19.3(transitive)
+ Addedfs-extra@7.0.1(transitive)
+ Addedfs.realpath@1.0.0(transitive)
+ Addedfsevents@2.3.3(transitive)
+ Addedget-caller-file@2.0.5(transitive)
+ Addedget-func-name@2.0.2(transitive)
+ Addedglob@7.2.08.1.0(transitive)
+ Addedglob-parent@5.1.2(transitive)
+ Addedgraceful-fs@4.2.11(transitive)
+ Addedhardhat@2.22.12(transitive)
+ Addedhas-flag@3.0.04.0.0(transitive)
+ Addedhash-base@3.1.0(transitive)
+ Addedhash.js@1.1.7(transitive)
+ Addedhe@1.2.0(transitive)
+ Addedhmac-drbg@1.0.1(transitive)
+ Addedhttp-errors@2.0.0(transitive)
+ Addedhttps-proxy-agent@5.0.1(transitive)
+ Addediconv-lite@0.4.24(transitive)
+ Addedimmutable@4.3.7(transitive)
+ Addedindent-string@4.0.0(transitive)
+ Addedinflight@1.0.6(transitive)
+ Addedinherits@2.0.4(transitive)
+ Addedio-ts@1.10.4(transitive)
+ Addedis-binary-path@2.1.0(transitive)
+ Addedis-extglob@2.1.1(transitive)
+ Addedis-fullwidth-code-point@3.0.0(transitive)
+ Addedis-glob@4.0.3(transitive)
+ Addedis-hex-prefixed@1.0.0(transitive)
+ Addedis-number@7.0.0(transitive)
+ Addedis-plain-obj@2.1.0(transitive)
+ Addedis-unicode-supported@0.1.0(transitive)
+ Addedjs-sha3@0.8.0(transitive)
+ Addedjs-yaml@4.1.0(transitive)
+ Addedjson-stream-stringify@3.1.5(transitive)
+ Addedjsonfile@4.0.0(transitive)
+ Addedkeccak@3.0.4(transitive)
+ Addedlocate-path@2.0.06.0.0(transitive)
+ Addedlodash@4.17.21(transitive)
+ Addedlog-symbols@4.1.0(transitive)
+ Addedloupe@2.3.7(transitive)
+ Addedlru_map@0.3.3(transitive)
+ Addedmd5.js@1.3.5(transitive)
+ Addedmemorystream@0.3.1(transitive)
+ Addedminimalistic-assert@1.0.1(transitive)
+ Addedminimalistic-crypto-utils@1.0.1(transitive)
+ Addedminimatch@3.1.25.1.6(transitive)
+ Addedmnemonist@0.38.5(transitive)
+ Addedmocha@10.7.3(transitive)
+ Addedms@2.1.3(transitive)
+ Addednode-addon-api@2.0.2(transitive)
+ Addednode-gyp-build@4.8.2(transitive)
+ Addednormalize-path@3.0.0(transitive)
+ Addedobliterator@2.0.4(transitive)
+ Addedonce@1.4.0(transitive)
+ Addedos-tmpdir@1.0.2(transitive)
+ Addedp-limit@1.3.03.1.0(transitive)
+ Addedp-locate@2.0.05.0.0(transitive)
+ Addedp-map@4.0.0(transitive)
+ Addedp-try@1.0.0(transitive)
+ Addedpath-exists@3.0.04.0.0(transitive)
+ Addedpath-is-absolute@1.0.1(transitive)
+ Addedpath-parse@1.0.7(transitive)
+ Addedpathval@1.1.1(transitive)
+ Addedpbkdf2@3.1.2(transitive)
+ Addedpicomatch@2.3.1(transitive)
+ Addedrandombytes@2.1.0(transitive)
+ Addedraw-body@2.5.2(transitive)
+ Addedreadable-stream@3.6.2(transitive)
+ Addedreaddirp@3.6.04.0.2(transitive)
+ Addedrequire-directory@2.1.1(transitive)
+ Addedresolve@1.17.0(transitive)
+ Addedripemd160@2.0.2(transitive)
+ Addedrlp@2.2.7(transitive)
+ Addedsafe-buffer@5.2.1(transitive)
+ Addedsafer-buffer@2.1.2(transitive)
+ Addedscrypt-js@3.0.1(transitive)
+ Addedsecp256k1@4.0.3(transitive)
+ Addedsemver@5.7.26.3.1(transitive)
+ Addedserialize-javascript@6.0.2(transitive)
+ Addedsetimmediate@1.0.5(transitive)
+ Addedsetprototypeof@1.2.0(transitive)
+ Addedsha.js@2.4.11(transitive)
+ Addedsolc@0.8.26(transitive)
+ Addedsource-map@0.6.1(transitive)
+ Addedsource-map-support@0.5.21(transitive)
+ Addedstacktrace-parser@0.1.10(transitive)
+ Addedstatuses@2.0.1(transitive)
+ Addedstring-width@4.2.3(transitive)
+ Addedstring_decoder@1.3.0(transitive)
+ Addedstrip-ansi@6.0.1(transitive)
+ Addedstrip-hex-prefix@1.0.0(transitive)
+ Addedstrip-json-comments@3.1.1(transitive)
+ Addedsupports-color@5.5.07.2.08.1.1(transitive)
+ Addedtmp@0.0.33(transitive)
+ Addedto-regex-range@5.0.1(transitive)
+ Addedtoidentifier@1.0.1(transitive)
+ Addedtslib@1.14.12.4.0(transitive)
+ Addedtsort@0.0.1(transitive)
+ Addedtweetnacl@1.0.3(transitive)
+ Addedtweetnacl-util@0.15.1(transitive)
+ Addedtype-detect@4.1.0(transitive)
+ Addedtype-fest@0.20.20.21.30.7.1(transitive)
+ Addedundici@5.28.4(transitive)
+ Addeduniversalify@0.1.2(transitive)
+ Addedunpipe@1.0.0(transitive)
+ Addedutil-deprecate@1.0.2(transitive)
+ Addeduuid@8.3.2(transitive)
+ Addedwidest-line@3.1.0(transitive)
+ Addedworkerpool@6.5.1(transitive)
+ Addedwrap-ansi@7.0.0(transitive)
+ Addedwrappy@1.0.2(transitive)
+ Addedws@7.4.68.17.1(transitive)
+ Addedy18n@5.0.8(transitive)
+ Addedyargs@16.2.0(transitive)
+ Addedyargs-parser@20.2.9(transitive)
+ Addedyargs-unparser@2.0.0(transitive)
+ Addedyocto-queue@0.1.0(transitive)