const ethUtil = require('ethereumjs-util') const assert = require('assert') const BN = require('bn.js') const { ENVIRONMENT_TYPE_POPUP, ENVIRONMENT_TYPE_NOTIFICATION, ENVIRONMENT_TYPE_FULLSCREEN, PLATFORM_FIREFOX, PLATFORM_OPERA, PLATFORM_CHROME, PLATFORM_EDGE, PLATFORM_BRAVE, } = require('./enums') /** * Generates an example stack trace * * @returns {string} A stack trace * */ function getStack () { const stack = new Error('Stack trace generator - not an error').stack return stack } /** * Used to determine the window type through which the app is being viewed. * - 'popup' refers to the extension opened through the browser app icon (in top right corner in chrome and firefox) * - 'responsive' refers to the main browser window * - 'notification' refers to the popup that appears in its own window when taking action outside of metamask * * @returns {string} A single word label that represents the type of window through which the app is being viewed * */ const getEnvironmentType = (url = window.location.href) => { if (url.match(/popup.html(?:#.*)*$/)) { return ENVIRONMENT_TYPE_POPUP } else if (url.match(/home.html(?:\?.+)*$/) || url.match(/home.html(?:#.*)*$/)) { return ENVIRONMENT_TYPE_FULLSCREEN } else { return ENVIRONMENT_TYPE_NOTIFICATION } } /** * Returns the platform (browser) where the extension is running. * * @returns {string} the platform ENUM * */ const getPlatform = _ => { const ua = navigator.userAgent if (ua.search('Firefox') !== -1) { return PLATFORM_FIREFOX } else { if (window && window.chrome && window.chrome.ipcRenderer) { return PLATFORM_BRAVE } else if (ua.search('Edge') !== -1) { return PLATFORM_EDGE } else if (ua.search('OPR') !== -1) { return PLATFORM_OPERA } else { return PLATFORM_CHROME } } } /** * Checks whether a given balance of ETH, represented as a hex string, is sufficient to pay a value plus a gas fee * * @param {object} txParams Contains data about a transaction * @param {string} txParams.gas The gas for a transaction * @param {string} txParams.gasPrice The price per gas for the transaction * @param {string} txParams.value The value of ETH to send * @param {string} hexBalance A balance of ETH represented as a hex string * @returns {boolean} Whether the balance is greater than or equal to the value plus the value of gas times gasPrice * */ function sufficientBalance (txParams, hexBalance) { // validate hexBalance is a hex string assert.equal(typeof hexBalance, 'string', 'sufficientBalance - hexBalance is not a hex string') assert.equal(hexBalance.slice(0, 2), '0x', 'sufficientBalance - hexBalance is not a hex string') const balance = hexToBn(hexBalance) const value = hexToBn(txParams.value) const gasLimit = hexToBn(txParams.gas) const gasPrice = hexToBn(txParams.gasPrice) const maxCost = value.add(gasLimit.mul(gasPrice)) return balance.gte(maxCost) } /** * Converts a BN object to a hex string with a '0x' prefix * * @param {BN} inputBn The BN to convert to a hex string * @returns {string} A '0x' prefixed hex string * */ function bnToHex (inputBn) { return ethUtil.addHexPrefix(inputBn.toString(16)) } /** * Converts a hex string to a BN object * * @param {string} inputHex A number represented as a hex string * @returns {Object} A BN object * */ function hexToBn (inputHex) { return new BN(ethUtil.stripHexPrefix(inputHex), 16) } /** * Used to multiply a BN by a fraction * * @param {BN} targetBN The number to multiply by a fraction * @param {number|string} numerator The numerator of the fraction multiplier * @param {number|string} denominator The denominator of the fraction multiplier * @returns {BN} The product of the multiplication * */ function BnMultiplyByFraction (targetBN, numerator, denominator) { const numBN = new BN(numerator) const denomBN = new BN(denominator) return targetBN.mul(numBN).div(denomBN) } function applyListeners (listeners, emitter) { Object.keys(listeners).forEach((key) => { emitter.on(key, listeners[key]) }) } function removeListeners (listeners, emitter) { Object.keys(listeners).forEach((key) => { emitter.removeListener(key, listeners[key]) }) } module.exports = { removeListeners, applyListeners, getPlatform, getStack, getEnvironmentType, sufficientBalance, hexToBn, bnToHex, BnMultiplyByFraction, } 9Q2'>branches/2019Q2</option> <option value='branches/2019Q3'>branches/2019Q3</option> <option value='branches/2019Q4'>branches/2019Q4</option> <option value='branches/2020Q1'>branches/2020Q1</option> <option value='branches/2020Q2'>branches/2020Q2</option> <option value='branches/2020Q3'>branches/2020Q3</option> <option value='branches/2020Q4'>branches/2020Q4</option> <option value='branches/2021Q1'>branches/2021Q1</option> <option value='branches/RELEASE_8_4_0'>branches/RELEASE_8_4_0</option> <option value='branches/RELENG_2_1_0'>branches/RELENG_2_1_0</option> <option value='branches/RELENG_2_2'>branches/RELENG_2_2</option> <option value='branches/RELENG_9_1_0'>branches/RELENG_9_1_0</option> <option value='branches/RELENG_9_2_0'>branches/RELENG_9_2_0</option> <option value='dependabot/npm_and_yarn/devel/electron4/files/eslint-utils-1.4.3'>dependabot/npm_and_yarn/devel/electron4/files/eslint-utils-1.4.3</option> <option value='dependabot/npm_and_yarn/devel/electron4/files/lodash-4.17.15'>dependabot/npm_and_yarn/devel/electron4/files/lodash-4.17.15</option> <option value='dependabot/npm_and_yarn/devel/electron4/files/lodash.merge-4.6.2'>dependabot/npm_and_yarn/devel/electron4/files/lodash.merge-4.6.2</option> <option value='dependabot/npm_and_yarn/devel/electron4/files/lodash.template-4.5.0'>dependabot/npm_and_yarn/devel/electron4/files/lodash.template-4.5.0</option> <option value='dependabot/npm_and_yarn/devel/electron4/files/minimist-1.2.2'>dependabot/npm_and_yarn/devel/electron4/files/minimist-1.2.2</option> <option value='dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2' selected='selected'>dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2</option> <option value='main'>main</option> <option value='master'>master</option> <option value='svn_head'>svn_head</option> </select> <input type='submit' value='switch'/></form></td></tr> <tr><td class='sub'>FreeBSD Ports (https://github.com/freebsd/freebsd-ports)</td><td class='sub right'></td></tr></table> <table class='tabs'><tr><td> <a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/about/?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2'>about</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2'>summary</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/refs/?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&id=041a24ea1dbae179a8345dc62f8abfbd5572d852'>refs</a><a class='active' href='/~lantw44/cgit/cgit.cgi/freebsd-ports/log/Tools?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2'>log</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/tree/Tools?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&id=041a24ea1dbae179a8345dc62f8abfbd5572d852'>tree</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/Tools?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&id=041a24ea1dbae179a8345dc62f8abfbd5572d852'>commit</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/diff/Tools?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&id=041a24ea1dbae179a8345dc62f8abfbd5572d852'>diff</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/stats/Tools?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2'>stats</a></td><td class='form'><form class='right' method='get' action='/~lantw44/cgit/cgit.cgi/freebsd-ports/log/Tools'> <input type='hidden' name='h' value='dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2'/><input type='hidden' name='id' value='041a24ea1dbae179a8345dc62f8abfbd5572d852'/><select name='qt'> <option value='grep'>log msg</option> <option value='author'>author</option> <option value='committer'>committer</option> <option value='range'>range</option> </select> <input class='txt' type='search' size='10' name='q' value=''/> <input type='submit' value='search'/> </form> </td></tr></table> <div class='path'>path: <a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/log/?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&id=041a24ea1dbae179a8345dc62f8abfbd5572d852'>root</a>/<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/log/Tools?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&id=041a24ea1dbae179a8345dc62f8abfbd5572d852'>Tools</a></div><div class='content'><table class='list nowrap'><tr class='nohover'><th></th><th class='left'>Commit message (<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/log/Tools?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&id=041a24ea1dbae179a8345dc62f8abfbd5572d852&showmsg=1'>Expand</a>)</th><th class='left'>Author</th><th class='left'>Age</th><th class='left'>Files</th><th class='left'>Lines</th></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/Tools?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&id=dfe4da5d88f422135411affa3bb44732407dd68e'>note mark_safe.pl</a></td><td>pgollucci</td><td><span title='2009-05-17 19:40:16 +0800'>2009-05-17</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+1</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/Tools?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&id=3215c053f1fa57da6d818bd3ae5f4387b96d43b7'>o don't set anything in ports with NO_BUILD</a></td><td>pgollucci</td><td><span title='2009-05-17 19:12:24 +0800'>2009-05-17</span></td><td>1</td><td><span class='deletions'>-3</span>/<span class='insertions'>+3</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/Tools?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&id=7eeaa278412bad29703494bf0f0be75bfd8dbb08'>Do not mark rubygem ports, its a NO-OP</a></td><td>pgollucci</td><td><span title='2009-05-16 09:51:40 +0800'>2009-05-16</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+2</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/Tools?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&id=78a12f618af8cb51233a5904a3335422218a37ed'>Make previous commit work for both context and unified input patches.</a></td><td>itetcu</td><td><span title='2009-05-11 00:34:20 +0800'>2009-05-11</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/Tools?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&id=94310a90f76bf2e1340744490a6e3c7e540396fc'>When naming the split patch files, replace the original path '/' with '__'</a></td><td>itetcu</td><td><span title='2009-05-11 00:28:52 +0800'>2009-05-11</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/Tools?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&id=ac6fa5a23215742da4ec71003d9261f5919e4401'>- fix --port support</a></td><td>pgollucci</td><td><span title='2009-04-30 05:16:43 +0800'>2009-04-30</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+3</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/Tools?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&id=51dd7fa6eaf1553f8d057191417460f5d2f0ff22'>- Start some docs</a></td><td>pgollucci</td><td><span title='2009-04-30 05:08:53 +0800'>2009-04-30</span></td><td>1</td><td><span class='deletions'>-11</span>/<span class='insertions'>+93</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/Tools?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&id=0c79e308dda6a9353d805dd8558bfa7998d33fd9'>Script to set MAKE_JOBS_(UN)SAFE= yes for a MAINTAINERs ports.</a></td><td>pgollucci</td><td><span title='2009-04-22 08:33:44 +0800'>2009-04-22</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+191</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/Tools?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&id=0cd385a62a8ed1de452dc10c21e63307fa2714a3'>Fix bug where number of error logs was incorrect.</a></td><td>linimon</td><td><span title='2009-03-26 18:38:44 +0800'>2009-03-26</span></td><td>1</td><td><span class='deletions'>-8</span>/<span class='insertions'>+9</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/Tools?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&id=e4a7bacaa858c0b7b82aa3cd609673a6ee746a84'>Rewrite of processlog by kris.</a></td><td>linimon</td><td><span title='2009-03-26 18:33:51 +0800'>2009-03-26</span></td><td>1</td><td><span class='deletions'>-84</span>/<span class='insertions'>+147</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/Tools?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&id=d4072e8fdb3ce65ab5816aaa4a9e632b581c152a'> - Add a new case 'nested-declaration' to catch errors on -current.</a></td><td>linimon</td><td><span title='2009-03-25 18:18:41 +0800'>2009-03-25</span></td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+4</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/Tools?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&id=c139468f4156c59c216c58d5f201dddbec9238f2'>Use diff -p both when first creating and when updating a patch.</a></td><td>naddy</td><td><span title='2009-02-16 00:16:33 +0800'>2009-02-16</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/Tools?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&id=1ea60451aabfbbc481e83b496925df0c809824c5'>Remove 6-exp2 builds, they haven't been used in a while</a></td><td>pav</td><td><span title='2009-01-22 00:11:24 +0800'>2009-01-22</span></td><td>2</td><td><span class='deletions'>-6</span>/<span class='insertions'>+3</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/Tools?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&id=785be011fb410c0ab3bda564b50a63b10331a2f1'>Factor out the code that performs the PORTREVISION bump for one port.</a></td><td>gerald</td><td><span title='2009-01-08 05:33:17 +0800'>2009-01-08</span></td><td>1</td><td><span class='deletions'>-42</span>/<span class='insertions'>+47</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/Tools?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&id=1b1fcbc58a52779bbae52bd66c5f10fae2b4bce0'>Reduce per branch code duplication</a></td><td>erwin</td><td><span title='2008-12-28 05:24:30 +0800'>2008-12-28</span></td><td>1</td><td><span class='deletions'>-41</span>/<span class='insertions'>+16</span></td></tr> <tr>