Skip to content
Snippets Groups Projects
Select Git revision
  • master
  • dev
  • release/3.1
  • dev2
  • release/3.0.1
  • release/3.0.2
  • release/3.0.0
  • eupl_v1.2
  • feature/ssh-tunnel-to-rmi
  • logs
  • release/2.2
  • gradle
  • release/2.1
  • release/2.0
  • maison
  • recherche_optimisation_transmission_events
  • CommunicationFacade_fix
  • release/1.11
  • release/1.10
  • release/1.9.1
  • v3.1
  • v3.0.2
  • v3.0.1
  • v3.0.0
  • v2.2
  • v2.1
  • v2.0
  • 0.3.0
  • 0.2.0
  • 0.1.0
  • 1.0.0
  • v1.11
  • v1.10
  • v1.9.1
  • v1.9
  • v1.8.1
  • v1.8
  • v1.7.3
  • v1.7.2
  • v1.7.1
40 results

.project

Blame
  • ledgerstate_test.go 1.83 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")
    	conflictingReality = NewRealityId("CONFLICTING")
    )
    
    func Test(t *testing.T) {
    	ledgerState := NewLedgerState("testLedger").Prune().AddTransferOutput(
    		transferHash1, addressHash1, NewColoredBalance(eth, 1337), NewColoredBalance(iota, 1338),
    	)
    
    	ledgerState.CreateReality(pendingReality)
    
    	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),
    	)
    
    	ledgerState.BookTransfer(transfer)
    
    	ledgerState.GetReality(pendingReality).Consume(func(object objectstorage.StorableObject) {
    		reality := object.(*Reality)
    
    		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)
    	})
    }