Skip to content

Commit

Permalink
Open up rpc.Client#DoRequest so it's possible to implemented reques…
Browse files Browse the repository at this point in the history
…t not present
  • Loading branch information
maoueh committed Feb 2, 2022
1 parent c4c1293 commit 9dce2a8
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 14 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ date.

## [v0.5.0](https://github.com/streamingfast/solana-go/releases/v0.4.0) (Feb 02, 2022)

### Change

* Open up `rpc.Client#DoRequest` so that new RPC can be implemented easily even if not present in the library directly.

### Breaking

* Moved `cmd/slnc` (and related packages `cli` and `vault`) to its own repository.
Expand Down
28 changes: 14 additions & 14 deletions rpc/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ func (c *Client) GetBalance(ctx context.Context, publicKey string, commitment Co
params = append(params, commit)
}

err = c.callFor(&out, "getBalance", params...)
err = c.DoRequest(&out, "getBalance", params...)
return
}

Expand All @@ -103,7 +103,7 @@ func (c *Client) GetRecentBlockhash(ctx context.Context, commitment CommitmentTy
params = append(params, commit)
}

err = c.callFor(&out, "getRecentBlockhash", params)
err = c.DoRequest(&out, "getRecentBlockhash", params)
return
}

Expand All @@ -116,7 +116,7 @@ func (c *Client) GetSlot(ctx context.Context, commitment CommitmentType) (out Ge
params = append(params, commit)
}

err = c.callFor(&out, "getSlot", params)
err = c.DoRequest(&out, "getSlot", params)
return
}

Expand All @@ -126,7 +126,7 @@ func (c *Client) GetConfirmedBlock(ctx context.Context, slot uint64, encoding st
}
params := []interface{}{slot, encoding}

err = c.callFor(&out, "getConfirmedBlock", params...)
err = c.DoRequest(&out, "getConfirmedBlock", params...)
return
}

Expand All @@ -136,7 +136,7 @@ func (c *Client) GetAccountInfo(ctx context.Context, account solana.PublicKey) (
}
params := []interface{}{account, obj}

err = c.callFor(&out, "getAccountInfo", params...)
err = c.DoRequest(&out, "getAccountInfo", params...)
if err != nil {
return nil, err
}
Expand All @@ -160,22 +160,22 @@ func (c *Client) GetAccountDataIn(ctx context.Context, account solana.PublicKey,
func (c *Client) GetConfirmedTransaction(ctx context.Context, signature string) (out TransactionWithMeta, err error) {
params := []interface{}{signature, "json"}

err = c.callFor(&out, "getConfirmedTransaction", params...)
err = c.DoRequest(&out, "getConfirmedTransaction", params...)
return
}

func (c *Client) GetConfirmedSignaturesForAddress2(ctx context.Context, address solana.PublicKey, opts *GetConfirmedSignaturesForAddress2Opts) (out GetConfirmedSignaturesForAddress2Result, err error) {

params := []interface{}{address.String(), opts}

err = c.callFor(&out, "getConfirmedSignaturesForAddress2", params...)
err = c.DoRequest(&out, "getConfirmedSignaturesForAddress2", params...)
return
}

func (c *Client) GetSignaturesForAddress(ctx context.Context, address solana.PublicKey, opts *GetSignaturesForAddressOpts) (out GetSignaturesForAddressResult, err error) {
params := []interface{}{address.String(), opts}

err = c.callFor(&out, "getSignaturesForAddress", params...)
err = c.DoRequest(&out, "getSignaturesForAddress", params...)
return
}

Expand All @@ -194,13 +194,13 @@ func (c *Client) GetProgramAccounts(ctx context.Context, publicKey solana.Public

params := []interface{}{publicKey, obj}

err = c.callFor(&out, "getProgramAccounts", params...)
err = c.DoRequest(&out, "getProgramAccounts", params...)
return
}

func (c *Client) GetMinimumBalanceForRentExemption(ctx context.Context, dataSize int) (lamport int, err error) {
params := []interface{}{dataSize}
err = c.callFor(&lamport, "getMinimumBalanceForRentExemption", params...)
err = c.DoRequest(&lamport, "getMinimumBalanceForRentExemption", params...)
return
}

Expand All @@ -227,7 +227,7 @@ func (c *Client) SimulateTransaction(ctx context.Context, transaction *solana.Tr
}

var out *SimulateTransactionResponse
if err := c.callFor(&out, "simulateTransaction", params...); err != nil {
if err := c.DoRequest(&out, "simulateTransaction", params...); err != nil {
return nil, fmt.Errorf("send transaction: rpc send: %w", err)
}

Expand Down Expand Up @@ -264,7 +264,7 @@ func (c *Client) SendTransaction(
obj,
}

if err := c.callFor(&signature, "sendTransaction", params...); err != nil {
if err := c.DoRequest(&signature, "sendTransaction", params...); err != nil {
var rpcError *jsonrpc.RPCError
if errors.As(err, &rpcError) {
instructionError := fromRPCError(rpcError)
Expand Down Expand Up @@ -294,13 +294,13 @@ func (c *Client) RequestAirdrop(ctx context.Context, account *solana.PublicKey,
obj,
}

if err := c.callFor(&signature, "requestAirdrop", params...); err != nil {
if err := c.DoRequest(&signature, "requestAirdrop", params...); err != nil {
return "", fmt.Errorf("send transaction: rpc send: %w", err)
}
return
}

func (c *Client) callFor(out interface{}, method string, params ...interface{}) error {
func (c *Client) DoRequest(out interface{}, method string, params ...interface{}) error {
request := jsonrpc.NewRequest(method, params...)
request.ID = c.requestIDGenerator()

Expand Down

0 comments on commit 9dce2a8

Please sign in to comment.