Skip to content

Desktop metamask 2 #5826

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 250 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
250 commits
Select commit Hold shift + click to select a range
702d3ad
1.0.9
bunsenstraat Sep 26, 2024
df31283
Merge branch 'master' of https://github.com/ethereum/remix-project in…
bunsenstraat Oct 14, 2024
2cf3b5c
fix workspace name position
bunsenstraat Oct 31, 2024
623bfd3
git status fix
bunsenstraat Oct 31, 2024
d7cf54c
Merge pull request #5357 from ethereum/desktop-gitstatus
bunsenstraat Oct 31, 2024
bd5527c
Merge branch 'desktop-master' of https://github.com/ethereum/remix-pr…
bunsenstraat Dec 13, 2024
328eb89
Merge branch 'master' into desktop-master
bunsenstraat Dec 13, 2024
07515d9
desktop metamask
bunsenstraat Dec 15, 2024
8a32bf4
add tab to terminal
bunsenstraat Dec 18, 2024
89d7d39
Merge branch 'master' of https://github.com/ethereum/remix-project in…
bunsenstraat Dec 18, 2024
2cb247f
use plugin as connector
bunsenstraat Dec 22, 2024
e46bb7d
blockchain events
bunsenstraat Dec 23, 2024
1c1be87
focus on app after transaction
bunsenstraat Dec 30, 2024
ebd4f40
move to app state
bunsenstraat Jan 1, 2025
0f9a3ad
handle double connections
bunsenstraat Jan 1, 2025
5c2e700
fix sync accounts
bunsenstraat Jan 2, 2025
cf59bd9
handle response errors
bunsenstraat Jan 2, 2025
50ca839
handle disconnection
bunsenstraat Jan 2, 2025
9439ef7
focus event
bunsenstraat Jan 2, 2025
baa1a4c
start on random ports
bunsenstraat Jan 2, 2025
89e77b6
add logging
bunsenstraat Jan 2, 2025
5549011
use cbor for messaging
bunsenstraat Jan 7, 2025
9859468
Merge branch 'master' of https://github.com/ethereum/remix-project in…
bunsenstraat Jan 7, 2025
b04cc75
fix grid
bunsenstraat Jan 8, 2025
15d57f2
create component
bunsenstraat Jan 8, 2025
4dfee36
typing
bunsenstraat Jan 8, 2025
2cce63f
add filter
bunsenstraat Jan 8, 2025
c0c9fe7
add filter
bunsenstraat Jan 8, 2025
f7c801e
filter fn
bunsenstraat Jan 8, 2025
6fcecc3
refactor
bunsenstraat Jan 8, 2025
8b180b4
connection grid
bunsenstraat Jan 8, 2025
5dc62dd
hide panel
bunsenstraat Jan 8, 2025
f061075
trace events
bunsenstraat Jan 9, 2025
b059e84
debounce events
bunsenstraat Jan 9, 2025
3e2c01a
move UI
bunsenstraat Jan 9, 2025
78b649b
brave title
bunsenstraat Jan 9, 2025
a01da62
visuals
bunsenstraat Jan 9, 2025
3b0d487
Merge branch 'master' of https://github.com/ethereum/remix-project in…
bunsenstraat Jan 9, 2025
d85c7c5
clean up
bunsenstraat Jan 9, 2025
6c745d4
e2e
bunsenstraat Jan 9, 2025
0e01442
revert
bunsenstraat Jan 10, 2025
785793d
Merge branch 'master' of https://github.com/ethereum/remix-project in…
bunsenstraat Jan 10, 2025
95e9ea7
rm logs
bunsenstraat Jan 10, 2025
cfb6a9e
rm file
bunsenstraat Jan 10, 2025
fcb6aef
rm log
bunsenstraat Jan 10, 2025
af44bd7
revert
bunsenstraat Jan 10, 2025
916ac7f
revert changes
bunsenstraat Jan 10, 2025
0d04a3e
fix linting
bunsenstraat Jan 10, 2025
fab9ced
v icons refactor
bunsenstraat Jan 10, 2025
7cbe76a
clean up
bunsenstraat Jan 10, 2025
c4889a5
revert all
bunsenstraat Jan 10, 2025
d4e8c4f
refactor
bunsenstraat Jan 10, 2025
f934e46
rename
bunsenstraat Jan 10, 2025
e780a55
debugging
bunsenstraat Jan 13, 2025
1fed8e5
disable brave wallet
bunsenstraat Jan 14, 2025
8af12fe
add simple test
bunsenstraat Jan 14, 2025
35e27f5
test
bunsenstraat Jan 14, 2025
546553f
Merge branch 'master' of https://github.com/ethereum/remix-project in…
bunsenstraat Jan 23, 2025
989576d
debugging
bunsenstraat Jan 23, 2025
cfbc3ce
lint
bunsenstraat Jan 24, 2025
0563f4a
debugging
bunsenstraat Jan 24, 2025
47d6a8e
fix server
bunsenstraat Jan 24, 2025
659c6a3
fix bugs
bunsenstraat Jan 27, 2025
bab71fe
add UI
bunsenstraat Jan 27, 2025
8d59bfc
Merge branch 'master' of https://github.com/ethereum/remix-project in…
bunsenstraat Jan 28, 2025
1e2aef0
fig log
bunsenstraat Jan 29, 2025
94fcf26
fix logging
bunsenstraat Jan 29, 2025
1ba5250
fix log path
bunsenstraat Jan 29, 2025
1b055d9
rm status
bunsenstraat Feb 10, 2025
b4d8664
fix win build
yann300 Feb 26, 2025
13201e9
change keychain
bunsenstraat Feb 28, 2025
36d531e
unlock keychain
bunsenstraat Feb 28, 2025
c1fb8a5
Merge branch 'master' of https://github.com/ethereum/remix-project in…
bunsenstraat Feb 28, 2025
1892f6b
Merge branch 'desktop-test' of https://github.com/ethereum/remix-proj…
bunsenstraat Feb 28, 2025
65219be
fix type
bunsenstraat Feb 28, 2025
a2f7b93
lint
bunsenstraat Feb 28, 2025
34b17fb
catch undefined
bunsenstraat Mar 1, 2025
a96e6de
hide logs production
bunsenstraat Mar 1, 2025
3c50ac4
try puppeteer
bunsenstraat Mar 1, 2025
da7c330
try puppeteer
bunsenstraat Mar 1, 2025
422e4b1
screenshot
bunsenstraat Mar 1, 2025
0eef3fc
no screenshot
bunsenstraat Mar 1, 2025
527252f
undefined provider
bunsenstraat Mar 3, 2025
93645f7
lint
bunsenstraat Mar 3, 2025
c8c255d
alpha json
bunsenstraat Mar 3, 2025
9eb1c1e
m2 pro
bunsenstraat Mar 3, 2025
7ec26f7
filter
bunsenstraat Mar 3, 2025
e6cec4d
set to insiders
bunsenstraat Mar 4, 2025
4e26e56
Merge branch 'master' of https://github.com/ethereum/remix-project in…
bunsenstraat Mar 7, 2025
357d8e3
ifx bugs
bunsenstraat Mar 11, 2025
03876ef
fix lint
bunsenstraat Mar 11, 2025
e817369
Merge branch 'master' into desktop-metamask-2
bunsenstraat Mar 12, 2025
f970290
Merge branch 'master' into desktop-metamask-2
bunsenstraat Mar 12, 2025
6ab7250
change name
bunsenstraat Mar 12, 2025
99b40fb
assertions
bunsenstraat Mar 12, 2025
277d32a
Merge branch 'master' into desktop-metamask-2
bunsenstraat Mar 12, 2025
f6ac046
Merge branch 'master' into desktop-metamask-2
bunsenstraat Mar 12, 2025
11877d2
Merge branch 'desktop-metamask-2' of https://github.com/ethereum/remi…
bunsenstraat Apr 10, 2025
ca82183
Merge branch 'master' of https://github.com/ethereum/remix-project in…
bunsenstraat Apr 10, 2025
27e3679
fix
bunsenstraat Apr 10, 2025
da020f9
temaples
bunsenstraat Apr 12, 2025
fb677f5
hide hamburger on boot
bunsenstraat Apr 12, 2025
444bb4e
lint
bunsenstraat Apr 12, 2025
e64f997
fix lint
bunsenstraat Apr 12, 2025
a044d0a
fix tests
bunsenstraat Apr 12, 2025
7085776
fix test
bunsenstraat Apr 12, 2025
ea143db
send alert on disconnect
bunsenstraat Apr 12, 2025
575d6dc
disconnect to vm
bunsenstraat Apr 12, 2025
a53ec99
update config
bunsenstraat Apr 24, 2025
f510c23
try using sha
bunsenstraat Apr 24, 2025
ec91721
more checks
bunsenstraat Apr 24, 2025
b45aaf7
remove call to certutil
yann300 Apr 24, 2025
626aaa8
test jobs
bunsenstraat Apr 25, 2025
de499dd
param
bunsenstraat Apr 25, 2025
d5b41aa
checkout
bunsenstraat Apr 25, 2025
8e86a9f
env
bunsenstraat Apr 25, 2025
e8ddae5
stop checkout
bunsenstraat Apr 25, 2025
22f71cb
more cheks
bunsenstraat Apr 25, 2025
d9e4644
param
bunsenstraat Apr 25, 2025
870b7e9
add b64
bunsenstraat Apr 25, 2025
e9c78a8
path
bunsenstraat Apr 25, 2025
1ffb859
env
bunsenstraat Apr 25, 2025
48625cd
sm config
bunsenstraat Apr 25, 2025
5ba6cd8
view config
bunsenstraat Apr 25, 2025
5a4114c
steps
bunsenstraat Apr 25, 2025
12c0235
set $env:SM_CLIENT_CERT_FILE
bunsenstraat Apr 25, 2025
8d820f2
set env
bunsenstraat Apr 25, 2025
5159340
sm config
bunsenstraat Apr 25, 2025
d735061
login
bunsenstraat Apr 25, 2025
b8afff6
rm command
bunsenstraat Apr 25, 2025
d38362d
config
bunsenstraat Apr 25, 2025
95921df
list certs
bunsenstraat Apr 25, 2025
443bc62
dummy
bunsenstraat Apr 25, 2025
e8de354
rm exit
bunsenstraat Apr 25, 2025
baf4e79
k option
bunsenstraat Apr 25, 2025
52a44a0
debug
bunsenstraat Apr 25, 2025
50d3e57
config
bunsenstraat Apr 25, 2025
05bc65a
path
bunsenstraat Apr 25, 2025
047ddc9
show help
bunsenstraat Apr 25, 2025
8d5dfa0
certutil
bunsenstraat Apr 25, 2025
8db3895
dump certs
bunsenstraat Apr 25, 2025
fe8ef67
fic script
bunsenstraat Apr 25, 2025
60f34bb
script
bunsenstraat Apr 25, 2025
9a2b8f7
more logs maybe
bunsenstraat Apr 25, 2025
3ca2ee2
mv command
bunsenstraat Apr 25, 2025
ef533f8
set sign tool
bunsenstraat Apr 25, 2025
4a2961a
rm
bunsenstraat Apr 25, 2025
841bae3
verb
bunsenstraat Apr 25, 2025
a0a8810
see all certs
bunsenstraat Apr 25, 2025
bc252fe
export
bunsenstraat Apr 25, 2025
42c6dee
alias
bunsenstraat Apr 25, 2025
8425c09
script
bunsenstraat Apr 25, 2025
2f73a58
describe
bunsenstraat Apr 25, 2025
7a9c3c2
fix
bunsenstraat Apr 25, 2025
9241a4c
describe
bunsenstraat Apr 25, 2025
eec82ac
download
bunsenstraat Apr 25, 2025
c9003b3
no cache
bunsenstraat Apr 25, 2025
73f6dda
download
bunsenstraat Apr 25, 2025
2300096
add to store
bunsenstraat Apr 25, 2025
f1a3374
remote sign?
bunsenstraat Apr 25, 2025
e14ec94
key
bunsenstraat Apr 25, 2025
dffe1a4
remote sign
bunsenstraat Apr 25, 2025
0bca756
rm output
bunsenstraat Apr 25, 2025
e1c0500
dummy
bunsenstraat Apr 25, 2025
bb5a0f6
different sign
bunsenstraat Apr 25, 2025
773c92b
tml
bunsenstraat Apr 25, 2025
4fae6ae
cloud sign
bunsenstraat Apr 25, 2025
7884a3a
input
bunsenstraat Apr 25, 2025
0375ca0
use certsync
bunsenstraat Apr 25, 2025
a01b003
verbose
bunsenstraat Apr 25, 2025
1a1a392
env
bunsenstraat Apr 25, 2025
6c54f4d
path
bunsenstraat Apr 25, 2025
4a005a6
verify
bunsenstraat Apr 25, 2025
05f7619
more checks
bunsenstraat Apr 26, 2025
a9f4430
more echos
bunsenstraat Apr 26, 2025
9fb930c
Revert "more echos"
bunsenstraat Apr 26, 2025
bf83d47
lines
bunsenstraat Apr 26, 2025
054231a
active cert check
bunsenstraat Apr 26, 2025
e58dcfe
keypair line
bunsenstraat Apr 26, 2025
aec1d16
keypair alias
bunsenstraat Apr 26, 2025
60428f6
thumb
bunsenstraat Apr 26, 2025
96fa5a1
use cmd
bunsenstraat Apr 26, 2025
9cae008
parse
bunsenstraat Apr 26, 2025
8d22549
rm name
bunsenstraat Apr 26, 2025
e4c7ffb
use env
bunsenstraat Apr 27, 2025
ce79aac
dummy
bunsenstraat Apr 27, 2025
b6a0e26
set dummy
bunsenstraat Apr 27, 2025
c5d538b
verify
bunsenstraat Apr 27, 2025
a047a49
build desktop
bunsenstraat Apr 27, 2025
7330aeb
refactor
bunsenstraat Apr 27, 2025
5eb31bf
run build
bunsenstraat Apr 27, 2025
f8e7a7d
build
bunsenstraat Apr 27, 2025
8cd736a
20.5
bunsenstraat Apr 27, 2025
750b969
package
bunsenstraat Apr 27, 2025
98357d2
msiexec
bunsenstraat Apr 27, 2025
5ed6d3f
path
bunsenstraat Apr 27, 2025
c28e7a8
config
bunsenstraat Apr 27, 2025
14453d0
yml
bunsenstraat Apr 27, 2025
7e73115
config
bunsenstraat Apr 27, 2025
efb5785
chrome only
bunsenstraat Apr 27, 2025
0e5cd99
20.5
bunsenstraat Apr 27, 2025
8b1aeef
Merge branch 'master' of https://github.com/ethereum/remix-project in…
bunsenstraat Apr 27, 2025
65a219b
fix lint
bunsenstraat Apr 27, 2025
69d2a69
debugging
bunsenstraat Apr 28, 2025
8a2ea8c
attach id
bunsenstraat Apr 28, 2025
d224f13
nighwatch
bunsenstraat Apr 28, 2025
c25ed60
default to prague
yann300 May 7, 2025
5c4e4ff
fix_tests
yann300 May 7, 2025
bc8eace
pin vm-pectra
yann300 May 7, 2025
2a238fd
rename vm-pectra vm-prague
yann300 May 7, 2025
0222bc0
Merge branch 'master' of https://github.com/ethereum/remix-project in…
bunsenstraat May 8, 2025
a7f9123
rm desktop build from build
bunsenstraat May 8, 2025
fe64e74
Merge branch 'defaultèpectra' of https://github.com/ethereum/remix-pr…
bunsenstraat May 8, 2025
a479117
flaky fork state
bunsenstraat May 8, 2025
8efc349
assert more
bunsenstraat May 8, 2025
3917809
assert
bunsenstraat May 8, 2025
0f7cfed
fixes
bunsenstraat May 9, 2025
81f248f
turn off flaky
bunsenstraat May 9, 2025
0fc9f01
Merge branch 'master' of https://github.com/ethereum/remix-project in…
bunsenstraat May 9, 2025
4164273
Merge branch 'forkstate' into desktop-metamask-2
bunsenstraat May 9, 2025
43dbdc7
rm ethers5
bunsenstraat May 9, 2025
7ecb697
flaky
bunsenstraat May 9, 2025
7c8c3a6
only flaky
bunsenstraat May 9, 2025
48038e1
fix bug
bunsenstraat May 13, 2025
cb969df
turn off flaky
bunsenstraat May 13, 2025
cc1e682
config
bunsenstraat May 13, 2025
689c03f
Merge branch 'master' of https://github.com/ethereum/remix-project in…
bunsenstraat May 13, 2025
e23c5bb
lint
bunsenstraat May 13, 2025
6d1ef1a
debug
bunsenstraat May 13, 2025
90e098e
fix bug
bunsenstraat May 13, 2025
4bc7df9
revert test
bunsenstraat May 13, 2025
36e2027
Merge branch 'master' into desktop-metamask-2
bunsenstraat May 14, 2025
3013188
build linux insiders
bunsenstraat May 14, 2025
e192065
run chromedriver direct
bunsenstraat May 15, 2025
78e9c5a
reset nightwatch
bunsenstraat May 19, 2025
231151d
run matomo in ci
bunsenstraat May 20, 2025
387f658
restore tracking
bunsenstraat May 21, 2025
2a54c54
node-pty prebuild
bunsenstraat May 22, 2025
13d9df4
change paths
bunsenstraat May 22, 2025
188260f
node version
bunsenstraat May 22, 2025
7a61210
update chrome driver
bunsenstraat May 22, 2025
fb10881
windows 22
bunsenstraat May 22, 2025
b58917f
mac
bunsenstraat May 22, 2025
1e1de15
mac deps
bunsenstraat May 22, 2025
aa7cece
update node
bunsenstraat May 22, 2025
99bd77b
rm jq
bunsenstraat May 23, 2025
7f00a7a
templates
bunsenstraat May 26, 2025
d715aac
layout
bunsenstraat May 26, 2025
6db70e0
merging progress
bunsenstraat Jun 6, 2025
690a358
fix template
bunsenstraat Jun 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
440 changes: 291 additions & 149 deletions .circleci/config.yml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion .github/workflows/pr-reminder.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
webhook-url: ${{ secrets.DISCORD_WEBHOOK_URL }}
freeze-date: '2025-05-19T18:00:00Z'
freeze-date: '2025-06-16T18:00:00Z'
- name: Reminder for standup
if: github.event.schedule == '55 8 * * 1-5'
uses: Aniket-Engg/pr-reviews-reminder-action@master
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/run-sut.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
with:
node-version: 20.0.0
- name: Run SUT Action
uses: EthereumRemix/sol-test@v1
uses: EthereumRemix/sol-test@v1.2
with:
test-path: 'apps/remix-ide/contracts/tests'
compiler-version: '0.8.15'
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Contributing

