@@ -2,6 +2,14 @@ import { EnsPlugin, Network } from 'ethers';
22import { address as voucherHubBellecourAddress } from '../generated/@iexec/voucher-contracts/deployments/bellecour/VoucherHubERC1967Proxy.js' ;
33import { TEE_FRAMEWORKS } from './constant.js' ;
44
5+ export const CHAIN_SPECIFIC_FEATURES = {
6+ ENS : 'ENS' ,
7+ WORKERPOOL_API_URL_REGISTRATION : 'Workerpool API Registration' ,
8+ VOUCHER : 'iExec Voucher' ,
9+ COMPASS : 'iExec Compass' ,
10+ XRLC_BRIDGE : 'iExec xRLC Bridge' ,
11+ } ;
12+
513const networkConfigs = [
614 {
715 id : 134 ,
@@ -28,6 +36,7 @@ const networkConfigs = [
2836 } ,
2937 shouldRegisterNetwork : true ,
3038 isExperimental : false ,
39+ notImplemented : [ CHAIN_SPECIFIC_FEATURES . COMPASS ] ,
3140 } ,
3241 {
3342 id : 1 ,
@@ -50,6 +59,10 @@ const networkConfigs = [
5059 } ,
5160 shouldRegisterNetwork : false ,
5261 isExperimental : false ,
62+ notImplemented : [
63+ CHAIN_SPECIFIC_FEATURES . COMPASS ,
64+ CHAIN_SPECIFIC_FEATURES . VOUCHER ,
65+ ] ,
5366 } ,
5467 {
5568 id : 421614 ,
@@ -72,6 +85,12 @@ const networkConfigs = [
7285 bridge : { } , // no bridge
7386 shouldRegisterNetwork : false ,
7487 isExperimental : false ,
88+ notImplemented : [
89+ CHAIN_SPECIFIC_FEATURES . ENS ,
90+ CHAIN_SPECIFIC_FEATURES . WORKERPOOL_API_URL_REGISTRATION ,
91+ CHAIN_SPECIFIC_FEATURES . VOUCHER ,
92+ CHAIN_SPECIFIC_FEATURES . XRLC_BRIDGE ,
93+ ] ,
7594 } ,
7695 {
7796 id : 42161 ,
@@ -93,6 +112,12 @@ const networkConfigs = [
93112 voucherSubgraph : undefined , // no voucher
94113 bridge : { } , // no bridge
95114 shouldRegisterNetwork : false ,
115+ notImplemented : [
116+ CHAIN_SPECIFIC_FEATURES . ENS ,
117+ CHAIN_SPECIFIC_FEATURES . WORKERPOOL_API_URL_REGISTRATION ,
118+ CHAIN_SPECIFIC_FEATURES . VOUCHER ,
119+ CHAIN_SPECIFIC_FEATURES . XRLC_BRIDGE ,
120+ ] ,
96121 } ,
97122] ;
98123
@@ -147,6 +172,20 @@ export const getChainDefaults = (
147172 } ;
148173} ;
149174
175+ export const checkImplementedOnChain = ( chainId , featureName ) => {
176+ const networkConfig = networkConfigs . find (
177+ ( network ) => `${ network . id } ` === `${ chainId } ` ,
178+ ) ;
179+ if (
180+ networkConfig ?. notImplemented &&
181+ networkConfig . notImplemented . includes ( featureName )
182+ ) {
183+ throw new Error (
184+ `${ featureName } is not available on network ${ networkConfig . name } ` ,
185+ ) ;
186+ }
187+ } ;
188+
150189// Register unknown networks and their ENS settings for the ethers library
151190networkConfigs . forEach ( ( networkConfig ) => {
152191 if (
0 commit comments