github.com/gagliardetto/solana-go@v1.11.0/rpc/sendEncodedTransaction.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  // SendEncodedTransaction submits a signed base64 encoded transaction to the cluster for processing.
    26  // The only difference between this function and SignTransaction is that the latter takes a *solana.Transaction value, as the former takes a raw base64 string
    27  func (cl *Client) SendEncodedTransaction(
    28  	ctx context.Context,
    29  	encodedTx string,
    30  ) (signature solana.Signature, err error) {
    31  	opts := TransactionOpts{
    32  		SkipPreflight:       false,
    33  		PreflightCommitment: "",
    34  	}
    35  
    36  	return cl.SendEncodedTransactionWithOpts(
    37  		ctx,
    38  		encodedTx,
    39  		opts,
    40  	)
    41  }
    42  
    43  // SendEncodedTransactionWithOpts submits a signed base64 encoded transaction to the cluster for processing.
    44  func (cl *Client) SendEncodedTransactionWithOpts(
    45  	ctx context.Context,
    46  	encodedTx string,
    47  	opts TransactionOpts,
    48  ) (signature solana.Signature, err error) {
    49  	obj := opts.ToMap()
    50  	params := []interface{}{
    51  		encodedTx,
    52  		obj,
    53  	}
    54  
    55  	err = cl.rpcClient.CallForInto(ctx, &signature, "sendTransaction", params)
    56  	return
    57  }