solxact

Crates.iosolxact
lib.rssolxact
version0.1.4
sourcesrc
created_at2023-04-13 15:50:11.969522
updated_at2024-02-12 22:38:15.171678
descriptionsolxact is a utility program that can perform many useful actions on solana transactions
homepage
repository
max_upload_size
id838437
size172,321
(bji)

documentation

README

solxact is a utility program that can perform many useful actions on solana
transactions.

For help on subcommands:

solxact help encode        -- for encoding a transaction
solxact help decode        -- for decoding a transaction
solxact help hash          -- for setting the recent blockhash of a transaction
solxact help sign          -- for signing a transaction
solxact help show-unsigned -- for showing which signatures are still required
solxact help signature     -- for showing a transaction's signature
solxact help simulate      -- for simulating a transaction
solxact help submit        -- for submitting a transaction
solxact help pda           -- for computing program derived addresses
solxact help pubkey        -- for displaying pubkeys


Some example use cases of solxact:

# The following will create a split-stake transaction and submit it.  The
# format of the transaction was derived by looking at the stake program's
# "Split" instruction.  Note that comments can be embedded.

$ solxact encode encoding rust_bincode_fixedint                          \
                 fee_payer ./my_key.json                                 \
                 // Stake program //                                     \
                 program Stake11111111111111111111111111111111111111     \
                 // Stake account to split lamports from (writable) //   \
                 account ./from_stake_account.json w                     \
                 // Stake account to split lamports into (writable) //   \
                 account ./to_stake_account.json w                       \
                 // Stake withdraw authority (signer) //                 \
                 account ./my_key.json s                                 \
                 // Data: 3 = split-stake, and then lamports //          \
                 enum 3 [ u64 10000000 ]                                 \
  | solxact hash                                                         \
  | solxact sign ./my_key.json                                           \
  | solxact submit


# The following will create a simple lamports transfer transaction and
# then decode it and pretty-print the json output using 'jq'.

$ solxact encode encoding rust_bincode_fixedint                          \
                 fee_payer ./my_key.json                                 \
                 // System program //                                    \
                 program 11111111111111111111111111111111                \
                 // Funds source (writable and signer) //                \
                 account ./my_key.json ws                                \
                 // Funds destination (writable) //                      \
                 account AVheJF4ZzCZjfysZP2FHdFERY3r7dh9AdBRRcJRWKARc w  \
                 // Data: 2 = transfer, and then lamports //             \
                 enum 2 [ u64 12131001000 ]                              \
  | solxact decode                                                       \
  | jq .


# The following reads an encoded transaction that was stored in a file and then
# simulates it using the testnet cluster, printing out the results of the
# simulation.

$ cat transaction.bin | solxact simulate testnet


# The following reads an encoded transaction from standard input and prints out
# the list of pubkeys that have not yet signed it.

$ solxact show-unsigned


# The following will create a simple lamports transfer transaction, apply a
# recent blockhash to it, sign it, and then print out the transaction
# signature.
  
$ solxact encode encoding rust_bincode_fixedint                          \
                 fee_payer ./my_key.json                                 \
                 // System program //                                    \
                 program 11111111111111111111111111111111                \
                 // Funds source (writable and signer) //                \
                 account ./my_key.json ws                                \
                 // Funds destination (writable) //                      \
                 account AVheJF4ZzCZjfysZP2FHdFERY3r7dh9AdBRRcJRWKARc w  \
                 // Data: 2 = transfer, and then lamports //             \
                 enum 2 [ u64 12131001000 ]                              \
  | solxact hash                                                         \
  | solxact sign ./my_key.json                                           \
  | solxact signature


# The following will compute the Program Derived Address for a metaplex
# metadata account associated with a token mint, and will print out
# the address followed by a dot followed by the bump seed.  The token mint
# in this example is is EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v.

$ solxact pda metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s                \
              [ string metadata                                          \
                pubkey metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s       \
                pubkey EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v ]


# The following will print out the pubkey for the keypair stored in the
# file key.json

$ solxact pubkey key.json


Commit count: 0

cargo fmt