diff options
author | obscuren <geffobscura@gmail.com> | 2014-12-18 06:58:52 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-12-18 06:58:52 +0800 |
commit | 4dbdcaecb117d7e1fcaf0869f5d4602312552991 (patch) | |
tree | 2da5cc7174f2f0a26f6c5aa20d079f94858e24cb /vm/address.go | |
parent | b1c58b76a9588a90db5a773a997bb70265c378d3 (diff) | |
download | dexon-4dbdcaecb117d7e1fcaf0869f5d4602312552991.tar.gz dexon-4dbdcaecb117d7e1fcaf0869f5d4602312552991.tar.zst dexon-4dbdcaecb117d7e1fcaf0869f5d4602312552991.zip |
Moved pre-compiled, moved depth check
* Depth check has been moved to the execution
* Pre compiled execution has been moved to the VM
* PrecompiledAddress has been renamed to PrecompiledAccount
Diffstat (limited to 'vm/address.go')
-rw-r--r-- | vm/address.go | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/vm/address.go b/vm/address.go index be8921a3b..611979c94 100644 --- a/vm/address.go +++ b/vm/address.go @@ -11,25 +11,25 @@ type Address interface { Call(in []byte) []byte } -type PrecompiledAddress struct { +type PrecompiledAccount struct { Gas func(l int) *big.Int fn func(in []byte) []byte } -func (self PrecompiledAddress) Call(in []byte) []byte { +func (self PrecompiledAccount) Call(in []byte) []byte { return self.fn(in) } -var Precompiled = map[uint64]*PrecompiledAddress{ - 1: &PrecompiledAddress{func(l int) *big.Int { +var Precompiled = map[string]*PrecompiledAccount{ + string(ethutil.LeftPadBytes([]byte{1}, 20)): &PrecompiledAccount{func(l int) *big.Int { return GasEcrecover }, ecrecoverFunc}, - 2: &PrecompiledAddress{func(l int) *big.Int { + string(ethutil.LeftPadBytes([]byte{2}, 20)): &PrecompiledAccount{func(l int) *big.Int { n := big.NewInt(int64(l+31)/32 + 1) n.Mul(n, GasSha256) return n }, sha256Func}, - 3: &PrecompiledAddress{func(l int) *big.Int { + string(ethutil.LeftPadBytes([]byte{3}, 20)): &PrecompiledAccount{func(l int) *big.Int { n := big.NewInt(int64(l+31)/32 + 1) n.Mul(n, GasRipemd) return n |