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 }