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 }