github.com/gagliardetto/solana-go@v1.11.0/rpc/getLatestBlockhash.go (about) 1 // Copyright 2021 github.com/gagliardetto 2 // This file has been modified by github.com/gagliardetto 3 // 4 // Copyright 2020 dfuse Platform Inc. 5 // 6 // Licensed under the Apache License, Version 2.0 (the "License"); 7 // you may not use this file except in compliance with the License. 8 // You may obtain a copy of the License at 9 // 10 // http://www.apache.org/licenses/LICENSE-2.0 11 // 12 // Unless required by applicable law or agreed to in writing, software 13 // distributed under the License is distributed on an "AS IS" BASIS, 14 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 // See the License for the specific language governing permissions and 16 // limitations under the License. 17 package rpc 18 19 import ( 20 "context" 21 22 "github.com/gagliardetto/solana-go" 23 ) 24 25 // Returns the latest blockhash. 26 // 27 // **NEW: This method is only available in solana-core v1.9 or newer. Please use 28 // `getRecentBlockhash` for solana-core v1.8** 29 func (cl *Client) GetLatestBlockhash( 30 ctx context.Context, 31 commitment CommitmentType, // optional 32 ) (out *GetLatestBlockhashResult, err error) { 33 params := []interface{}{} 34 if commitment != "" { 35 params = append(params, M{"commitment": commitment}) 36 } 37 38 err = cl.rpcClient.CallForInto(ctx, &out, "getLatestBlockhash", params) 39 return 40 } 41 42 type GetLatestBlockhashResult struct { 43 RPCContext 44 Value *LatestBlockhashResult `json:"value"` 45 } 46 47 type LatestBlockhashResult struct { 48 Blockhash solana.Hash `json:"blockhash"` 49 LastValidBlockHeight uint64 `json:"lastValidBlockHeight"` // Slot. 50 }