diff --git a/app/_locales/en/messages.json b/app/_locales/en/messages.json index 657bf2004..9e3bda041 100644 --- a/app/_locales/en/messages.json +++ b/app/_locales/en/messages.json @@ -240,6 +240,25 @@ "basic": { "message": "Basic" }, + "betaMetamaskDescription": { + "message": "Trusted by millions, MetaMask is a secure wallet making the world of web3 accessible to all." + }, + "betaMetamaskDescriptionExplanation": { + "message": "Use this version to test upcoming features before they’re released. Your use and feedback helps us build the best version of MetaMask possible. Your use of MetaMask Beta is subject to our standard $1 as well as our $2. As a Beta, there may be an increased risk of bugs. By proceeding, you accept and acknowledge these risks, as well as those risks found in our Terms and Beta Terms.", + "description": "$1 represents localization item betaMetamaskDescriptionExplanationTermsLinkText. $2 represents localization item betaMetamaskDescriptionExplanationBetaTermsLinkText" + }, + "betaMetamaskDescriptionExplanationBetaTermsLinkText": { + "message": "Supplemental Beta Terms" + }, + "betaMetamaskDescriptionExplanationTermsLinkText": { + "message": "Terms" + }, + "betaMetamaskVersion": { + "message": "MetaMask Beta Version" + }, + "betaWelcome": { + "message": "Welcome to MetaMask Beta" + }, "blockExplorerUrl": { "message": "Block Explorer URL" }, @@ -1328,9 +1347,15 @@ "message": "Need help? Contact $1", "description": "$1 represents `needHelpLinkText`, the text which goes in the help link" }, + "needHelpFeedback": { + "message": "Share your Feedback" + }, "needHelpLinkText": { "message": "MetaMask Support" }, + "needHelpSubmitTicket": { + "message": "Submit a Ticket" + }, "needImportFile": { "message": "You must select a file to import.", "description": "User is important an account and needs to add a file to continue" diff --git a/app/build-types/beta/beta-mascot.json b/app/build-types/beta/beta-mascot.json new file mode 100644 index 000000000..5f922a57e --- /dev/null +++ b/app/build-types/beta/beta-mascot.json @@ -0,0 +1,337 @@ +{ + "chunks": [ + { + "color": [0, 0, 0], + "faces": [ + [11, 12, 13], + [36, 15, 37], + [37, 38, 36], + [31, 39, 22], + [22, 21, 31], + [31, 15, 36], + [36, 39, 31], + [64, 65, 66], + [75, 69, 26], + [26, 80, 75], + [75, 80, 38], + [38, 37, 75], + [38, 80, 39], + [39, 36, 38], + [39, 80, 26], + [26, 22, 39] + ] + }, + { + "color": [236, 229, 220], + "faces": [ + [19, 20, 21], + [21, 22, 19], + [20, 19, 23], + [23, 24, 20], + [23, 25, 24], + [19, 22, 26], + [26, 27, 19], + [23, 28, 29], + [23, 29, 30], + [25, 23, 30], + [21, 20, 24], + [24, 31, 21], + [24, 25, 30], + [29, 51, 52], + [52, 30, 29], + [27, 26, 69], + [69, 70, 27], + [70, 71, 72], + [72, 27, 70], + [72, 71, 73], + [51, 74, 72], + [52, 51, 72], + [73, 52, 72], + [69, 71, 70], + [71, 69, 75], + [52, 73, 71], + [19, 27, 74], + [74, 28, 19], + [51, 29, 28], + [28, 74, 51], + [74, 27, 72], + [28, 23, 19] + ] + }, + { + "color": [119, 228, 171], + "faces": [ + [5, 4, 35], + [57, 59, 79] + ] + }, + { + "color": [80, 157, 116], + "faces": [ + [4, 5, 2], + [2, 5, 6], + [57, 56, 55], + [58, 59, 55], + [2, 1, 4], + [55, 59, 57] + ] + }, + { + "color": [67, 127, 95], + "faces": [ + [0, 1, 2], + [2, 3, 0], + [6, 3, 2], + [7, 8, 9], + [10, 3, 6], + [10, 50, 7], + [7, 3, 10], + [7, 9, 3], + [49, 0, 9], + [3, 9, 0], + [53, 54, 55], + [55, 56, 53], + [55, 54, 58], + [60, 61, 62], + [63, 58, 54], + [63, 60, 89], + [60, 63, 54], + [60, 54, 61], + [88, 61, 53], + [54, 53, 61] + ] + }, + { + "color": [119, 228, 207], + "faces": [ + [59, 5, 35], + [35, 79, 59] + ] + }, + { + "color": [163, 230, 235], + "faces": [ + [14, 15, 11], + [11, 16, 14], + [16, 13, 12], + [17, 33, 10], + [17, 18, 34], + [34, 33, 17], + [11, 15, 31], + [18, 12, 11], + [41, 64, 37], + [64, 41, 40], + [66, 65, 40], + [67, 63, 77], + [67, 77, 76], + [76, 68, 67], + [75, 37, 64], + [68, 64, 66] + ] + }, + { + "color": [204, 237, 236], + "faces": [ + [10, 6, 17], + [31, 18, 11], + [14, 16, 40], + [40, 41, 14], + [63, 67, 58], + [64, 68, 75], + [14, 41, 37], + [37, 15, 14], + [5, 59, 40], + [40, 16, 5] + ] + }, + { + "color": [207, 248, 247], + "faces": [ + [6, 5, 16], + [16, 17, 6], + [12, 17, 16], + [58, 67, 40], + [40, 59, 58], + [40, 67, 66] + ] + }, + { + "color": [127, 185, 228], + "faces": [ + [33, 34, 24], + [71, 76, 77] + ] + }, + { + "color": [119, 200, 228], + "faces": [ + [31, 24, 18], + [24, 34, 18], + [35, 4, 42], + [4, 1, 42], + [42, 43, 44], + [44, 35, 42], + [45, 43, 42], + [42, 10, 45], + [30, 32, 24], + [30, 33, 32], + [33, 30, 10], + [44, 43, 46], + [43, 45, 47], + [47, 46, 43], + [48, 47, 45], + [45, 30, 48], + [30, 45, 10], + [49, 42, 0], + [8, 7, 42], + [50, 42, 7], + [50, 10, 42], + [1, 0, 42], + [42, 9, 8], + [42, 49, 9], + [75, 68, 71], + [71, 68, 76], + [79, 81, 57], + [57, 81, 56], + [82, 79, 35], + [35, 44, 82], + [81, 79, 82], + [82, 83, 81], + [84, 63, 81], + [81, 83, 84], + [44, 46, 85], + [85, 82, 44], + [71, 78, 52], + [52, 78, 77], + [77, 63, 52], + [82, 85, 83], + [83, 85, 86], + [86, 84, 83], + [87, 52, 84], + [84, 86, 87], + [52, 63, 84], + [88, 53, 81], + [62, 81, 60], + [89, 60, 81], + [89, 81, 63], + [56, 81, 53], + [81, 62, 61], + [81, 61, 88], + [48, 87, 86], + [86, 47, 48], + [47, 86, 85], + [85, 46, 47], + [48, 30, 52], + [52, 87, 48] + ] + }, + { + "color": [95, 167, 211], + "faces": [ + [24, 32, 33], + [77, 78, 71] + ] + }, + { + "color": [119, 222, 228], + "faces": [ + [17, 12, 18], + [13, 16, 11], + [67, 68, 66], + [65, 64, 40] + ] + } + ], + "positions": [ + [111.024597, 52.604599, 46.225899], + [114.025002, 87.673302, 58.9818], + [66.192001, 80.898003, 55.394299], + [72.113297, 35.491798, 30.871401], + [97.804497, 116.560997, 73.978798], + [16.7623, 58.010899, 58.078201], + [52.608898, 30.3641, 42.556099], + [106.881401, 31.945499, 46.9133], + [113.484596, 38.6049, 49.121498], + [108.6633, 43.2332, 46.315399], + [101.216599, 15.9822, 46.308201], + [16.6605, -16.2883, 93.618698], + [40.775002, -10.2288, 85.276398], + [23.926901, -2.5103, 86.736504], + [11.1691, -7.0037, 99.377602], + [9.5692, -34.393902, 141.671997], + [12.596, 7.1655, 88.740997], + [61.180901, 8.8142, 76.996803], + [39.719501, -28.927099, 88.963799], + [13.7962, -68.575699, 132.057007], + [15.2674, -62.32, 129.688004], + [14.8446, -52.6096, 140.113007], + [12.8917, -49.771599, 144.740997], + [35.604198, -71.758003, 81.063904], + [47.462502, -68.606102, 63.369701], + [38.2486, -64.730202, 38.909901], + [-12.8917, -49.771599, 144.740997], + [-13.7962, -68.575699, 132.057007], + [17.802099, -71.758003, 81.063904], + [19.1243, -69.0168, 49.420101], + [38.2486, -66.275597, 17.776199], + [12.8928, -36.703499, 141.671997], + [109.283997, -93.589897, 27.824301], + [122.117996, -36.8894, 35.025002], + [67.7668, -30.197001, 78.417801], + [33.180698, 101.851997, 25.3186], + [9.4063, -35.589802, 150.722], + [-9.5692, -34.393902, 141.671997], + [-9.4063, -35.589802, 150.722], + [11.4565, -37.899399, 150.722], + [-12.596, 7.1655, 88.740997], + [-11.1691, -7.0037, 99.377602], + [70.236504, 62.836201, -3.9475], + [47.263401, 54.293999, -27.414801], + [28.7302, 91.731102, -24.972601], + [69.167603, 6.5862, -12.7757], + [28.7302, 49.1003, -48.3596], + [31.903, 5.692, -47.821999], + [35.075802, -34.432899, -16.280899], + [115.284103, 48.681499, 48.684101], + [110.842796, 28.4821, 49.176201], + [-19.1243, -69.0168, 49.420101], + [-38.2486, -66.275597, 17.776199], + [-111.024597, 52.604599, 46.225899], + [-72.113297, 35.491798, 30.871401], + [-66.192001, 80.898003, 55.394299], + [-114.025002, 87.673302, 58.9818], + [-97.804497, 116.560997, 73.978798], + [-52.608898, 30.3641, 42.556099], + [-16.7623, 58.010899, 58.078201], + [-106.881401, 31.945499, 46.9133], + [-108.6633, 43.2332, 46.315399], + [-113.484596, 38.6049, 49.121498], + [-101.216599, 15.9822, 46.308201], + [-16.6605, -16.2883, 93.618698], + [-23.926901, -2.5103, 86.736504], + [-40.775002, -10.2288, 85.276398], + [-61.180901, 8.8142, 76.996803], + [-39.719501, -28.927099, 88.963799], + [-14.8446, -52.6096, 140.113007], + [-15.2674, -62.32, 129.688004], + [-47.462502, -68.606102, 63.369701], + [-35.604198, -71.758003, 81.063904], + [-38.2486, -64.730202, 38.909901], + [-17.802099, -71.758003, 81.063904], + [-12.8928, -36.703499, 141.671997], + [-67.7668, -30.197001, 78.417801], + [-122.117996, -36.8894, 35.025002], + [-109.283997, -93.589897, 27.824301], + [-33.180698, 101.851997, 25.3186], + [-11.4565, -37.899399, 150.722], + [-70.236504, 62.836201, -3.9475], + [-28.7302, 91.731102, -24.972601], + [-47.263401, 54.293999, -27.414801], + [-69.167603, 6.5862, -12.7757], + [-28.7302, 49.1003, -48.3596], + [-31.903, 5.692, -47.821999], + [-35.075802, -34.432899, -16.280899], + [-115.284103, 48.681499, 48.684101], + [-110.842796, 28.4821, 49.176201] + ] +} diff --git a/app/build-types/beta/icon-128.png b/app/build-types/beta/icon-128.png new file mode 100644 index 000000000..97762ff99 Binary files /dev/null and b/app/build-types/beta/icon-128.png differ diff --git a/app/build-types/beta/icon-16.png b/app/build-types/beta/icon-16.png new file mode 100644 index 000000000..216b4ad06 Binary files /dev/null and b/app/build-types/beta/icon-16.png differ diff --git a/app/build-types/beta/icon-19.png b/app/build-types/beta/icon-19.png new file mode 100644 index 000000000..f7da09c5e Binary files /dev/null and b/app/build-types/beta/icon-19.png differ diff --git a/app/build-types/beta/icon-32.png b/app/build-types/beta/icon-32.png new file mode 100644 index 000000000..fb2a55a57 Binary files /dev/null and b/app/build-types/beta/icon-32.png differ diff --git a/app/build-types/beta/icon-38.png b/app/build-types/beta/icon-38.png new file mode 100644 index 000000000..e9449d4d0 Binary files /dev/null and b/app/build-types/beta/icon-38.png differ diff --git a/app/build-types/beta/icon-48.png b/app/build-types/beta/icon-48.png new file mode 100644 index 000000000..0fdfeb25c Binary files /dev/null and b/app/build-types/beta/icon-48.png differ diff --git a/app/build-types/beta/icon-512.png b/app/build-types/beta/icon-512.png new file mode 100644 index 000000000..09690ab1b Binary files /dev/null and b/app/build-types/beta/icon-512.png differ diff --git a/app/build-types/beta/icon-64.png b/app/build-types/beta/icon-64.png new file mode 100644 index 000000000..b60b7d5d5 Binary files /dev/null and b/app/build-types/beta/icon-64.png differ diff --git a/app/build-types/beta/info-logo.png b/app/build-types/beta/info-logo.png new file mode 100644 index 000000000..97762ff99 Binary files /dev/null and b/app/build-types/beta/info-logo.png differ diff --git a/app/build-types/beta/logo/metamask-fox.svg b/app/build-types/beta/logo/metamask-fox.svg new file mode 100644 index 000000000..53698aefd --- /dev/null +++ b/app/build-types/beta/logo/metamask-fox.svg @@ -0,0 +1,130 @@ + diff --git a/app/build-types/beta/logo/metamask-logo-horizontal-dark.svg b/app/build-types/beta/logo/metamask-logo-horizontal-dark.svg new file mode 100644 index 000000000..3155a5149 --- /dev/null +++ b/app/build-types/beta/logo/metamask-logo-horizontal-dark.svg @@ -0,0 +1,148 @@ + diff --git a/app/build-types/beta/logo/metamask-logo-horizontal.svg b/app/build-types/beta/logo/metamask-logo-horizontal.svg new file mode 100644 index 000000000..43a44eb0e --- /dev/null +++ b/app/build-types/beta/logo/metamask-logo-horizontal.svg @@ -0,0 +1,148 @@ + diff --git a/app/images/mascot.json b/app/images/mascot.json new file mode 100644 index 000000000..319c10fb4 --- /dev/null +++ b/app/images/mascot.json @@ -0,0 +1,322 @@ +{ + "chunks": [ + { + "color": [246, 133, 27], + "faces": [ + [17, 33, 10], + [17, 18, 34], + [34, 33, 17], + [10, 6, 17], + [11, 15, 31], + [31, 18, 11], + [18, 12, 11], + [14, 16, 40], + [40, 41, 14], + [59, 5, 35], + [35, 79, 59], + [67, 63, 77], + [67, 77, 76], + [76, 68, 67], + [63, 67, 58], + [64, 68, 75], + [75, 37, 64], + [68, 64, 66], + [14, 41, 37], + [37, 15, 14], + [5, 59, 40], + [40, 16, 5] + ] + }, + { + "color": [228, 118, 27], + "faces": [ + [31, 24, 18], + [6, 5, 16], + [16, 17, 6], + [24, 32, 33], + [33, 34, 24], + [5, 4, 35], + [75, 68, 71], + [58, 67, 40], + [40, 59, 58], + [71, 76, 77], + [77, 78, 71] + ] + }, + { + "color": [118, 61, 22], + "faces": [ + [0, 1, 2], + [2, 3, 0], + [4, 5, 2], + [6, 3, 2], + [2, 5, 6], + [7, 8, 9], + [10, 3, 6], + [10, 50, 7], + [7, 3, 10], + [7, 9, 3], + [49, 0, 9], + [3, 9, 0], + [53, 54, 55], + [55, 56, 53], + [57, 56, 55], + [58, 59, 55], + [55, 54, 58], + [60, 61, 62], + [63, 58, 54], + [63, 60, 89], + [60, 63, 54], + [60, 54, 61], + [88, 61, 53], + [54, 53, 61], + [2, 1, 4], + [55, 59, 57] + ] + }, + { + "color": [22, 22, 22], + "faces": [ + [36, 15, 37], + [37, 38, 36], + [31, 39, 22], + [22, 21, 31], + [31, 15, 36], + [36, 39, 31], + [75, 69, 26], + [26, 80, 75], + [75, 80, 38], + [38, 37, 75], + [38, 80, 39], + [39, 36, 38], + [39, 80, 26], + [26, 22, 39] + ] + }, + { + "color": [215, 193, 179], + "faces": [ + [21, 20, 24], + [24, 31, 21], + [69, 71, 70], + [71, 69, 75] + ] + }, + { + "color": [192, 173, 158], + "faces": [ + [19, 20, 21], + [21, 22, 19], + [20, 19, 23], + [23, 24, 20], + [23, 25, 24], + [19, 22, 26], + [26, 27, 19], + [23, 28, 29], + [23, 29, 30], + [25, 23, 30], + [29, 51, 52], + [52, 30, 29], + [27, 26, 69], + [69, 70, 27], + [70, 71, 72], + [72, 27, 70], + [72, 71, 73], + [51, 74, 72], + [52, 51, 72], + [73, 52, 72], + [19, 27, 74], + [74, 28, 19], + [51, 29, 28], + [28, 74, 51], + [74, 27, 72], + [28, 23, 19] + ] + }, + { + "color": [205, 97, 22], + "faces": [ + [24, 34, 18], + [16, 13, 12], + [12, 17, 16], + [13, 16, 11], + [71, 68, 76], + [40, 67, 66], + [66, 65, 40], + [65, 64, 40] + ] + }, + { + "color": [35, 52, 71], + "faces": [ + [11, 12, 13], + [64, 65, 66] + ] + }, + { + "color": [228, 117, 31], + "faces": [ + [14, 15, 11], + [11, 16, 14], + [17, 12, 18], + [41, 64, 37], + [67, 68, 66] + ] + }, + { + "color": [226, 118, 27], + "faces": [ + [35, 4, 42], + [4, 1, 42], + [42, 43, 44], + [44, 35, 42], + [45, 43, 42], + [42, 10, 45], + [30, 32, 24], + [24, 25, 30], + [30, 33, 32], + [33, 30, 10], + [44, 43, 46], + [43, 45, 47], + [47, 46, 43], + [48, 47, 45], + [45, 30, 48], + [30, 45, 10], + [49, 42, 0], + [8, 7, 42], + [50, 42, 7], + [50, 10, 42], + [1, 0, 42], + [42, 9, 8], + [42, 49, 9], + [64, 41, 40], + [57, 59, 79], + [79, 81, 57], + [57, 81, 56], + [82, 79, 35], + [35, 44, 82], + [81, 79, 82], + [82, 83, 81], + [84, 63, 81], + [81, 83, 84], + [44, 46, 85], + [85, 82, 44], + [52, 73, 71], + [71, 78, 52], + [52, 78, 77], + [77, 63, 52], + [82, 85, 83], + [83, 85, 86], + [86, 84, 83], + [87, 52, 84], + [84, 86, 87], + [52, 63, 84], + [88, 53, 81], + [62, 81, 60], + [89, 60, 81], + [89, 81, 63], + [56, 81, 53], + [81, 62, 61], + [81, 61, 88], + [48, 87, 86], + [86, 47, 48], + [47, 86, 85], + [85, 46, 47], + [48, 30, 52], + [52, 87, 48] + ] + } + ], + "positions": [ + [111.0246, 52.6046, 46.2259], + [114.025, 87.6733, 58.9818], + [66.192, 80.898, 55.3943], + [72.1133, 35.4918, 30.8714], + [97.8045, 116.561, 73.9788], + [16.7623, 58.0109, 58.0782], + [52.6089, 30.3641, 42.5561], + [106.8814, 31.9455, 46.9133], + [113.4846, 38.6049, 49.1215], + [108.6633, 43.2332, 46.3154], + [101.2166, 15.9822, 46.3082], + [16.6605, -16.2883, 93.6187], + [40.775, -10.2288, 85.2764], + [23.9269, -2.5103, 86.7365], + [11.1691, -7.0037, 99.3776], + [9.5692, -34.3939, 141.672], + [12.596, 7.1655, 88.741], + [61.1809, 8.8142, 76.9968], + [39.7195, -28.9271, 88.9638], + [13.7962, -68.5757, 132.057], + [15.2674, -62.32, 129.688], + [14.8446, -52.6096, 140.113], + [12.8917, -49.7716, 144.741], + [35.6042, -71.758, 81.0639], + [47.4625, -68.6061, 63.3697], + [38.2486, -64.7302, 38.9099], + [-12.8917, -49.7716, 144.741], + [-13.7962, -68.5757, 132.057], + [17.8021, -71.758, 81.0639], + [19.1243, -69.0168, 49.4201], + [38.2486, -66.2756, 17.7762], + [12.8928, -36.7035, 141.672], + [109.284, -93.5899, 27.8243], + [122.118, -36.8894, 35.025], + [67.7668, -30.197, 78.4178], + [33.1807, 101.852, 25.3186], + [9.4063, -35.5898, 150.722], + [-9.5692, -34.3939, 141.672], + [-9.4063, -35.5898, 150.722], + [11.4565, -37.8994, 150.722], + [-12.596, 7.1655, 88.741], + [-11.1691, -7.0037, 99.3776], + [70.2365, 62.8362, -3.9475], + [47.2634, 54.294, -27.4148], + [28.7302, 91.7311, -24.9726], + [69.1676, 6.5862, -12.7757], + [28.7302, 49.1003, -48.3596], + [31.903, 5.692, -47.822], + [35.0758, -34.4329, -16.2809], + [115.2841, 48.6815, 48.6841], + [110.8428, 28.4821, 49.1762], + [-19.1243, -69.0168, 49.4201], + [-38.2486, -66.2756, 17.7762], + [-111.0246, 52.6046, 46.2259], + [-72.1133, 35.4918, 30.8714], + [-66.192, 80.898, 55.3943], + [-114.025, 87.6733, 58.9818], + [-97.8045, 116.561, 73.9788], + [-52.6089, 30.3641, 42.5561], + [-16.7623, 58.0109, 58.0782], + [-106.8814, 31.9455, 46.9133], + [-108.6633, 43.2332, 46.3154], + [-113.4846, 38.6049, 49.1215], + [-101.2166, 15.9822, 46.3082], + [-16.6605, -16.2883, 93.6187], + [-23.9269, -2.5103, 86.7365], + [-40.775, -10.2288, 85.2764], + [-61.1809, 8.8142, 76.9968], + [-39.7195, -28.9271, 88.9638], + [-14.8446, -52.6096, 140.113], + [-15.2674, -62.32, 129.688], + [-47.4625, -68.6061, 63.3697], + [-35.6042, -71.758, 81.0639], + [-38.2486, -64.7302, 38.9099], + [-17.8021, -71.758, 81.0639], + [-12.8928, -36.7035, 141.672], + [-67.7668, -30.197, 78.4178], + [-122.118, -36.8894, 35.025], + [-109.284, -93.5899, 27.8243], + [-33.1807, 101.852, 25.3186], + [-11.4565, -37.8994, 150.722], + [-70.2365, 62.8362, -3.9475], + [-28.7302, 91.7311, -24.9726], + [-47.2634, 54.294, -27.4148], + [-69.1676, 6.5862, -12.7757], + [-28.7302, 49.1003, -48.3596], + [-31.903, 5.692, -47.822], + [-35.0758, -34.4329, -16.2809], + [-115.2841, 48.6815, 48.6841], + [-110.8428, 28.4821, 49.1762] + ] +} diff --git a/app/manifest/_beta_modifications.json b/app/manifest/_beta_modifications.json new file mode 100644 index 000000000..a505eb7f4 --- /dev/null +++ b/app/manifest/_beta_modifications.json @@ -0,0 +1,27 @@ +{ + "browser_action": { + "default_icon": { + "16": "images/icon-16.png", + "19": "images/icon-19.png", + "32": "images/icon-32.png", + "38": "images/icon-38.png", + "64": "images/icon-64.png", + "128": "images/icon-128.png", + "512": "images/icon-512.png" + }, + "default_title": "MetaMask Beta" + }, + "icons": { + "16": "images/icon-16.png", + "19": "images/icon-19.png", + "32": "images/icon-32.png", + "38": "images/icon-38.png", + "48": "images/icon-48.png", + "64": "images/icon-64.png", + "128": "images/icon-128.png", + "512": "images/icon-512.png" + }, + "name": "__MSG_appName__ Beta", + "short_name": "__MSG_appName__ Beta", + "version": "" +} diff --git a/development/build/etc.js b/development/build/etc.js index 754a64f78..b64cb51bb 100644 --- a/development/build/etc.js +++ b/development/build/etc.js @@ -9,7 +9,12 @@ const { createTask, composeParallel } = require('./task'); module.exports = createEtcTasks; -function createEtcTasks({ browserPlatforms, livereload }) { +function createEtcTasks({ + browserPlatforms, + livereload, + isBeta, + betaVersionsMap, +}) { const clean = createTask('clean', async function clean() { await del(['./dist/*']); await Promise.all( @@ -27,18 +32,23 @@ function createEtcTasks({ browserPlatforms, livereload }) { const zip = createTask( 'zip', composeParallel( - ...browserPlatforms.map((platform) => createZipTask(platform)), + ...browserPlatforms.map((platform) => + createZipTask(platform, isBeta ? betaVersionsMap[platform] : undefined), + ), ), ); return { clean, reload, zip }; } -function createZipTask(target) { +function createZipTask(platform, betaVersion) { return async () => { + const path = betaVersion + ? `metamask-BETA-${platform}-${betaVersion}` + : `metamask-${platform}-${version}`; await pump( - gulp.src(`dist/${target}/**`), - gulpZip(`metamask-${target}-${version}.zip`), + gulp.src(`dist/${platform}/**`), + gulpZip(`${path}.zip`), gulp.dest('builds'), ); }; diff --git a/development/build/index.js b/development/build/index.js index 452b6bce0..8c682644e 100755 --- a/development/build/index.js +++ b/development/build/index.js @@ -4,6 +4,7 @@ // run any task with "yarn build ${taskName}" // const livereload = require('gulp-livereload'); +const { version } = require('../../package.json'); const { createTask, composeSeries, @@ -15,6 +16,7 @@ const createScriptTasks = require('./scripts'); const createStyleTasks = require('./styles'); const createStaticAssetTasks = require('./static'); const createEtcTasks = require('./etc'); +const { getNextBetaVersionMap } = require('./utils'); // packages required dynamically via browserify configuration in dependencies require('loose-envify'); @@ -34,17 +36,31 @@ defineAllTasks(); detectAndRunEntryTask(); function defineAllTasks() { + const IS_BETA = process.env.BUILD_TYPE === 'beta'; + const BETA_VERSIONS_MAP = getNextBetaVersionMap(version, browserPlatforms); + const staticTasks = createStaticAssetTasks({ livereload, browserPlatforms, shouldIncludeLockdown, + isBeta: IS_BETA, + }); + const manifestTasks = createManifestTasks({ + browserPlatforms, + isBeta: IS_BETA, + betaVersionsMap: BETA_VERSIONS_MAP, }); - const manifestTasks = createManifestTasks({ browserPlatforms }); const styleTasks = createStyleTasks({ livereload }); - const scriptTasks = createScriptTasks({ livereload, browserPlatforms }); + const scriptTasks = createScriptTasks({ + livereload, + browserPlatforms, + }); + const { clean, reload, zip } = createEtcTasks({ livereload, browserPlatforms, + isBeta: IS_BETA, + betaVersionsMap: BETA_VERSIONS_MAP, }); // build for development (livereload) diff --git a/development/build/manifest.js b/development/build/manifest.js index 09df35cbd..679119a26 100644 --- a/development/build/manifest.js +++ b/development/build/manifest.js @@ -4,12 +4,17 @@ const { merge, cloneDeep } = require('lodash'); const baseManifest = require('../../app/manifest/_base.json'); const { version } = require('../../package.json'); +const betaManifestModifications = require('../../app/manifest/_beta_modifications.json'); const { createTask, composeSeries } = require('./task'); module.exports = createManifestTasks; -function createManifestTasks({ browserPlatforms }) { +function createManifestTasks({ + browserPlatforms, + isBeta = false, + betaVersionsMap = {}, +}) { // merge base manifest with per-platform manifests const prepPlatforms = async () => { return Promise.all( @@ -26,8 +31,10 @@ function createManifestTasks({ browserPlatforms }) { ); const result = merge( cloneDeep(baseManifest), - { version }, platformModifications, + isBeta + ? getBetaModifications(platform, betaVersionsMap) + : { version }, ); const dir = path.join('.', 'dist', platform); await fs.mkdir(dir, { recursive: true }); @@ -105,3 +112,13 @@ async function readJson(file) { async function writeJson(obj, file) { return fs.writeFile(file, JSON.stringify(obj, null, 2)); } + +function getBetaModifications(platform, betaVersionsMap) { + const betaVersion = betaVersionsMap[platform]; + + return { + ...betaManifestModifications, + version: betaVersion, + ...(platform === 'firefox' ? {} : { version_name: 'beta' }), + }; +} diff --git a/development/build/scripts.js b/development/build/scripts.js index f21737a1d..396fff821 100644 --- a/development/build/scripts.js +++ b/development/build/scripts.js @@ -37,6 +37,7 @@ const metamaskrc = require('rc')('metamask', { const { streamFlatMap } = require('../stream-flat-map.js'); const { version } = require('../../package.json'); + const { createTask, composeParallel, @@ -548,6 +549,7 @@ function getEnvironmentVariables({ devMode, testing }) { METAMASK_DEBUG: devMode, METAMASK_ENVIRONMENT: environment, METAMASK_VERSION: version, + METAMASK_BUILD_TYPE: process.env.BUILD_TYPE || 'main', NODE_ENV: devMode ? 'development' : 'production', IN_TEST: testing ? 'true' : false, PUBNUB_SUB_KEY: process.env.PUBNUB_SUB_KEY || '', diff --git a/development/build/static.js b/development/build/static.js index ed7e9290a..341b7d56b 100644 --- a/development/build/static.js +++ b/development/build/static.js @@ -13,15 +13,26 @@ module.exports = function createStaticAssetTasks({ livereload, browserPlatforms, shouldIncludeLockdown = true, + isBeta, }) { const [copyTargetsProd, copyTargetsDev] = getCopyTargets( shouldIncludeLockdown, ); + const copyTargetsBeta = [ + ...copyTargetsProd, + { + src: './app/build-types/beta/', + dest: `images`, + }, + ]; + + const targets = isBeta ? copyTargetsBeta : copyTargetsProd; + const prod = createTask( 'static:prod', composeSeries( - ...copyTargetsProd.map((target) => { + ...targets.map((target) => { return async function copyStaticAssets() { await performCopy(target); }; diff --git a/development/build/utils.js b/development/build/utils.js new file mode 100644 index 000000000..4c020142f --- /dev/null +++ b/development/build/utils.js @@ -0,0 +1,25 @@ +// Returns an object with browser as key and next version of beta +// as the value. Ex: { firefox: '9.6.0.beta0', chrome: '9.6.0.1' } +function getNextBetaVersionMap(currentVersion, platforms) { + // `yarn beta 3` would create version 9.x.x.3 + const [, premajor = '0'] = process.argv.slice(2); + const [major, minor] = currentVersion.split('.'); + + return platforms.reduce((platformMap, platform) => { + platformMap[platform] = [ + // Keeps the current major + major, + // Bump the minor version + Number(minor) + 1, + // This isn't typically used + 0, + // The beta number + `${platform === 'firefox' ? 'beta' : ''}${premajor}`, + ].join('.'); + return platformMap; + }, {}); +} + +module.exports = { + getNextBetaVersionMap, +}; diff --git a/package.json b/package.json index 626ee32f7..2731e652f 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "start": "yarn build:dev dev", "start:lavamoat": "yarn build dev", "dist": "yarn build prod", + "beta": "BUILD_TYPE=beta yarn build prod", "build": "lavamoat development/build/index.js", "build:dev": "node development/build/index.js", "start:test": "yarn build testDev", @@ -109,7 +110,7 @@ "@metamask/eth-token-tracker": "^3.0.1", "@metamask/etherscan-link": "^2.1.0", "@metamask/jazzicon": "^2.0.0", - "@metamask/logo": "^2.5.0", + "@metamask/logo": "^3.0.1", "@metamask/obs-store": "^5.0.0", "@metamask/post-message-stream": "^4.0.0", "@metamask/providers": "^8.1.1", diff --git a/ui/components/app/account-menu/account-menu.component.js b/ui/components/app/account-menu/account-menu.component.js index aec8decfb..41c809be8 100644 --- a/ui/components/app/account-menu/account-menu.component.js +++ b/ui/components/app/account-menu/account-menu.component.js @@ -20,6 +20,8 @@ import { import TextField from '../../ui/text-field'; import SearchIcon from '../../ui/search-icon'; +import { isBeta } from '../../../helpers/utils/build-types'; + export function AccountMenuItem(props) { const { icon, children, text, subText, className, onClick } = props; @@ -310,6 +312,13 @@ export default class AccountMenu extends Component { return null; } + let supportText = t('support'); + let supportLink = 'https://support.metamask.io'; + if (isBeta()) { + supportText = t('needHelpSubmitTicket'); + supportLink = 'https://metamask.zendesk.com/hc/en-us/requests/new'; + } + return (
{t('betaMetamaskDescription')}
++ {t('betaMetamaskDescriptionExplanation', [ + + {t('betaMetamaskDescriptionExplanationTermsLinkText')} + , + + {t('betaMetamaskDescriptionExplanationBetaTermsLinkText')} + , + ])} +
+{t('metamaskDescription')}
+{t('happyToSeeYou')}
+