Kaynağa Gözat

unskip StateTests/stTransactionTest and use test tx nonce

Gustav Simonsson 10 yıl önce
ebeveyn
işleme
dadf01de60
2 değiştirilmiş dosya ile 6 ekleme ve 5 silme
  1. 6 4
      tests/helper/vm.go
  2. 0 1
      tests/vm/gh_test.go

+ 6 - 4
tests/helper/vm.go

@@ -163,6 +163,7 @@ func RunState(statedb *state.StateDB, env, tx map[string]string) ([]byte, state.
 		gas        = common.Big(tx["gasLimit"])
 		price      = common.Big(tx["gasPrice"])
 		value      = common.Big(tx["value"])
+		nonce      = common.Big(tx["nonce"]).Uint64()
 		caddr      = common.HexToAddress(env["currentCoinbase"])
 	)
 
@@ -178,7 +179,7 @@ func RunState(statedb *state.StateDB, env, tx map[string]string) ([]byte, state.
 	coinbase := statedb.GetOrNewStateObject(caddr)
 	coinbase.SetGasPool(common.Big(env["currentGasLimit"]))
 
-	message := NewMessage(common.BytesToAddress(keyPair.Address()), to, data, value, gas, price)
+	message := NewMessage(common.BytesToAddress(keyPair.Address()), to, data, value, gas, price, nonce)
 	vmenv := NewEnvFromMap(statedb, env, tx)
 	vmenv.origin = common.BytesToAddress(keyPair.Address())
 	ret, _, err := core.ApplyMessage(vmenv, message, coinbase)
@@ -195,10 +196,11 @@ type Message struct {
 	to                *common.Address
 	value, gas, price *big.Int
 	data              []byte
+	nonce             uint64
 }
 
-func NewMessage(from common.Address, to *common.Address, data []byte, value, gas, price *big.Int) Message {
-	return Message{from, to, value, gas, price, data}
+func NewMessage(from common.Address, to *common.Address, data []byte, value, gas, price *big.Int, nonce uint64) Message {
+	return Message{from, to, value, gas, price, data, nonce}
 }
 
 func (self Message) Hash() []byte                  { return nil }
@@ -207,5 +209,5 @@ func (self Message) To() *common.Address           { return self.to }
 func (self Message) GasPrice() *big.Int            { return self.price }
 func (self Message) Gas() *big.Int                 { return self.gas }
 func (self Message) Value() *big.Int               { return self.value }
-func (self Message) Nonce() uint64                 { return 0 }
+func (self Message) Nonce() uint64                 { return self.nonce }
 func (self Message) Data() []byte                  { return self.data }

+ 0 - 1
tests/vm/gh_test.go

@@ -320,7 +320,6 @@ func TestStateLog(t *testing.T) {
 }
 
 func TestStateTransaction(t *testing.T) {
-	t.Skip()
 	const fn = "../files/StateTests/stTransactionTest.json"
 	RunVmTest(fn, t)
 }