github.com/0chain/gosdk@v1.17.11/zcncore/sample/snapshot_test.go (about)

     1  package sample
     2  
     3  import (
     4  	"fmt"
     5  	"sync"
     6  	"testing"
     7  
     8  	"github.com/0chain/gosdk/zcnbridge/wallet"
     9  	"github.com/0chain/gosdk/zcncore"
    10  )
    11  
    12  type BlobberAggregate struct {
    13  	BlobberID string `json:"blobber_id" gorm:"index:idx_blobber_aggregate,unique"`
    14  	Round     int64  `json:"round" gorm:"index:idx_blobber_aggregate,unique"`
    15  
    16  	WritePrice  uint64 `json:"write_price"`
    17  	Capacity    int64  `json:"capacity"`  // total blobber capacity
    18  	Allocated   int64  `json:"allocated"` // allocated capacity
    19  	SavedData   int64  `json:"saved_data"`
    20  	ReadData    int64  `json:"read_data"`
    21  	OffersTotal uint64 `json:"offers_total"`
    22  	TotalStake  uint64 `json:"total_stake"`
    23  
    24  	TotalServiceCharge  uint64  `json:"total_service_charge"`
    25  	ChallengesPassed    uint64  `json:"challenges_passed"`
    26  	ChallengesCompleted uint64  `json:"challenges_completed"`
    27  	OpenChallenges      uint64  `json:"open_challenges"`
    28  	InactiveRounds      int64   `json:"InactiveRounds"`
    29  	RankMetric          float64 `json:"rank_metric" gorm:"index:idx_ba_rankmetric"`
    30  }
    31  
    32  const ChainConfig = `
    33  	 {
    34          "chain_id":"0afc093ffb509f059c55478bc1a60351cef7b4e9c008a53a6cc8241ca8617dfe",
    35  		"signature_scheme" : "bls0chain",
    36  		"block_worker" : "http://dev.zus.network/dns",
    37  		"min_submit" : 50,
    38  		"min_confirmation" : 50,
    39  		"confirmation_chain_length" : 3,
    40  		"num_keys" : 1,
    41  		"eth_node" : "https://ropsten.infura.io/v3/xxxxxxxxxxxxxxx"
    42  	 }
    43  `
    44  
    45  func TestGetAggregates(t *testing.T) {
    46  	t.Skip("learning test")
    47  	err := zcncore.Init(ChainConfig)
    48  	if err != nil {
    49  		fmt.Println("Init failed")
    50  		return
    51  	}
    52  
    53  	var w = `
    54  	{
    55  		"client_id":"0bc96a0980170045863d826f9eb579d8144013210602e88426408e9f83c236f6",
    56  	"client_key":"a4e58c66b072d27288b650db9a476fe66a1a4f69e0f8fb11499f9ec3a579e21e5dc0298b8c5ae5baa205730d06bc04b07a31943ab3bd620e8427c15d5c413b9e",
    57  	"keys":[
    58  		{
    59  			"public_key":"a4e58c66b072d27288b650db9a476fe66a1a4f69e0f8fb11499f9ec3a579e21e5dc0298b8c5ae5baa205730d06bc04b07a31943ab3bd620e8427c15d5c413b9e",
    60  			"private_key":"c0f3a3100241888ea9c2cc5c7300e3e510a8e7190c2c20b03f80e3937a91530d"
    61  		}],
    62  	"mnemonics":"snake mixed bird cream cotton trouble small fee finger catalog measure spoon private second canal pact unable close predict dream mask delay path inflict",
    63  	"version":"1.0",
    64  	"date_created":"2019-06-19 13:37:50.466889 -0700 PDT m=+0.023873276"
    65  	}`
    66  
    67  	err = zcncore.SetWalletInfo(w, false)
    68  	if err != nil {
    69  		fmt.Println("set wallet info failed: ", err)
    70  		return
    71  	}
    72  
    73  	wg := &sync.WaitGroup{}
    74  	var snaps []BlobberAggregate
    75  	statusBar := wallet.NewZCNStatus(&snaps)
    76  	statusBar.Wg = wg
    77  	wg.Add(5)
    78  	err = zcncore.GetBlobberSnapshots(int64(587), 20, 0, statusBar)
    79  	if err != nil {
    80  		t.Error(err)
    81  		return
    82  	}
    83  
    84  	err = zcncore.GetSharderSnapshots(int64(587), 20, 0, statusBar)
    85  	if err != nil {
    86  		t.Error(err)
    87  		return
    88  	}
    89  
    90  	err = zcncore.GetMinerSnapshots(int64(587), 20, 0, statusBar)
    91  	if err != nil {
    92  		t.Error(err)
    93  		return
    94  	}
    95  
    96  	err = zcncore.GetAuthorizerSnapshots(int64(587), 20, 0, statusBar)
    97  	if err != nil {
    98  		t.Error(err)
    99  		return
   100  	}
   101  
   102  	err = zcncore.GetValidatorSnapshots(int64(587), 20, 0, statusBar)
   103  	if err != nil {
   104  		t.Error(err)
   105  		return
   106  	}
   107  
   108  	err = zcncore.GetUserSnapshots(int64(587), 20, 0, statusBar)
   109  	if err != nil {
   110  		t.Error(err)
   111  		return
   112  	}
   113  
   114  	wg.Wait()
   115  	if !statusBar.Success {
   116  		t.Error(statusBar.Err)
   117  	}
   118  }