8 dbm "github.com/tendermint/tmlibs/db"
10 "github.com/bytom/blockchain/account"
11 "github.com/bytom/blockchain/pseudohsm"
12 "github.com/bytom/crypto/ed25519/chainkd"
13 "github.com/bytom/protocol/bc/legacy"
14 "github.com/bytom/protocol/validation"
15 "github.com/bytom/test"
18 func TestP2PKH(t *testing.T) {
19 dirPath, err := ioutil.TempDir(".", "")
23 defer os.RemoveAll(dirPath)
25 testDB := dbm.NewDB("testdb", "leveldb", "temp")
26 defer os.RemoveAll("temp")
28 chain, err := test.MockChain(testDB)
33 accountManager := account.NewManager(testDB, chain)
34 hsm, err := pseudohsm.New(dirPath)
39 xpub, err := hsm.XCreate("test_pub", "password")
44 testAccount, err := accountManager.Create(nil, []chainkd.XPub{xpub.XPub}, 1, "testAccount", nil)
49 controlProg, err := accountManager.CreateAddress(nil, testAccount.ID, false)
54 utxo := test.MockUTXO(controlProg)
55 tpl, tx, err := test.MockTx(utxo, testAccount)
60 if err := test.MockSign(tpl, hsm); err != nil {
64 if _, _, err = validation.ValidateTx(legacy.MapTx(tx), test.MockBlock()); err != nil {
69 func TestP2SH(t *testing.T) {
70 dirPath, err := ioutil.TempDir(".", "")
74 defer os.RemoveAll(dirPath)
76 testDB := dbm.NewDB("testdb", "leveldb", "temp")
77 defer os.RemoveAll("temp")
79 chain, err := test.MockChain(testDB)
84 accountManager := account.NewManager(testDB, chain)
85 hsm, err := pseudohsm.New(dirPath)
90 xpub1, err := hsm.XCreate("test_pub1", "password")
95 xpub2, err := hsm.XCreate("test_pub2", "password")
100 testAccount, err := accountManager.Create(nil, []chainkd.XPub{xpub1.XPub, xpub2.XPub}, 2, "testAccount", nil)
105 controlProg, err := accountManager.CreateAddress(nil, testAccount.ID, false)
110 utxo := test.MockUTXO(controlProg)
111 tpl, tx, err := test.MockTx(utxo, testAccount)
116 if err := test.MockSign(tpl, hsm); err != nil {
120 if _, _, err = validation.ValidateTx(legacy.MapTx(tx), test.MockBlock()); err != nil {