0

Hello Solana Community,

I've been exploring transactions on the Solana blockchain and noticed something intriguing regarding transactions that create a market ID. Specifically, I observed two distinct patterns in the transaction signers involved in the creation process:

  1. In one transaction, multiple accounts such as the RequestQueue were added as signers along with the initiator of the transaction.
  2. In another, only the transaction initiator was listed as the signer.

Here are the details of the transactions for reference:

My understanding is that all necessary accounts involved in a market operation should be signers, yet I see a variation. Could someone explain why there is a difference in the number of signers between these transactions? Does it relate to the specific operations being performed, or is it due to the way the transactions were constructed by the client creating the transaction?

Any insights into the matter would be greatly appreciated!

Best regards

1 Answer 1

0

These two transactions are mostly the same in that they create a lot of accounts before initializing the market.

Account creation typically requires a signature from the account being created, except in the case of program-derived addresses and create-with-seed.

However, they create the accounts in different ways. The first transaction is using a fresh keypair for each account, and thus requires a signature from these accounts. The second transaction is using create_account_with_seed, which only requires a signature from the base account. It also uses the same base account for all of these, and is deliberately reducing the number of signatures required in the transaction.

You can learn more about create_account_with_seed at https://github.com/anza-xyz/agave/blob/e56d314df52cecc00bd8d30b56ca75adef159985/sdk/program/src/system_instruction.rs#L139 and normal create_account at https://github.com/anza-xyz/agave/blob/e56d314df52cecc00bd8d30b56ca75adef159985/sdk/program/src/system_instruction.rs#L278

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.