Everyone is welcome to contribute to Remix's codebase and please join our [Discord](https://discord.gg/XvMmgehAMq).
Everyone is welcome to contribute to Remix's codebase and please join our [Discord](https://discord.gg/XcvfUpZPsG).

## Development
Remix libraries work closely with [Remix IDE](https://remix.ethereum.org). Each library has a README to explain its application.
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
[![GitHub contributors](https://img.shields.io/github/contributors/ethereum/remix-project?style=flat&logo=github)](https://github.com/ethereum/remix-project/graphs/contributors)
[![Awesome Remix](https://img.shields.io/badge/Awesome--Remix-resources-green?logo=awesomelists)](https://github.com/ethereum/awesome-remix)
[![GitHub](https://img.shields.io/github/license/ethereum/remix-project)](https://github.com/ethereum/remix-project/blob/master/LICENSE)
[![Discord](https://img.shields.io/badge/join-discord-brightgreen.svg?style=flat&logo=discord)](https://discord.gg/XvMmgehAMq)
[![Discord](https://img.shields.io/badge/join-discord-brightgreen.svg?style=flat&logo=discord)](https://discord.gg/XcvfUpZPsG)
[![X Follow](https://img.shields.io/twitter/follow/ethereumremix?style=flat&logo=x&color=green)](https://x.com/ethereumremix)

</div>
Expand Down Expand Up @@ -208,10 +208,10 @@ module.exports = {
init(browser, done) // , 'http://localhost:8080', false)
},
```
- change package JSON to locally run all group tests:
- change package JSON to locally run all group tests (point to appropriate config file depending on environment):

```
"nightwatch_local_debugger": "yarn run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/debugger_*.spec.js --env=chrome",
"nightwatch_local_debugger": "yarn run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch-chrome.js dist/apps/remix-ide-e2e/src/tests/debugger_*.spec.js --env=chrome",
```

- run the build script to build the test files if you want to run the locally
Expand Down Expand Up @@ -267,4 +267,4 @@ parameters:
- Curated list of Remix resources: https://github.com/ethereum/awesome-remix
- Medium: https://medium.com/remix-ide
- X: https://x.com/ethereumremix
- Join Discord: https://discord.gg/XvMmgehAMq
- Join Discord: https://discord.gg/XcvfUpZPsG
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import type { LookupResponse, SubmittedContract, VerificationResponse } from '..
// Optional function definitions
export interface AbstractVerifier {
verifyProxy?(submittedContract: SubmittedContract): Promise<VerificationResponse>
checkVerificationStatus?(receiptId: string): Promise<VerificationResponse>
checkProxyVerificationStatus?(receiptId: string): Promise<VerificationResponse>
checkVerificationStatus?(receiptId: string, chainId: string): Promise<VerificationResponse>
checkProxyVerificationStatus?(receiptId: string, chainId: string): Promise<VerificationResponse>
}

export abstract class AbstractVerifier {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ export class EtherscanVerifier extends AbstractVerifier {
// TODO: Handle version Vyper contracts. This relies on Solidity metadata.
const metadata = JSON.parse(compilerAbstract.data.contracts[submittedContract.filePath][submittedContract.contractName].metadata)
const formData = new FormData()
formData.append('chainId', submittedContract.chainId)
formData.append('codeformat', 'solidity-standard-json-input')
formData.append('sourceCode', compilerAbstract.input.toString())
formData.append('contractaddress', submittedContract.address)
Expand All @@ -56,6 +55,7 @@ export class EtherscanVerifier extends AbstractVerifier {
formData.append('constructorArguements', submittedContract.abiEncodedConstructorArgs?.replace('0x', '') ?? '')

const url = new URL(this.apiUrl + '/api')
url.searchParams.append('chainid', submittedContract.chainId)
url.searchParams.append('module', 'contract')
url.searchParams.append('action', 'verifysourcecode')
if (this.apiKey) {
Expand Down Expand Up @@ -98,6 +98,7 @@ export class EtherscanVerifier extends AbstractVerifier {
formData.append('expectedimplementation', submittedContract.address)

const url = new URL(this.apiUrl + '/api')
url.searchParams.append('chainid', submittedContract.chainId)
url.searchParams.append('module', 'contract')
url.searchParams.append('action', 'verifyproxycontract')
if (this.apiKey) {
Expand Down Expand Up @@ -129,8 +130,9 @@ export class EtherscanVerifier extends AbstractVerifier {
return { status: 'pending', receiptId: verificationResponse.result }
}

async checkVerificationStatus(receiptId: string): Promise<VerificationResponse> {
async checkVerificationStatus(receiptId: string, chainId: string): Promise<VerificationResponse> {
const url = new URL(this.apiUrl + '/api')
url.searchParams.append('chainid', chainId)
url.searchParams.append('module', 'contract')
url.searchParams.append('action', 'checkverifystatus')
url.searchParams.append('guid', receiptId)
Expand Down Expand Up @@ -173,8 +175,9 @@ export class EtherscanVerifier extends AbstractVerifier {
return { status: 'unknown', receiptId }
}

async checkProxyVerificationStatus(receiptId: string): Promise<VerificationResponse> {
async checkProxyVerificationStatus(receiptId: string, chainId: string): Promise<VerificationResponse> {
const url = new URL(this.apiUrl + '/api')
url.searchParams.append('chainid', chainId)
url.searchParams.append('module', 'contract')
url.searchParams.append('action', 'checkproxyverification')
url.searchParams.append('guid', receiptId)
Expand Down Expand Up @@ -216,6 +219,7 @@ export class EtherscanVerifier extends AbstractVerifier {

async lookup(contractAddress: string, chainId: string): Promise<LookupResponse> {
const url = new URL(this.apiUrl + '/api')
url.searchParams.append('chainid', chainId)
url.searchParams.append('module', 'contract')
url.searchParams.append('action', 'getsourcecode')
url.searchParams.append('address', contractAddress)
Expand Down
4 changes: 2 additions & 2 deletions apps/contract-verification/src/app/app.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -123,9 +123,9 @@ const App = () => {
try {
let response: VerificationResponse
if (receipt.isProxyReceipt) {
response = await verifier.checkProxyVerificationStatus(receiptId)
response = await verifier.checkProxyVerificationStatus(receiptId, contract.chainId)
} else {
response = await verifier.checkVerificationStatus(receiptId)
response = await verifier.checkVerificationStatus(receiptId, contract.chainId)
}
const { status, message, lookupUrl } = response
receipt.status = status
Expand Down
36 changes: 1 addition & 35 deletions apps/contract-verification/src/app/utils/default-apis.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,144 +4,110 @@
"explorerUrl": "https://repo.sourcify.dev"
},
"Etherscan": {
"apiUrl": "https://api.etherscan.io/v2",
"1": {
"apiUrl": "https://api.etherscan.io",
"explorerUrl": "https://etherscan.io"
},
"56": {
"apiUrl": "https://api.bscscan.com",
"explorerUrl": "https://bscscan.com"
},
"137": {
"apiUrl": "https://api.polygonscan.com",
"explorerUrl": "https://polygonscan.com"
},
"250": {
"apiUrl": "https://api.ftmscan.com",
"explorerUrl": "https://ftmscan.com"
},
"42161": {
"apiUrl": "https://api.arbiscan.io",
"explorerUrl": "https://arbiscan.io"
},
"43114": {
"apiUrl": "https://api.snowtrace.io",
"explorerUrl": "https://snowtrace.io"
},
"1285": {
"apiUrl": "https://api-moonriver.moonscan.io",
"explorerUrl": "https://moonscan.io"
},
"1284": {
"apiUrl": "https://api-moonbeam.moonscan.io",
"explorerUrl": "https://moonscan.io"
},
"25": {
"apiUrl": "https://api.cronoscan.com",
"explorerUrl": "https://cronoscan.com"
},
"199": {
"apiUrl": "https://api.bttcscan.com",
"explorerUrl": "https://bttcscan.com"
},
"10": {
"apiUrl": "https://api-optimistic.etherscan.io",
"explorerUrl": "https://optimistic.etherscan.io"
},
"42220": {
"apiUrl": "https://api.celoscan.io",
"explorerUrl": "https://celoscan.io"
},
"288": {
"apiUrl": "https://api.bobascan.com",
"explorerUrl": "https://bobascan.com"
},
"100": {
"apiUrl": "https://api.gnosisscan.io",
"explorerUrl": "https://gnosisscan.io"
},
"1101": {
"apiUrl": "https://api-zkevm.polygonscan.com",
"explorerUrl": "https://zkevm.polygonscan.com"
},
"59144": {
"apiUrl": "https://api.lineascan.build",
"explorerUrl": "https://lineascan.build"
},
"8453": {
"apiUrl": "https://api.basescan.org",
"explorerUrl": "https://basescan.org"
},
"534352": {
"apiUrl": "https://api.scrollscan.com",
"explorerUrl": "https://scrollscan.com"
},
"17000": {
"apiUrl": "https://api-holesky.etherscan.io",
"explorerUrl": "https://holesky.etherscan.io"
},
"11155111": {
"apiUrl": "https://api-sepolia.etherscan.io",
"explorerUrl": "https://sepolia.etherscan.io"
},
"97": {
"apiUrl": "https://api-testnet.bscscan.com",
"explorerUrl": "https://bscscan.com"
},
"80001": {
"apiUrl": "https://api-testnet.polygonscan.com",
"explorerUrl": "https://polygonscan.com"
},
"4002": {
"apiUrl": "https://api-testnet.ftmscan.com",
"explorerUrl": "https://ftmscan.com"
},
"421611": {
"apiUrl": "https://api-testnet.arbiscan.io",
"explorerUrl": "https://arbiscan.io"
},
"42170": {
"apiUrl": "https://api-nova.arbiscan.io",
"explorerUrl": "https://nova.arbiscan.io"
},
"43113": {
"apiUrl": "https://api-testnet.snowtrace.io",
"explorerUrl": "https://snowtrace.io"
},
"1287": {
"apiUrl": "https://api-moonbase.moonscan.io",
"explorerUrl": "https://moonscan.io"
},
"338": {
"apiUrl": "https://api-testnet.cronoscan.com",
"explorerUrl": "https://cronoscan.com"
},
"1028": {
"apiUrl": "https://api-testnet.bttcscan.com",
"explorerUrl": "https://bttcscan.com"
},
"44787": {
"apiUrl": "https://api-alfajores.celoscan.io",
"explorerUrl": "https://alfajores.celoscan.io"
},
"2888": {
"apiUrl": "https://api-testnet.bobascan.com",
"explorerUrl": "https://bobascan.com"
},
"84532": {
"apiUrl": "https://api-sepolia.basescan.org",
"explorerUrl": "https://sepolia.basescan.org"
},
"1442": {
"apiUrl": "https://api-testnet-zkevm.polygonscan.com",
"explorerUrl": "https://zkevm.polygonscan.com"
},
"59140": {
"apiUrl": "https://api-testnet.lineascan.build",
"explorerUrl": "https://lineascan.build"
},
"534351": {
"apiUrl": "https://api-sepolia.scrollscan.com",
"explorerUrl": "https://sepolia.scrollscan.com"
}
},
Expand Down
5 changes: 4 additions & 1 deletion apps/contract-verification/src/app/utils/default-settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,15 @@ export function mergeChainSettingsWithDefaults(chainId: string, userSettings: Co
let defaultsForVerifier: VerifierSettings
if (verifierId === 'Sourcify') {
defaultsForVerifier = DEFAULT_APIS['Sourcify']
} else if (verifierId === 'Etherscan') {
const apiUrl = DEFAULT_APIS['Etherscan'].apiUrl
const explorerUrl = DEFAULT_APIS['Etherscan'][chainId]?.explorerUrl
defaultsForVerifier = { apiUrl, explorerUrl }
} else if (verifierId === 'Routescan') {
const routescanDefaults = DEFAULT_APIS['Routescan']

if (!routescanDefaults[chainId]) {
defaultsForVerifier = {}

} else {
const explorerUrl = routescanDefaults[chainId]?.type === 'mainnet' ? routescanDefaults.mainnetExplorerUrl : routescanDefaults.testnetExplorerUrl
const apiUrl = routescanDefaults.apiUrl.replace('${CHAIN_TYPE}', routescanDefaults[chainId]?.type).replace('${CHAIN_ID}', chainId)
Expand Down
103 changes: 103 additions & 0 deletions apps/remix-ide-e2e/chrome-driver.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
#!/usr/bin/env bash
# Usage: chrome-driver.sh [install_dir]
# Determine install directory from first argument or ORB_PARAM_DRIVER_INSTALL_DIR
INSTALL_DIR=${1:-${ORB_PARAM_DRIVER_INSTALL_DIR:-"./tmp/webdrivers"}}
echo "Installing ChromeDriver into $INSTALL_DIR"

# Determine the OS platform
OS="$(uname)"

if [ "$OS" == "Darwin" ]; then
# macOS systems
if [ -e "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" ]; then
version=$("/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --version)
echo "Google Chrome version on macOS: $version"
else
echo "Google Chrome is not installed on your macOS."
fi
elif [ "$OS" == "Linux" ]; then
# Linux systems
if command -v google-chrome >/dev/null; then
version=$(google-chrome --version)
echo "Google Chrome version on Linux: $version"
else
echo "Google Chrome is not installed on your Linux."
# exit without error
exit 0
fi
else
echo "Unsupported OS."
exit 0
fi

MAJORVERSION=$(echo "$version" | grep -Eo '[0-9]+' | head -1)
echo "CHROME DRIVER INSTALL $MAJORVERSION"

# Determine target platform for ChromeDriver download
case "$OS" in
Darwin)
if [[ "$(uname -m)" == "arm64" ]]; then
PLATFORM="mac-arm64"
else
PLATFORM="mac-x64"
fi
;;
Linux)
PLATFORM="linux64"
;;
*)
echo "Unsupported OS: $OS"; exit 1
;;
esac
echo "Detected platform for download: $PLATFORM"

# Determine ChromeDriver version and download URL
if [ "$MAJORVERSION" -lt 115 ]; then
# Chrome <115: use storage.googleapis.com
CHROMEDRIVER_VERSION=$(curl -sS "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_${MAJORVERSION}" | tr -d '\r')
CHROMEDRIVER_DOWNLOAD_URL="https://chromedriver.storage.googleapis.com/${CHROMEDRIVER_VERSION}/chromedriver_${PLATFORM}.zip"
else
# Chrome >=115: use Chrome for Testing JSON feed
FEED_URL="https://googlechromelabs.github.io/chrome-for-testing/latest-versions-per-milestone-with-downloads.json"
CHROMEDRIVER_VERSION=$(curl -sS "$FEED_URL" | jq -r ".milestones.\"$MAJORVERSION\".version")
CHROMEDRIVER_DOWNLOAD_URL=$(curl -sS "$FEED_URL" \
| jq -r ".milestones.\"$MAJORVERSION\".downloads.chromedriver[] \
| select(.platform==\"$PLATFORM\").url")
fi

echo "Matching ChromeDriver version: $CHROMEDRIVER_VERSION"
echo "Downloading ChromeDriver from $CHROMEDRIVER_DOWNLOAD_URL"

# Prepare install directory
mkdir -p "$INSTALL_DIR"

# Download and install ChromeDriver
ZIP_PATH="${INSTALL_DIR}/chromedriver_${PLATFORM}.zip"
curl -sS -o "$ZIP_PATH" "$CHROMEDRIVER_DOWNLOAD_URL"
unzip -o "$ZIP_PATH" -d "$INSTALL_DIR"

# Move the extracted chromedriver binary to the root of INSTALL_DIR
EXTRACTED_DIR="${INSTALL_DIR}/chromedriver-${PLATFORM}"
ALT_DIR="${INSTALL_DIR}/chromedriver_${PLATFORM}"

if [ -f "${EXTRACTED_DIR}/chromedriver" ]; then
mv "${EXTRACTED_DIR}/chromedriver" "$INSTALL_DIR/chromedriver"
elif [ -f "${ALT_DIR}/chromedriver" ]; then
mv "${ALT_DIR}/chromedriver" "$INSTALL_DIR/chromedriver"
else
# Fallback: try to find chromedriver file inside any subdir
FOUND=$(find "$INSTALL_DIR" -type f -name chromedriver | head -n1)
if [ -n "$FOUND" ]; then
mv "$FOUND" "$INSTALL_DIR/chromedriver"
else
echo "Error: chromedriver binary not found"
exit 1
fi
fi

chmod +x "$INSTALL_DIR/chromedriver"
# Cleanup extracted directory and zip
rm -rf "$EXTRACTED_DIR"
rm -f "$ZIP_PATH"

echo "ChromeDriver installed at $INSTALL_DIR/chromedriver"
Loading