@@ -7,34 +7,35 @@ import {IAxelarGateway} from "@axelar-network/axelar-gmp-sdk-solidity/contracts/
7
7
8
8
abstract contract AxelarGatewayBase is Ownable {
9
9
event RegisteredRemoteGateway (string caip2 , string gatewayAddress );
10
- event RegisteredCAIP2Equivalence (string caip2 , string destinationChain );
10
+ event RegisteredChainEquivalence (string caip2 , string destinationChain );
11
11
12
12
error UnsupportedChain (string caip2 );
13
13
14
14
IAxelarGateway public immutable localGateway;
15
15
16
16
// TODO: merge these two (and the corresponding setters?)
17
17
mapping (string caip2 = > string remoteGateway ) private _remoteGateways;
18
- mapping (string caip2 = > string destinationChain ) private _equivalence ;
18
+ mapping (string caip2OrAxelar = > string axelarOfCaip2 ) private _chainEquivalence ;
19
19
20
20
constructor (IAxelarGateway _gateway ) {
21
21
localGateway = _gateway;
22
22
}
23
23
24
- function fromCAIP2 (string memory caip2 ) public view virtual returns (string memory axelarName ) {
25
- axelarName = _equivalence[caip2 ];
26
- require (bytes (axelarName ).length > 0 , UnsupportedChain (caip2 ));
24
+ function getEquivalentChain (string memory input ) public view virtual returns (string memory output ) {
25
+ output = _chainEquivalence[input ];
26
+ require (bytes (output ).length > 0 , UnsupportedChain (input ));
27
27
}
28
28
29
29
function getRemoteGateway (string memory caip2 ) public view virtual returns (string memory remoteGateway ) {
30
30
remoteGateway = _remoteGateways[caip2];
31
31
require (bytes (remoteGateway).length > 0 , UnsupportedChain (caip2));
32
32
}
33
33
34
- function registerCAIP2Equivalence (string calldata caip2 , string calldata axelarSupported ) public virtual onlyOwner {
35
- require (bytes (_equivalence[caip2]).length == 0 );
36
- _equivalence[caip2] = axelarSupported;
37
- emit RegisteredCAIP2Equivalence (caip2, axelarSupported);
34
+ function registerChainEquivalence (string calldata caip2 , string calldata axelarSupported ) public virtual onlyOwner {
35
+ require (bytes (_chainEquivalence[caip2]).length == 0 );
36
+ _chainEquivalence[caip2] = axelarSupported;
37
+ _chainEquivalence[axelarSupported] = caip2;
38
+ emit RegisteredChainEquivalence (caip2, axelarSupported);
38
39
}
39
40
40
41
function registerRemoteGateway (string calldata caip2 , string calldata remoteGateway ) public virtual onlyOwner {
@@ -43,74 +44,3 @@ abstract contract AxelarGatewayBase is Ownable {
43
44
emit RegisteredRemoteGateway (caip2, remoteGateway);
44
45
}
45
46
}
46
-
47
- // EVM (https://axelarscan.io/resources/chains?type=evm)
48
- // _equivalence[CAIP2.toString(bytes8("eip155"), bytes32("1"))] = "Ethereum";
49
- // _equivalence[CAIP2.toString(bytes8("eip155"), bytes32("56"))] = "binance";
50
- // _equivalence[CAIP2.toString(bytes8("eip155"), bytes32("137"))] = "Polygon";
51
- // _equivalence[CAIP2.toString(bytes8("eip155"), bytes32("43114"))] = "Avalanche";
52
- // _equivalence[CAIP2.toString(bytes8("eip155"), bytes32("250"))] = "Fantom";
53
- // _equivalence[CAIP2.toString(bytes8("eip155"), bytes32("1284"))] = "Moonbeam";
54
- // _equivalence[CAIP2.toString(bytes8("eip155"), bytes32("1313161554"))] = "aurora";
55
- // _equivalence[CAIP2.toString(bytes8("eip155"), bytes32("42161"))] = "arbitrum";
56
- // _equivalence[CAIP2.toString(bytes8("eip155"), bytes32("10"))] = "optimism";
57
- // _equivalence[CAIP2.toString(bytes8("eip155"), bytes32("8453"))] = "base";
58
- // _equivalence[CAIP2.toString(bytes8("eip155"), bytes32("5000"))] = "mantle";
59
- // _equivalence[CAIP2.toString(bytes8("eip155"), bytes32("42220"))] = "celo";
60
- // _equivalence[CAIP2.toString(bytes8("eip155"), bytes32("2222"))] = "kava";
61
- // _equivalence[CAIP2.toString(bytes8("eip155"), bytes32("314"))] = "filecoin";
62
- // _equivalence[CAIP2.toString(bytes8("eip155"), bytes32("59144"))] = "linea";
63
- // _equivalence[CAIP2.toString(bytes8("eip155"), bytes32("2031"))] = "centrifuge";
64
- // _equivalence[CAIP2.toString(bytes8("eip155"), bytes32("534352"))] = "scroll";
65
- // _equivalence[CAIP2.toString(bytes8("eip155"), bytes32("13371"))] = "immutable";
66
- // _equivalence[CAIP2.toString(bytes8("eip155"), bytes32("252"))] = "fraxtal";
67
- // _equivalence[CAIP2.toString(bytes8("eip155"), bytes32("81457"))] = "blast";
68
-
69
- // Cosmos (https://axelarscan.io/resources/chains?type=cosmos)
70
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('axelar-dojo-1'))] = 'Axelarnet';
71
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('osmosis-1'))] = 'osmosis';
72
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('cosmoshub-4'))] = 'cosmoshub';
73
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('juno-1'))] = 'juno';
74
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('emoney-3'))] = 'e-money';
75
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('injective-1'))] = 'injective';
76
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('crescent-1'))] = 'crescent';
77
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('kaiyo-1'))] = 'kujira';
78
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('secret-4'))] = 'secret-snip';
79
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('secret-4'))] = 'secret';
80
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('pacific-1'))] = 'sei';
81
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('stargaze-1'))] = 'stargaze';
82
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('mantle-1'))] = 'assetmantle';
83
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('fetchhub-4'))] = 'fetch';
84
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('kichain-2'))] = 'ki';
85
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('evmos_9001-2'))] = 'evmos';
86
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('xstaxy-1'))] = 'aura';
87
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('comdex-1'))] = 'comdex';
88
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('core-1'))] = 'persistence';
89
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('regen-1'))] = 'regen';
90
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('umee-1'))] = 'umee';
91
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('agoric-3'))] = 'agoric';
92
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('dimension_37-1'))] = 'xpla';
93
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('acre_9052-1'))] = 'acre';
94
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('stride-1'))] = 'stride';
95
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('carbon-1'))] = 'carbon';
96
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('sommelier-3'))] = 'sommelier';
97
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('neutron-1'))] = 'neutron';
98
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('reb_1111-1'))] = 'rebus';
99
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('archway-1'))] = 'archway';
100
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('pio-mainnet-1'))] = 'provenance';
101
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('ixo-5'))] = 'ixo';
102
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('migaloo-1'))] = 'migaloo';
103
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('teritori-1'))] = 'teritori';
104
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('haqq_11235-1'))] = 'haqq';
105
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('celestia'))] = 'celestia';
106
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('agamotto'))] = 'ojo';
107
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('chihuahua-1'))] = 'chihuahua';
108
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('ssc-1'))] = 'saga';
109
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('dymension_1100-1'))] = 'dymension';
110
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('fxcore'))] = 'fxcore';
111
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('perun-1'))] = 'c4e';
112
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('bitsong-2b'))] = 'bitsong';
113
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('pirin-1'))] = 'nolus';
114
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('lava-mainnet-1'))] = 'lava';
115
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('phoenix-1'))] = 'terra-2';
116
- // _equivalence[CAIP2.toString(bytes8('cosmos'), bytes32('columbus-5'))] = 'terra';"
0 commit comments