gecko/vms/components/ava/prefixed_state_test.go

73 lines
1.4 KiB
Go

// (c) 2019-2020, Ava Labs, Inc. All rights reserved.
// See the file LICENSE for licensing terms.
package ava
import (
"testing"
"github.com/ava-labs/gecko/database/memdb"
"github.com/ava-labs/gecko/ids"
"github.com/ava-labs/gecko/utils/hashing"
"github.com/ava-labs/gecko/utils/codec"
"github.com/stretchr/testify/assert"
)
func TestPrefixedFunds(t *testing.T) {
db := memdb.New()
cc := codec.NewDefault()
cc.RegisterType(&TestAddressable{})
st := NewPrefixedState(db, cc)
avmUTXO := &UTXO{
UTXOID: UTXOID{
TxID: ids.Empty,
OutputIndex: 0,
},
Asset: Asset{
ID: ids.Empty,
},
Out: &TestAddressable{
Addrs: [][]byte{
[]byte{0},
},
},
}
platformUTXO := &UTXO{
UTXOID: UTXOID{
TxID: ids.Empty,
OutputIndex: 1,
},
Asset: Asset{
ID: ids.Empty,
},
Out: &TestAddressable{
Addrs: [][]byte{
[]byte{0},
},
},
}
assert.NoError(t, st.FundAVMUTXO(avmUTXO))
assert.NoError(t, st.FundPlatformUTXO(platformUTXO))
addrID := ids.NewID(hashing.ComputeHash256Array([]byte{0}))
avmUTXOIDs, err := st.AVMFunds(addrID)
assert.NoError(t, err)
assert.Equal(t, []ids.ID{avmUTXO.InputID()}, avmUTXOIDs)
platformUTXOIDs, err := st.PlatformFunds(addrID)
assert.NoError(t, err)
assert.Equal(t, []ids.ID{platformUTXO.InputID()}, platformUTXOIDs)
assert.NoError(t, st.SpendAVMUTXO(avmUTXO.InputID()))
avmUTXOIDs, err = st.AVMFunds(addrID)
assert.NoError(t, err)
assert.Len(t, avmUTXOIDs, 0)
}