X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=test%2Fintegration%2Fstandard_transaction_test.go;fp=test%2Fintegration%2Fstandard_transaction_test.go;h=0000000000000000000000000000000000000000;hb=d09b7a78d44dc259725902b8141cdba0d716b121;hp=250c41a170de786ce5166822e3ffaa95ad3521f2;hpb=ee01d543fdfe1fd0a4d548965c66f7923ea7b062;p=bytom%2Fvapor.git diff --git a/test/integration/standard_transaction_test.go b/test/integration/standard_transaction_test.go deleted file mode 100644 index 250c41a1..00000000 --- a/test/integration/standard_transaction_test.go +++ /dev/null @@ -1,422 +0,0 @@ -package integration - -import ( - "encoding/json" - "io/ioutil" - "os" - "testing" - - dbm "github.com/tendermint/tmlibs/db" - - "github.com/vapor/account" - "github.com/vapor/blockchain/pseudohsm" - "github.com/vapor/blockchain/signers" - "github.com/vapor/crypto/ed25519/chainkd" - "github.com/vapor/protocol/bc/types" - "github.com/vapor/protocol/validation" - "github.com/vapor/test" -) - -func TestP2PKH(t *testing.T) { - dirPath, err := ioutil.TempDir(".", "TestP2PKH") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(dirPath) - - testDB := dbm.NewDB("testdb", "leveldb", "temp") - defer os.RemoveAll("temp") - - chain, _, _, err := test.MockChain(testDB) - if err != nil { - t.Fatal(err) - } - - accountManager := account.NewManager(testDB, chain) - hsm, err := pseudohsm.New(dirPath) - if err != nil { - t.Fatal(err) - } - - xpub, _, err := hsm.XCreate("TestP2PKH", "password", "en") - if err != nil { - t.Fatal(err) - } - - testAccount, err := accountManager.Create([]chainkd.XPub{xpub.XPub}, 1, "testAccount", signers.BIP0044) - if err != nil { - t.Fatal(err) - } - - controlProg, err := accountManager.CreateAddress(testAccount.ID, false) - if err != nil { - t.Fatal(err) - } - utxo := test.MockUTXO(controlProg) - tpl, tx, err := test.MockTx(utxo, testAccount) - if err != nil { - t.Fatal(err) - } - - if _, err := test.MockSign(tpl, hsm, "password"); err != nil { - t.Fatal(err) - } - - tx.SerializedSize = 1 - if _, err = validation.ValidateTx(types.MapTx(tx), test.MockBlock()); err != nil { - t.Fatal(err) - } -} - -func TestBip0032P2PKH(t *testing.T) { - dirPath, err := ioutil.TempDir(".", "TestP2PKH") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(dirPath) - - testDB := dbm.NewDB("testdb", "leveldb", "temp") - defer os.RemoveAll("temp") - - chain, _, _, err := test.MockChain(testDB) - if err != nil { - t.Fatal(err) - } - - accountManager := account.NewManager(testDB, chain) - hsm, err := pseudohsm.New(dirPath) - if err != nil { - t.Fatal(err) - } - - xpub, _, err := hsm.XCreate("TestP2PKH", "password", "en") - if err != nil { - t.Fatal(err) - } - - testAccount, err := accountManager.Create([]chainkd.XPub{xpub.XPub}, 1, "testAccount1", signers.BIP0044) - if err != nil { - t.Fatal(err) - } - - signer, err := signers.Create("account", []chainkd.XPub{xpub.XPub}, 1, 2, signers.BIP0032) - if err != nil { - t.Fatal(err) - } - - testAccount.Signer = signer - rawAccount, err := json.Marshal(testAccount) - if err != nil { - t.Fatal(err) - } - - testDB.Set(account.Key(testAccount.ID), rawAccount) - controlProg, err := accountManager.CreateAddress(testAccount.ID, false) - if err != nil { - t.Fatal(err) - } - - utxo := test.MockUTXO(controlProg) - tpl, tx, err := test.MockTx(utxo, testAccount) - if err != nil { - t.Fatal(err) - } - - if _, err := test.MockSign(tpl, hsm, "password"); err != nil { - t.Fatal(err) - } - - tx.SerializedSize = 1 - if _, err = validation.ValidateTx(types.MapTx(tx), test.MockBlock()); err != nil { - t.Fatal(err) - } -} - -func TestP2SH(t *testing.T) { - dirPath, err := ioutil.TempDir(".", "TestP2SH") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(dirPath) - - testDB := dbm.NewDB("testdb", "leveldb", "temp") - defer os.RemoveAll("temp") - - chain, _, _, err := test.MockChain(testDB) - if err != nil { - t.Fatal(err) - } - - accountManager := account.NewManager(testDB, chain) - hsm, err := pseudohsm.New(dirPath) - if err != nil { - t.Fatal(err) - } - - xpub1, _, err := hsm.XCreate("TestP2SH1", "password", "en") - if err != nil { - t.Fatal(err) - } - - xpub2, _, err := hsm.XCreate("TestP2SH2", "password", "en") - if err != nil { - t.Fatal(err) - } - - testAccount, err := accountManager.Create([]chainkd.XPub{xpub1.XPub, xpub2.XPub}, 2, "testAccount", signers.BIP0044) - if err != nil { - t.Fatal(err) - } - - controlProg, err := accountManager.CreateAddress(testAccount.ID, false) - if err != nil { - t.Fatal(err) - } - - utxo := test.MockUTXO(controlProg) - tpl, tx, err := test.MockTx(utxo, testAccount) - if err != nil { - t.Fatal(err) - } - - // the number of sign transaction is equal to the count of xpub for account - if _, err := test.MockSign(tpl, hsm, "password"); err != nil { - t.Fatal(err) - } - if _, err := test.MockSign(tpl, hsm, "password"); err != nil { - t.Fatal(err) - } - - tx.SerializedSize = 1 - if _, err = validation.ValidateTx(types.MapTx(tx), test.MockBlock()); err != nil { - t.Fatal(err) - } -} - -func TestBip0032P2SH(t *testing.T) { - dirPath, err := ioutil.TempDir(".", "TestP2SH") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(dirPath) - - testDB := dbm.NewDB("testdb", "leveldb", "temp") - defer os.RemoveAll("temp") - - chain, _, _, err := test.MockChain(testDB) - if err != nil { - t.Fatal(err) - } - - accountManager := account.NewManager(testDB, chain) - hsm, err := pseudohsm.New(dirPath) - if err != nil { - t.Fatal(err) - } - - xpub1, _, err := hsm.XCreate("TestP2SH1", "password", "en") - if err != nil { - t.Fatal(err) - } - - xpub2, _, err := hsm.XCreate("TestP2SH2", "password", "en") - if err != nil { - t.Fatal(err) - } - - testAccount, err := accountManager.Create([]chainkd.XPub{xpub1.XPub, xpub2.XPub}, 2, "testAccount", signers.BIP0044) - if err != nil { - t.Fatal(err) - } - signer, err := signers.Create("account", []chainkd.XPub{xpub1.XPub, xpub2.XPub}, 2, 2, signers.BIP0032) - if err != nil { - t.Fatal(err) - } - - testAccount.Signer = signer - rawAccount, err := json.Marshal(testAccount) - if err != nil { - t.Fatal(err) - } - - testDB.Set(account.Key(testAccount.ID), rawAccount) - - controlProg, err := accountManager.CreateAddress(testAccount.ID, false) - if err != nil { - t.Fatal(err) - } - - utxo := test.MockUTXO(controlProg) - tpl, tx, err := test.MockTx(utxo, testAccount) - if err != nil { - t.Fatal(err) - } - - // the number of sign transaction is equal to the count of xpub for account - if _, err := test.MockSign(tpl, hsm, "password"); err != nil { - t.Fatal(err) - } - if _, err := test.MockSign(tpl, hsm, "password"); err != nil { - t.Fatal(err) - } - - tx.SerializedSize = 1 - if _, err = validation.ValidateTx(types.MapTx(tx), test.MockBlock()); err != nil { - t.Fatal(err) - } -} - -func TestMutilNodeSign(t *testing.T) { - dirPath, err := ioutil.TempDir(".", "TestMutilNodeSign") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(dirPath) - - testDB := dbm.NewDB("testdb", "leveldb", "temp") - defer os.RemoveAll("temp") - - chain, _, _, err := test.MockChain(testDB) - if err != nil { - t.Fatal(err) - } - - accountManager := account.NewManager(testDB, chain) - hsm, err := pseudohsm.New(dirPath) - if err != nil { - t.Fatal(err) - } - - xpub1, _, err := hsm.XCreate("TestMutilNodeSign1", "password1", "en") - if err != nil { - t.Fatal(err) - } - - xpub2, _, err := hsm.XCreate("TestMutilNodeSign2", "password2", "en") - if err != nil { - t.Fatal(err) - } - - testAccount, err := accountManager.Create([]chainkd.XPub{xpub1.XPub, xpub2.XPub}, 2, "testAccount", signers.BIP0044) - if err != nil { - t.Fatal(err) - } - - controlProg, err := accountManager.CreateAddress(testAccount.ID, false) - if err != nil { - t.Fatal(err) - } - - utxo := test.MockUTXO(controlProg) - tpl, tx, err := test.MockTx(utxo, testAccount) - if err != nil { - t.Fatal(err) - } - - if finishSign, err := test.MockSign(tpl, hsm, "password"); err != nil { - t.Fatal(err) - } else if finishSign == true { - t.Fatal("sign progress is finish, but either xpub1 nor xpub2 is signed") - } - - if finishSign, err := test.MockSign(tpl, hsm, "password1"); err != nil { - t.Fatal(err) - } else if finishSign == true { - t.Fatal("sign progress is finish, but xpub2 is not signed") - } - - if finishSign, err := test.MockSign(tpl, hsm, "password2"); err != nil { - t.Fatal(err) - } else if finishSign == false { - t.Fatal("sign progress is not finish, but both xpub1 and xpub2 is signed") - } - - tx.SerializedSize = 1 - if _, err = validation.ValidateTx(types.MapTx(tx), test.MockBlock()); err != nil { - t.Fatal(err) - } -} - -func TestBip0032MutilNodeSign(t *testing.T) { - dirPath, err := ioutil.TempDir(".", "TestMutilNodeSign") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(dirPath) - - testDB := dbm.NewDB("testdb", "leveldb", "temp") - defer os.RemoveAll("temp") - - chain, _, _, err := test.MockChain(testDB) - if err != nil { - t.Fatal(err) - } - - accountManager := account.NewManager(testDB, chain) - hsm, err := pseudohsm.New(dirPath) - if err != nil { - t.Fatal(err) - } - - xpub1, _, err := hsm.XCreate("TestMutilNodeSign1", "password1", "en") - if err != nil { - t.Fatal(err) - } - - xpub2, _, err := hsm.XCreate("TestMutilNodeSign2", "password2", "en") - if err != nil { - t.Fatal(err) - } - - testAccount, err := accountManager.Create([]chainkd.XPub{xpub1.XPub, xpub2.XPub}, 2, "testAccount", signers.BIP0044) - if err != nil { - t.Fatal(err) - } - - signer, err := signers.Create("account", []chainkd.XPub{xpub1.XPub, xpub2.XPub}, 2, 2, signers.BIP0032) - if err != nil { - t.Fatal(err) - } - - testAccount.Signer = signer - rawAccount, err := json.Marshal(testAccount) - if err != nil { - t.Fatal(err) - } - - testDB.Set(account.Key(testAccount.ID), rawAccount) - - controlProg, err := accountManager.CreateAddress(testAccount.ID, false) - if err != nil { - t.Fatal(err) - } - - utxo := test.MockUTXO(controlProg) - tpl, tx, err := test.MockTx(utxo, testAccount) - if err != nil { - t.Fatal(err) - } - - if finishSign, err := test.MockSign(tpl, hsm, "password"); err != nil { - t.Fatal(err) - } else if finishSign == true { - t.Fatal("sign progress is finish, but either xpub1 nor xpub2 is signed") - } - - if finishSign, err := test.MockSign(tpl, hsm, "password1"); err != nil { - t.Fatal(err) - } else if finishSign == true { - t.Fatal("sign progress is finish, but xpub2 is not signed") - } - - if finishSign, err := test.MockSign(tpl, hsm, "password2"); err != nil { - t.Fatal(err) - } else if finishSign == false { - t.Fatal("sign progress is not finish, but both xpub1 and xpub2 is signed") - } - - tx.SerializedSize = 1 - if _, err = validation.ValidateTx(types.MapTx(tx), test.MockBlock()); err != nil { - t.Fatal(err) - } -}