From 43cdce1b9e8334286b14b5a7c91aa3a679942231 Mon Sep 17 00:00:00 2001 From: ryanml Date: Wed, 6 Oct 2021 05:02:50 -0700 Subject: [PATCH 01/10] Restoring mobile sync warning text (#12284) --- app/_locales/en/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/_locales/en/messages.json b/app/_locales/en/messages.json index 26a81c009..2d382d25c 100644 --- a/app/_locales/en/messages.json +++ b/app/_locales/en/messages.json @@ -1362,7 +1362,7 @@ "message": "Don't see your token?" }, "mobileSyncWarning": { - "message": "⚠️ Proceeding will display a secret QR code that allows access to your accounts. Do not share it with anyone. Support staff will never ask you for it." + "message": "The 'Sync with extension' feature is temporarily disabled. If you want to use your extension wallet on MetaMask mobile, then on your mobile app: go back to the wallet setup options and select the 'Import with Secret Recovery Phrase' option. Use your extension wallet's secret phrase to then import your wallet into mobile." }, "mustSelectOne": { "message": "Must select at least 1 token." From 3d630ca8d1a4477e59f510cfc01c0883be97bd9b Mon Sep 17 00:00:00 2001 From: Dan J Miller Date: Fri, 8 Oct 2021 18:57:45 -0230 Subject: [PATCH 02/10] Do case-insensitive comparisons of token addresses in view-quote and build-quote (#12315) --- ui/pages/swaps/build-quote/build-quote.js | 31 ++++++++++++++--------- ui/pages/swaps/view-quote/view-quote.js | 9 ++++--- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/ui/pages/swaps/build-quote/build-quote.js b/ui/pages/swaps/build-quote/build-quote.js index 1503da608..32e25816d 100644 --- a/ui/pages/swaps/build-quote/build-quote.js +++ b/ui/pages/swaps/build-quote/build-quote.js @@ -51,7 +51,10 @@ import { hexToDecimal, } from '../../../helpers/utils/conversions.util'; import { calcTokenAmount } from '../../../helpers/utils/token-util'; -import { getURLHostName } from '../../../helpers/utils/util'; +import { + getURLHostName, + isEqualCaseInsensitive, +} from '../../../helpers/utils/util'; import { usePrevious } from '../../../hooks/usePrevious'; import { useTokenTracker } from '../../../hooks/useTokenTracker'; import { useTokenFiatAmount } from '../../../hooks/useTokenFiatAmount'; @@ -169,8 +172,9 @@ export default function BuildQuote({ shuffledTokensList, }); const selectedToToken = - tokensToSearch.find(({ address }) => address === toToken?.address) || - toToken; + tokensToSearch.find(({ address }) => + isEqualCaseInsensitive(address, toToken?.address), + ) || toToken; const toTokenIsNotDefault = selectedToToken?.address && !isSwapsDefaultTokenAddress(selectedToToken?.address, chainId); @@ -226,8 +230,8 @@ export default function BuildQuote({ } if ( token?.address && - !memoizedUsersTokens.find( - (usersToken) => usersToken.address === token.address, + !memoizedUsersTokens.find((usersToken) => + isEqualCaseInsensitive(usersToken.address, token.address), ) ) { fetchTokenBalance(token.address, selectedAccountAddress).then( @@ -298,12 +302,12 @@ export default function BuildQuote({ ); const hideDropdownItemIf = useCallback( - (item) => item.address === fromTokenAddress, + (item) => isEqualCaseInsensitive(item.address, fromTokenAddress), [fromTokenAddress], ); - const tokensWithBalancesFromToken = tokensWithBalances.find( - (token) => token.address === fromToken?.address, + const tokensWithBalancesFromToken = tokensWithBalances.find((token) => + isEqualCaseInsensitive(token.address, fromToken?.address), ); const previousTokensWithBalancesFromToken = usePrevious( tokensWithBalancesFromToken, @@ -314,9 +318,10 @@ export default function BuildQuote({ tokensWithBalancesFromToken?.address, chainId, ); - const addressesAreTheSame = - tokensWithBalancesFromToken?.address === - previousTokensWithBalancesFromToken?.address; + const addressesAreTheSame = isEqualCaseInsensitive( + tokensWithBalancesFromToken?.address, + previousTokensWithBalancesFromToken?.address, + ); const balanceHasChanged = tokensWithBalancesFromToken?.balance !== previousTokensWithBalancesFromToken?.balance; @@ -490,7 +495,9 @@ export default function BuildQuote({ !Object.keys(topAssets).length) } selectPlaceHolderText={t('swapSelect')} - hideItemIf={(item) => item.address === selectedToToken?.address} + hideItemIf={(item) => + isEqualCaseInsensitive(item.address, selectedToToken?.address) + } listContainerClassName="build-quote__open-dropdown" autoFocus /> diff --git a/ui/pages/swaps/view-quote/view-quote.js b/ui/pages/swaps/view-quote/view-quote.js index 6b6f2e37e..e983310f7 100644 --- a/ui/pages/swaps/view-quote/view-quote.js +++ b/ui/pages/swaps/view-quote/view-quote.js @@ -50,7 +50,10 @@ import { } from '../../../selectors'; import { getNativeCurrency, getTokens } from '../../../ducks/metamask/metamask'; -import { toPrecisionWithoutTrailingZeros } from '../../../helpers/utils/util'; +import { + toPrecisionWithoutTrailingZeros, + isEqualCaseInsensitive, +} from '../../../helpers/utils/util'; import { safeRefetchQuotes, @@ -214,8 +217,8 @@ export default function ViewQuote() { const balanceToken = fetchParamsSourceToken === defaultSwapsToken.address ? defaultSwapsToken - : tokensWithBalances.find( - ({ address }) => address === fetchParamsSourceToken, + : tokensWithBalances.find(({ address }) => + isEqualCaseInsensitive(address, fetchParamsSourceToken), ); const selectedFromToken = balanceToken || usedQuote.sourceTokenInfo; From 56f800057b11025b6ef2437a8540a642d8c95809 Mon Sep 17 00:00:00 2001 From: Mark Stacey Date: Fri, 8 Oct 2021 11:50:07 -0230 Subject: [PATCH 03/10] Update `immer` from v8 to v9 (#12303) `immer` has been updated to v9. This didn't require any changes on our part; the only breaking changes are to the TypeScript types [1]. The `@reduxjs/toolkit` library has been updated as well, to ensure that it's using the updated version of Immer internally as well. This update makes our patch of that package obsolete, as the problematic pattern that were were patching out is no longer present. [1]: https://github.com/immerjs/immer/releases/tag/v9.0.0 --- package.json | 6 +- patches/@reduxjs+toolkit+1.5.0.patch | 82 ---------------------------- yarn.lock | 38 +++++-------- 3 files changed, 17 insertions(+), 109 deletions(-) delete mode 100644 patches/@reduxjs+toolkit+1.5.0.patch diff --git a/package.json b/package.json index 38ec8af59..a8debb551 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "3box/ipfs/prometheus-gc-stats/gc-stats/node-pre-gyp/tar": "^6.1.2", "3box/**/libp2p-crypto/node-forge": "^0.10.0", "3box/**/libp2p-keychain/node-forge": "^0.10.0", - "analytics-node/axios": "^0.21.1", + "analytics-node/axios": "^0.21.2", "ganache-core/lodash": "^4.17.21", "netmask": "^2.0.1", "pubnub/superagent-proxy": "^3.0.0", @@ -112,7 +112,7 @@ "@metamask/post-message-stream": "^4.0.0", "@metamask/providers": "^8.1.1", "@popperjs/core": "^2.4.0", - "@reduxjs/toolkit": "^1.5.0", + "@reduxjs/toolkit": "^1.6.2", "@sentry/browser": "^5.26.0", "@sentry/integrations": "^5.26.0", "@zxing/library": "^0.8.0", @@ -155,7 +155,7 @@ "fuse.js": "^3.2.0", "globalthis": "^1.0.1", "human-standard-token-abi": "^2.0.0", - "immer": "^8.0.1", + "immer": "^9.0.6", "json-rpc-engine": "^6.1.0", "json-rpc-middleware-stream": "^2.1.1", "jsonschema": "^1.2.4", diff --git a/patches/@reduxjs+toolkit+1.5.0.patch b/patches/@reduxjs+toolkit+1.5.0.patch deleted file mode 100644 index ae707ae5e..000000000 --- a/patches/@reduxjs+toolkit+1.5.0.patch +++ /dev/null @@ -1,82 +0,0 @@ -diff --git a/node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.development.js b/node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.development.js -index 96ead94..ce7bd95 100644 ---- a/node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.development.js -+++ b/node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.development.js -@@ -204,7 +204,7 @@ function (_Array) { - - var _proto = MiddlewareArray.prototype; - -- _proto.concat = function concat() { -+ Object.defineProperty(_proto, 'concat', { value: function concat() { - var _Array$prototype$conc; - - for (var _len = arguments.length, arr = new Array(_len), _key = 0; _key < _len; _key++) { -@@ -212,7 +212,7 @@ function (_Array) { - } - - return _construct(MiddlewareArray, (_Array$prototype$conc = _Array.prototype.concat).call.apply(_Array$prototype$conc, [this].concat(arr))); -- }; -+ } }) - - _proto.prepend = function prepend() { - for (var _len2 = arguments.length, arr = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { -diff --git a/node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.production.min.js b/node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.production.min.js -index eb2dd1c..d44d517 100644 ---- a/node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.production.min.js -+++ b/node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.production.min.js -@@ -1,2 +1,2 @@ --"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var t=require("immer"),r=e(t),n=require("redux"),o=require("reselect"),i=e(require("redux-thunk")),u=function(){var e=o.createSelector.apply(void 0,arguments),r=function(r){for(var n=arguments.length,o=new Array(n>1?n-1:0),i=1;i-1}function O(e){var t,r={},n=[],o={addCase:function(e,t){var n="string"==typeof e?e:e.type;if(n in r)throw new Error("addCase cannot be called with two reducers for the same action type");return r[n]=t,o},addMatcher:function(e,t){return n.push({matcher:e,reducer:t}),o},addDefaultCase:function(e){return t=e,o}};return e(o),[r,n,t]}function j(e,n,o,i){void 0===o&&(o=[]);var u="function"==typeof n?O(n):[n,o,i],a=u[0],c=u[1],f=u[2];return function(n,o){void 0===n&&(n=e);var i=[a[o.type]].concat(c.filter((function(e){return(0,e.matcher)(o)})).map((function(e){return e.reducer})));return 0===i.filter((function(e){return!!e})).length&&(i=[f]),i.reduce((function(e,n){if(n){if(t.isDraft(e)){var i=n(e,o);return void 0===i?e:i}if(t.isDraftable(e))return r(e,(function(e){return n(e,o)}));var u=n(e,o);if(void 0===u){if(null===e)return e;throw Error("A case reducer on a non-draftable value must not return undefined")}return u}return e}),n)}}function A(e){return function(n,o){var i=function(t){!function(e){return y(t=e)&&"string"==typeof t.type&&Object.keys(t).every(g);var t}(o)?e(o,t):e(o.payload,t)};return t.isDraft(n)?(i(n),n):r(n,i)}}function x(e,t){return t(e)}function S(e){function t(t,r){var n=x(t,e);n in r.entities||(r.ids.push(n),r.entities[n]=t)}function r(e,r){Array.isArray(e)||(e=Object.values(e));var n=e,o=Array.isArray(n),i=0;for(n=o?n:n[Symbol.iterator]();;){var u;if(o){if(i>=n.length)break;u=n[i++]}else{if((i=n.next()).done)break;u=i.value}t(u,r)}}function n(e,t){var r=!1;e.forEach((function(e){e in t.entities&&(delete t.entities[e],r=!0)})),r&&(t.ids=t.ids.filter((function(e){return e in t.entities})))}function o(t,r){var n={},o={};t.forEach((function(e){e.id in r.entities&&(o[e.id]={id:e.id,changes:a({},o[e.id]?o[e.id].changes:null,{},e.changes)})})),(t=Object.values(o)).length>0&&t.filter((function(t){return function(t,r,n){var o=Object.assign({},n.entities[r.id],r.changes),i=x(o,e),u=i!==r.id;return u&&(t[r.id]=i,delete n.entities[r.id]),n.entities[i]=o,u}(n,t,r)})).length>0&&(r.ids=r.ids.map((function(e){return n[e]||e})))}function i(t,n){Array.isArray(t)||(t=Object.values(t));var i=[],u=[],a=t,c=Array.isArray(a),f=0;for(a=c?a:a[Symbol.iterator]();;){var s;if(c){if(f>=a.length)break;s=a[f++]}else{if((f=a.next()).done)break;s=f.value}var l=s,d=x(l,e);d in n.entities?u.push({id:d,changes:l}):i.push(l)}o(u,n),r(i,n)}return{removeAll:(u=function(e){Object.assign(e,{ids:[],entities:{}})},c=A((function(e,t){return u(t)})),function(e){return c(e,void 0)}),addOne:A(t),addMany:A(r),setAll:A((function(e,t){Array.isArray(e)||(e=Object.values(e)),t.ids=[],t.entities={},r(e,t)})),updateOne:A((function(e,t){return o([e],t)})),updateMany:A(o),upsertOne:A((function(e,t){return i([e],t)})),upsertMany:A(i),removeOne:A((function(e,t){return n([e],t)})),removeMany:A(n)};var u,c}"undefined"!=typeof Symbol&&(Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator"))),"undefined"!=typeof Symbol&&(Symbol.asyncIterator||(Symbol.asyncIterator=Symbol("Symbol.asyncIterator")));var w=function(e){void 0===e&&(e=21);for(var t="",r=e;r--;)t+="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW"[64*Math.random()|0];return t},E=["name","message","stack","code"],P=function(e){this.payload=e,this.name="RejectWithValue",this.message="Rejected"},_=function(e){if("object"==typeof e&&null!==e){var t={},r=E,n=Array.isArray(r),o=0;for(r=n?r:r[Symbol.iterator]();;){var i;if(n){if(o>=r.length)break;i=r[o++]}else{if((o=r.next()).done)break;i=o.value}"string"==typeof e[i]&&(t[i]=e[i])}return t}return{message:String(e)}},k=function(e,t){return(r=e)&&"function"==typeof r.match?e.match(t):e(t);var r};function I(){for(var e=arguments.length,t=new Array(e),r=0;r-1;return r&&n}function q(e){return"function"==typeof e[0]&&"pending"in e[0]&&"fulfilled"in e[0]&&"rejected"in e[0]}function D(){for(var e=arguments.length,t=new Array(e),r=0;r=a.length)break;s=a[f++]}else{if((f=a.next()).done)break;s=f.value}var l=s,d=x(l,e);d in r.entities?u.push({id:d,changes:l}):i.push(l)}o(u,r),n(i,r)}function u(r,n){r.sort(t),r.forEach((function(t){n.entities[e(t)]=t}));var o=Object.values(n.entities);o.sort(t);var i=o.map(e);(function(e,t){if(e.length!==t.length)return!1;for(var r=0;r",value:t};if("object"!=typeof t||null===t)return!1;var a=null!=o?o(t):Object.entries(t),c=i.length>0,f=a,s=Array.isArray(f),l=0;for(f=s?f:f[Symbol.iterator]();;){var d;if(s){if(l>=f.length)break;d=f[l++]}else{if((l=f.next()).done)break;d=l.value}var p=d[1],y=r.concat(d[0]);if(!(c&&i.indexOf(y.join("."))>=0)){if(!n(p))return{keyPath:y.join("."),value:p};if("object"==typeof p&&(u=e(p,y,n,o,i)))return u}}return!1},exports.getDefaultMiddleware=b,exports.getType=function(e){return""+e},exports.isAllOf=R,exports.isAnyOf=I,exports.isAsyncThunkAction=function e(){for(var t=arguments.length,r=new Array(t),n=0;n=n.length)break;u=n[i++]}else{if((i=n.next()).done)break;u=i.value}t.push(u.pending,u.rejected,u.fulfilled)}return I.apply(void 0,t)(e)}:e()(r[0])},exports.isFulfilled=function e(){for(var t=arguments.length,r=new Array(t),n=0;n1?n-1:0),i=1;i-1}function O(e){var t,r={},n=[],o={addCase:function(e,t){var n="string"==typeof e?e:e.type;if(n in r)throw new Error("addCase cannot be called with two reducers for the same action type");return r[n]=t,o},addMatcher:function(e,t){return n.push({matcher:e,reducer:t}),o},addDefaultCase:function(e){return t=e,o}};return e(o),[r,n,t]}function j(e,n,o,i){void 0===o&&(o=[]);var u="function"==typeof n?O(n):[n,o,i],a=u[0],c=u[1],f=u[2];return function(n,o){void 0===n&&(n=e);var i=[a[o.type]].concat(c.filter((function(e){return(0,e.matcher)(o)})).map((function(e){return e.reducer})));return 0===i.filter((function(e){return!!e})).length&&(i=[f]),i.reduce((function(e,n){if(n){if(t.isDraft(e)){var i=n(e,o);return void 0===i?e:i}if(t.isDraftable(e))return r(e,(function(e){return n(e,o)}));var u=n(e,o);if(void 0===u){if(null===e)return e;throw Error("A case reducer on a non-draftable value must not return undefined")}return u}return e}),n)}}function A(e){return function(n,o){var i=function(t){!function(e){return y(t=e)&&"string"==typeof t.type&&Object.keys(t).every(g);var t}(o)?e(o,t):e(o.payload,t)};return t.isDraft(n)?(i(n),n):r(n,i)}}function x(e,t){return t(e)}function S(e){function t(t,r){var n=x(t,e);n in r.entities||(r.ids.push(n),r.entities[n]=t)}function r(e,r){Array.isArray(e)||(e=Object.values(e));var n=e,o=Array.isArray(n),i=0;for(n=o?n:n[Symbol.iterator]();;){var u;if(o){if(i>=n.length)break;u=n[i++]}else{if((i=n.next()).done)break;u=i.value}t(u,r)}}function n(e,t){var r=!1;e.forEach((function(e){e in t.entities&&(delete t.entities[e],r=!0)})),r&&(t.ids=t.ids.filter((function(e){return e in t.entities})))}function o(t,r){var n={},o={};t.forEach((function(e){e.id in r.entities&&(o[e.id]={id:e.id,changes:a({},o[e.id]?o[e.id].changes:null,{},e.changes)})})),(t=Object.values(o)).length>0&&t.filter((function(t){return function(t,r,n){var o=Object.assign({},n.entities[r.id],r.changes),i=x(o,e),u=i!==r.id;return u&&(t[r.id]=i,delete n.entities[r.id]),n.entities[i]=o,u}(n,t,r)})).length>0&&(r.ids=r.ids.map((function(e){return n[e]||e})))}function i(t,n){Array.isArray(t)||(t=Object.values(t));var i=[],u=[],a=t,c=Array.isArray(a),f=0;for(a=c?a:a[Symbol.iterator]();;){var s;if(c){if(f>=a.length)break;s=a[f++]}else{if((f=a.next()).done)break;s=f.value}var l=s,d=x(l,e);d in n.entities?u.push({id:d,changes:l}):i.push(l)}o(u,n),r(i,n)}return{removeAll:(u=function(e){Object.assign(e,{ids:[],entities:{}})},c=A((function(e,t){return u(t)})),function(e){return c(e,void 0)}),addOne:A(t),addMany:A(r),setAll:A((function(e,t){Array.isArray(e)||(e=Object.values(e)),t.ids=[],t.entities={},r(e,t)})),updateOne:A((function(e,t){return o([e],t)})),updateMany:A(o),upsertOne:A((function(e,t){return i([e],t)})),upsertMany:A(i),removeOne:A((function(e,t){return n([e],t)})),removeMany:A(n)};var u,c}"undefined"!=typeof Symbol&&(Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator"))),"undefined"!=typeof Symbol&&(Symbol.asyncIterator||(Symbol.asyncIterator=Symbol("Symbol.asyncIterator")));var w=function(e){void 0===e&&(e=21);for(var t="",r=e;r--;)t+="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW"[64*Math.random()|0];return t},E=["name","message","stack","code"],P=function(e){this.payload=e,this.name="RejectWithValue",this.message="Rejected"},_=function(e){if("object"==typeof e&&null!==e){var t={},r=E,n=Array.isArray(r),o=0;for(r=n?r:r[Symbol.iterator]();;){var i;if(n){if(o>=r.length)break;i=r[o++]}else{if((o=r.next()).done)break;i=o.value}"string"==typeof e[i]&&(t[i]=e[i])}return t}return{message:String(e)}},k=function(e,t){return(r=e)&&"function"==typeof r.match?e.match(t):e(t);var r};function I(){for(var e=arguments.length,t=new Array(e),r=0;r-1;return r&&n}function q(e){return"function"==typeof e[0]&&"pending"in e[0]&&"fulfilled"in e[0]&&"rejected"in e[0]}function D(){for(var e=arguments.length,t=new Array(e),r=0;r=a.length)break;s=a[f++]}else{if((f=a.next()).done)break;s=f.value}var l=s,d=x(l,e);d in r.entities?u.push({id:d,changes:l}):i.push(l)}o(u,r),n(i,r)}function u(r,n){r.sort(t),r.forEach((function(t){n.entities[e(t)]=t}));var o=Object.values(n.entities);o.sort(t);var i=o.map(e);(function(e,t){if(e.length!==t.length)return!1;for(var r=0;r",value:t};if("object"!=typeof t||null===t)return!1;var a=null!=o?o(t):Object.entries(t),c=i.length>0,f=a,s=Array.isArray(f),l=0;for(f=s?f:f[Symbol.iterator]();;){var d;if(s){if(l>=f.length)break;d=f[l++]}else{if((l=f.next()).done)break;d=l.value}var p=d[1],y=r.concat(d[0]);if(!(c&&i.indexOf(y.join("."))>=0)){if(!n(p))return{keyPath:y.join("."),value:p};if("object"==typeof p&&(u=e(p,y,n,o,i)))return u}}return!1},exports.getDefaultMiddleware=b,exports.getType=function(e){return""+e},exports.isAllOf=R,exports.isAnyOf=I,exports.isAsyncThunkAction=function e(){for(var t=arguments.length,r=new Array(t),n=0;n=n.length)break;u=n[i++]}else{if((i=n.next()).done)break;u=i.value}t.push(u.pending,u.rejected,u.fulfilled)}return I.apply(void 0,t)(e)}:e()(r[0])},exports.isFulfilled=function e(){for(var t=arguments.length,r=new Array(t),n=0;n1?t-1:0),n=1;n3?t.i-4:t.i:Array.isArray(e)?1:f(e)?2:l(e)?3:0}function u(e,t){return 2===i(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function a(e,t,r){var n=i(e);2===n?e.set(t,r):3===n?(e.delete(t),e.add(r)):e[t]=r}function c(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function f(e){return W&&e instanceof Map}function l(e){return F&&e instanceof Set}function s(e){return e.o||e.t}function d(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=L(e);delete t[U];for(var r=V(t),n=0;n1&&(e.set=e.add=e.clear=e.delete=y),Object.freeze(e),t&&o(e,(function(e,t){return p(t,!0)}),!0),e)}function y(){t(2)}function v(e){return null==e||"object"!=typeof e||Object.isFrozen(e)}function h(e){var r=B[e];return r||t(18,e),r}function b(){return M}function g(e,t){t&&(h("Patches"),e.u=[],e.s=[],e.v=t)}function m(e){O(e),e.p.forEach(j),e.p=null}function O(e){e===M&&(M=e.l)}function w(e){return M={p:[],l:M,h:e,m:!0,_:0}}function j(e){var t=e[U];0===t.i||1===t.i?t.j():t.g=!0}function A(e,r){r._=r.p.length;var o=r.p[0],i=void 0!==e&&e!==o;return r.h.O||h("ES5").S(r,e,i),i?(o[U].P&&(m(r),t(4)),n(e)&&(e=P(r,e),r.l||E(r,e)),r.u&&h("Patches").M(o[U],e,r.u,r.s)):e=P(r,o,[]),m(r),r.u&&r.v(r.u,r.s),e!==z?e:void 0}function P(e,t,r){if(v(t))return t;var n=t[U];if(!n)return o(t,(function(o,i){return S(e,n,t,o,i,r)}),!0),t;if(n.A!==e)return t;if(!n.P)return E(e,n.t,!0),n.t;if(!n.I){n.I=!0,n.A._--;var i=4===n.i||5===n.i?n.o=d(n.k):n.o;o(3===n.i?new Set(i):i,(function(t,o){return S(e,n,i,t,o,r)})),E(e,i,!1),r&&e.u&&h("Patches").R(n,r,e.u,e.s)}return n.o}function S(e,t,o,i,c,f){if(r(c)){var l=P(e,c,f&&t&&3!==t.i&&!u(t.D,i)?f.concat(i):void 0);if(a(o,i,l),!r(l))return;e.m=!1}if(n(c)&&!v(c)){if(!e.h.N&&e._<1)return;P(e,c),t&&t.A.l||E(e,c)}}function E(e,t,r){void 0===r&&(r=!1),e.h.N&&e.m&&p(t,r)}function x(e,t){var r=e[U];return(r?s(r):e)[t]}function I(e,t){if(t in e)for(var r=Object.getPrototypeOf(e);r;){var n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Object.getPrototypeOf(r)}}function _(e){e.P||(e.P=!0,e.l&&_(e.l))}function k(e){e.o||(e.o=d(e.t))}function R(e,t,r){var n=f(t)?h("MapSet").T(t,r):l(t)?h("MapSet").F(t,r):e.O?function(e,t){var r=Array.isArray(e),n={i:r?1:0,A:t?t.A:b(),P:!1,I:!1,D:{},l:t,t:e,k:null,o:null,j:null,C:!1},o=n,i=X;r&&(o=[n],i=Y);var u=Proxy.revocable(o,i),a=u.revoke,c=u.proxy;return n.k=c,n.j=a,c}(t,r):h("ES5").J(t,r);return(r?r.A:b()).p.push(n),n}function D(e){return r(e)||t(22,e),function e(t){if(!n(t))return t;var r,u=t[U],c=i(t);if(u){if(!u.P&&(u.i<4||!h("ES5").K(u)))return u.t;u.I=!0,r=N(t,c),u.I=!1}else r=N(t,c);return o(r,(function(t,n){u&&function(e,t){return 2===i(e)?e.get(t):e[t]}(u.t,t)===n||a(r,t,e(n))})),3===c?new Set(r):r}(e)}function N(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return d(e)}var T,M,C="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),W="undefined"!=typeof Map,F="undefined"!=typeof Set,q="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,z=C?Symbol.for("immer-nothing"):((T={})["immer-nothing"]=!0,T),K=C?Symbol.for("immer-draftable"):"__$immer_draftable",U=C?Symbol.for("immer-state"):"__$immer_state",V="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,L=Object.getOwnPropertyDescriptors||function(e){var t={};return V(e).forEach((function(r){t[r]=Object.getOwnPropertyDescriptor(e,r)})),t},B={},X={get:function(e,t){if(t===U)return e;var r=s(e);if(!u(r,t))return function(e,t,r){var n,o=I(t,r);return o?"value"in o?o.value:null===(n=o.get)||void 0===n?void 0:n.call(e.k):void 0}(e,r,t);var o=r[t];return e.I||!n(o)?o:o===x(e.t,t)?(k(e),e.o[t]=R(e.A.h,o,e)):o},has:function(e,t){return t in s(e)},ownKeys:function(e){return Reflect.ownKeys(s(e))},set:function(e,t,r){var n=I(s(e),t);if(null==n?void 0:n.set)return n.set.call(e.k,r),!0;if(!e.P){var o=x(s(e),t),i=null==o?void 0:o[U];if(i&&i.t===r)return e.o[t]=r,e.D[t]=!1,!0;if(c(r,o)&&(void 0!==r||u(e.t,t)))return!0;k(e),_(e)}return e.o[t]=r,e.D[t]=!0,!0},deleteProperty:function(e,t){return void 0!==x(e.t,t)||t in e.t?(e.D[t]=!1,k(e),_(e)):delete e.D[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var r=s(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n?{writable:!0,configurable:1!==e.i||"length"!==t,enumerable:n.enumerable,value:r[t]}:n},defineProperty:function(){t(11)},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){t(12)}},Y={};o(X,(function(e,t){Y[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}})),Y.deleteProperty=function(e,t){return X.deleteProperty.call(this,e[0],t)},Y.set=function(e,t,r){return X.set.call(this,e[0],t,r,e[0])};var J=new(function(){function e(e){this.O=q,this.N=!0,"boolean"==typeof(null==e?void 0:e.useProxies)&&this.setUseProxies(e.useProxies),"boolean"==typeof(null==e?void 0:e.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),this.produce=this.produce.bind(this),this.produceWithPatches=this.produceWithPatches.bind(this)}var o=e.prototype;return o.produce=function(e,r,o){if("function"==typeof e&&"function"!=typeof r){var i=r;r=e;var u=this;return function(e){var t=this;void 0===e&&(e=i);for(var n=arguments.length,o=Array(n>1?n-1:0),a=1;a1?r-1:0),i=1;i=0;n--){var o=t[n];if(0===o.path.length&&"replace"===o.op){e=o.value;break}}var i=h("Patches").$;return r(e)?i(e,t):this.produce(e,(function(e){return i(e,t.slice(n+1))}))},e}()),$=J.produce;J.produceWithPatches.bind(J),J.setAutoFreeze.bind(J),J.setUseProxies.bind(J),J.applyPatches.bind(J),J.createDraft.bind(J),J.finishDraft.bind(J);var G=function(e){var t,r=("undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof module?module:Function("return this")()).Symbol;return"function"==typeof r?r.observable?t=r.observable:(t=r("observable"),r.observable=t):t="@@observable",t}(),H=function(){return Math.random().toString(36).substring(7).split("").join(".")},Q={INIT:"@@redux/INIT"+H(),REPLACE:"@@redux/REPLACE"+H(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+H()}};function Z(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function ee(e,t,r){var n;if("function"==typeof t&&"function"==typeof r||"function"==typeof r&&"function"==typeof arguments[3])throw new Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function.");if("function"==typeof t&&void 0===r&&(r=t,t=void 0),void 0!==r){if("function"!=typeof r)throw new Error("Expected the enhancer to be a function.");return r(ee)(e,t)}if("function"!=typeof e)throw new Error("Expected the reducer to be a function.");var o=e,i=t,u=[],a=u,c=!1;function f(){a===u&&(a=u.slice())}function l(){if(c)throw new Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return i}function s(e){if("function"!=typeof e)throw new Error("Expected the listener to be a function.");if(c)throw new Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribelistener for more details.");var t=!0;return f(),a.push(e),function(){if(t){if(c)throw new Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribelistener for more details.");t=!1,f();var r=a.indexOf(e);a.splice(r,1),u=null}}}function d(e){if(!Z(e))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(c)throw new Error("Reducers may not dispatch actions.");try{c=!0,i=o(i,e)}finally{c=!1}for(var t=u=a,r=0;r1?t-1:0),n=1;n1&&void 0!==arguments[1]?arguments[1]:fe,r=null,n=null;return function(){return le(t,r,arguments)||(n=e.apply(null,arguments)),r=arguments,n}})),pe=function(){var e=de.apply(void 0,arguments),t=function(t){for(var n=arguments.length,o=new Array(n>1?n-1:0),i=1;i-1}function _e(e){var t,r={},n=[],o={addCase:function(e,t){var n="string"==typeof e?e:e.type;if(n in r)throw new Error("addCase cannot be called with two reducers for the same action type");return r[n]=t,o},addMatcher:function(e,t){return n.push({matcher:e,reducer:t}),o},addDefaultCase:function(e){return t=e,o}};return e(o),[r,n,t]}function ke(e,t,o,i){void 0===o&&(o=[]);var u="function"==typeof t?_e(t):[t,o,i],a=u[0],c=u[1],f=u[2];return function(t,o){void 0===t&&(t=e);var i=[a[o.type]].concat(c.filter((function(e){return(0,e.matcher)(o)})).map((function(e){return e.reducer})));return 0===i.filter((function(e){return!!e})).length&&(i=[f]),i.reduce((function(e,t){if(t){if(r(e)){var i=t(e,o);return void 0===i?e:i}if(n(e))return $(e,(function(e){return t(e,o)}));var u=t(e,o);if(void 0===u){if(null===e)return e;throw Error("A case reducer on a non-draftable value must not return undefined")}return u}return e}),t)}}function Re(e){return function(t,n){var o=function(t){!function(e){return we(t=e)&&"string"==typeof t.type&&Object.keys(t).every(Ie);var t}(n)?e(n,t):e(n.payload,t)};return r(t)?(o(t),t):$(t,o)}}function De(e,t){return t(e)}function Ne(e){function t(t,r){var n=De(t,e);n in r.entities||(r.ids.push(n),r.entities[n]=t)}function r(e,r){Array.isArray(e)||(e=Object.values(e));var n=e,o=Array.isArray(n),i=0;for(n=o?n:n[Symbol.iterator]();;){var u;if(o){if(i>=n.length)break;u=n[i++]}else{if((i=n.next()).done)break;u=i.value}t(u,r)}}function n(e,t){var r=!1;e.forEach((function(e){e in t.entities&&(delete t.entities[e],r=!0)})),r&&(t.ids=t.ids.filter((function(e){return e in t.entities})))}function o(t,r){var n={},o={};t.forEach((function(e){e.id in r.entities&&(o[e.id]={id:e.id,changes:ye({},o[e.id]?o[e.id].changes:null,{},e.changes)})})),(t=Object.values(o)).length>0&&t.filter((function(t){return function(t,r,n){var o=Object.assign({},n.entities[r.id],r.changes),i=De(o,e),u=i!==r.id;return u&&(t[r.id]=i,delete n.entities[r.id]),n.entities[i]=o,u}(n,t,r)})).length>0&&(r.ids=r.ids.map((function(e){return n[e]||e})))}function i(t,n){Array.isArray(t)||(t=Object.values(t));var i=[],u=[],a=t,c=Array.isArray(a),f=0;for(a=c?a:a[Symbol.iterator]();;){var l;if(c){if(f>=a.length)break;l=a[f++]}else{if((f=a.next()).done)break;l=f.value}var s=l,d=De(s,e);d in n.entities?u.push({id:d,changes:s}):i.push(s)}o(u,n),r(i,n)}return{removeAll:(u=function(e){Object.assign(e,{ids:[],entities:{}})},a=Re((function(e,t){return u(t)})),function(e){return a(e,void 0)}),addOne:Re(t),addMany:Re(r),setAll:Re((function(e,t){Array.isArray(e)||(e=Object.values(e)),t.ids=[],t.entities={},r(e,t)})),updateOne:Re((function(e,t){return o([e],t)})),updateMany:Re(o),upsertOne:Re((function(e,t){return i([e],t)})),upsertMany:Re(i),removeOne:Re((function(e,t){return n([e],t)})),removeMany:Re(n)};var u,a}"undefined"!=typeof Symbol&&(Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator"))),"undefined"!=typeof Symbol&&(Symbol.asyncIterator||(Symbol.asyncIterator=Symbol("Symbol.asyncIterator")));var Te=function(e){void 0===e&&(e=21);for(var t="",r=e;r--;)t+="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW"[64*Math.random()|0];return t},Me=["name","message","stack","code"],Ce=function(e){this.payload=e,this.name="RejectWithValue",this.message="Rejected"},We=function(e){if("object"==typeof e&&null!==e){var t={},r=Me,n=Array.isArray(r),o=0;for(r=n?r:r[Symbol.iterator]();;){var i;if(n){if(o>=r.length)break;i=r[o++]}else{if((o=r.next()).done)break;i=o.value}"string"==typeof e[i]&&(t[i]=e[i])}return t}return{message:String(e)}},Fe=function(e,t){return function(e){return e&&"function"==typeof e.match}(e)?e.match(t):e(t)};function qe(){for(var e=arguments.length,t=new Array(e),r=0;r-1;return r&&n}function Ue(e){return"function"==typeof e[0]&&"pending"in e[0]&&"fulfilled"in e[0]&&"rejected"in e[0]}function Ve(){for(var e=arguments.length,t=new Array(e),r=0;r=0;t--){var r=e[t][U];if(!r.P)switch(r.i){case 5:i(r)&&_(r);break;case 4:n(r)&&_(r)}}}function n(e){for(var t=e.t,r=e.k,n=V(r),o=n.length-1;o>=0;o--){var i=n[o];if(i!==U){var a=t[i];if(void 0===a&&!u(t,i))return!0;var f=r[i],l=f&&f[U];if(l?l.t!==a:!c(f,a))return!0}}var s=!!t[U];return n.length!==V(t).length+(s?0:1)}function i(e){var t=e.k;if(t.length!==e.t.length)return!0;var r=Object.getOwnPropertyDescriptor(t,t.length-1);return!(!r||r.get)}var a={};!function(e,t){B.ES5||(B.ES5=t)}(0,{J:function(t,r){var n=Array.isArray(t),o=function(t,r){if(t){for(var n=Array(r.length),o=0;o=a.length)break;l=a[f++]}else{if((f=a.next()).done)break;l=f.value}var s=l,d=De(s,e);d in r.entities?u.push({id:d,changes:s}):i.push(s)}o(u,r),n(i,r)}function u(r,n){r.sort(t),r.forEach((function(t){n.entities[e(t)]=t}));var o=Object.values(n.entities);o.sort(t);var i=o.map(e);(function(e,t){if(e.length!==t.length)return!1;for(var r=0;r",value:t};if("object"!=typeof t||null===t)return!1;var a=null!=o?o(t):Object.entries(t),c=i.length>0,f=a,l=Array.isArray(f),s=0;for(f=l?f:f[Symbol.iterator]();;){var d;if(l){if(s>=f.length)break;d=f[s++]}else{if((s=f.next()).done)break;d=s.value}var p=d[1],y=r.concat(d[0]);if(!(c&&i.indexOf(y.join("."))>=0)){if(!n(p))return{keyPath:y.join("."),value:p};if("object"==typeof p&&(u=e(p,y,n,o,i)))return u}}return!1},e.freeze=p,e.getDefaultMiddleware=Ee,e.getType=function(e){return""+e},e.isAllOf=ze,e.isAnyOf=qe,e.isAsyncThunkAction=function e(){for(var t=arguments.length,r=new Array(t),n=0;n=n.length)break;u=n[i++]}else{if((i=n.next()).done)break;u=i.value}t.push(u.pending,u.rejected,u.fulfilled)}return qe.apply(void 0,t)(e)}:e()(r[0])},e.isFulfilled=function e(){for(var t=arguments.length,r=new Array(t),n=0;n1?t-1:0),n=1;n3?t.i-4:t.i:Array.isArray(e)?1:f(e)?2:l(e)?3:0}function u(e,t){return 2===i(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function a(e,t,r){var n=i(e);2===n?e.set(t,r):3===n?(e.delete(t),e.add(r)):e[t]=r}function c(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function f(e){return W&&e instanceof Map}function l(e){return F&&e instanceof Set}function s(e){return e.o||e.t}function d(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=L(e);delete t[U];for(var r=V(t),n=0;n1&&(e.set=e.add=e.clear=e.delete=y),Object.freeze(e),t&&o(e,(function(e,t){return p(t,!0)}),!0),e)}function y(){t(2)}function v(e){return null==e||"object"!=typeof e||Object.isFrozen(e)}function h(e){var r=B[e];return r||t(18,e),r}function b(){return M}function g(e,t){t&&(h("Patches"),e.u=[],e.s=[],e.v=t)}function m(e){O(e),e.p.forEach(j),e.p=null}function O(e){e===M&&(M=e.l)}function w(e){return M={p:[],l:M,h:e,m:!0,_:0}}function j(e){var t=e[U];0===t.i||1===t.i?t.j():t.g=!0}function A(e,r){r._=r.p.length;var o=r.p[0],i=void 0!==e&&e!==o;return r.h.O||h("ES5").S(r,e,i),i?(o[U].P&&(m(r),t(4)),n(e)&&(e=P(r,e),r.l||E(r,e)),r.u&&h("Patches").M(o[U],e,r.u,r.s)):e=P(r,o,[]),m(r),r.u&&r.v(r.u,r.s),e!==z?e:void 0}function P(e,t,r){if(v(t))return t;var n=t[U];if(!n)return o(t,(function(o,i){return S(e,n,t,o,i,r)}),!0),t;if(n.A!==e)return t;if(!n.P)return E(e,n.t,!0),n.t;if(!n.I){n.I=!0,n.A._--;var i=4===n.i||5===n.i?n.o=d(n.k):n.o;o(3===n.i?new Set(i):i,(function(t,o){return S(e,n,i,t,o,r)})),E(e,i,!1),r&&e.u&&h("Patches").R(n,r,e.u,e.s)}return n.o}function S(e,t,o,i,c,f){if(r(c)){var l=P(e,c,f&&t&&3!==t.i&&!u(t.D,i)?f.concat(i):void 0);if(a(o,i,l),!r(l))return;e.m=!1}if(n(c)&&!v(c)){if(!e.h.N&&e._<1)return;P(e,c),t&&t.A.l||E(e,c)}}function E(e,t,r){void 0===r&&(r=!1),e.h.N&&e.m&&p(t,r)}function x(e,t){var r=e[U];return(r?s(r):e)[t]}function I(e,t){if(t in e)for(var r=Object.getPrototypeOf(e);r;){var n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Object.getPrototypeOf(r)}}function _(e){e.P||(e.P=!0,e.l&&_(e.l))}function k(e){e.o||(e.o=d(e.t))}function R(e,t,r){var n=f(t)?h("MapSet").T(t,r):l(t)?h("MapSet").F(t,r):e.O?function(e,t){var r=Array.isArray(e),n={i:r?1:0,A:t?t.A:b(),P:!1,I:!1,D:{},l:t,t:e,k:null,o:null,j:null,C:!1},o=n,i=X;r&&(o=[n],i=Y);var u=Proxy.revocable(o,i),a=u.revoke,c=u.proxy;return n.k=c,n.j=a,c}(t,r):h("ES5").J(t,r);return(r?r.A:b()).p.push(n),n}function D(e){return r(e)||t(22,e),function e(t){if(!n(t))return t;var r,u=t[U],c=i(t);if(u){if(!u.P&&(u.i<4||!h("ES5").K(u)))return u.t;u.I=!0,r=N(t,c),u.I=!1}else r=N(t,c);return o(r,(function(t,n){u&&function(e,t){return 2===i(e)?e.get(t):e[t]}(u.t,t)===n||a(r,t,e(n))})),3===c?new Set(r):r}(e)}function N(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return d(e)}var T,M,C="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),W="undefined"!=typeof Map,F="undefined"!=typeof Set,q="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,z=C?Symbol.for("immer-nothing"):((T={})["immer-nothing"]=!0,T),K=C?Symbol.for("immer-draftable"):"__$immer_draftable",U=C?Symbol.for("immer-state"):"__$immer_state",V="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,L=Object.getOwnPropertyDescriptors||function(e){var t={};return V(e).forEach((function(r){t[r]=Object.getOwnPropertyDescriptor(e,r)})),t},B={},X={get:function(e,t){if(t===U)return e;var r=s(e);if(!u(r,t))return function(e,t,r){var n,o=I(t,r);return o?"value"in o?o.value:null===(n=o.get)||void 0===n?void 0:n.call(e.k):void 0}(e,r,t);var o=r[t];return e.I||!n(o)?o:o===x(e.t,t)?(k(e),e.o[t]=R(e.A.h,o,e)):o},has:function(e,t){return t in s(e)},ownKeys:function(e){return Reflect.ownKeys(s(e))},set:function(e,t,r){var n=I(s(e),t);if(null==n?void 0:n.set)return n.set.call(e.k,r),!0;if(!e.P){var o=x(s(e),t),i=null==o?void 0:o[U];if(i&&i.t===r)return e.o[t]=r,e.D[t]=!1,!0;if(c(r,o)&&(void 0!==r||u(e.t,t)))return!0;k(e),_(e)}return e.o[t]=r,e.D[t]=!0,!0},deleteProperty:function(e,t){return void 0!==x(e.t,t)||t in e.t?(e.D[t]=!1,k(e),_(e)):delete e.D[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var r=s(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n?{writable:!0,configurable:1!==e.i||"length"!==t,enumerable:n.enumerable,value:r[t]}:n},defineProperty:function(){t(11)},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){t(12)}},Y={};o(X,(function(e,t){Y[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}})),Y.deleteProperty=function(e,t){return X.deleteProperty.call(this,e[0],t)},Y.set=function(e,t,r){return X.set.call(this,e[0],t,r,e[0])};var J=new(function(){function e(e){this.O=q,this.N=!0,"boolean"==typeof(null==e?void 0:e.useProxies)&&this.setUseProxies(e.useProxies),"boolean"==typeof(null==e?void 0:e.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),this.produce=this.produce.bind(this),this.produceWithPatches=this.produceWithPatches.bind(this)}var o=e.prototype;return o.produce=function(e,r,o){if("function"==typeof e&&"function"!=typeof r){var i=r;r=e;var u=this;return function(e){var t=this;void 0===e&&(e=i);for(var n=arguments.length,o=Array(n>1?n-1:0),a=1;a1?r-1:0),i=1;i=0;n--){var o=t[n];if(0===o.path.length&&"replace"===o.op){e=o.value;break}}var i=h("Patches").$;return r(e)?i(e,t):this.produce(e,(function(e){return i(e,t.slice(n+1))}))},e}()),$=J.produce;J.produceWithPatches.bind(J),J.setAutoFreeze.bind(J),J.setUseProxies.bind(J),J.applyPatches.bind(J),J.createDraft.bind(J),J.finishDraft.bind(J);var G=function(e){var t,r=("undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof module?module:Function("return this")()).Symbol;return"function"==typeof r?r.observable?t=r.observable:(t=r("observable"),r.observable=t):t="@@observable",t}(),H=function(){return Math.random().toString(36).substring(7).split("").join(".")},Q={INIT:"@@redux/INIT"+H(),REPLACE:"@@redux/REPLACE"+H(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+H()}};function Z(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function ee(e,t,r){var n;if("function"==typeof t&&"function"==typeof r||"function"==typeof r&&"function"==typeof arguments[3])throw new Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function.");if("function"==typeof t&&void 0===r&&(r=t,t=void 0),void 0!==r){if("function"!=typeof r)throw new Error("Expected the enhancer to be a function.");return r(ee)(e,t)}if("function"!=typeof e)throw new Error("Expected the reducer to be a function.");var o=e,i=t,u=[],a=u,c=!1;function f(){a===u&&(a=u.slice())}function l(){if(c)throw new Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return i}function s(e){if("function"!=typeof e)throw new Error("Expected the listener to be a function.");if(c)throw new Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribelistener for more details.");var t=!0;return f(),a.push(e),function(){if(t){if(c)throw new Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribelistener for more details.");t=!1,f();var r=a.indexOf(e);a.splice(r,1),u=null}}}function d(e){if(!Z(e))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(c)throw new Error("Reducers may not dispatch actions.");try{c=!0,i=o(i,e)}finally{c=!1}for(var t=u=a,r=0;r1?t-1:0),n=1;n1&&void 0!==arguments[1]?arguments[1]:fe,r=null,n=null;return function(){return le(t,r,arguments)||(n=e.apply(null,arguments)),r=arguments,n}})),pe=function(){var e=de.apply(void 0,arguments),t=function(t){for(var n=arguments.length,o=new Array(n>1?n-1:0),i=1;i-1}function _e(e){var t,r={},n=[],o={addCase:function(e,t){var n="string"==typeof e?e:e.type;if(n in r)throw new Error("addCase cannot be called with two reducers for the same action type");return r[n]=t,o},addMatcher:function(e,t){return n.push({matcher:e,reducer:t}),o},addDefaultCase:function(e){return t=e,o}};return e(o),[r,n,t]}function ke(e,t,o,i){void 0===o&&(o=[]);var u="function"==typeof t?_e(t):[t,o,i],a=u[0],c=u[1],f=u[2];return function(t,o){void 0===t&&(t=e);var i=[a[o.type]].concat(c.filter((function(e){return(0,e.matcher)(o)})).map((function(e){return e.reducer})));return 0===i.filter((function(e){return!!e})).length&&(i=[f]),i.reduce((function(e,t){if(t){if(r(e)){var i=t(e,o);return void 0===i?e:i}if(n(e))return $(e,(function(e){return t(e,o)}));var u=t(e,o);if(void 0===u){if(null===e)return e;throw Error("A case reducer on a non-draftable value must not return undefined")}return u}return e}),t)}}function Re(e){return function(t,n){var o=function(t){!function(e){return we(t=e)&&"string"==typeof t.type&&Object.keys(t).every(Ie);var t}(n)?e(n,t):e(n.payload,t)};return r(t)?(o(t),t):$(t,o)}}function De(e,t){return t(e)}function Ne(e){function t(t,r){var n=De(t,e);n in r.entities||(r.ids.push(n),r.entities[n]=t)}function r(e,r){Array.isArray(e)||(e=Object.values(e));var n=e,o=Array.isArray(n),i=0;for(n=o?n:n[Symbol.iterator]();;){var u;if(o){if(i>=n.length)break;u=n[i++]}else{if((i=n.next()).done)break;u=i.value}t(u,r)}}function n(e,t){var r=!1;e.forEach((function(e){e in t.entities&&(delete t.entities[e],r=!0)})),r&&(t.ids=t.ids.filter((function(e){return e in t.entities})))}function o(t,r){var n={},o={};t.forEach((function(e){e.id in r.entities&&(o[e.id]={id:e.id,changes:ye({},o[e.id]?o[e.id].changes:null,{},e.changes)})})),(t=Object.values(o)).length>0&&t.filter((function(t){return function(t,r,n){var o=Object.assign({},n.entities[r.id],r.changes),i=De(o,e),u=i!==r.id;return u&&(t[r.id]=i,delete n.entities[r.id]),n.entities[i]=o,u}(n,t,r)})).length>0&&(r.ids=r.ids.map((function(e){return n[e]||e})))}function i(t,n){Array.isArray(t)||(t=Object.values(t));var i=[],u=[],a=t,c=Array.isArray(a),f=0;for(a=c?a:a[Symbol.iterator]();;){var l;if(c){if(f>=a.length)break;l=a[f++]}else{if((f=a.next()).done)break;l=f.value}var s=l,d=De(s,e);d in n.entities?u.push({id:d,changes:s}):i.push(s)}o(u,n),r(i,n)}return{removeAll:(u=function(e){Object.assign(e,{ids:[],entities:{}})},a=Re((function(e,t){return u(t)})),function(e){return a(e,void 0)}),addOne:Re(t),addMany:Re(r),setAll:Re((function(e,t){Array.isArray(e)||(e=Object.values(e)),t.ids=[],t.entities={},r(e,t)})),updateOne:Re((function(e,t){return o([e],t)})),updateMany:Re(o),upsertOne:Re((function(e,t){return i([e],t)})),upsertMany:Re(i),removeOne:Re((function(e,t){return n([e],t)})),removeMany:Re(n)};var u,a}"undefined"!=typeof Symbol&&(Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator"))),"undefined"!=typeof Symbol&&(Symbol.asyncIterator||(Symbol.asyncIterator=Symbol("Symbol.asyncIterator")));var Te=function(e){void 0===e&&(e=21);for(var t="",r=e;r--;)t+="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW"[64*Math.random()|0];return t},Me=["name","message","stack","code"],Ce=function(e){this.payload=e,this.name="RejectWithValue",this.message="Rejected"},We=function(e){if("object"==typeof e&&null!==e){var t={},r=Me,n=Array.isArray(r),o=0;for(r=n?r:r[Symbol.iterator]();;){var i;if(n){if(o>=r.length)break;i=r[o++]}else{if((o=r.next()).done)break;i=o.value}"string"==typeof e[i]&&(t[i]=e[i])}return t}return{message:String(e)}},Fe=function(e,t){return function(e){return e&&"function"==typeof e.match}(e)?e.match(t):e(t)};function qe(){for(var e=arguments.length,t=new Array(e),r=0;r-1;return r&&n}function Ue(e){return"function"==typeof e[0]&&"pending"in e[0]&&"fulfilled"in e[0]&&"rejected"in e[0]}function Ve(){for(var e=arguments.length,t=new Array(e),r=0;r=0;t--){var r=e[t][U];if(!r.P)switch(r.i){case 5:i(r)&&_(r);break;case 4:n(r)&&_(r)}}}function n(e){for(var t=e.t,r=e.k,n=V(r),o=n.length-1;o>=0;o--){var i=n[o];if(i!==U){var a=t[i];if(void 0===a&&!u(t,i))return!0;var f=r[i],l=f&&f[U];if(l?l.t!==a:!c(f,a))return!0}}var s=!!t[U];return n.length!==V(t).length+(s?0:1)}function i(e){var t=e.k;if(t.length!==e.t.length)return!0;var r=Object.getOwnPropertyDescriptor(t,t.length-1);return!(!r||r.get)}var a={};!function(e,t){B.ES5||(B.ES5=t)}(0,{J:function(t,r){var n=Array.isArray(t),o=function(t,r){if(t){for(var n=Array(r.length),o=0;o=a.length)break;l=a[f++]}else{if((f=a.next()).done)break;l=f.value}var s=l,d=De(s,e);d in r.entities?u.push({id:d,changes:s}):i.push(s)}o(u,r),n(i,r)}function u(r,n){r.sort(t),r.forEach((function(t){n.entities[e(t)]=t}));var o=Object.values(n.entities);o.sort(t);var i=o.map(e);(function(e,t){if(e.length!==t.length)return!1;for(var r=0;r",value:t};if("object"!=typeof t||null===t)return!1;var a=null!=o?o(t):Object.entries(t),c=i.length>0,f=a,l=Array.isArray(f),s=0;for(f=l?f:f[Symbol.iterator]();;){var d;if(l){if(s>=f.length)break;d=f[s++]}else{if((s=f.next()).done)break;d=s.value}var p=d[1],y=r.concat(d[0]);if(!(c&&i.indexOf(y.join("."))>=0)){if(!n(p))return{keyPath:y.join("."),value:p};if("object"==typeof p&&(u=e(p,y,n,o,i)))return u}}return!1},e.freeze=p,e.getDefaultMiddleware=Ee,e.getType=function(e){return""+e},e.isAllOf=ze,e.isAnyOf=qe,e.isAsyncThunkAction=function e(){for(var t=arguments.length,r=new Array(t),n=0;n=n.length)break;u=n[i++]}else{if((i=n.next()).done)break;u=i.value}t.push(u.pending,u.rejected,u.fulfilled)}return qe.apply(void 0,t)(e)}:e()(r[0])},e.isFulfilled=function e(){for(var t=arguments.length,r=new Array(t),n=0;n Date: Fri, 8 Oct 2021 12:18:38 -0500 Subject: [PATCH 04/10] use improved-yarn-audit and exclude 1002401 and 1002581 (#12310) * use improved-yarn-audit and exclude 1002401 --- .circleci/scripts/yarn-audit.sh | 4 +++- .depcheckrc.yml | 1 + package.json | 1 + yarn.lock | 5 +++++ 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/.circleci/scripts/yarn-audit.sh b/.circleci/scripts/yarn-audit.sh index ebe036815..717b5f456 100755 --- a/.circleci/scripts/yarn-audit.sh +++ b/.circleci/scripts/yarn-audit.sh @@ -3,7 +3,9 @@ set -u set -o pipefail -yarn audit --level moderate --groups dependencies +# use `improved-yarn-audit` since that allows for exclude +# exclude 1002401 until we remove use of 3Box, 1002581 until we can find a better solution +yarn run improved-yarn-audit --ignore-dev-deps --min-severity moderate --exclude 1002401,1002581 audit_status="$?" # Use a bitmask to ignore INFO and LOW severity audit results diff --git a/.depcheckrc.yml b/.depcheckrc.yml index 70214b911..c99ca2f85 100644 --- a/.depcheckrc.yml +++ b/.depcheckrc.yml @@ -29,6 +29,7 @@ ignores: - "source-map-explorer" # development tool - "yarn-deduplicate" + - "improved-yarn-audit" # storybook - "@storybook/core" - "@storybook/addon-backgrounds" diff --git a/package.json b/package.json index a8debb551..adc1f6cc9 100644 --- a/package.json +++ b/package.json @@ -283,6 +283,7 @@ "gulp-watch": "^5.0.1", "gulp-zip": "^4.0.0", "history": "^5.0.0", + "improved-yarn-audit": "^2.3.3", "jest": "^26.6.3", "jsdom": "^11.2.0", "koa": "^2.7.0", diff --git a/yarn.lock b/yarn.lock index 9ddad44b1..7b3c9b8b0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14621,6 +14621,11 @@ import-local@^3.0.2: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" +improved-yarn-audit@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/improved-yarn-audit/-/improved-yarn-audit-2.3.3.tgz#da0be78be4b678c73733066c9ccd21e1958fae8c" + integrity sha512-chZ7zPKGsA+CZeMExNPf9WZhETJLkC+u8cQlkQC9XyPZqQPctn3FavefTjXBXmX3Azin8WcoAbaok1FvjkLf6A== + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" From ff20a999e04b7f28d9a6f05a5a60ed70296682bf Mon Sep 17 00:00:00 2001 From: MetaMask Bot Date: Fri, 8 Oct 2021 21:45:18 +0000 Subject: [PATCH 05/10] Version v10.2.1 --- CHANGELOG.md | 10 +++++++++- package.json | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 11482cc3e..7d9dd8194 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [10.2.1] +### Uncategorized +- use improved-yarn-audit and exclude 1002401 and 1002581 ([#12310](https://github.com/MetaMask/metamask-extension/pull/12310)) +- Update `immer` from v8 to v9 ([#12303](https://github.com/MetaMask/metamask-extension/pull/12303)) +- Do case-insensitive comparisons of token addresses in view-quote and build-quote ([#12315](https://github.com/MetaMask/metamask-extension/pull/12315)) +- Restoring mobile sync warning text ([#12284](https://github.com/MetaMask/metamask-extension/pull/12284)) + ## [10.2.0] ### Added - [#12066](https://github.com/MetaMask/metamask-extension/pull/12066): Enable token conversion rates for primary currencies on some non-Mainnet networks @@ -2489,7 +2496,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Uncategorized - Added the ability to restore accounts from seed words. -[Unreleased]: https://github.com/MetaMask/metamask-extension/compare/v10.2.0...HEAD +[Unreleased]: https://github.com/MetaMask/metamask-extension/compare/v10.2.1...HEAD +[10.2.1]: https://github.com/MetaMask/metamask-extension/compare/v10.2.0...v10.2.1 [10.2.0]: https://github.com/MetaMask/metamask-extension/compare/v10.1.1...v10.2.0 [10.1.1]: https://github.com/MetaMask/metamask-extension/compare/v10.1.0...v10.1.1 [10.1.0]: https://github.com/MetaMask/metamask-extension/compare/v10.0.3...v10.1.0 diff --git a/package.json b/package.json index adc1f6cc9..3cfdee9d3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "metamask-crx", - "version": "10.2.0", + "version": "10.2.1", "private": true, "repository": { "type": "git", From f0111770bac8426d8aaccccbaaded820981b2827 Mon Sep 17 00:00:00 2001 From: ryanml Date: Fri, 8 Oct 2021 14:57:40 -0700 Subject: [PATCH 06/10] [skip e2e] Updating v10.2.1 changelog (#12318) --- CHANGELOG.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d9dd8194..3d593da66 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,11 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] ## [10.2.1] -### Uncategorized -- use improved-yarn-audit and exclude 1002401 and 1002581 ([#12310](https://github.com/MetaMask/metamask-extension/pull/12310)) -- Update `immer` from v8 to v9 ([#12303](https://github.com/MetaMask/metamask-extension/pull/12303)) -- Do case-insensitive comparisons of token addresses in view-quote and build-quote ([#12315](https://github.com/MetaMask/metamask-extension/pull/12315)) -- Restoring mobile sync warning text ([#12284](https://github.com/MetaMask/metamask-extension/pull/12284)) +### Fixed +- [#12315](https://github.com/MetaMask/metamask-extension/pull/12315): Fix ERC-20 token swaps +- [#12284](https://github.com/MetaMask/metamask-extension/pull/12284): Restoring notice regarding mobile sync status to sync page ## [10.2.0] ### Added From 25901380c1e44c8cb9cc7bbfcd1ef54c1fb084df Mon Sep 17 00:00:00 2001 From: Niranjana Binoy <43930900+NiranjanaBinoy@users.noreply.github.com> Date: Fri, 8 Oct 2021 12:20:08 -0400 Subject: [PATCH 07/10] removing the icronUrl in tokens fron the state.json for fixtures (#12309) --- test/e2e/fixtures/imported-account/state.json | 32 +++++++++---------- .../fixtures/navigate-transactions/state.json | 32 +++++++++---------- test/jest/mock-store.js | 8 ++--- 3 files changed, 35 insertions(+), 37 deletions(-) diff --git a/test/e2e/fixtures/imported-account/state.json b/test/e2e/fixtures/imported-account/state.json index edb463d87..42f5a7a54 100644 --- a/test/e2e/fixtures/imported-account/state.json +++ b/test/e2e/fixtures/imported-account/state.json @@ -95,7 +95,7 @@ "symbol": "LRC", "decimals": 18, "name": "Loopring", - "iconUrl": "https://airswap-token-images.s3.amazonaws.com/LRC.png", + "iconUrl": "", "aggregators": [ "airswapLight", "bancor", @@ -117,7 +117,7 @@ "symbol": "UMA", "decimals": 18, "name": "UMA", - "iconUrl": "https://assets.coingecko.com/coins/images/10951/thumb/UMA.png?1586307916", + "iconUrl": "", "aggregators": [ "bancor", "cmc", @@ -138,7 +138,7 @@ "symbol": "SUSHI", "decimals": 18, "name": "SushiSwap", - "iconUrl": "https://assets.coingecko.com/coins/images/12271/thumb/512x512_Logo_no_chop.png?1606986688", + "iconUrl": "", "aggregators": [ "bancor", "cmc", @@ -159,7 +159,7 @@ "symbol": "CRV", "decimals": 18, "name": "Curve DAO Token", - "iconUrl": "https://assets.coingecko.com/coins/images/12124/thumb/Curve.png?1597369484", + "iconUrl": "", "aggregators": [ "bancor", "cmc", @@ -180,7 +180,7 @@ "symbol": "COMP", "decimals": 18, "name": "Compound", - "iconUrl": "https://assets.coingecko.com/coins/images/10775/thumb/COMP.png?1592625425", + "iconUrl": "", "aggregators": [ "bancor", "cmc", @@ -201,7 +201,7 @@ "symbol": "BAL", "decimals": 18, "name": "Balancer", - "iconUrl": "https://assets.coingecko.com/coins/images/11683/thumb/Balancer.png?1592792958", + "iconUrl": "", "aggregators": [ "bancor", "cmc", @@ -222,7 +222,7 @@ "symbol": "MATIC", "decimals": 18, "name": "Polygon", - "iconUrl": "https://raw.githubusercontent.com/MetaMask/eth-contract-metadata/master/images/matic-network-logo.svg", + "iconUrl": "", "aggregators": [ "airswapLight", "bancor", @@ -243,7 +243,7 @@ "symbol": "BAT", "decimals": 18, "name": "Basic Attention Tok", - "iconUrl": "https://s3.amazonaws.com/airswap-token-images/BAT.png", + "iconUrl": "", "aggregators": [ "airswapLight", "bancor", @@ -269,7 +269,7 @@ "symbol": "LRC", "decimals": 18, "name": "Loopring", - "iconUrl": "https://airswap-token-images.s3.amazonaws.com/LRC.png", + "iconUrl": "", "aggregators": [ "airswapLight", "bancor", @@ -291,7 +291,7 @@ "symbol": "UMA", "decimals": 18, "name": "UMA", - "iconUrl": "https://assets.coingecko.com/coins/images/10951/thumb/UMA.png?1586307916", + "iconUrl": "", "aggregators": [ "bancor", "cmc", @@ -312,7 +312,7 @@ "symbol": "SUSHI", "decimals": 18, "name": "SushiSwap", - "iconUrl": "https://assets.coingecko.com/coins/images/12271/thumb/512x512_Logo_no_chop.png?1606986688", + "iconUrl": "", "aggregators": [ "bancor", "cmc", @@ -333,7 +333,7 @@ "symbol": "CRV", "decimals": 18, "name": "Curve DAO Token", - "iconUrl": "https://assets.coingecko.com/coins/images/12124/thumb/Curve.png?1597369484", + "iconUrl": "", "aggregators": [ "bancor", "cmc", @@ -354,7 +354,7 @@ "symbol": "COMP", "decimals": 18, "name": "Compound", - "iconUrl": "https://assets.coingecko.com/coins/images/10775/thumb/COMP.png?1592625425", + "iconUrl": "", "aggregators": [ "bancor", "cmc", @@ -375,7 +375,7 @@ "symbol": "BAL", "decimals": 18, "name": "Balancer", - "iconUrl": "https://assets.coingecko.com/coins/images/11683/thumb/Balancer.png?1592792958", + "iconUrl": "", "aggregators": [ "bancor", "cmc", @@ -396,7 +396,7 @@ "symbol": "MATIC", "decimals": 18, "name": "Polygon", - "iconUrl": "https://raw.githubusercontent.com/MetaMask/eth-contract-metadata/master/images/matic-network-logo.svg", + "iconUrl": "", "aggregators": [ "airswapLight", "bancor", @@ -417,7 +417,7 @@ "symbol": "BAT", "decimals": 18, "name": "Basic Attention Tok", - "iconUrl": "https://s3.amazonaws.com/airswap-token-images/BAT.png", + "iconUrl": "", "aggregators": [ "airswapLight", "bancor", diff --git a/test/e2e/fixtures/navigate-transactions/state.json b/test/e2e/fixtures/navigate-transactions/state.json index 988098e68..3f08971b0 100644 --- a/test/e2e/fixtures/navigate-transactions/state.json +++ b/test/e2e/fixtures/navigate-transactions/state.json @@ -95,7 +95,7 @@ "symbol": "LRC", "decimals": 18, "name": "Loopring", - "iconUrl": "https://airswap-token-images.s3.amazonaws.com/LRC.png", + "iconUrl": "", "aggregators": [ "airswapLight", "bancor", @@ -117,7 +117,7 @@ "symbol": "UMA", "decimals": 18, "name": "UMA", - "iconUrl": "https://assets.coingecko.com/coins/images/10951/thumb/UMA.png?1586307916", + "iconUrl": "", "aggregators": [ "bancor", "cmc", @@ -138,7 +138,7 @@ "symbol": "SUSHI", "decimals": 18, "name": "SushiSwap", - "iconUrl": "https://assets.coingecko.com/coins/images/12271/thumb/512x512_Logo_no_chop.png?1606986688", + "iconUrl": "", "aggregators": [ "bancor", "cmc", @@ -159,7 +159,7 @@ "symbol": "CRV", "decimals": 18, "name": "Curve DAO Token", - "iconUrl": "https://assets.coingecko.com/coins/images/12124/thumb/Curve.png?1597369484", + "iconUrl": "", "aggregators": [ "bancor", "cmc", @@ -180,7 +180,7 @@ "symbol": "COMP", "decimals": 18, "name": "Compound", - "iconUrl": "https://assets.coingecko.com/coins/images/10775/thumb/COMP.png?1592625425", + "iconUrl": "", "aggregators": [ "bancor", "cmc", @@ -201,7 +201,7 @@ "symbol": "BAL", "decimals": 18, "name": "Balancer", - "iconUrl": "https://assets.coingecko.com/coins/images/11683/thumb/Balancer.png?1592792958", + "iconUrl": "", "aggregators": [ "bancor", "cmc", @@ -222,7 +222,7 @@ "symbol": "MATIC", "decimals": 18, "name": "Polygon", - "iconUrl": "https://raw.githubusercontent.com/MetaMask/eth-contract-metadata/master/images/matic-network-logo.svg", + "iconUrl": "", "aggregators": [ "airswapLight", "bancor", @@ -243,7 +243,7 @@ "symbol": "BAT", "decimals": 18, "name": "Basic Attention Tok", - "iconUrl": "https://s3.amazonaws.com/airswap-token-images/BAT.png", + "iconUrl": "", "aggregators": [ "airswapLight", "bancor", @@ -269,7 +269,7 @@ "symbol": "LRC", "decimals": 18, "name": "Loopring", - "iconUrl": "https://airswap-token-images.s3.amazonaws.com/LRC.png", + "iconUrl": "", "aggregators": [ "airswapLight", "bancor", @@ -291,7 +291,7 @@ "symbol": "UMA", "decimals": 18, "name": "UMA", - "iconUrl": "https://assets.coingecko.com/coins/images/10951/thumb/UMA.png?1586307916", + "iconUrl": "", "aggregators": [ "bancor", "cmc", @@ -312,7 +312,7 @@ "symbol": "SUSHI", "decimals": 18, "name": "SushiSwap", - "iconUrl": "https://assets.coingecko.com/coins/images/12271/thumb/512x512_Logo_no_chop.png?1606986688", + "iconUrl": "", "aggregators": [ "bancor", "cmc", @@ -333,7 +333,7 @@ "symbol": "CRV", "decimals": 18, "name": "Curve DAO Token", - "iconUrl": "https://assets.coingecko.com/coins/images/12124/thumb/Curve.png?1597369484", + "iconUrl": "", "aggregators": [ "bancor", "cmc", @@ -354,7 +354,7 @@ "symbol": "COMP", "decimals": 18, "name": "Compound", - "iconUrl": "https://assets.coingecko.com/coins/images/10775/thumb/COMP.png?1592625425", + "iconUrl": "", "aggregators": [ "bancor", "cmc", @@ -375,7 +375,7 @@ "symbol": "BAL", "decimals": 18, "name": "Balancer", - "iconUrl": "https://assets.coingecko.com/coins/images/11683/thumb/Balancer.png?1592792958", + "iconUrl": "", "aggregators": [ "bancor", "cmc", @@ -396,7 +396,7 @@ "symbol": "MATIC", "decimals": 18, "name": "Polygon", - "iconUrl": "https://raw.githubusercontent.com/MetaMask/eth-contract-metadata/master/images/matic-network-logo.svg", + "iconUrl": "", "aggregators": [ "airswapLight", "bancor", @@ -417,7 +417,7 @@ "symbol": "BAT", "decimals": 18, "name": "Basic Attention Tok", - "iconUrl": "https://s3.amazonaws.com/airswap-token-images/BAT.png", + "iconUrl": "", "aggregators": [ "airswapLight", "bancor", diff --git a/test/jest/mock-store.js b/test/jest/mock-store.js index a23d7ad35..3d397a52c 100644 --- a/test/jest/mock-store.js +++ b/test/jest/mock-store.js @@ -230,8 +230,7 @@ export const createSwapsMockStore = () => { symbol: 'UNI', decimals: 18, name: 'Uniswap', - iconUrl: - 'https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984/logo.png', + iconUrl: '', aggregators: [ 'airswapLight', 'bancor', @@ -253,7 +252,7 @@ export const createSwapsMockStore = () => { symbol: 'LINK', decimals: 18, name: 'Chainlink', - iconUrl: 'https://s3.amazonaws.com/airswap-token-images/LINK.png', + iconUrl: '', aggregators: [ 'airswapLight', 'bancor', @@ -275,8 +274,7 @@ export const createSwapsMockStore = () => { symbol: 'SUSHI', decimals: 18, name: 'SushiSwap', - iconUrl: - 'https://assets.coingecko.com/coins/images/12271/thumb/512x512_Logo_no_chop.png?1606986688', + iconUrl: '', aggregators: [ 'bancor', 'cmc', From bd05a3e1deafb9d16224e65ae31357d259ae3f3a Mon Sep 17 00:00:00 2001 From: Jean P <10632523+TamtamHero@users.noreply.github.com> Date: Sat, 9 Oct 2021 19:30:46 +0200 Subject: [PATCH 08/10] Update warning message when Ledger app has contract data/blind signing setting disabled (#12256) --- app/_locales/en/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/_locales/en/messages.json b/app/_locales/en/messages.json index 2d382d25c..e892f5040 100644 --- a/app/_locales/en/messages.json +++ b/app/_locales/en/messages.json @@ -1229,7 +1229,7 @@ "message": "Prior to clicking confirm:" }, "ledgerLiveDialogStepFour": { - "message": "Enable smart contract data on your Ledger device" + "message": "Enable \"smart contract data\" or \"blind signing\" on your Ledger device" }, "ledgerLiveDialogStepOne": { "message": "Enable Use Ledger Live under Settings > Advanced" From 6ae261e7b0bac06568f6c5e3d5221634c79c58df Mon Sep 17 00:00:00 2001 From: MetaMask Bot Date: Sat, 9 Oct 2021 17:35:41 +0000 Subject: [PATCH 09/10] Version v10.2.2 --- CHANGELOG.md | 13 ++++++++++++- package.json | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d593da66..631c98815 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [10.2.2] +### Uncategorized +- Update warning message when Ledger app has contract data/blind signing setting disabled ([#12256](https://github.com/MetaMask/metamask-extension/pull/12256)) +- removing the icronUrl in tokens fron the state.json for fixtures ([#12309](https://github.com/MetaMask/metamask-extension/pull/12309)) +- Version v10.2.1 RC ([#12317](https://github.com/MetaMask/metamask-extension/pull/12317)) +- [skip e2e] Updating v10.2.1 changelog ([#12318](https://github.com/MetaMask/metamask-extension/pull/12318)) +- Version v10.2.1 +- use improved-yarn-audit and exclude 1002401 and 1002581 ([#12310](https://github.com/MetaMask/metamask-extension/pull/12310)) +- Update `immer` from v8 to v9 ([#12303](https://github.com/MetaMask/metamask-extension/pull/12303)) + ## [10.2.1] ### Fixed - [#12315](https://github.com/MetaMask/metamask-extension/pull/12315): Fix ERC-20 token swaps @@ -2494,7 +2504,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Uncategorized - Added the ability to restore accounts from seed words. -[Unreleased]: https://github.com/MetaMask/metamask-extension/compare/v10.2.1...HEAD +[Unreleased]: https://github.com/MetaMask/metamask-extension/compare/v10.2.2...HEAD +[10.2.2]: https://github.com/MetaMask/metamask-extension/compare/v10.2.1...v10.2.2 [10.2.1]: https://github.com/MetaMask/metamask-extension/compare/v10.2.0...v10.2.1 [10.2.0]: https://github.com/MetaMask/metamask-extension/compare/v10.1.1...v10.2.0 [10.1.1]: https://github.com/MetaMask/metamask-extension/compare/v10.1.0...v10.1.1 diff --git a/package.json b/package.json index 3cfdee9d3..3dc9c235d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "metamask-crx", - "version": "10.2.1", + "version": "10.2.2", "private": true, "repository": { "type": "git", From b61d7700c8a8d1d40253fe884d4e1660d4a8c0ee Mon Sep 17 00:00:00 2001 From: ryanml Date: Sat, 9 Oct 2021 10:40:33 -0700 Subject: [PATCH 10/10] Updating changelog --- CHANGELOG.md | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 631c98815..41ddfdf69 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,14 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] ## [10.2.2] -### Uncategorized -- Update warning message when Ledger app has contract data/blind signing setting disabled ([#12256](https://github.com/MetaMask/metamask-extension/pull/12256)) -- removing the icronUrl in tokens fron the state.json for fixtures ([#12309](https://github.com/MetaMask/metamask-extension/pull/12309)) -- Version v10.2.1 RC ([#12317](https://github.com/MetaMask/metamask-extension/pull/12317)) -- [skip e2e] Updating v10.2.1 changelog ([#12318](https://github.com/MetaMask/metamask-extension/pull/12318)) -- Version v10.2.1 -- use improved-yarn-audit and exclude 1002401 and 1002581 ([#12310](https://github.com/MetaMask/metamask-extension/pull/12310)) -- Update `immer` from v8 to v9 ([#12303](https://github.com/MetaMask/metamask-extension/pull/12303)) +### Changed +- [#12256](https://github.com/MetaMask/metamask-extension/pull/12256): Updating instruction step when Ledger app has contract data or blind signing setting disabled ## [10.2.1] ### Fixed