Skip to content

Commit 155fe72

Browse files
authored
fix: script robustness (#97)
* fix: support RPC URLs with API keys * updates * fix: invalid check
1 parent ede2306 commit 155fe72

File tree

18 files changed

+146
-47
lines changed

18 files changed

+146
-47
lines changed

.env.template

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
INFURA_API_KEY=
2+
ALCHEMY_API_KEY=

.github/workflows/fetch-data.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name: Fetch Chain Data
33
on:
44
workflow_dispatch:
55
schedule:
6-
- cron: '0 */4 * * *'
6+
- cron: '0 */6 * * *'
77

88
jobs:
99
fetch-data:

script/.env.example

Lines changed: 0 additions & 1 deletion
This file was deleted.

script/checks/opcodes.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,17 @@ async function checkOpcode(opcode: Opcode, client: PublicClient): Promise<boolea
3131
return true; // Call succeeded so opcode is supported.
3232
} catch (e: unknown) {
3333
const err = e as CallError;
34+
const details = err.details.toLowerCase();
3435
// TODO These might be specific to the node implementation, can this be more robust?
35-
if (opcode === 0xfe && err.details === 'invalid opcode: INVALID') return true; // Designated invalid opcode.
36-
if (err.details.includes('stack underflow')) return true; // Implies opcode is supported.
37-
if (err.details.includes('not defined')) return false;
38-
if (err.details.includes('not supported')) return false;
39-
if (err.details.includes('invalid opcode')) return false;
36+
if (opcode === 0xfe && details.includes('invalid opcode: invalid')) return true; // Designated invalid opcode.
37+
if (details.includes('stack underflow')) return true; // Implies opcode is supported.
38+
if (details.includes('not defined')) return false;
39+
if (details.includes('not supported')) return false;
40+
if (details.includes('invalid opcode')) return false;
4041

42+
console.log(`\n======== Opcode ${opcode} ========`);
43+
console.log('err.details:', err.details);
44+
console.log(JSON.stringify(err, null, 2));
4145
throw new Error(`Unexpected error: ${err}`);
4246
}
4347
}

script/data/chain/1.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,9 @@
4444
"https://rpc.mevblocker.io/noreverts",
4545
"https://rpc.mevblocker.io/fullprivacy",
4646
"https://eth.drpc.org",
47-
"wss://eth.drpc.org"
47+
"wss://eth.drpc.org",
48+
"https://api.securerpc.com/v1",
49+
"https://eth-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}"
4850
],
4951
"slip44": 60
5052
},

script/data/chain/10.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,9 @@
3131
"https://optimism.gateway.tenderly.co",
3232
"wss://optimism.gateway.tenderly.co",
3333
"https://optimism.drpc.org",
34-
"wss://optimism.drpc.org"
34+
"wss://optimism.drpc.org",
35+
"https://optimism-mainnet.infura.io/v3/${INFURA_API_KEY}",
36+
"https://opt-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}"
3537
]
3638
},
3739
"opcodes": [

script/data/chain/137.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@
3030
"https://polygon.gateway.tenderly.co",
3131
"wss://polygon.gateway.tenderly.co",
3232
"https://polygon.drpc.org",
33-
"wss://polygon.drpc.org"
33+
"wss://polygon.drpc.org",
34+
"https://polygon-mainnet.infura.io/v3/${INFURA_API_KEY}",
35+
"https://polygon-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}"
3436
],
3537
"slip44": 966
3638
},

script/data/chain/42161.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
"https://arbitrum-mainnet.infura.io/v3/${INFURA_API_KEY}",
2828
"https://arb-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}",
2929
"https://arb1.arbitrum.io/rpc",
30-
"https://arbitrum-one.publicnode.com",
31-
"wss://arbitrum-one.publicnode.com"
30+
"https://arbitrum-one-rpc.publicnode.com",
31+
"wss://arbitrum-one-rpc.publicnode.com"
3232
]
3333
},
3434
"opcodes": [

script/data/chain/43114.json

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@
1818
"rpc": [
1919
"https://api.avax.network/ext/bc/C/rpc",
2020
"https://avalanche-c-chain-rpc.publicnode.com",
21-
"wss://avalanche-c-chain-rpc.publicnode.com"
21+
"wss://avalanche-c-chain-rpc.publicnode.com",
22+
"https://rpc.ankr.com/avalanche",
23+
"https://ava-mainnet.public.blastapi.io/ext/bc/C/rpc",
24+
"https://avalanche-mainnet.infura.io/v3/${INFURA_API_KEY}"
2225
],
2326
"slip44": 9005
2427
},
@@ -75,8 +78,8 @@
7578
{ "number": "0x46", "name": "CHAINID", "supported": true },
7679
{ "number": "0x47", "name": "SELFBALANCE", "supported": true },
7780
{ "number": "0x48", "name": "BASEFEE", "supported": true },
78-
{ "number": "0x49", "name": "BLOBHASH", "supported": false },
79-
{ "number": "0x4a", "name": "BLOBBASEFEE", "supported": false },
81+
{ "number": "0x49", "name": "BLOBHASH", "supported": true },
82+
{ "number": "0x4a", "name": "BLOBBASEFEE", "supported": true },
8083
{ "number": "0x50", "name": "POP", "supported": true },
8184
{ "number": "0x51", "name": "MLOAD", "supported": true },
8285
{ "number": "0x52", "name": "MSTORE", "supported": true },
@@ -89,9 +92,9 @@
8992
{ "number": "0x59", "name": "MSIZE", "supported": true },
9093
{ "number": "0x5a", "name": "GAS", "supported": true },
9194
{ "number": "0x5b", "name": "JUMPDEST", "supported": true },
92-
{ "number": "0x5c", "name": "TLOAD", "supported": false },
93-
{ "number": "0x5d", "name": "TSTORE", "supported": false },
94-
{ "number": "0x5e", "name": "MCOPY", "supported": false },
95+
{ "number": "0x5c", "name": "TLOAD", "supported": true },
96+
{ "number": "0x5d", "name": "TSTORE", "supported": true },
97+
{ "number": "0x5e", "name": "MCOPY", "supported": true },
9598
{ "number": "0x5f", "name": "PUSH0", "supported": true },
9699
{ "number": "0x60", "name": "PUSH1", "supported": true },
97100
{ "number": "0x61", "name": "PUSH2", "supported": true },
@@ -266,7 +269,7 @@
266269
{
267270
"name": "point evaluation",
268271
"address": "0x000000000000000000000000000000000000000a",
269-
"implemented": false
272+
"implemented": true
270273
},
271274
{
272275
"name": "secp256r1",

script/data/chain/534352.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@
1919
"https://rpc.ankr.com/scroll",
2020
"https://scroll-mainnet.chainstacklabs.com",
2121
"https://scroll-rpc.publicnode.com",
22-
"wss://scroll-rpc.publicnode.com"
22+
"wss://scroll-rpc.publicnode.com",
23+
"https://scroll-mainnet.infura.io/v3/${INFURA_API_KEY}",
24+
"https://scroll-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}"
2325
],
2426
"status": "active"
2527
},

0 commit comments

Comments
 (0)