obscuren 10 жил өмнө
parent
commit
4e181c5764
3 өөрчлөгдсөн 65 нэмэгдсэн , 66 устгасан
  1. 16 62
      vm/common.go
  2. 49 0
      vm/gas.go
  3. 0 4
      vm/vm.go

+ 16 - 62
vm/common.go

@@ -18,8 +18,23 @@ type Type byte
 const (
 	StdVmTy Type = iota
 	JitVmTy
-
 	MaxVmTy
+
+	MaxCallDepth = 1025
+
+	LogTyPretty byte = 0x1
+	LogTyDiff   byte = 0x2
+)
+
+var (
+	Pow256 = common.BigPow(2, 256)
+
+	U256 = common.U256
+	S256 = common.S256
+
+	Zero = common.Big0
+
+	max = big.NewInt(math.MaxInt64)
 )
 
 func NewVm(env Environment) VirtualMachine {
@@ -34,67 +49,6 @@ func NewVm(env Environment) VirtualMachine {
 	}
 }
 
-var (
-	GasQuickStep   = big.NewInt(2)
-	GasFastestStep = big.NewInt(3)
-	GasFastStep    = big.NewInt(5)
-	GasMidStep     = big.NewInt(8)
-	GasSlowStep    = big.NewInt(10)
-	GasExtStep     = big.NewInt(20)
-
-	GasStorageGet        = big.NewInt(50)
-	GasStorageAdd        = big.NewInt(20000)
-	GasStorageMod        = big.NewInt(5000)
-	GasLogBase           = big.NewInt(375)
-	GasLogTopic          = big.NewInt(375)
-	GasLogByte           = big.NewInt(8)
-	GasCreate            = big.NewInt(32000)
-	GasCreateByte        = big.NewInt(200)
-	GasCall              = big.NewInt(40)
-	GasCallValueTransfer = big.NewInt(9000)
-	GasStipend           = big.NewInt(2300)
-	GasCallNewAccount    = big.NewInt(25000)
-	GasReturn            = big.NewInt(0)
-	GasStop              = big.NewInt(0)
-	GasJumpDest          = big.NewInt(1)
-
-	RefundStorage = big.NewInt(15000)
-	RefundSuicide = big.NewInt(24000)
-
-	GasMemWord           = big.NewInt(3)
-	GasQuadCoeffDenom    = big.NewInt(512)
-	GasContractByte      = big.NewInt(200)
-	GasTransaction       = big.NewInt(21000)
-	GasTxDataNonzeroByte = big.NewInt(68)
-	GasTxDataZeroByte    = big.NewInt(4)
-	GasTx                = big.NewInt(21000)
-	GasExp               = big.NewInt(10)
-	GasExpByte           = big.NewInt(10)
-
-	GasSha3Base     = big.NewInt(30)
-	GasSha3Word     = big.NewInt(6)
-	GasSha256Base   = big.NewInt(60)
-	GasSha256Word   = big.NewInt(12)
-	GasRipemdBase   = big.NewInt(600)
-	GasRipemdWord   = big.NewInt(12)
-	GasEcrecover    = big.NewInt(3000)
-	GasIdentityBase = big.NewInt(15)
-	GasIdentityWord = big.NewInt(3)
-	GasCopyWord     = big.NewInt(3)
-
-	Pow256 = common.BigPow(2, 256)
-
-	LogTyPretty byte = 0x1
-	LogTyDiff   byte = 0x2
-
-	U256 = common.U256
-	S256 = common.S256
-
-	Zero = common.Big0
-)
-
-const MaxCallDepth = 1025
-
 func calcMemSize(off, l *big.Int) *big.Int {
 	if l.Cmp(common.Big0) == 0 {
 		return common.Big0

+ 49 - 0
vm/gas.go

@@ -7,6 +7,55 @@ type req struct {
 	gas   *big.Int
 }
 
+var (
+	GasQuickStep   = big.NewInt(2)
+	GasFastestStep = big.NewInt(3)
+	GasFastStep    = big.NewInt(5)
+	GasMidStep     = big.NewInt(8)
+	GasSlowStep    = big.NewInt(10)
+	GasExtStep     = big.NewInt(20)
+
+	GasStorageGet        = big.NewInt(50)
+	GasStorageAdd        = big.NewInt(20000)
+	GasStorageMod        = big.NewInt(5000)
+	GasLogBase           = big.NewInt(375)
+	GasLogTopic          = big.NewInt(375)
+	GasLogByte           = big.NewInt(8)
+	GasCreate            = big.NewInt(32000)
+	GasCreateByte        = big.NewInt(200)
+	GasCall              = big.NewInt(40)
+	GasCallValueTransfer = big.NewInt(9000)
+	GasStipend           = big.NewInt(2300)
+	GasCallNewAccount    = big.NewInt(25000)
+	GasReturn            = big.NewInt(0)
+	GasStop              = big.NewInt(0)
+	GasJumpDest          = big.NewInt(1)
+
+	RefundStorage = big.NewInt(15000)
+	RefundSuicide = big.NewInt(24000)
+
+	GasMemWord           = big.NewInt(3)
+	GasQuadCoeffDenom    = big.NewInt(512)
+	GasContractByte      = big.NewInt(200)
+	GasTransaction       = big.NewInt(21000)
+	GasTxDataNonzeroByte = big.NewInt(68)
+	GasTxDataZeroByte    = big.NewInt(4)
+	GasTx                = big.NewInt(21000)
+	GasExp               = big.NewInt(10)
+	GasExpByte           = big.NewInt(10)
+
+	GasSha3Base     = big.NewInt(30)
+	GasSha3Word     = big.NewInt(6)
+	GasSha256Base   = big.NewInt(60)
+	GasSha256Word   = big.NewInt(12)
+	GasRipemdBase   = big.NewInt(600)
+	GasRipemdWord   = big.NewInt(12)
+	GasEcrecover    = big.NewInt(3000)
+	GasIdentityBase = big.NewInt(15)
+	GasIdentityWord = big.NewInt(3)
+	GasCopyWord     = big.NewInt(3)
+)
+
 var _baseCheck = map[OpCode]req{
 	//       Req stack  Gas price
 	ADD:          {2, GasFastestStep},

+ 0 - 4
vm/vm.go

@@ -33,10 +33,7 @@ func New(env Environment) *Vm {
 }
 
 func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) {
-	//func (self *Vm) Run(me, caller ContextRef, code []byte, value, gas, price *big.Int, callData []byte) (ret []byte, err error) {
 	self.env.SetDepth(self.env.Depth() + 1)
-
-	//context := NewContext(caller, me, code, gas, price)
 	var (
 		caller = context.caller
 		code   = context.Code
@@ -57,7 +54,6 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) {
 				ret = context.Return(nil)
 
 				err = fmt.Errorf("%v", r)
-
 			}
 		}()
 	}