Skip to content
Snippets Groups Projects
Select Git revision
  • bcbcf50c4e296fe5d853b1a99146aecea1e06581
  • develop default protected
  • congestioncontrol
  • merge-v-data-collection-spammer-0.8.2
  • WIP-merge-v-data-collection-spammer-0.8.2
  • merge-v-data-collection-spammer-0.7.7
  • tmp
  • test-masterpow-fixing
  • test-masterpow
  • test-echo
  • v-data-collection
  • v-data-collection-spammer
  • tmp-dump-spam-info
  • dump-msg-info-0.3.1
  • test-dump-message-info
  • spammer-exprandom
  • extra/tutorial
  • without_tipselection
  • hacking-docker-network
  • hacking-docker-network-0.2.3
  • master
  • v0.2.3
22 results

tx_per_address.go

Blame
  • user avatar
    Angelo Capossele authored and Luca Moser committed
    * :art: moves all webapi into one
    
    * :art: adds public key log
    
    * :art: changes txRequest to getTrytes
    
    * :art: rename packages
    
    * :pencil: adds comments
    
    * :art: changes status to error
    
    * :recycle: removes duration from API - getTrytes converts trits to trytes - set default spammer TPS to 1
    
    Fix: Allow starting a node with gossip disabled (#97)
    
    * fix: remove selection flag and use gossip plugin
    
    * Upgrade hive.go
    
    feat: improve logging
    
    feat: improve analysis status
    
    chore: remove unused packages (#99)
    
    Fix: Use docker specific config (#100)
    
    * Use docker specific config
    
    * Format JSON
    
    :heavy_minus_sign: removes status
    
    :art: adds omitempty
    
    :lipstick: updates style import
    
    :sparkles: adds getNeighbors API
    
    :sparkles: adds getTransaction
    
    :heavy_minus_sign: removes addEndpoint
    
    * :construction: WIP
    
    * :construction: WIP
    
    * :sparkles: adds txs per address
    
    * :sparkles: adds findTransactions API
    ed435f7d
    History
    tx_per_address.go 1.66 KiB
    package tangle
    
    import (
    	"github.com/iotaledger/goshimmer/packages/database"
    	"github.com/iotaledger/hive.go/typeutils"
    	"github.com/iotaledger/iota.go/trinary"
    )
    
    var (
    	transactionsHashesForAddressDatabase database.Database
    )
    
    func configureTransactionHashesForAddressDatabase() {
    	if db, err := database.Get("transactionsHashesForAddress"); err != nil {
    		panic(err)
    	} else {
    		transactionsHashesForAddressDatabase = db
    	}
    }
    
    type TxHashForAddress struct {
    	Address trinary.Hash
    	TxHash  trinary.Hash
    }
    
    func StoreTransactionHashForAddressInDatabase(address *TxHashForAddress) error {
    	if err := transactionsHashesForAddressDatabase.Set(
    		databaseKeyForHashPrefixedHash(address.Address, address.TxHash),
    		[]byte{},
    	); err != nil {
    		return ErrDatabaseError.Derive(err, "failed to store tx for address in database")
    	}
    	return nil
    }
    
    func DeleteTransactionHashForAddressInDatabase(address *TxHashForAddress) error {
    	if err := transactionsHashesForAddressDatabase.Delete(
    		databaseKeyForHashPrefixedHash(address.Address, address.TxHash),
    	); err != nil {
    		return ErrDatabaseError.Derive(err, "failed to delete tx for address")
    	}
    
    	return nil
    }
    
    func ReadTransactionHashesForAddressFromDatabase(address trinary.Hash) ([]trinary.Hash, error) {
    	var transactionHashes []trinary.Hash
    	err := transactionsHashesForAddressDatabase.ForEachWithPrefix(databaseKeyForHashPrefix(address), func(key []byte, value []byte) {
    		k := typeutils.BytesToString(key)
    		if len(k) > 81 {
    			transactionHashes = append(transactionHashes, k[81:])
    		}
    	})
    
    	if err != nil {
    		return nil, ErrDatabaseError.Derive(err, "failed to read tx per address from database")
    	} else {
    		return transactionHashes, nil
    	}
    }