aboutsummaryrefslogtreecommitdiffstats
path: root/vm/address.go
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2015-03-23 23:59:09 +0800
committerobscuren <geffobscura@gmail.com>2015-03-23 23:59:09 +0800
commit0330077d76b48934ab024a309000f83c78047d8a (patch)
tree2a3ffbcd5bd941b30ed28d0eb5c30553a25324e0 /vm/address.go
parentd7eaa97a297151637af090ecb05bbd6d260d90b8 (diff)
downloadgo-tangerine-0330077d76b48934ab024a309000f83c78047d8a.tar.gz
go-tangerine-0330077d76b48934ab024a309000f83c78047d8a.tar.zst
go-tangerine-0330077d76b48934ab024a309000f83c78047d8a.zip
moved state and vm to core
Diffstat (limited to 'vm/address.go')
-rw-r--r--vm/address.go77
1 files changed, 0 insertions, 77 deletions
diff --git a/vm/address.go b/vm/address.go
deleted file mode 100644
index 215f4bc8f..000000000
--- a/vm/address.go
+++ /dev/null
@@ -1,77 +0,0 @@
-package vm
-
-import (
- "math/big"
-
- "github.com/ethereum/go-ethereum/crypto"
- "github.com/ethereum/go-ethereum/common"
-)
-
-type Address interface {
- Call(in []byte) []byte
-}
-
-type PrecompiledAccount struct {
- Gas func(l int) *big.Int
- fn func(in []byte) []byte
-}
-
-func (self PrecompiledAccount) Call(in []byte) []byte {
- return self.fn(in)
-}
-
-var Precompiled = PrecompiledContracts()
-
-// XXX Could set directly. Testing requires resetting and setting of pre compiled contracts.
-func PrecompiledContracts() map[string]*PrecompiledAccount {
- return map[string]*PrecompiledAccount{
- // ECRECOVER
- string(common.LeftPadBytes([]byte{1}, 20)): &PrecompiledAccount{func(l int) *big.Int {
- return GasEcrecover
- }, ecrecoverFunc},
-
- // SHA256
- string(common.LeftPadBytes([]byte{2}, 20)): &PrecompiledAccount{func(l int) *big.Int {
- n := big.NewInt(int64(l+31) / 32)
- n.Mul(n, GasSha256Word)
- return n.Add(n, GasSha256Base)
- }, sha256Func},
-
- // RIPEMD160
- string(common.LeftPadBytes([]byte{3}, 20)): &PrecompiledAccount{func(l int) *big.Int {
- n := big.NewInt(int64(l+31) / 32)
- n.Mul(n, GasRipemdWord)
- return n.Add(n, GasRipemdBase)
- }, ripemd160Func},
-
- string(common.LeftPadBytes([]byte{4}, 20)): &PrecompiledAccount{func(l int) *big.Int {
- n := big.NewInt(int64(l+31) / 32)
- n.Mul(n, GasIdentityWord)
-
- return n.Add(n, GasIdentityBase)
- }, memCpy},
- }
-}
-
-func sha256Func(in []byte) []byte {
- return crypto.Sha256(in)
-}
-
-func ripemd160Func(in []byte) []byte {
- return common.LeftPadBytes(crypto.Ripemd160(in), 32)
-}
-
-func ecrecoverFunc(in []byte) []byte {
- // In case of an invalid sig. Defaults to return nil
- defer func() { recover() }()
-
- hash := in[:32]
- v := common.BigD(in[32:64]).Bytes()[0] - 27
- sig := append(in[64:], v)
-
- return common.LeftPadBytes(crypto.Sha3(crypto.Ecrecover(append(hash, sig...))[1:])[12:], 32)
-}
-
-func memCpy(in []byte) []byte {
- return in
-}