mirror of https://github.com/poanetwork/gecko.git
allowed for multiple DB types to be used in the fund indexer
This commit is contained in:
parent
07656c7c23
commit
f6244aaca4
|
@ -13,6 +13,7 @@ import (
|
|||
"github.com/ava-labs/gecko/snow"
|
||||
"github.com/ava-labs/gecko/snow/engine/common"
|
||||
"github.com/ava-labs/gecko/utils/crypto"
|
||||
"github.com/ava-labs/gecko/utils/hashing"
|
||||
"github.com/ava-labs/gecko/utils/logging"
|
||||
"github.com/ava-labs/gecko/vms/components/ava"
|
||||
"github.com/ava-labs/gecko/vms/components/codec"
|
||||
|
@ -245,6 +246,16 @@ func TestIssueExportTx(t *testing.T) {
|
|||
if _, err := state.AVMUTXO(utxoID); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
addrID := ids.NewID(hashing.ComputeHash256Array(key.PublicKey().Address().Bytes()))
|
||||
|
||||
utxoIDs, err := state.AVMFunds(addrID)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(utxoIDs) != 1 {
|
||||
t.Fatalf("wrong number of utxoIDs %d", len(utxoIDs))
|
||||
}
|
||||
}
|
||||
|
||||
// Test force accepting an import transaction.
|
||||
|
|
|
@ -119,7 +119,7 @@ func (s *State) SetStatus(id ids.ID, status choices.Status) error {
|
|||
// IDs returns a slice of IDs from storage
|
||||
func (s *State) IDs(id ids.ID) ([]ids.ID, error) {
|
||||
idSlice := []ids.ID(nil)
|
||||
iter := prefixdb.New(id.Bytes(), s.DB).NewIterator()
|
||||
iter := prefixdb.NewNested(id.Bytes(), s.DB).NewIterator()
|
||||
defer iter.Release()
|
||||
|
||||
for iter.Next() {
|
||||
|
@ -138,7 +138,7 @@ func (s *State) AddID(id ids.ID, key ids.ID) error {
|
|||
if key.IsZero() {
|
||||
return errZeroID
|
||||
}
|
||||
db := prefixdb.New(id.Bytes(), s.DB)
|
||||
db := prefixdb.NewNested(id.Bytes(), s.DB)
|
||||
return db.Put(key.Bytes(), nil)
|
||||
}
|
||||
|
||||
|
@ -147,6 +147,6 @@ func (s *State) RemoveID(id ids.ID, key ids.ID) error {
|
|||
if key.IsZero() {
|
||||
return errZeroID
|
||||
}
|
||||
db := prefixdb.New(id.Bytes(), s.DB)
|
||||
db := prefixdb.NewNested(id.Bytes(), s.DB)
|
||||
return db.Delete(key.Bytes())
|
||||
}
|
||||
|
|
|
@ -37,6 +37,7 @@ var (
|
|||
errDSCantValidate = errors.New("new blockchain can't be validated by default Subnet")
|
||||
errNilSigner = errors.New("nil ShortID 'signer' is not valid")
|
||||
errNilTo = errors.New("nil ShortID 'to' is not valid")
|
||||
errNoFunds = errors.New("no spendable funds were found")
|
||||
)
|
||||
|
||||
// Service defines the API calls that can be made to the platform chain
|
||||
|
@ -987,6 +988,10 @@ func (service *Service) ImportAVA(_ *http.Request, args *ImportAVAArgs, response
|
|||
keys = append(keys, signers)
|
||||
}
|
||||
|
||||
if amount == 0 {
|
||||
return errNoFunds
|
||||
}
|
||||
|
||||
ava.SortTransferableInputsWithSigners(ins, keys)
|
||||
|
||||
// Create the transaction
|
||||
|
|
|
@ -837,7 +837,10 @@ func (vm *VM) GetAtomicUTXOs(addrs ids.Set) ([]*ava.UTXO, error) {
|
|||
|
||||
utxoIDs := ids.Set{}
|
||||
for _, addr := range addrs.List() {
|
||||
utxos, _ := state.AVMFunds(addr)
|
||||
utxos, err := state.AVMFunds(addr)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
utxoIDs.Add(utxos...)
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue