Skip to content

Commit fe136c6

Browse files
committed
chore: Add phantom crx downloader
1 parent 817519d commit fe136c6

File tree

3 files changed

+54
-72
lines changed

3 files changed

+54
-72
lines changed

helpers.js

Lines changed: 10 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ const path = require('path');
55
const { ethers } = require('ethers');
66
const download = require('download');
77
const packageJson = require('./package.json');
8+
const unzipCrx = require('unzip-crx-3');
89

910
const PRESET_NETWORKS = Object.freeze({
1011
mainnet: {
@@ -150,69 +151,14 @@ module.exports = {
150151
);
151152
}
152153
},
153-
getPhantomReleases: async version => {
154-
log(`Trying to find phantom version ${version} in GitHub releases..`);
155-
let filename;
156-
let downloadUrl;
157-
let tagName;
158-
let response;
154+
getPhantomReleases: async () => {
155+
const PHANTOM_URL = 'https://crx-backup.phantom.dev/latest.crx';
159156

160-
/**
161-
* We don't have github releases public for now. Hardcode values until we have
162-
*/
163157
return {
164158
filename: 'phantom-chrome-latest',
165-
downloadUrl: 'chrome-dist.zip',
159+
downloadUrl: PHANTOM_URL,
166160
tagName: 'phantom-chrome-latest',
167161
};
168-
// try {
169-
// if (version === 'latest' || !version) {
170-
// if (process.env.GH_USERNAME && process.env.GH_PAT) {
171-
// response = await axios.get(
172-
// 'https://api.github.com/repos/phantom/wallet/releases',
173-
// {
174-
// auth: {
175-
// username: process.env.GH_USERNAME,
176-
// password: process.env.GH_PAT,
177-
// },
178-
// },
179-
// );
180-
// } else {
181-
// response = await axios.get(
182-
// 'https://api.github.com/repos/phantom/wallet/releases',
183-
// );
184-
// }
185-
// console.log(response.data[0])
186-
// filename = response.data[0].assets[0].name;
187-
// downloadUrl = response.data[0].assets[0].url;
188-
// tagName = 'phantom-chrome-latest';
189-
// log(
190-
// `Phantom version found! Filename: ${filename}; Download url: ${downloadUrl}; Tag name: ${tagName}`,
191-
// );
192-
// } else if (version) {
193-
// filename = `chrome-dist.zip`;
194-
// downloadUrl = `https://github.com/phantom-labs/wallet/releases/download/v${version}/chrome-dist.zip`;
195-
// tagName = `phantom-chrome-${version}`;
196-
// log(
197-
// `Phantom version found! Filename: ${filename}; Download url: ${downloadUrl}; Tag name: ${tagName}`,
198-
// );
199-
// }
200-
// return {
201-
// filename,
202-
// downloadUrl,
203-
// tagName,
204-
// };
205-
// } catch (e) {
206-
// if (e.response && e.response.status === 403) {
207-
// throw new Error(
208-
// `[getPhantomReleases] Unable to fetch phantom releases from GitHub because you've been rate limited! Please set GH_USERNAME and GH_PAT environment variables to avoid this issue or retry again.`,
209-
// );
210-
// } else {
211-
// throw new Error(
212-
// `[getPhantomReleases] Unable to fetch phantom releases from GitHub with following error:\n${e}`,
213-
// );
214-
// }
215-
// }
216162
},
217163
download: async (provider, url, destination) => {
218164
try {
@@ -221,7 +167,12 @@ module.exports = {
221167
);
222168

223169
if (provider === 'phantom') {
224-
// phantom doesnt support downloading yet.
170+
await download(url, destination, {
171+
headers: {
172+
Accept: 'application/octet-stream',
173+
},
174+
});
175+
await unzipCrx(`${destination}/latest.crx`, destination);
225176
return;
226177
}
227178

@@ -275,14 +226,3 @@ module.exports = {
275226
return providerDirectory;
276227
},
277228
};
278-
279-
async function moveFiles(srcDir, destDir) {
280-
const files = await fs.readdir(srcDir);
281-
282-
return Promise.all(
283-
files.map(function (file) {
284-
var destFile = path.join(destDir, file);
285-
return fs.rename(path.join(srcDir, file), destFile);
286-
}),
287-
);
288-
}

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@phantom/synpress",
3-
"version": "4.0.0-alpha.18",
3+
"version": "4.0.0-alpha.19",
44
"description": "Synpress is e2e testing framework based around Cypress.io & playwright with included MetaMask support. Test your dapps with ease.",
55
"keywords": [
66
"Synpress",
@@ -91,7 +91,8 @@
9191
"prettier": "^2.8.4",
9292
"serve": "^14.2.0",
9393
"start-server-and-test": "^2.0.0",
94-
"synthetix-js": "^2.74.1"
94+
"synthetix-js": "^2.74.1",
95+
"unzip-crx-3": "^0.2.0"
9596
},
9697
"devDependencies": {
9798
"@metamask/test-dapp": "^5.6.0",

yarn.lock

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7587,6 +7587,11 @@ immediate@^3.2.3:
75877587
resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266"
75887588
integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==
75897589

7590+
immediate@~3.0.5:
7591+
version "3.0.6"
7592+
resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b"
7593+
integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==
7594+
75907595
import-fresh@^3.0.0, import-fresh@^3.2.1:
75917596
version "3.3.0"
75927597
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
@@ -8524,6 +8529,16 @@ jsprim@^2.0.2:
85248529
json-schema "0.4.0"
85258530
verror "1.10.0"
85268531

8532+
jszip@^3.1.0:
8533+
version "3.10.1"
8534+
resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.10.1.tgz#34aee70eb18ea1faec2f589208a157d1feb091c2"
8535+
integrity sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==
8536+
dependencies:
8537+
lie "~3.3.0"
8538+
pako "~1.0.2"
8539+
readable-stream "~2.3.6"
8540+
setimmediate "^1.0.5"
8541+
85278542
keccak@^1.0.2:
85288543
version "1.4.0"
85298544
resolved "https://registry.yarnpkg.com/keccak/-/keccak-1.4.0.tgz#572f8a6dbee8e7b3aa421550f9e6408ca2186f80"
@@ -8664,6 +8679,13 @@ levn@~0.3.0:
86648679
prelude-ls "~1.1.2"
86658680
type-check "~0.3.2"
86668681

8682+
lie@~3.3.0:
8683+
version "3.3.0"
8684+
resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a"
8685+
integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==
8686+
dependencies:
8687+
immediate "~3.0.5"
8688+
86678689
lines-and-columns@^1.1.6:
86688690
version "1.2.4"
86698691
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
@@ -10098,6 +10120,11 @@ pacote@15.1.1:
1009810120
ssri "^10.0.0"
1009910121
tar "^6.1.11"
1010010122

10123+
pako@~1.0.2:
10124+
version "1.0.11"
10125+
resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
10126+
integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
10127+
1010110128
param-case@^2.1.0:
1010210129
version "2.1.1"
1010310130
resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247"
@@ -12726,6 +12753,15 @@ untildify@^4.0.0:
1272612753
resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b"
1272712754
integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==
1272812755

12756+
unzip-crx-3@^0.2.0:
12757+
version "0.2.0"
12758+
resolved "https://registry.yarnpkg.com/unzip-crx-3/-/unzip-crx-3-0.2.0.tgz#d5324147b104a8aed9ae8639c95521f6f7cda292"
12759+
integrity sha512-0+JiUq/z7faJ6oifVB5nSwt589v1KCduqIJupNVDoWSXZtWDmjDGO3RAEOvwJ07w90aoXoP4enKsR7ecMrJtWQ==
12760+
dependencies:
12761+
jszip "^3.1.0"
12762+
mkdirp "^0.5.1"
12763+
yaku "^0.16.6"
12764+
1272912765
update-browserslist-db@^1.0.10:
1273012766
version "1.0.10"
1273112767
resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3"
@@ -13624,6 +13660,11 @@ yaeti@^0.0.6:
1362413660
resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577"
1362513661
integrity sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==
1362613662

13663+
yaku@^0.16.6:
13664+
version "0.16.7"
13665+
resolved "https://registry.yarnpkg.com/yaku/-/yaku-0.16.7.tgz#1d195c78aa9b5bf8479c895b9504fd4f0847984e"
13666+
integrity sha512-Syu3IB3rZvKvYk7yTiyl1bo/jiEFaaStrgv1V2TIJTqYPStSMQVO8EQjg/z+DRzLq/4LIIharNT3iH1hylEIRw==
13667+
1362713668
yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1:
1362813669
version "3.1.1"
1362913670
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"

0 commit comments

Comments
 (0)