func TestGetAccountUtxos(t *testing.T) {
testDB := dbm.NewDB("testdb", "leveldb", "temp")
+ testStore := NewMockWalletStore(testDB)
defer func() {
testDB.Close()
os.RemoveAll("temp")
},
{
dbUtxos: map[string]*account.UTXO{
- string(account.StandardUTXOKey(bc.Hash{V0: 1})): &account.UTXO{
+ string(StandardUTXOKey(bc.Hash{V0: 1})): &account.UTXO{
OutputID: bc.Hash{V0: 1},
},
- string(account.StandardUTXOKey(bc.Hash{V0: 2})): &account.UTXO{
+ string(StandardUTXOKey(bc.Hash{V0: 2})): &account.UTXO{
OutputID: bc.Hash{V0: 2},
},
- string(account.StandardUTXOKey(bc.Hash{V0: 3})): &account.UTXO{
+ string(StandardUTXOKey(bc.Hash{V0: 3})): &account.UTXO{
OutputID: bc.Hash{V0: 3},
},
- string(account.ContractUTXOKey(bc.Hash{V0: 4})): &account.UTXO{
+ string(ContractUTXOKey(bc.Hash{V0: 4})): &account.UTXO{
OutputID: bc.Hash{V0: 4},
},
},
},
{
dbUtxos: map[string]*account.UTXO{
- string(account.StandardUTXOKey(bc.Hash{V0: 1})): &account.UTXO{
+ string(StandardUTXOKey(bc.Hash{V0: 1})): &account.UTXO{
OutputID: bc.Hash{V0: 1},
},
- string(account.StandardUTXOKey(bc.Hash{V0: 2})): &account.UTXO{
+ string(StandardUTXOKey(bc.Hash{V0: 2})): &account.UTXO{
OutputID: bc.Hash{V0: 2},
},
- string(account.StandardUTXOKey(bc.Hash{V0: 3})): &account.UTXO{
+ string(StandardUTXOKey(bc.Hash{V0: 3})): &account.UTXO{
OutputID: bc.Hash{V0: 3},
},
- string(account.ContractUTXOKey(bc.Hash{V0: 4})): &account.UTXO{
+ string(ContractUTXOKey(bc.Hash{V0: 4})): &account.UTXO{
OutputID: bc.Hash{V0: 4},
},
},
},
{
dbUtxos: map[string]*account.UTXO{
- string(account.StandardUTXOKey(bc.Hash{V0: 1})): &account.UTXO{
+ string(StandardUTXOKey(bc.Hash{V0: 1})): &account.UTXO{
OutputID: bc.Hash{V0: 1},
},
- string(account.StandardUTXOKey(bc.Hash{V0: 1, V1: 2})): &account.UTXO{
+ string(StandardUTXOKey(bc.Hash{V0: 1, V1: 2})): &account.UTXO{
OutputID: bc.Hash{V0: 1, V1: 2},
},
- string(account.StandardUTXOKey(bc.Hash{V0: 2})): &account.UTXO{
+ string(StandardUTXOKey(bc.Hash{V0: 2})): &account.UTXO{
OutputID: bc.Hash{V0: 2},
},
- string(account.StandardUTXOKey(bc.Hash{V0: 2, V1: 2})): &account.UTXO{
+ string(StandardUTXOKey(bc.Hash{V0: 2, V1: 2})): &account.UTXO{
OutputID: bc.Hash{V0: 2, V1: 2},
},
},
},
{
dbUtxos: map[string]*account.UTXO{
- string(account.StandardUTXOKey(bc.Hash{V0: 3})): &account.UTXO{
+ string(StandardUTXOKey(bc.Hash{V0: 3})): &account.UTXO{
OutputID: bc.Hash{V0: 3},
},
- string(account.ContractUTXOKey(bc.Hash{V0: 4})): &account.UTXO{
+ string(ContractUTXOKey(bc.Hash{V0: 4})): &account.UTXO{
OutputID: bc.Hash{V0: 4},
},
},
},
{
dbUtxos: map[string]*account.UTXO{
- string(account.StandardUTXOKey(bc.Hash{V0: 3})): &account.UTXO{
+ string(StandardUTXOKey(bc.Hash{V0: 3})): &account.UTXO{
OutputID: bc.Hash{V0: 3},
},
- string(account.ContractUTXOKey(bc.Hash{V0: 4})): &account.UTXO{
+ string(ContractUTXOKey(bc.Hash{V0: 4})): &account.UTXO{
OutputID: bc.Hash{V0: 4},
},
},
},
}
- w := &Wallet{DB: testDB}
+ w := &Wallet{Store: testStore}
for i, c := range cases {
for k, u := range c.dbUtxos {
data, err := json.Marshal(u)
testDB.Set([]byte(k), data)
}
- w.AccountMgr = account.NewManager(testDB, nil)
+ acccountStore := NewMockAccountStore(testDB)
+ w.AccountMgr = account.NewManager(acccountStore, nil)
w.AccountMgr.AddUnconfirmedUtxo(c.unconfirmedUtxos)
gotUtxos := w.GetAccountUtxos("", c.id, c.unconfirmed, c.isSmartContract, false)
if !testutil.DeepEqual(gotUtxos, c.wantUtxos) {
func TestFilterAccountUtxo(t *testing.T) {
testDB := dbm.NewDB("testdb", "leveldb", "temp")
+ testStore := NewMockWalletStore(testDB)
defer func() {
testDB.Close()
os.RemoveAll("temp")
},
{
dbPrograms: map[string]*account.CtrlProgram{
- "436f6e74726163743a2a37a64a4e15a772ab43bf3f5956d0d1f353946496788e7f40d0ff1796286a6f": &account.CtrlProgram{
+ "41533a013a2a37a64a4e15a772ab43bf3f5956d0d1f353946496788e7f40d0ff1796286a6f": &account.CtrlProgram{
AccountID: "testAccount",
Address: "testAddress",
KeyIndex: 53,
},
{
dbPrograms: map[string]*account.CtrlProgram{
- "436f6e74726163743a2a37a64a4e15a772ab43bf3f5956d0d1f353946496788e7f40d0ff1796286a6f": &account.CtrlProgram{
+ "41533a013a2a37a64a4e15a772ab43bf3f5956d0d1f353946496788e7f40d0ff1796286a6f": &account.CtrlProgram{
AccountID: "testAccount",
Address: "testAddress",
KeyIndex: 53,
Change: true,
},
- "436f6e74726163743adb4d86262c12ba70d50b3ca3ae102d5682436243bd1e8c79569603f75675036a": &account.CtrlProgram{
+ "41533a013adb4d86262c12ba70d50b3ca3ae102d5682436243bd1e8c79569603f75675036a": &account.CtrlProgram{
AccountID: "testAccount2",
Address: "testAddress2",
KeyIndex: 72,
},
}
- w := &Wallet{DB: testDB}
+ accountStore := NewMockAccountStore(testDB)
+ accountManager := account.NewManager(accountStore, nil)
+ w := &Wallet{
+ Store: testStore,
+ AccountMgr: accountManager,
+ }
for i, c := range cases {
for s, p := range c.dbPrograms {
data, err := json.Marshal(p)
},
},
},
+ {
+ tx: types.NewTx(types.TxData{
+ Inputs: []*types.TxInput{
+ types.NewCoinbaseInput([]byte{0x51}),
+ },
+ Outputs: []*types.TxOutput{
+ types.NewIntraChainOutput(*consensus.BTMAssetID, 0, []byte{0x51}),
+ types.NewIntraChainOutput(*consensus.BTMAssetID, 3, []byte{0x52}),
+ },
+ }),
+ statusFail: false,
+ blockHeight: 0,
+ wantUtxos: []*account.UTXO{
+ &account.UTXO{
+ OutputID: bc.Hash{V0: 17248080803965266442, V1: 11280159100206427956, V2: 14296992668077839045, V3: 10053986081220066749},
+ AssetID: *consensus.BTMAssetID,
+ Amount: 3,
+ ControlProgram: []byte{0x52},
+ SourceID: bc.Hash{V0: 14680680172533616824, V1: 32429899179491316, V2: 15399988966960786775, V3: 17411722803888206567},
+ SourcePos: 1,
+ ValidHeight: 100,
+ },
+ },
+ },
}
for i, c := range cases {