Skip to content

Commit c190f29

Browse files
authored
Merge pull request #5 from dapperscene6/dapperscene6/enable-point-evaluation
Enable Point Evaluation Precompile
2 parents 49c0328 + 16e5bad commit c190f29

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

core/vm/contracts.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
113127
var (
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.
136154
func 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:

core/vm/evm.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ type (
4444
func (evm *EVM) precompile(addr common.Address) (PrecompiledContract, bool) {
4545
var precompiles map[common.Address]PrecompiledContract
4646
switch {
47+
case evm.chainRules.IsSharding:
48+
precompiles = PrecompiledContractsDanksharding
4749
case evm.chainRules.IsBerlin:
4850
precompiles = PrecompiledContractsBerlin
4951
case evm.chainRules.IsIstanbul:

0 commit comments

Comments
 (0)