File tree Expand file tree Collapse file tree 1 file changed +10
-7
lines changed Expand file tree Collapse file tree 1 file changed +10
-7
lines changed Original file line number Diff line number Diff line change @@ -395,13 +395,16 @@ export class Transaction {
395
395
396
396
// Sort. Prioritizing first by signer, then by writable
397
397
uniqueMetas . sort ( function ( x , y ) {
398
- const pubkeySorting = x . pubkey
399
- . toBase58 ( )
400
- . localeCompare ( y . pubkey . toBase58 ( ) ) ;
401
- const checkSigner = x . isSigner === y . isSigner ? 0 : x . isSigner ? - 1 : 1 ;
402
- const checkWritable =
403
- x . isWritable === y . isWritable ? pubkeySorting : x . isWritable ? - 1 : 1 ;
404
- return checkSigner || checkWritable ;
398
+ if ( x . isSigner !== y . isSigner ) {
399
+ // Signers always come before non-signers
400
+ return x . isSigner ? - 1 : 1 ;
401
+ }
402
+ if ( x . isWritable !== y . isWritable ) {
403
+ // Writable accounts always come before read-only accounts
404
+ return x . isWritable ? - 1 : 1 ;
405
+ }
406
+ // Otherwise, sort by pubkey.
407
+ return x . pubkey . _bn . cmp ( y . pubkey . _bn ) ;
405
408
} ) ;
406
409
407
410
// Move fee payer to the front
You can’t perform that action at this time.
0 commit comments