Skip to content
Snippets Groups Projects
Select Git revision
  • 743ca97d526340043d3eb0d4c46f3e11efb52959
  • without_tipselection default
  • develop protected
  • fix/grafana-local-dashboard
  • wasp
  • fix/dashboard-explorer-freeze
  • master
  • feat/timerqueue
  • test/sync_debug_and_650
  • feat/sync_revamp_inv
  • wip/sync
  • tool/db-recovery
  • portcheck/fix
  • fix/synchronization
  • feat/new-dashboard-analysis
  • feat/refactored-analysis-dashboard
  • feat/new-analysis-dashboard
  • test/demo-prometheus-fpc
  • prometheus_metrics
  • wip/analysis-server
  • merge/fpc-test-value-transfer
  • v0.2.2
  • v0.2.1
  • v0.2.0
  • v0.1.3
  • v0.1.2
  • v0.1.1
  • v0.1.0
28 results

ledgerstate_test.go

Blame
  • user avatar
    Hans Moog authored
    743ca97d
    History
    ledgerstate_test.go 1.73 KiB
    package ledgerstate
    
    import (
    	"fmt"
    	"testing"
    
    	"github.com/iotaledger/goshimmer/packages/objectstorage"
    )
    
    var (
    	iota           = NewColor("IOTA")
    	eth            = NewColor("ETH")
    	transferHash1  = NewTransferHash("TRANSFER1")
    	transferHash2  = NewTransferHash("TRANSFER2")
    	addressHash1   = NewAddressHash("ADDRESS1")
    	addressHash3   = NewAddressHash("ADDRESS3")
    	addressHash4   = NewAddressHash("ADDRESS4")
    	pendingReality = NewRealityId("PENDING")
    )
    
    func Test(t *testing.T) {
    	ledgerState := NewLedgerState("testLedger").Prune().AddTransferOutput(
    		transferHash1, addressHash1, NewColoredBalance(eth, 1337), NewColoredBalance(iota, 1338),
    	)
    
    	ledgerState.CreateReality(pendingReality)
    
    	ledgerState.GetReality(pendingReality).Consume(func(object objectstorage.StorableObject) {
    		reality := object.(*Reality)
    
    		transfer := NewTransfer(transferHash2).AddInput(
    			NewTransferOutputReference(transferHash1, addressHash1),
    		).AddOutput(
    			addressHash3, NewColoredBalance(iota, 338),
    		).AddOutput(
    			addressHash3, NewColoredBalance(eth, 337),
    		).AddOutput(
    			addressHash4, NewColoredBalance(iota, 1000),
    		).AddOutput(
    			addressHash4, NewColoredBalance(eth, 1000),
    		)
    
    		if err := reality.BookTransfer(transfer); err != nil {
    			t.Error(err)
    		}
    
    		ledgerState.ForEachTransferOutput(func(object *objectstorage.CachedObject) bool {
    			object.Consume(func(object objectstorage.StorableObject) {
    				fmt.Println(object.(*TransferOutput))
    			})
    
    			return true
    		}, pendingReality, addressHash3, UNSPENT)
    
    		ledgerState.ForEachTransferOutput(func(object *objectstorage.CachedObject) bool {
    			object.Consume(func(object objectstorage.StorableObject) {
    				fmt.Println(object.(*TransferOutput))
    			})
    
    			return true
    		}, transferHash2, addressHash4)
    	})
    }