Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion api/v1_claim_rewards.go
Original file line number Diff line number Diff line change
Expand Up @@ -362,7 +362,10 @@ func sendRewardClaimTransactions(
// If partialTx is sent, remainderTx contains only the rest of the instructions
remainderTx := solana.NewTransactionBuilder()

feePayer := transactionSender.GetFeePayer()
feePayer, err := transactionSender.GetFeePayer()
if err != nil {
return nil, err
}
partialTx.SetFeePayer(feePayer.PublicKey())
remainderTx.SetFeePayer(feePayer.PublicKey())

Expand Down
8 changes: 5 additions & 3 deletions config/solana_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,9 +78,11 @@ func NewSolanaConfig() SolanaConfig {
walletKeys := strings.Split(keyString, ",")
cfg.FeePayers = make([]solana.Wallet, len(walletKeys))
for i, privkeyString := range walletKeys {
privkey := solana.MustPrivateKeyFromBase58(privkeyString)
cfg.FeePayers[i] = solana.Wallet{
PrivateKey: privkey,
if privkeyString != "" {
privkey := solana.MustPrivateKeyFromBase58(privkeyString)
cfg.FeePayers[i] = solana.Wallet{
PrivateKey: privkey,
}
}
}
} else {
Expand Down
5 changes: 4 additions & 1 deletion solana/spl/programs/claimable_tokens/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,10 @@ func (cc *ClaimableTokensClient) CreateUserBank(
ethAddress common.Address,
mint solana.PublicKey,
) error {
payer := cc.sender.GetFeePayer()
payer, err := cc.sender.GetFeePayer()
if err != nil {
return err
}
inst, err := NewCreateTokenAccountInstruction(ethAddress, mint, payer.PublicKey())
if err != nil {
return err
Expand Down
7 changes: 5 additions & 2 deletions solana/spl/transaction_sender.go
Original file line number Diff line number Diff line change
Expand Up @@ -140,8 +140,11 @@ func (ts *TransactionSender) AddPriorityFees(ctx context.Context, tx *solana.Tra
return nil
}

func (ts *TransactionSender) GetFeePayer() solana.Wallet {
return ts.feePayers[rand.IntN(len(ts.feePayers))]
func (ts *TransactionSender) GetFeePayer() (*solana.Wallet, error) {
if len(ts.feePayers) == 0 {
return nil, errors.New("no fee payers available")
}
return &ts.feePayers[rand.IntN(len(ts.feePayers))], nil
}

func (ts *TransactionSender) SendTransactionWithRetries(ctx context.Context, txBuilder *solana.TransactionBuilder, commitment rpc.CommitmentType, opts rpc.TransactionOpts) (*solana.Signature, error) {
Expand Down
Loading