@@ -110,7 +110,22 @@ var PrecompiledContractsBLS = map[common.Address]PrecompiledContract{
110110 common .BytesToAddress ([]byte {18 }): & bls12381MapG2 {},
111111}
112112
113+ var PrecompiledContractsDanksharding = map [common.Address ]PrecompiledContract {
114+ common .BytesToAddress ([]byte {1 }): & ecrecover {},
115+ common .BytesToAddress ([]byte {2 }): & sha256hash {},
116+ common .BytesToAddress ([]byte {3 }): & ripemd160hash {},
117+ common .BytesToAddress ([]byte {4 }): & dataCopy {},
118+ common .BytesToAddress ([]byte {5 }): & bigModExp {eip2565 : true },
119+ common .BytesToAddress ([]byte {6 }): & bn256AddIstanbul {},
120+ common .BytesToAddress ([]byte {7 }): & bn256ScalarMulIstanbul {},
121+ common .BytesToAddress ([]byte {8 }): & bn256PairingIstanbul {},
122+ common .BytesToAddress ([]byte {9 }): & blake2F {},
123+ common .BytesToAddress ([]byte {20 }): & pointEvaluation {},
124+ }
125+
126+
113127var (
128+ PrecompiledAddressesDanksharding []common.Address
114129 PrecompiledAddressesBerlin []common.Address
115130 PrecompiledAddressesIstanbul []common.Address
116131 PrecompiledAddressesByzantium []common.Address
@@ -130,11 +145,16 @@ func init() {
130145 for k := range PrecompiledContractsBerlin {
131146 PrecompiledAddressesBerlin = append (PrecompiledAddressesBerlin , k )
132147 }
148+ for k := range PrecompiledContractsDanksharding {
149+ PrecompiledAddressesDanksharding = append (PrecompiledAddressesDanksharding , k )
150+ }
133151}
134152
135153// ActivePrecompiles returns the precompiles enabled with the current configuration.
136154func ActivePrecompiles (rules params.Rules ) []common.Address {
137155 switch {
156+ case rules .IsSharding :
157+ return PrecompiledAddressesDanksharding
138158 case rules .IsBerlin :
139159 return PrecompiledAddressesBerlin
140160 case rules .IsIstanbul :
0 commit comments