github.com/bigzoro/my_simplechain@v0.0.0-20240315012955-8ad0a2a29bb9/ethclient/snapshot.go (about)

     1  package ethclient
     2  
     3  import (
     4  	"context"
     5  	"github.com/bigzoro/my_simplechain/common"
     6  	"math/big"
     7  
     8  	"github.com/bigzoro/my_simplechain"
     9  	"github.com/bigzoro/my_simplechain/consensus/clique"
    10  )
    11  
    12  func (ec *Client) GetSnapshot(ctx context.Context, number *big.Int) (*clique.Snapshot, error) {
    13  	var r *clique.Snapshot
    14  	err := ec.c.CallContext(ctx, &r, "clique_getSnapshot", toBlockNumArg(number))
    15  	if err == nil {
    16  		if r == nil {
    17  			return nil, simplechain.NotFound
    18  		}
    19  	}
    20  	return r, err
    21  }
    22  
    23  // Propose auth 表示的是授权和去授权的意思
    24  // true 表示授权
    25  // false 表示的是把权力收回
    26  func (ec *Client) Propose(ctx context.Context, address common.Address, auth bool) error {
    27  	var result interface{}
    28  	err := ec.c.CallContext(ctx, &result, "clique_propose", address, auth)
    29  	if err != nil {
    30  		return err
    31  	}
    32  	return nil
    33  }
    34  
    35  func (ec *Client) GetSigners(ctx context.Context, number *big.Int) ([]common.Address, error) {
    36  	var result []common.Address
    37  	err := ec.c.CallContext(ctx, &result, "clique_getSigners", toBlockNumArg(number))
    38  	if err != nil {
    39  		return nil, err
    40  	}
    41  	return result, nil
    42  }