Commit 44deaf4c authored by vipwzw's avatar vipwzw Committed by 33cn

fixbug test

parent 54d53dfc
...@@ -692,6 +692,7 @@ func (client *client) createBlock(lastBlock *types.Block, txs []*types.Transacti ...@@ -692,6 +692,7 @@ func (client *client) createBlock(lastBlock *types.Block, txs []*types.Transacti
newblock.TxHash = merkle.CalcMerkleRoot(newblock.Txs) newblock.TxHash = merkle.CalcMerkleRoot(newblock.Txs)
newblock.BlockTime = mainBlock.Detail.Block.BlockTime newblock.BlockTime = mainBlock.Detail.Block.BlockTime
newblock.MainHash = mainBlock.Detail.Block.Hash() newblock.MainHash = mainBlock.Detail.Block.Hash()
newblock.MainHeight = mainBlock.Detail.Block.Height
err := client.addMinerTx(lastBlock.StateHash, &newblock, mainBlock) err := client.addMinerTx(lastBlock.StateHash, &newblock, mainBlock)
if err != nil { if err != nil {
return err return err
......
...@@ -109,7 +109,7 @@ func runCase(tt *testing.T, c VMCase, file string) { ...@@ -109,7 +109,7 @@ func runCase(tt *testing.T, c VMCase, file string) {
// 1 构建预置环境 pre // 1 构建预置环境 pre
inst := evm.NewEVMExecutor() inst := evm.NewEVMExecutor()
inst.SetEnv(c.env.currentNumber, c.env.currentTimestamp, uint64(c.env.currentDifficulty), nil, nil) inst.SetEnv(c.env.currentNumber, c.env.currentTimestamp, uint64(c.env.currentDifficulty))
inst.CheckInit() inst.CheckInit()
statedb := inst.GetMStateDB() statedb := inst.GetMStateDB()
mdb := createStateDB(statedb, c) mdb := createStateDB(statedb, c)
......
...@@ -252,7 +252,7 @@ func createContract(mdb *db.GoMemDB, tx types.Transaction, maxCodeSize int) (ret ...@@ -252,7 +252,7 @@ func createContract(mdb *db.GoMemDB, tx types.Transaction, maxCodeSize int) (ret
inst.CheckInit() inst.CheckInit()
msg, _ := inst.GetMessage(&tx) msg, _ := inst.GetMessage(&tx)
inst.SetEnv(10, 0, uint64(10), nil, nil) inst.SetEnv(10, 0, uint64(10))
statedb = inst.GetMStateDB() statedb = inst.GetMStateDB()
statedb.StateDB = mdb statedb.StateDB = mdb
......
...@@ -122,7 +122,7 @@ func TestExecDrawLottery(t *testing.T) { ...@@ -122,7 +122,7 @@ func TestExecDrawLottery(t *testing.T) {
if !CompareLotteryExecResult(receipt, err, &targetReceipt, targetErr) { if !CompareLotteryExecResult(receipt, err, &targetReceipt, targetErr) {
t.Error(testNormErr) t.Error(testNormErr)
} }
lottery.SetEnv(100, 0, 0, nil, nil) lottery.SetEnv(100, 0, 0)
receipt, err = lottery.Exec(tx, 0) receipt, err = lottery.Exec(tx, 0)
targetErr = types.ErrActionNotSupport targetErr = types.ErrActionNotSupport
// ErrActionNotSupport case // ErrActionNotSupport case
......
...@@ -104,7 +104,7 @@ func TestMultiSigAccCreate(t *testing.T) { ...@@ -104,7 +104,7 @@ func TestMultiSigAccCreate(t *testing.T) {
//accA.SaveExecAccount(address.ExecAddress("multisig"), &accountA) //accA.SaveExecAccount(address.ExecAddress("multisig"), &accountA)
driver := newMultiSig() driver := newMultiSig()
driver.SetEnv(env.blockHeight, env.blockTime, env.difficulty, nil, nil) driver.SetEnv(env.blockHeight, env.blockTime, env.difficulty)
driver.SetStateDB(stateDB) driver.SetStateDB(stateDB)
driver.SetLocalDB(localDB) driver.SetLocalDB(localDB)
driver.SetAPI(api) driver.SetAPI(api)
......
...@@ -54,7 +54,7 @@ func (suite *AssetTransferTestSuite) SetupTest() { ...@@ -54,7 +54,7 @@ func (suite *AssetTransferTestSuite) SetupTest() {
suite.exec = newParacross().(*Paracross) suite.exec = newParacross().(*Paracross)
suite.exec.SetLocalDB(suite.localDB) suite.exec.SetLocalDB(suite.localDB)
suite.exec.SetStateDB(suite.stateDB) suite.exec.SetStateDB(suite.stateDB)
suite.exec.SetEnv(0, 0, 0, nil, nil) suite.exec.SetEnv(0, 0, 0)
suite.exec.SetAPI(suite.api) suite.exec.SetAPI(suite.api)
enableParacrossTransfer = true enableParacrossTransfer = true
......
...@@ -49,7 +49,7 @@ func (suite *AssetWithdrawTestSuite) SetupTest() { ...@@ -49,7 +49,7 @@ func (suite *AssetWithdrawTestSuite) SetupTest() {
suite.exec = newParacross().(*Paracross) suite.exec = newParacross().(*Paracross)
suite.exec.SetLocalDB(suite.localDB) suite.exec.SetLocalDB(suite.localDB)
suite.exec.SetStateDB(suite.stateDB) suite.exec.SetStateDB(suite.stateDB)
suite.exec.SetEnv(0, 0, 0, nil, nil) suite.exec.SetEnv(0, 0, 0)
suite.exec.SetAPI(suite.api) suite.exec.SetAPI(suite.api)
enableParacrossTransfer = true enableParacrossTransfer = true
......
...@@ -102,7 +102,7 @@ func (suite *CommitTestSuite) SetupSuite() { ...@@ -102,7 +102,7 @@ func (suite *CommitTestSuite) SetupSuite() {
suite.exec = newParacross().(*Paracross) suite.exec = newParacross().(*Paracross)
suite.exec.SetLocalDB(suite.localDB) suite.exec.SetLocalDB(suite.localDB)
suite.exec.SetStateDB(suite.stateDB) suite.exec.SetStateDB(suite.stateDB)
suite.exec.SetEnv(0, 0, 0, nil, nil) suite.exec.SetEnv(0, 0, 0)
suite.exec.SetAPI(suite.api) suite.exec.SetAPI(suite.api)
enableParacrossTransfer = false enableParacrossTransfer = false
......
...@@ -72,7 +72,7 @@ func (s *suiteRelay) SetupSuite() { ...@@ -72,7 +72,7 @@ func (s *suiteRelay) SetupSuite() {
relay := &relay{} relay := &relay{}
relay.SetStateDB(accDb) relay.SetStateDB(accDb)
relay.SetLocalDB(s.kvdb) relay.SetLocalDB(s.kvdb)
relay.SetEnv(10, 100, 1, nil, nil) relay.SetEnv(10, 100, 1)
relay.SetIsFree(false) relay.SetIsFree(false)
relay.SetAPI(nil) relay.SetAPI(nil)
relay.SetChild(relay) relay.SetChild(relay)
...@@ -139,7 +139,7 @@ func (s *suiteRelay) TestExec_1() { ...@@ -139,7 +139,7 @@ func (s *suiteRelay) TestExec_1() {
tx.Payload = types.Encode(sell) tx.Payload = types.Encode(sell)
tx.Sign(types.SECP256K1, privFrom) tx.Sign(types.SECP256K1, privFrom)
s.relay.SetEnv(10, 1000, 1, nil, nil) s.relay.SetEnv(10, 1000, 1)
heightBytes := types.Encode(&types.Int64{Data: int64(10)}) heightBytes := types.Encode(&types.Int64{Data: int64(10)})
s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once() s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once()
...@@ -180,7 +180,7 @@ func (s *suiteRelay) TestExec_2() { ...@@ -180,7 +180,7 @@ func (s *suiteRelay) TestExec_2() {
tx.Payload = types.Encode(sell) tx.Payload = types.Encode(sell)
tx.Sign(types.SECP256K1, privTo) tx.Sign(types.SECP256K1, privTo)
s.relay.SetEnv(20, 2000, 1, nil, nil) s.relay.SetEnv(20, 2000, 1)
heightBytes := types.Encode(&types.Int64{Data: int64(20)}) heightBytes := types.Encode(&types.Int64{Data: int64(20)})
s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once() s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once()
receipt, err := s.relay.Exec(tx, 0) receipt, err := s.relay.Exec(tx, 0)
...@@ -216,7 +216,7 @@ func (s *suiteRelay) TestExec_3() { ...@@ -216,7 +216,7 @@ func (s *suiteRelay) TestExec_3() {
tx.Payload = types.Encode(sell) tx.Payload = types.Encode(sell)
tx.Sign(types.SECP256K1, privFrom) tx.Sign(types.SECP256K1, privFrom)
s.relay.SetEnv(30, 3000, 1, nil, nil) s.relay.SetEnv(30, 3000, 1)
heightBytes := types.Encode(&types.Int64{Data: int64(30)}) heightBytes := types.Encode(&types.Int64{Data: int64(30)})
s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once() s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once()
receipt, err := s.relay.Exec(tx, 0) receipt, err := s.relay.Exec(tx, 0)
...@@ -287,7 +287,7 @@ func (s *suiteRelay) TestExec_4() { ...@@ -287,7 +287,7 @@ func (s *suiteRelay) TestExec_4() {
tx.Payload = types.Encode(sell) tx.Payload = types.Encode(sell)
tx.Sign(types.SECP256K1, privFrom) tx.Sign(types.SECP256K1, privFrom)
s.relay.SetEnv(40, 4000, 1, nil, nil) s.relay.SetEnv(40, 4000, 1)
_, err := s.relay.Exec(tx, 0) _, err := s.relay.Exec(tx, 0)
s.Nil(err) s.Nil(err)
...@@ -404,7 +404,7 @@ func (s *suiteBtcHeader) SetupSuite() { ...@@ -404,7 +404,7 @@ func (s *suiteBtcHeader) SetupSuite() {
relay := &relay{} relay := &relay{}
relay.SetStateDB(s.db) relay.SetStateDB(s.db)
relay.SetLocalDB(s.kvdb) relay.SetLocalDB(s.kvdb)
relay.SetEnv(10, 100, 1, nil, nil) relay.SetEnv(10, 100, 1)
relay.SetIsFree(false) relay.SetIsFree(false)
relay.SetAPI(nil) relay.SetAPI(nil)
relay.SetChild(relay) relay.SetChild(relay)
...@@ -515,7 +515,7 @@ func (s *suiteBtcHeader) TestSaveBtcHead_1() { ...@@ -515,7 +515,7 @@ func (s *suiteBtcHeader) TestSaveBtcHead_1() {
tx.Payload = types.Encode(sell) tx.Payload = types.Encode(sell)
tx.Sign(types.SECP256K1, privFrom) tx.Sign(types.SECP256K1, privFrom)
s.relay.SetEnv(10, 1000, 1, nil, nil) s.relay.SetEnv(10, 1000, 1)
s.db.On("Get", mock.Anything).Return(nil, types.ErrNotFound).Once() s.db.On("Get", mock.Anything).Return(nil, types.ErrNotFound).Once()
s.db.On("Set", mock.Anything, mock.Anything).Return(nil).Once() s.db.On("Set", mock.Anything, mock.Anything).Return(nil).Once()
......
...@@ -152,7 +152,7 @@ func (s *suiteRelayDB) SetupSuite() { ...@@ -152,7 +152,7 @@ func (s *suiteRelayDB) SetupSuite() {
relay := &relay{} relay := &relay{}
relay.SetStateDB(accDb) relay.SetStateDB(accDb)
relay.SetLocalDB(s.kvdb) relay.SetLocalDB(s.kvdb)
relay.SetEnv(10, 100, 1, nil, nil) relay.SetEnv(10, 100, 1)
relay.SetIsFree(false) relay.SetIsFree(false)
relay.SetAPI(nil) relay.SetAPI(nil)
relay.SetChild(relay) relay.SetChild(relay)
...@@ -175,7 +175,7 @@ func (s *suiteRelayDB) TestRelayCreate_1() { ...@@ -175,7 +175,7 @@ func (s *suiteRelayDB) TestRelayCreate_1() {
tx.Nonce = 1 //for different order id tx.Nonce = 1 //for different order id
tx.Sign(types.SECP256K1, privFrom) tx.Sign(types.SECP256K1, privFrom)
s.relay.SetEnv(10, 1000, 1, nil, nil) s.relay.SetEnv(10, 1000, 1)
s.relayDb = newRelayDB(s.relay, tx) s.relayDb = newRelayDB(s.relay, tx)
heightBytes := types.Encode(&types.Int64{Data: int64(10)}) heightBytes := types.Encode(&types.Int64{Data: int64(10)})
s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once() s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once()
...@@ -207,7 +207,7 @@ func (s *suiteRelayDB) TestRevokeCreate_1aUnlock() { ...@@ -207,7 +207,7 @@ func (s *suiteRelayDB) TestRevokeCreate_1aUnlock() {
tx.To = s.addrRelay tx.To = s.addrRelay
tx.Sign(types.SECP256K1, privFrom) tx.Sign(types.SECP256K1, privFrom)
s.relay.SetEnv(11, 1000, 1, nil, nil) s.relay.SetEnv(11, 1000, 1)
s.relayDb = newRelayDB(s.relay, tx) s.relayDb = newRelayDB(s.relay, tx)
heightBytes := types.Encode(&types.Int64{Data: int64(10)}) heightBytes := types.Encode(&types.Int64{Data: int64(10)})
s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once() s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once()
...@@ -228,7 +228,7 @@ func (s *suiteRelayDB) TestRevokeCreate_1bCancel() { ...@@ -228,7 +228,7 @@ func (s *suiteRelayDB) TestRevokeCreate_1bCancel() {
tx.To = s.addrRelay tx.To = s.addrRelay
tx.Sign(types.SECP256K1, privFrom) tx.Sign(types.SECP256K1, privFrom)
s.relay.SetEnv(11, 1000, 1, nil, nil) s.relay.SetEnv(11, 1000, 1)
s.relayDb = newRelayDB(s.relay, tx) s.relayDb = newRelayDB(s.relay, tx)
heightBytes := types.Encode(&types.Int64{Data: int64(10)}) heightBytes := types.Encode(&types.Int64{Data: int64(10)})
s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once() s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once()
...@@ -308,7 +308,7 @@ func (s *suiteAccept) setupRelayCreate() { ...@@ -308,7 +308,7 @@ func (s *suiteAccept) setupRelayCreate() {
tx.Nonce = 2 //for different order id tx.Nonce = 2 //for different order id
tx.Sign(types.SECP256K1, privFrom) tx.Sign(types.SECP256K1, privFrom)
s.relay.SetEnv(10, 1000, 1, nil, nil) s.relay.SetEnv(10, 1000, 1)
s.relayDb = newRelayDB(s.relay, tx) s.relayDb = newRelayDB(s.relay, tx)
heightBytes := types.Encode(&types.Int64{Data: int64(10)}) heightBytes := types.Encode(&types.Int64{Data: int64(10)})
s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once() s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once()
...@@ -335,7 +335,7 @@ func (s *suiteAccept) SetupSuite() { ...@@ -335,7 +335,7 @@ func (s *suiteAccept) SetupSuite() {
relay := &relay{} relay := &relay{}
relay.SetStateDB(accDb) relay.SetStateDB(accDb)
relay.SetLocalDB(s.kvdb) relay.SetLocalDB(s.kvdb)
relay.SetEnv(10, 100, 1, nil, nil) relay.SetEnv(10, 100, 1)
relay.SetIsFree(false) relay.SetIsFree(false)
relay.SetAPI(nil) relay.SetAPI(nil)
relay.SetChild(relay) relay.SetChild(relay)
...@@ -356,7 +356,7 @@ func (s *suiteAccept) TestRelayAccept() { ...@@ -356,7 +356,7 @@ func (s *suiteAccept) TestRelayAccept() {
tx.To = s.addrRelay tx.To = s.addrRelay
tx.Sign(types.SECP256K1, privTo) tx.Sign(types.SECP256K1, privTo)
s.relay.SetEnv(10, 1000, 1, nil, nil) s.relay.SetEnv(10, 1000, 1)
s.relayDb = newRelayDB(s.relay, tx) s.relayDb = newRelayDB(s.relay, tx)
heightBytes := types.Encode(&types.Int64{Data: int64(20)}) heightBytes := types.Encode(&types.Int64{Data: int64(20)})
s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once() s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once()
...@@ -387,7 +387,7 @@ func (s *suiteAccept) TestRevokeAccept_1() { ...@@ -387,7 +387,7 @@ func (s *suiteAccept) TestRevokeAccept_1() {
tx.To = s.addrRelay tx.To = s.addrRelay
tx.Sign(types.SECP256K1, privFrom) tx.Sign(types.SECP256K1, privFrom)
s.relay.SetEnv(11, 1000, 1, nil, nil) s.relay.SetEnv(11, 1000, 1)
s.relayDb = newRelayDB(s.relay, tx) s.relayDb = newRelayDB(s.relay, tx)
heightBytes := types.Encode(&types.Int64{Data: int64(22)}) heightBytes := types.Encode(&types.Int64{Data: int64(22)})
s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once() s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once()
...@@ -408,7 +408,7 @@ func (s *suiteAccept) TestRevokeAccept_2() { ...@@ -408,7 +408,7 @@ func (s *suiteAccept) TestRevokeAccept_2() {
tx.To = s.addrRelay tx.To = s.addrRelay
tx.Sign(types.SECP256K1, privFrom) tx.Sign(types.SECP256K1, privFrom)
s.relay.SetEnv(11, 1000, 1, nil, nil) s.relay.SetEnv(11, 1000, 1)
s.relayDb = newRelayDB(s.relay, tx) s.relayDb = newRelayDB(s.relay, tx)
heightBytes := types.Encode(&types.Int64{Data: int64(20 + lockBtcHeight)}) heightBytes := types.Encode(&types.Int64{Data: int64(20 + lockBtcHeight)})
s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once() s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once()
...@@ -429,7 +429,7 @@ func (s *suiteAccept) TestRevokeAccept_3() { ...@@ -429,7 +429,7 @@ func (s *suiteAccept) TestRevokeAccept_3() {
tx.To = s.addrRelay tx.To = s.addrRelay
tx.Sign(types.SECP256K1, privTo) tx.Sign(types.SECP256K1, privTo)
s.relay.SetEnv(11, 1000, 1, nil, nil) s.relay.SetEnv(11, 1000, 1)
s.relayDb = newRelayDB(s.relay, tx) s.relayDb = newRelayDB(s.relay, tx)
heightBytes := types.Encode(&types.Int64{Data: int64(20 + lockBtcHeight)}) heightBytes := types.Encode(&types.Int64{Data: int64(20 + lockBtcHeight)})
s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once() s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once()
...@@ -506,7 +506,7 @@ func (s *suiteConfirm) setupRelayCreate() { ...@@ -506,7 +506,7 @@ func (s *suiteConfirm) setupRelayCreate() {
tx.Nonce = 3 //for different order id tx.Nonce = 3 //for different order id
tx.Sign(types.SECP256K1, privFrom) tx.Sign(types.SECP256K1, privFrom)
s.relay.SetEnv(10, 1000, 1, nil, nil) s.relay.SetEnv(10, 1000, 1)
s.relayDb = newRelayDB(s.relay, tx) s.relayDb = newRelayDB(s.relay, tx)
heightBytes := types.Encode(&types.Int64{Data: int64(10)}) heightBytes := types.Encode(&types.Int64{Data: int64(10)})
s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once() s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once()
...@@ -533,7 +533,7 @@ func (s *suiteConfirm) SetupSuite() { ...@@ -533,7 +533,7 @@ func (s *suiteConfirm) SetupSuite() {
relay := &relay{} relay := &relay{}
relay.SetStateDB(accDb) relay.SetStateDB(accDb)
relay.SetLocalDB(s.kvdb) relay.SetLocalDB(s.kvdb)
relay.SetEnv(10, 100, 1, nil, nil) relay.SetEnv(10, 100, 1)
relay.SetIsFree(false) relay.SetIsFree(false)
relay.SetAPI(nil) relay.SetAPI(nil)
relay.SetChild(relay) relay.SetChild(relay)
...@@ -555,7 +555,7 @@ func (s *suiteConfirm) setupAccept() { ...@@ -555,7 +555,7 @@ func (s *suiteConfirm) setupAccept() {
tx.To = s.addrRelay tx.To = s.addrRelay
tx.Sign(types.SECP256K1, privTo) tx.Sign(types.SECP256K1, privTo)
s.relay.SetEnv(10, 1000, 1, nil, nil) s.relay.SetEnv(10, 1000, 1)
s.relayDb = newRelayDB(s.relay, tx) s.relayDb = newRelayDB(s.relay, tx)
heightBytes := types.Encode(&types.Int64{Data: int64(20)}) heightBytes := types.Encode(&types.Int64{Data: int64(20)})
s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once() s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once()
...@@ -586,7 +586,7 @@ func (s *suiteConfirm) TestConfirm_1() { ...@@ -586,7 +586,7 @@ func (s *suiteConfirm) TestConfirm_1() {
tx.To = s.addrRelay tx.To = s.addrRelay
tx.Sign(types.SECP256K1, privFrom) tx.Sign(types.SECP256K1, privFrom)
s.relay.SetEnv(30, 3000, 1, nil, nil) s.relay.SetEnv(30, 3000, 1)
s.relayDb = newRelayDB(s.relay, tx) s.relayDb = newRelayDB(s.relay, tx)
_, err := s.relayDb.confirmTx(order) _, err := s.relayDb.confirmTx(order)
s.Equal(ty.ErrRelayReturnAddr, err) s.Equal(ty.ErrRelayReturnAddr, err)
...@@ -604,7 +604,7 @@ func (s *suiteConfirm) TestConfirm_2() { ...@@ -604,7 +604,7 @@ func (s *suiteConfirm) TestConfirm_2() {
tx.To = s.addrRelay tx.To = s.addrRelay
tx.Sign(types.SECP256K1, privTo) tx.Sign(types.SECP256K1, privTo)
s.relay.SetEnv(30, 3000, 1, nil, nil) s.relay.SetEnv(30, 3000, 1)
s.relayDb = newRelayDB(s.relay, tx) s.relayDb = newRelayDB(s.relay, tx)
heightBytes := types.Encode(&types.Int64{Data: int64(30)}) heightBytes := types.Encode(&types.Int64{Data: int64(30)})
s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once() s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once()
...@@ -635,7 +635,7 @@ func (s *suiteConfirm) TestRevokeConfirm_1() { ...@@ -635,7 +635,7 @@ func (s *suiteConfirm) TestRevokeConfirm_1() {
tx.To = s.addrRelay tx.To = s.addrRelay
tx.Sign(types.SECP256K1, privFrom) tx.Sign(types.SECP256K1, privFrom)
s.relay.SetEnv(40, 4000, 1, nil, nil) s.relay.SetEnv(40, 4000, 1)
s.relayDb = newRelayDB(s.relay, tx) s.relayDb = newRelayDB(s.relay, tx)
heightBytes := types.Encode(&types.Int64{Data: int64(30 + lockBtcHeight)}) heightBytes := types.Encode(&types.Int64{Data: int64(30 + lockBtcHeight)})
s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once() s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once()
...@@ -656,7 +656,7 @@ func (s *suiteConfirm) TestRevokeConfirm_2() { ...@@ -656,7 +656,7 @@ func (s *suiteConfirm) TestRevokeConfirm_2() {
tx.To = s.addrRelay tx.To = s.addrRelay
tx.Sign(types.SECP256K1, privFrom) tx.Sign(types.SECP256K1, privFrom)
s.relay.SetEnv(40, 4000, 1, nil, nil) s.relay.SetEnv(40, 4000, 1)
s.relayDb = newRelayDB(s.relay, tx) s.relayDb = newRelayDB(s.relay, tx)
heightBytes := types.Encode(&types.Int64{Data: int64(30 + 4*lockBtcHeight)}) heightBytes := types.Encode(&types.Int64{Data: int64(30 + 4*lockBtcHeight)})
s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once() s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once()
...@@ -733,7 +733,7 @@ func (s *suiteVerify) setupRelayCreate() { ...@@ -733,7 +733,7 @@ func (s *suiteVerify) setupRelayCreate() {
tx.Nonce = 4 //for different order id tx.Nonce = 4 //for different order id
tx.Sign(types.SECP256K1, privFrom) tx.Sign(types.SECP256K1, privFrom)
s.relay.SetEnv(10, 1000, 1, nil, nil) s.relay.SetEnv(10, 1000, 1)
s.relayDb = newRelayDB(s.relay, tx) s.relayDb = newRelayDB(s.relay, tx)
heightBytes := types.Encode(&types.Int64{Data: int64(10)}) heightBytes := types.Encode(&types.Int64{Data: int64(10)})
s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once() s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once()
...@@ -764,7 +764,7 @@ func (s *suiteVerify) setupAccept() { ...@@ -764,7 +764,7 @@ func (s *suiteVerify) setupAccept() {
tx.To = s.addrRelay tx.To = s.addrRelay
tx.Sign(types.SECP256K1, privTo) tx.Sign(types.SECP256K1, privTo)
s.relay.SetEnv(20, 2000, 1, nil, nil) s.relay.SetEnv(20, 2000, 1)
s.relayDb = newRelayDB(s.relay, tx) s.relayDb = newRelayDB(s.relay, tx)
heightBytes := types.Encode(&types.Int64{Data: int64(20)}) heightBytes := types.Encode(&types.Int64{Data: int64(20)})
s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once() s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once()
...@@ -795,7 +795,7 @@ func (s *suiteVerify) setupConfirm() { ...@@ -795,7 +795,7 @@ func (s *suiteVerify) setupConfirm() {
tx.To = s.addrRelay tx.To = s.addrRelay
tx.Sign(types.SECP256K1, privTo) tx.Sign(types.SECP256K1, privTo)
s.relay.SetEnv(30, 3000, 1, nil, nil) s.relay.SetEnv(30, 3000, 1)
s.relayDb = newRelayDB(s.relay, tx) s.relayDb = newRelayDB(s.relay, tx)
heightBytes := types.Encode(&types.Int64{Data: int64(30)}) heightBytes := types.Encode(&types.Int64{Data: int64(30)})
s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once() s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once()
...@@ -822,7 +822,7 @@ func (s *suiteVerify) SetupSuite() { ...@@ -822,7 +822,7 @@ func (s *suiteVerify) SetupSuite() {
relay := &relay{} relay := &relay{}
relay.SetStateDB(accDb) relay.SetStateDB(accDb)
relay.SetLocalDB(s.kvdb) relay.SetLocalDB(s.kvdb)
relay.SetEnv(10, 100, 1, nil, nil) relay.SetEnv(10, 100, 1)
relay.SetIsFree(false) relay.SetIsFree(false)
relay.SetAPI(nil) relay.SetAPI(nil)
relay.SetChild(relay) relay.SetChild(relay)
...@@ -880,7 +880,7 @@ func (s *suiteVerify) TestVerify() { ...@@ -880,7 +880,7 @@ func (s *suiteVerify) TestVerify() {
tx.To = s.addrRelay tx.To = s.addrRelay
tx.Sign(types.SECP256K1, privTo) tx.Sign(types.SECP256K1, privTo)
s.relay.SetEnv(40, 4000, 1, nil, nil) s.relay.SetEnv(40, 4000, 1)
s.relayDb = newRelayDB(s.relay, tx) s.relayDb = newRelayDB(s.relay, tx)
receipt, err := s.relayDb.verifyTx(order) receipt, err := s.relayDb.verifyTx(order)
...@@ -964,7 +964,7 @@ func (s *suiteVerifyCli) setupRelayCreate() { ...@@ -964,7 +964,7 @@ func (s *suiteVerifyCli) setupRelayCreate() {
tx.Nonce = 5 //for different order id tx.Nonce = 5 //for different order id
tx.Sign(types.SECP256K1, privFrom) tx.Sign(types.SECP256K1, privFrom)
s.relay.SetEnv(10, 1000, 1, nil, nil) s.relay.SetEnv(10, 1000, 1)
s.relayDb = newRelayDB(s.relay, tx) s.relayDb = newRelayDB(s.relay, tx)
heightBytes := types.Encode(&types.Int64{Data: int64(10)}) heightBytes := types.Encode(&types.Int64{Data: int64(10)})
s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once() s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once()
...@@ -995,7 +995,7 @@ func (s *suiteVerifyCli) setupAccept() { ...@@ -995,7 +995,7 @@ func (s *suiteVerifyCli) setupAccept() {
tx.To = s.addrRelay tx.To = s.addrRelay
tx.Sign(types.SECP256K1, privTo) tx.Sign(types.SECP256K1, privTo)
s.relay.SetEnv(20, 2000, 1, nil, nil) s.relay.SetEnv(20, 2000, 1)
s.relayDb = newRelayDB(s.relay, tx) s.relayDb = newRelayDB(s.relay, tx)
heightBytes := types.Encode(&types.Int64{Data: int64(20)}) heightBytes := types.Encode(&types.Int64{Data: int64(20)})
s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once() s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once()
...@@ -1026,7 +1026,7 @@ func (s *suiteVerifyCli) setupConfirm() { ...@@ -1026,7 +1026,7 @@ func (s *suiteVerifyCli) setupConfirm() {
tx.To = s.addrRelay tx.To = s.addrRelay
tx.Sign(types.SECP256K1, privTo) tx.Sign(types.SECP256K1, privTo)
s.relay.SetEnv(30, 3000, 1, nil, nil) s.relay.SetEnv(30, 3000, 1)
s.relayDb = newRelayDB(s.relay, tx) s.relayDb = newRelayDB(s.relay, tx)
heightBytes := types.Encode(&types.Int64{Data: int64(30)}) heightBytes := types.Encode(&types.Int64{Data: int64(30)})
s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once() s.kvdb.On("Get", mock.Anything).Return(heightBytes, nil).Once()
...@@ -1053,7 +1053,7 @@ func (s *suiteVerifyCli) SetupSuite() { ...@@ -1053,7 +1053,7 @@ func (s *suiteVerifyCli) SetupSuite() {
relay := &relay{} relay := &relay{}
relay.SetStateDB(accDb) relay.SetStateDB(accDb)
relay.SetLocalDB(s.kvdb) relay.SetLocalDB(s.kvdb)
relay.SetEnv(10, 100, 1, nil, nil) relay.SetEnv(10, 100, 1)
relay.SetIsFree(false) relay.SetIsFree(false)
relay.SetAPI(nil) relay.SetAPI(nil)
relay.SetChild(relay) relay.SetChild(relay)
...@@ -1085,7 +1085,7 @@ func (s *suiteVerifyCli) TestVerify() { ...@@ -1085,7 +1085,7 @@ func (s *suiteVerifyCli) TestVerify() {
tx.To = s.addrRelay tx.To = s.addrRelay
tx.Sign(types.SECP256K1, privTo) tx.Sign(types.SECP256K1, privTo)
s.relay.SetEnv(40, 4000, 1, nil, nil) s.relay.SetEnv(40, 4000, 1)
s.relayDb = newRelayDB(s.relay, tx) s.relayDb = newRelayDB(s.relay, tx)
receipt, err := s.relayDb.verifyCmdTx(order) receipt, err := s.relayDb.verifyCmdTx(order)
...@@ -1128,7 +1128,7 @@ func (s *suiteSaveBtcHeader) SetupSuite() { ...@@ -1128,7 +1128,7 @@ func (s *suiteSaveBtcHeader) SetupSuite() {
relay := &relay{} relay := &relay{}
relay.SetStateDB(s.db) relay.SetStateDB(s.db)
relay.SetLocalDB(s.kvdb) relay.SetLocalDB(s.kvdb)
relay.SetEnv(10, 100, 1, nil, nil) relay.SetEnv(10, 100, 1)
relay.SetIsFree(false) relay.SetIsFree(false)
relay.SetAPI(nil) relay.SetAPI(nil)
relay.SetChild(relay) relay.SetChild(relay)
...@@ -1138,7 +1138,7 @@ func (s *suiteSaveBtcHeader) SetupSuite() { ...@@ -1138,7 +1138,7 @@ func (s *suiteSaveBtcHeader) SetupSuite() {
tx.To = "addr" tx.To = "addr"
tx.Sign(types.SECP256K1, privFrom) tx.Sign(types.SECP256K1, privFrom)
s.relay.SetEnv(40, 4000, 1, nil, nil) s.relay.SetEnv(40, 4000, 1)
s.relayDb = newRelayDB(s.relay, tx) s.relayDb = newRelayDB(s.relay, tx)
} }
......
...@@ -84,7 +84,7 @@ func TestTrade_Exec_SellLimit(t *testing.T) { ...@@ -84,7 +84,7 @@ func TestTrade_Exec_SellLimit(t *testing.T) {
accA.SaveExecAccount(address.ExecAddress("trade"), &accountA) accA.SaveExecAccount(address.ExecAddress("trade"), &accountA)
driver := newTrade() driver := newTrade()
driver.SetEnv(env.blockHeight, env.blockTime, env.difficulty, nil, nil) driver.SetEnv(env.blockHeight, env.blockTime, env.difficulty)
driver.SetStateDB(stateDB) driver.SetStateDB(stateDB)
sell := &pty.TradeSellTx{ sell := &pty.TradeSellTx{
...@@ -193,7 +193,7 @@ func TestTrade_Exec_BuyLimit(t *testing.T) { ...@@ -193,7 +193,7 @@ func TestTrade_Exec_BuyLimit(t *testing.T) {
accA.SaveExecAccount(address.ExecAddress("trade"), &accountA) accA.SaveExecAccount(address.ExecAddress("trade"), &accountA)
driver := newTrade() driver := newTrade()
driver.SetEnv(env.blockHeight, env.blockTime, env.difficulty, nil, nil) driver.SetEnv(env.blockHeight, env.blockTime, env.difficulty)
driver.SetStateDB(stateDB) driver.SetStateDB(stateDB)
buy := &pty.TradeBuyLimitTx{ buy := &pty.TradeBuyLimitTx{
......
...@@ -40,6 +40,7 @@ type executorCtx struct { ...@@ -40,6 +40,7 @@ type executorCtx struct {
difficulty uint64 difficulty uint64
parentHash []byte parentHash []byte
mainHash []byte mainHash []byte
mainHeight int64
} }
func newExecutor(ctx *executorCtx, exec *Executor, txs []*types.Transaction, receipts []*types.ReceiptData) *executor { func newExecutor(ctx *executorCtx, exec *Executor, txs []*types.Transaction, receipts []*types.ReceiptData) *executor {
...@@ -146,7 +147,8 @@ func (e *executor) checkTx(tx *types.Transaction, index int) error { ...@@ -146,7 +147,8 @@ func (e *executor) checkTx(tx *types.Transaction, index int) error {
func (e *executor) setEnv(exec drivers.Driver) { func (e *executor) setEnv(exec drivers.Driver) {
exec.SetStateDB(e.stateDB) exec.SetStateDB(e.stateDB)
exec.SetLocalDB(e.localDB) exec.SetLocalDB(e.localDB)
exec.SetEnv(e.height, e.blocktime, e.difficulty, e.ctx.parentHash, e.ctx.mainHash) exec.SetEnv(e.height, e.blocktime, e.difficulty)
exec.SetBlockInfo(e.ctx.parentHash, e.ctx.mainHash, e.ctx.mainHeight)
exec.SetAPI(e.api) exec.SetAPI(e.api)
e.execapi = exec.GetExecutorAPI() e.execapi = exec.GetExecutorAPI()
exec.SetTxs(e.txs) exec.SetTxs(e.txs)
......
...@@ -163,6 +163,7 @@ func (exec *Executor) procExecCheckTx(msg queue.Message) { ...@@ -163,6 +163,7 @@ func (exec *Executor) procExecCheckTx(msg queue.Message) {
blocktime: datas.BlockTime, blocktime: datas.BlockTime,
difficulty: datas.Difficulty, difficulty: datas.Difficulty,
mainHash: datas.MainHash, mainHash: datas.MainHash,
mainHeight: datas.MainHeight,
parentHash: datas.ParentHash, parentHash: datas.ParentHash,
} }
execute := newExecutor(ctx, exec, datas.Txs, nil) execute := newExecutor(ctx, exec, datas.Txs, nil)
...@@ -194,6 +195,7 @@ func (exec *Executor) procExecTxList(msg queue.Message) { ...@@ -194,6 +195,7 @@ func (exec *Executor) procExecTxList(msg queue.Message) {
blocktime: datas.BlockTime, blocktime: datas.BlockTime,
difficulty: datas.Difficulty, difficulty: datas.Difficulty,
mainHash: datas.MainHash, mainHash: datas.MainHash,
mainHeight: datas.MainHeight,
parentHash: datas.ParentHash, parentHash: datas.ParentHash,
} }
execute := newExecutor(ctx, exec, datas.Txs, nil) execute := newExecutor(ctx, exec, datas.Txs, nil)
...@@ -263,6 +265,7 @@ func (exec *Executor) procExecAddBlock(msg queue.Message) { ...@@ -263,6 +265,7 @@ func (exec *Executor) procExecAddBlock(msg queue.Message) {
blocktime: b.BlockTime, blocktime: b.BlockTime,
difficulty: uint64(b.Difficulty), difficulty: uint64(b.Difficulty),
mainHash: b.MainHash, mainHash: b.MainHash,
mainHeight: b.MainHeight,
parentHash: b.ParentHash, parentHash: b.ParentHash,
} }
execute := newExecutor(ctx, exec, b.Txs, datas.Receipts) execute := newExecutor(ctx, exec, b.Txs, datas.Receipts)
...@@ -323,6 +326,7 @@ func (exec *Executor) procExecDelBlock(msg queue.Message) { ...@@ -323,6 +326,7 @@ func (exec *Executor) procExecDelBlock(msg queue.Message) {
blocktime: b.BlockTime, blocktime: b.BlockTime,
difficulty: uint64(b.Difficulty), difficulty: uint64(b.Difficulty),
mainHash: b.MainHash, mainHash: b.MainHash,
mainHeight: b.MainHeight,
parentHash: b.ParentHash, parentHash: b.ParentHash,
} }
execute := newExecutor(ctx, exec, b.Txs, nil) execute := newExecutor(ctx, exec, b.Txs, nil)
......
...@@ -49,7 +49,8 @@ type Driver interface { ...@@ -49,7 +49,8 @@ type Driver interface {
Allow(tx *types.Transaction, index int) error Allow(tx *types.Transaction, index int) error
IsFriend(myexec []byte, writekey []byte, othertx *types.Transaction) bool IsFriend(myexec []byte, writekey []byte, othertx *types.Transaction) bool
GetActionName(tx *types.Transaction) string GetActionName(tx *types.Transaction) string
SetEnv(height, blocktime int64, difficulty uint64, parentHash, mainHash []byte) SetEnv(height, blocktime int64, difficulty uint64)
SetBlockInfo([]byte, []byte, int64)
CheckTx(tx *types.Transaction, index int) error CheckTx(tx *types.Transaction, index int) error
Exec(tx *types.Transaction, index int) (*types.Receipt, error) Exec(tx *types.Transaction, index int) (*types.Receipt, error)
ExecLocal(tx *types.Transaction, receipt *types.ReceiptData, index int) (*types.LocalDBSet, error) ExecLocal(tx *types.Transaction, receipt *types.ReceiptData, index int) (*types.LocalDBSet, error)
...@@ -77,6 +78,7 @@ type DriverBase struct { ...@@ -77,6 +78,7 @@ type DriverBase struct {
height int64 height int64
blocktime int64 blocktime int64
parentHash, mainHash []byte parentHash, mainHash []byte
mainHeight int64
name string name string
curname string curname string
child Driver child Driver
...@@ -141,12 +143,17 @@ func (d *DriverBase) GetExecutorAPI() api.ExecutorAPI { ...@@ -141,12 +143,17 @@ func (d *DriverBase) GetExecutorAPI() api.ExecutorAPI {
} }
// SetEnv set env // SetEnv set env
func (d *DriverBase) SetEnv(height, blocktime int64, difficulty uint64, parentHash, mainHash []byte) { func (d *DriverBase) SetEnv(height, blocktime int64, difficulty uint64) {
d.height = height d.height = height
d.blocktime = blocktime d.blocktime = blocktime
d.difficulty = difficulty d.difficulty = difficulty
}
//SetBlockInfo 设置区块的信息
func (d *DriverBase) SetBlockInfo(parentHash, mainHash []byte, mainHeight int64) {
d.parentHash = parentHash d.parentHash = parentHash
d.mainHash = mainHash d.mainHash = mainHash
d.mainHeight = mainHeight
} }
// SetIsFree set isfree // SetIsFree set isfree
......
...@@ -38,6 +38,7 @@ message Block { ...@@ -38,6 +38,7 @@ message Block {
int64 blockTime = 6; int64 blockTime = 6;
uint32 difficulty = 11; uint32 difficulty = 11;
bytes mainHash = 12; bytes mainHash = 12;
int64 mainHeight = 13;
Signature signature = 8; Signature signature = 8;
repeated Transaction txs = 7; repeated Transaction txs = 7;
} }
......
...@@ -13,11 +13,12 @@ message ExecTxList { ...@@ -13,11 +13,12 @@ message ExecTxList {
bytes stateHash = 1; bytes stateHash = 1;
bytes parentHash = 7; bytes parentHash = 7;
bytes mainHash = 8; bytes mainHash = 8;
repeated Transaction txs = 2; int64 mainHeight = 9;
int64 blockTime = 3; int64 blockTime = 3;
int64 height = 4; int64 height = 4;
uint64 difficulty = 5; uint64 difficulty = 5;
bool isMempool = 6; bool isMempool = 6;
repeated Transaction txs = 2;
} }
message Query { message Query {
......
...@@ -35,6 +35,7 @@ func ExecTx(client queue.Client, prevStateRoot []byte, block *types.Block) (*typ ...@@ -35,6 +35,7 @@ func ExecTx(client queue.Client, prevStateRoot []byte, block *types.Block) (*typ
StateHash: prevStateRoot, StateHash: prevStateRoot,
ParentHash: block.ParentHash, ParentHash: block.ParentHash,
MainHash: block.MainHash, MainHash: block.MainHash,
MainHeight: block.MainHeight,
Txs: block.Txs, Txs: block.Txs,
BlockTime: block.BlockTime, BlockTime: block.BlockTime,
Height: block.Height, Height: block.Height,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment