Skip to content

Commit

Permalink
Fix Swap priority fee set in transaction (#106)
Browse files Browse the repository at this point in the history
  • Loading branch information
jeffyanta committed Apr 5, 2024
1 parent 9c8fd54 commit 0a22e66
Showing 1 changed file with 13 additions and 10 deletions.
23 changes: 13 additions & 10 deletions pkg/code/server/grpc/transaction/v2/swap.go
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,11 @@ func (s *transactionServer) Swap(streamer transactionpb.Transaction_SwapServer)
// Section: Transaction construction
//

computeUnitLimit, _ := compute_budget.DecompileSetComputeUnitLimitIxnData(jupiterSwapIxns.ComputeBudgetInstructions[0].Data)

computeUnitPrice, _ := compute_budget.DecompileSetComputeUnitPriceIxnData(jupiterSwapIxns.ComputeBudgetInstructions[1].Data)
computeUnitPrice = uint64(s.conf.swapPriorityFeeMultiple.Get(ctx) * float64(computeUnitPrice))

swapNonce, err := common.NewRandomAccount()
if err != nil {
log.WithError(err).Warn("failure generating swap nonce")
Expand Down Expand Up @@ -272,11 +277,14 @@ func (s *transactionServer) Swap(streamer transactionpb.Transaction_SwapServer)
},
).ToLegacyInstruction()

var ixns []solana.Instruction
ixns = append(ixns, jupiterSwapIxns.ComputeBudgetInstructions...)
ixns = append(ixns, preSwapIxn, jupiterSwapIxns.SwapInstruction, postSwapIxn)

txn := solana.NewTransaction(s.swapSubsidizer.PublicKey().ToBytes(), ixns...)
txn := solana.NewTransaction(
s.swapSubsidizer.PublicKey().ToBytes(),
compute_budget.SetComputeUnitLimit(computeUnitLimit),
compute_budget.SetComputeUnitPrice(computeUnitPrice),
preSwapIxn,
jupiterSwapIxns.SwapInstruction,
postSwapIxn,
)

blockhash, err := s.data.GetBlockchainLatestBlockhash(ctx)
if err != nil {
Expand All @@ -289,11 +297,6 @@ func (s *transactionServer) Swap(streamer transactionpb.Transaction_SwapServer)
// Section: Server parameters
//

computeUnitLimit, _ := compute_budget.DecompileSetComputeUnitLimitIxnData(jupiterSwapIxns.ComputeBudgetInstructions[0].Data)

computeUnitPrice, _ := compute_budget.DecompileSetComputeUnitPriceIxnData(jupiterSwapIxns.ComputeBudgetInstructions[1].Data)
computeUnitPrice = uint64(s.conf.swapPriorityFeeMultiple.Get(ctx) * float64(computeUnitPrice))

var protoSwapIxnAccounts []*commonpb.InstructionAccount
for _, ixnAccount := range jupiterSwapIxns.SwapInstruction.Accounts {
protoSwapIxnAccounts = append(protoSwapIxnAccounts, &commonpb.InstructionAccount{
Expand Down

0 comments on commit 0a22e66

Please sign in to comment.