mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 02:42:27 +00:00
Add contracts
This commit is contained in:
parent
d25d14ac63
commit
a5947288bc
9 changed files with 196 additions and 17 deletions
|
|
@ -66,14 +66,14 @@ var PrecompiledContractsByzantium = map[common.Address]PrecompiledContract{
|
|||
// PrecompiledContractsEWASM contains the default set of pre-compiled Ethereum
|
||||
// contracts used for Ethereum 1.x release.
|
||||
var PrecompiledContractsEWASM = map[common.Address]PrecompiledContract{
|
||||
common.BytesToAddress([]byte{1}): newEWASMPrecompile(ewasmEcrecoverCode),
|
||||
common.BytesToAddress([]byte{1}): newEWASMPrecompile(ewasmEcRecoverCode),
|
||||
common.BytesToAddress([]byte{2}): newEWASMPrecompile(ewasmSha256HashCode),
|
||||
common.BytesToAddress([]byte{3}): newEWASMPrecompile(ewasmRipemd160hashCode),
|
||||
common.BytesToAddress([]byte{4}): newEWASMPrecompile(ewasmDataCopyCode),
|
||||
common.BytesToAddress([]byte{5}): newEWASMPrecompile(ewasmBigModExpCode),
|
||||
common.BytesToAddress([]byte{6}): newEWASMPrecompile(ewasmBn256AddCode),
|
||||
common.BytesToAddress([]byte{7}): newEWASMPrecompile(ewasmBn256ScalarMulCode),
|
||||
common.BytesToAddress([]byte{8}): newEWASMPrecompile(ewasmBn256PairingCode),
|
||||
common.BytesToAddress([]byte{4}): newEWASMPrecompile(ewasmIdentityCode),
|
||||
common.BytesToAddress([]byte{5}): newEWASMPrecompile(ewasmExpModCode),
|
||||
common.BytesToAddress([]byte{6}): newEWASMPrecompile(ewasmEcAddCode),
|
||||
common.BytesToAddress([]byte{7}): newEWASMPrecompile(ewasmEcMulCode),
|
||||
common.BytesToAddress([]byte{8}): newEWASMPrecompile(ewasmEcPairingCode),
|
||||
}
|
||||
|
||||
// RunPrecompiledContract runs and evaluates the output of a precompiled contract.
|
||||
|
|
@ -92,17 +92,6 @@ type ewasmPrecompile struct {
|
|||
vm *exec.VM
|
||||
}
|
||||
|
||||
var (
|
||||
ewasmEcrecoverCode = []byte{}
|
||||
ewasmSha256HashCode = []byte{}
|
||||
ewasmRipemd160hashCode = []byte{}
|
||||
ewasmDataCopyCode = []byte{}
|
||||
ewasmBigModExpCode = []byte{}
|
||||
ewasmBn256AddCode = []byte{}
|
||||
ewasmBn256ScalarMulCode = []byte{}
|
||||
ewasmBn256PairingCode = []byte{}
|
||||
)
|
||||
|
||||
func newEWASMPrecompile(code []byte) *ewasmPrecompile {
|
||||
module, err := wasm.ReadModule(bytes.NewReader(code), nil)
|
||||
if err != nil {
|
||||
|
|
|
|||
19
core/vm/ewasm_precompile_ecadd.go
Normal file
19
core/vm/ewasm_precompile_ecadd.go
Normal file
File diff suppressed because one or more lines are too long
19
core/vm/ewasm_precompile_ecmul.go
Normal file
19
core/vm/ewasm_precompile_ecmul.go
Normal file
File diff suppressed because one or more lines are too long
19
core/vm/ewasm_precompile_ecpairing.go
Normal file
19
core/vm/ewasm_precompile_ecpairing.go
Normal file
File diff suppressed because one or more lines are too long
19
core/vm/ewasm_precompile_ecrecover.go
Normal file
19
core/vm/ewasm_precompile_ecrecover.go
Normal file
File diff suppressed because one or more lines are too long
19
core/vm/ewasm_precompile_expmod.go
Normal file
19
core/vm/ewasm_precompile_expmod.go
Normal file
File diff suppressed because one or more lines are too long
19
core/vm/ewasm_precompile_identity.go
Normal file
19
core/vm/ewasm_precompile_identity.go
Normal file
File diff suppressed because one or more lines are too long
57
core/vm/ewasm_precompile_ripemd160hash.go
Normal file
57
core/vm/ewasm_precompile_ripemd160hash.go
Normal file
File diff suppressed because one or more lines are too long
19
core/vm/ewasm_precompile_sha256.go
Normal file
19
core/vm/ewasm_precompile_sha256.go
Normal file
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue