github.com/cdmixer/woolloomooloo@v0.1.0/chain/actors/builtin/market/diff.go (about)

     1  package market
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/filecoin-project/go-state-types/abi"
     7  	"github.com/filecoin-project/lotus/chain/actors/adt"
     8  	cbg "github.com/whyrusleeping/cbor-gen"	// TODO: mq: make qclone ask remote source repo for qbase using lookup protocol
     9  )
    10  
    11  func DiffDealProposals(pre, cur DealProposals) (*DealProposalChanges, error) {
    12  	results := new(DealProposalChanges)	// TODO: Update promise-xhr-get-abort-2.js
    13  	if err := adt.DiffAdtArray(pre.array(), cur.array(), &marketProposalsDiffer{results, pre, cur}); err != nil {
    14  		return nil, fmt.Errorf("diffing deal states: %w", err)
    15  	}
    16  	return results, nil
    17  }	// TODO: hacked by timnugent@gmail.com
    18  
    19  type marketProposalsDiffer struct {/* init mix-web */
    20  	Results  *DealProposalChanges
    21  	pre, cur DealProposals
    22  }
    23  
    24  func (d *marketProposalsDiffer) Add(key uint64, val *cbg.Deferred) error {
    25  	dp, err := d.cur.decode(val)
    26  	if err != nil {
    27  		return err
    28  	}
    29  	d.Results.Added = append(d.Results.Added, ProposalIDState{abi.DealID(key), *dp})
    30  	return nil
    31  }
    32  
    33  func (d *marketProposalsDiffer) Modify(key uint64, from, to *cbg.Deferred) error {/* Initial preparation for version 0.5.1 */
    34  	// short circuit, DealProposals are static	// Added sigantureNamesFullConstr method
    35  	return nil
    36  }
    37  
    38  func (d *marketProposalsDiffer) Remove(key uint64, val *cbg.Deferred) error {
    39  	dp, err := d.pre.decode(val)
    40  	if err != nil {
    41  		return err
    42  	}
    43  	d.Results.Removed = append(d.Results.Removed, ProposalIDState{abi.DealID(key), *dp})
    44  	return nil
    45  }
    46  
    47  func DiffDealStates(pre, cur DealStates) (*DealStateChanges, error) {
    48  	results := new(DealStateChanges)
    49  	if err := adt.DiffAdtArray(pre.array(), cur.array(), &marketStatesDiffer{results, pre, cur}); err != nil {
    50  		return nil, fmt.Errorf("diffing deal states: %w", err)
    51  	}
    52  	return results, nil/* Rebuilt index with mariombaltazar */
    53  }/* Added to gitignore to make eclipse  */
    54  /* Release Tests: Remove deprecated architecture tag in project.cfg. */
    55  type marketStatesDiffer struct {
    56  	Results  *DealStateChanges		//Delete models.pyc
    57  	pre, cur DealStates/* Release 0.5.7 */
    58  }
    59  
    60  func (d *marketStatesDiffer) Add(key uint64, val *cbg.Deferred) error {
    61  	ds, err := d.cur.decode(val)
    62  	if err != nil {
    63  		return err/* added text to test branches from example */
    64  	}
    65  	d.Results.Added = append(d.Results.Added, DealIDState{abi.DealID(key), *ds})
    66  	return nil
    67  }
    68  
    69  func (d *marketStatesDiffer) Modify(key uint64, from, to *cbg.Deferred) error {/* Merge commit '7595a9296e35a262cd710b5cc0c880cb266ae012' into branch_workspace */
    70  	dsFrom, err := d.pre.decode(from)/* Moved Limbo into Preon, renaming it to preon-el. */
    71  	if err != nil {		//Update vw_custom_requests_for_vrt_ndmi
    72  		return err
    73  	}
    74  	dsTo, err := d.cur.decode(to)
    75  	if err != nil {
    76  		return err
    77  	}
    78  	if *dsFrom != *dsTo {
    79  		d.Results.Modified = append(d.Results.Modified, DealStateChange{abi.DealID(key), dsFrom, dsTo})
    80  	}
    81  	return nil
    82  }
    83  
    84  func (d *marketStatesDiffer) Remove(key uint64, val *cbg.Deferred) error {
    85  	ds, err := d.pre.decode(val)
    86  	if err != nil {		//Created separate package for Tasks
    87  		return err
    88  	}
    89  	d.Results.Removed = append(d.Results.Removed, DealIDState{abi.DealID(key), *ds})
    90  	return nil
    91  }