diff --git a/.buildinfo b/.buildinfo new file mode 100644 index 00000000..063edbfb --- /dev/null +++ b/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: f4c230b4e29aa7127722e2d6cfc76b5d +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/_sources/api_reference/account.rst.txt b/_sources/api_reference/account.rst.txt new file mode 100644 index 00000000..aec8d7ad --- /dev/null +++ b/_sources/api_reference/account.rst.txt @@ -0,0 +1,7 @@ +======= +Account +======= + +.. automodule:: solders.account + :members: + :undoc-members: diff --git a/_sources/api_reference/account_decoder.rst.txt b/_sources/api_reference/account_decoder.rst.txt new file mode 100644 index 00000000..3e64cdb7 --- /dev/null +++ b/_sources/api_reference/account_decoder.rst.txt @@ -0,0 +1,7 @@ +=============== +Account Decoder +=============== + +.. automodule:: solders.account_decoder + :members: + :undoc-members: diff --git a/_sources/api_reference/address_lookup_table_account.rst.txt b/_sources/api_reference/address_lookup_table_account.rst.txt new file mode 100644 index 00000000..e7cf37bb --- /dev/null +++ b/_sources/api_reference/address_lookup_table_account.rst.txt @@ -0,0 +1,7 @@ +============================ +Address Lookup Table Account +============================ + +.. automodule:: solders.address_lookup_table_account + :members: + :undoc-members: diff --git a/_sources/api_reference/bankrun.rst.txt b/_sources/api_reference/bankrun.rst.txt new file mode 100644 index 00000000..af6c2b14 --- /dev/null +++ b/_sources/api_reference/bankrun.rst.txt @@ -0,0 +1,7 @@ +======= +Bankrun +======= + +.. automodule:: solders.bankrun + :members: + :undoc-members: diff --git a/_sources/api_reference/commitment_config.rst.txt b/_sources/api_reference/commitment_config.rst.txt new file mode 100644 index 00000000..e213cd10 --- /dev/null +++ b/_sources/api_reference/commitment_config.rst.txt @@ -0,0 +1,7 @@ +================= +Commitment Config +================= + +.. automodule:: solders.commitment_config + :members: + :undoc-members: diff --git a/_sources/api_reference/compute_budget.rst.txt b/_sources/api_reference/compute_budget.rst.txt new file mode 100644 index 00000000..49cbe31c --- /dev/null +++ b/_sources/api_reference/compute_budget.rst.txt @@ -0,0 +1,7 @@ +============== +Compute Budget +============== + +.. automodule:: solders.compute_budget + :members: + :undoc-members: diff --git a/_sources/api_reference/epoch_schedule.rst.txt b/_sources/api_reference/epoch_schedule.rst.txt new file mode 100644 index 00000000..86540f8f --- /dev/null +++ b/_sources/api_reference/epoch_schedule.rst.txt @@ -0,0 +1,7 @@ +============== +Epoch Schedule +============== + +.. automodule:: solders.epoch_schedule + :members: + :undoc-members: diff --git a/_sources/api_reference/errors.rst.txt b/_sources/api_reference/errors.rst.txt new file mode 100644 index 00000000..59877ae6 --- /dev/null +++ b/_sources/api_reference/errors.rst.txt @@ -0,0 +1,7 @@ +====== +Errors +====== + +.. automodule:: solders.errors + :members: + :undoc-members: diff --git a/_sources/api_reference/hash.rst.txt b/_sources/api_reference/hash.rst.txt new file mode 100644 index 00000000..7b0660ec --- /dev/null +++ b/_sources/api_reference/hash.rst.txt @@ -0,0 +1,7 @@ +==== +Hash +==== + +.. automodule:: solders.hash + :members: + :undoc-members: diff --git a/_sources/api_reference/index.rst.txt b/_sources/api_reference/index.rst.txt new file mode 100644 index 00000000..69158271 --- /dev/null +++ b/_sources/api_reference/index.rst.txt @@ -0,0 +1,32 @@ +============= +API Reference +============= + + +Modules: + +.. toctree:: + :maxdepth: 2 + + account + account_decoder + address_lookup_table_account + bankrun + commitment_config + compute_budget + epoch_schedule + errors + hash + instruction + keypair + message + null_signer + presigner + pubkey + rpc/index + signature + system_program + sysvar + token/index + transaction_status + transaction diff --git a/_sources/api_reference/instruction.rst.txt b/_sources/api_reference/instruction.rst.txt new file mode 100644 index 00000000..c3b410bf --- /dev/null +++ b/_sources/api_reference/instruction.rst.txt @@ -0,0 +1,7 @@ +=========== +Instruction +=========== + +.. automodule:: solders.instruction + :members: + :undoc-members: diff --git a/_sources/api_reference/keypair.rst.txt b/_sources/api_reference/keypair.rst.txt new file mode 100644 index 00000000..6306a871 --- /dev/null +++ b/_sources/api_reference/keypair.rst.txt @@ -0,0 +1,7 @@ +======= +Keypair +======= + +.. automodule:: solders.keypair + :members: + :undoc-members: diff --git a/_sources/api_reference/message.rst.txt b/_sources/api_reference/message.rst.txt new file mode 100644 index 00000000..efc65489 --- /dev/null +++ b/_sources/api_reference/message.rst.txt @@ -0,0 +1,7 @@ +======= +Message +======= + +.. automodule:: solders.message + :members: + :undoc-members: diff --git a/_sources/api_reference/null_signer.rst.txt b/_sources/api_reference/null_signer.rst.txt new file mode 100644 index 00000000..5395cac3 --- /dev/null +++ b/_sources/api_reference/null_signer.rst.txt @@ -0,0 +1,7 @@ +=========== +Null Signer +=========== + +.. automodule:: solders.null_signer + :members: + :undoc-members: diff --git a/_sources/api_reference/presigner.rst.txt b/_sources/api_reference/presigner.rst.txt new file mode 100644 index 00000000..d84fadd1 --- /dev/null +++ b/_sources/api_reference/presigner.rst.txt @@ -0,0 +1,7 @@ +========= +Presigner +========= + +.. automodule:: solders.presigner + :members: + :undoc-members: diff --git a/_sources/api_reference/pubkey.rst.txt b/_sources/api_reference/pubkey.rst.txt new file mode 100644 index 00000000..b477c06c --- /dev/null +++ b/_sources/api_reference/pubkey.rst.txt @@ -0,0 +1,7 @@ +====== +Pubkey +====== + +.. automodule:: solders.pubkey + :members: + :undoc-members: diff --git a/_sources/api_reference/rpc/config.rst.txt b/_sources/api_reference/rpc/config.rst.txt new file mode 100644 index 00000000..db77b7a2 --- /dev/null +++ b/_sources/api_reference/rpc/config.rst.txt @@ -0,0 +1,7 @@ +====== +Config +====== + +.. automodule:: solders.rpc.config + :members: + :undoc-members: diff --git a/_sources/api_reference/rpc/errors.rst.txt b/_sources/api_reference/rpc/errors.rst.txt new file mode 100644 index 00000000..6650271f --- /dev/null +++ b/_sources/api_reference/rpc/errors.rst.txt @@ -0,0 +1,8 @@ +====== +Errors +====== + + +.. automodule:: solders.rpc.errors + :members: + :undoc-members: diff --git a/_sources/api_reference/rpc/filter.rst.txt b/_sources/api_reference/rpc/filter.rst.txt new file mode 100644 index 00000000..42773ba5 --- /dev/null +++ b/_sources/api_reference/rpc/filter.rst.txt @@ -0,0 +1,8 @@ +====== +Filter +====== + + +.. automodule:: solders.rpc.filter + :members: + :undoc-members: diff --git a/_sources/api_reference/rpc/index.rst.txt b/_sources/api_reference/rpc/index.rst.txt new file mode 100644 index 00000000..c4ee7737 --- /dev/null +++ b/_sources/api_reference/rpc/index.rst.txt @@ -0,0 +1,15 @@ +=== +RPC +=== + + +Modules: + +.. toctree:: + :maxdepth: 2 + + config + errors + filter + requests + responses diff --git a/_sources/api_reference/rpc/requests.rst.txt b/_sources/api_reference/rpc/requests.rst.txt new file mode 100644 index 00000000..d4daab3d --- /dev/null +++ b/_sources/api_reference/rpc/requests.rst.txt @@ -0,0 +1,8 @@ +======== +Requests +======== + + +.. automodule:: solders.rpc.requests + :members: + :undoc-members: diff --git a/_sources/api_reference/rpc/responses.rst.txt b/_sources/api_reference/rpc/responses.rst.txt new file mode 100644 index 00000000..63791bb9 --- /dev/null +++ b/_sources/api_reference/rpc/responses.rst.txt @@ -0,0 +1,8 @@ +========= +Responses +========= + + +.. automodule:: solders.rpc.responses + :members: + :undoc-members: diff --git a/_sources/api_reference/signature.rst.txt b/_sources/api_reference/signature.rst.txt new file mode 100644 index 00000000..3bb0bfe7 --- /dev/null +++ b/_sources/api_reference/signature.rst.txt @@ -0,0 +1,7 @@ +========= +Signature +========= + +.. automodule:: solders.signature + :members: + :undoc-members: diff --git a/_sources/api_reference/system_program.rst.txt b/_sources/api_reference/system_program.rst.txt new file mode 100644 index 00000000..2567dcb4 --- /dev/null +++ b/_sources/api_reference/system_program.rst.txt @@ -0,0 +1,7 @@ +============== +System Program +============== + +.. automodule:: solders.system_program + :members: + :undoc-members: diff --git a/_sources/api_reference/sysvar.rst.txt b/_sources/api_reference/sysvar.rst.txt new file mode 100644 index 00000000..e0ed5c31 --- /dev/null +++ b/_sources/api_reference/sysvar.rst.txt @@ -0,0 +1,7 @@ +====== +Sysvar +====== + +.. automodule:: solders.sysvar + :members: + :undoc-members: diff --git a/_sources/api_reference/token/associated.rst.txt b/_sources/api_reference/token/associated.rst.txt new file mode 100644 index 00000000..f228c313 --- /dev/null +++ b/_sources/api_reference/token/associated.rst.txt @@ -0,0 +1,8 @@ +==================== +SPL Associated Token +==================== + + +.. automodule:: solders.token.associated + :members: + :undoc-members: diff --git a/_sources/api_reference/token/index.rst.txt b/_sources/api_reference/token/index.rst.txt new file mode 100644 index 00000000..98ca71f4 --- /dev/null +++ b/_sources/api_reference/token/index.rst.txt @@ -0,0 +1,12 @@ +========= +SPL Token +========= + + +Modules: + +.. toctree:: + :maxdepth: 2 + + associated + state diff --git a/_sources/api_reference/token/state.rst.txt b/_sources/api_reference/token/state.rst.txt new file mode 100644 index 00000000..05733b6b --- /dev/null +++ b/_sources/api_reference/token/state.rst.txt @@ -0,0 +1,8 @@ +=============== +SPL Token State +=============== + + +.. automodule:: solders.token.state + :members: + :undoc-members: diff --git a/_sources/api_reference/transaction.rst.txt b/_sources/api_reference/transaction.rst.txt new file mode 100644 index 00000000..1b41fa3e --- /dev/null +++ b/_sources/api_reference/transaction.rst.txt @@ -0,0 +1,7 @@ +=========== +Transaction +=========== + +.. automodule:: solders.transaction + :members: + :undoc-members: diff --git a/_sources/api_reference/transaction_status.rst.txt b/_sources/api_reference/transaction_status.rst.txt new file mode 100644 index 00000000..d6dde6d1 --- /dev/null +++ b/_sources/api_reference/transaction_status.rst.txt @@ -0,0 +1,7 @@ +================== +Transaction Status +================== + +.. automodule:: solders.transaction_status + :members: + :undoc-members: diff --git a/_sources/index.rst.txt b/_sources/index.rst.txt new file mode 100644 index 00000000..decba81d --- /dev/null +++ b/_sources/index.rst.txt @@ -0,0 +1,9 @@ +.. include:: ../README.md + :parser: myst_parser.sphinx_ + +.. toctree:: + :maxdepth: 1 + + self + tutorials/index + api_reference/index diff --git a/_sources/tutorials/bankrun.rst.txt b/_sources/tutorials/bankrun.rst.txt new file mode 100644 index 00000000..98875284 --- /dev/null +++ b/_sources/tutorials/bankrun.rst.txt @@ -0,0 +1,140 @@ +======= +Bankrun +======= + +The ``bankrun`` module offers a quick and powerful yet lightweight solution for testing Solana programs. +While people often use ``solana-test-validator`` for this, +``bankrun`` is orders of magnitude faster and far more convenient. +You don't have to +take care of an external process and you can start as many ``bankrun`` +instances as you like without worrying about ports in use or hogging your machines resources. + +You can also do things that are not possible with ``solana-test-validator``, +such as jumping back and forth in time or dynamically setting account data. + +If you've used `solana-program-test `_ +you'll be familiar with ``bankrun``, since that's what it uses under the hood. + +For those unfamiliar, ``bankrun`` and ``solana-program-test`` work by spinning up a lightweight +``BanksServer`` that's like an RPC but much faster, and creating a ``BanksClient`` to talk to the +server. This author thought ``solana-program-test`` was a boring name, so he chose ``bankrun`` instead +(you're running Solana `Banks `_). + + +--------------- +Minimal example +--------------- + +This example just transfers lamports from Alice to Bob without loading +any programs of our own. Note: you'll need ``pytest-asyncio`` installed in +the environment, since the test function is async. + +.. literalinclude:: ../../tests/bankrun/test_one_transfer.py + +Some things to note here: + +* The ``context`` object contains a ``banks_client`` to talk to the ``BanksServer``, + a ``payer`` keypair that has been funded with a bunch of SOL, and a ``last_blockhash`` + that we can use in our transactions. +* We haven't loaded any specific programs, but by default we have access to + the System Program, the SPL token programs and the SPL memo program. + +------------------ +Deploying programs +------------------ + +Most of the time we want to do more than just mess around with token transfers - +we want to test our own programs. ``solana-program-test`` is a bit fussy about +how this is done. + +Firstly, the program's ``.so`` file must be present in one of the following directories: + +* ``./tests/fixtures`` (just create this directory if it doesn't exist) +* The current working directory +* A directory you define in the ``BPF_OUT_DIR`` or ``SBF_OUT_DIR`` environment variables. + +(If you're not aware, the ``.so`` file is created when you run ``anchor build`` or ``cargo build-sbf`` +and can be found in ``target/deploy``). + +Now to add the program to our tests we use the ``programs`` parameter in the ``start`` function. +The program name used in this parameter must match the filename without the ``.so`` extension. + +Here's an example using a `simple program `_ +from the Solana monorepo that just does some logging: + +.. literalinclude:: ../../tests/bankrun/test_spl_logging.py + +The ``.so`` file must be named ``spl_example_logging.so``, since ``spl_example_logging`` is +the name we used in the ``programs`` parameter. + +------------------ +Anchor integration +------------------ + +If you have an Anchor workspace, ``bankrun`` can make some extra assumptions that make it more +convenient to get started. Just use ``start_anchor`` and give it the path to the project root +(the folder containing the ``Anchor.toml`` file). The programs in the workspace will be automatically +deployed to the test environment. + +Example: + +.. literalinclude:: ../../tests/bankrun/test_anchor.py + +----------- +Time travel +----------- + +Many programs rely on the ``Clock`` sysvar: for example, a mint that doesn't become available until after +a certain time. With ``bankrun`` you can dynamically overwrite the ``Clock`` sysvar using ``context.set_clock()``. +Here's an example using a program that panics if ``clock.unix_timestamp`` is greater than 100 +(which is on January 1st 1970): + +.. literalinclude:: ../../tests/bankrun/clock-example/test_clock_example.py + +See also: ``context.warp_to_slot()``, which lets you jump to a future slot. + +-------------------------- +Writing arbitrary accounts +-------------------------- + +Bankrun lets you write any account data you want, regardless of +whether the account state would even be possible. + +Here's an example where we give an account a bunch of USDC, +even though we don't have the USDC mint keypair. This is +convenient for testing because it means we don't have to +work with fake USDC in our tests: + +.. literalinclude:: ../../tests/bankrun/test_usdc_mint.py + +.. tip:: + If you want to set account data *after* calling ``bankrun.start()``, + you can use ``context.set_account()``. + +-------------- +Other features +-------------- + +Other things you can do with ``bankrun`` include: + +* Changing the max compute units with the ``compute_max_units`` parameter. +* Changing the transaction account lock limit with the ``transaction_account_lock_limit`` parameter. + +-------------------------------------------- +When should I use ``solana-test-validator``? +-------------------------------------------- + +While ``bankrun`` is faster and more convenient, it is also less like a real RPC node. +So ``solana-test-validator`` is still useful when you need to call RPC methods that ``BanksServer`` +doesn't support, or when you want to test something that depends on real-life validator behaviour +rather than just testing your program and client code. + +In general though I would recommend using ``bankrun`` wherever possible, as it will make your life +much easier. + +------------------- +Supported platforms +------------------- + +``bankrun`` is not included on ``windows`` and ``musllinux-i686`` targets, but otherwise +should run everywhere that ``solders`` runs. diff --git a/_sources/tutorials/index.rst.txt b/_sources/tutorials/index.rst.txt new file mode 100644 index 00000000..22016413 --- /dev/null +++ b/_sources/tutorials/index.rst.txt @@ -0,0 +1,12 @@ +========= +Tutorials +========= + +.. toctree:: + :maxdepth: 2 + + keypairs + pubkeys + transactions + rpc + bankrun diff --git a/_sources/tutorials/keypairs.rst.txt b/_sources/tutorials/keypairs.rst.txt new file mode 100644 index 00000000..9bf296c3 --- /dev/null +++ b/_sources/tutorials/keypairs.rst.txt @@ -0,0 +1,136 @@ +======== +Keypairs +======== + +The ``Keypair`` class is a wrapper around a 64-byte array, where +the first 32 bytes consist of your secret seed and the latter 32 bytes +are your pubkey. + +------------------------ +Generating a new keypair +------------------------ + +Often you need to generate a new keypair on the fly: + +.. testcode:: + + from solders.keypair import Keypair + keypair = Keypair() + +--------------------------------- +Converting a keypair to raw bytes +--------------------------------- + +To get the raw bytes of a keypair object you just call +``bytes(keypair)``: + +.. testcode:: + + from solders.keypair import Keypair + keypair = Keypair() + raw = bytes(keypair) + +--------------------------------- +Restoring a keypair from a secret +--------------------------------- + +If you already have the 64-byte secret key, +you can use ``Keypair.from_bytes``: + +.. testcode:: + + from solders.keypair import Keypair + + secret_key = [ + 174, 47, 154, 16, 202, 193, 206, 113, + 199, 190, 53, 133, 169, 175, 31, 56, + 222, 53, 138, 189, 224, 216, 117, 173, + 10, 149, 53, 45, 73, 251, 237, 246, + 15, 185, 186, 82, 177, 240, 148, 69, + 241, 227, 167, 80, 141, 89, 240, 121, + 121, 35, 172, 247, 68, 251, 226, 218, + 48, 63, 176, 109, 168, 89, 238, 135, + ] + + keypair = Keypair.from_bytes(secret_key) + print(f"Created Keypair with public key: {keypair.pubkey()}") + +.. testoutput:: + :options: -ELLIPSIS, +NORMALIZE_WHITESPACE + + Created Keypair with public key: 24PNhTaNtomHhoy3fTRaMhAFCRj4uHqhZEEoWrKDbR5p + +This is the inverse operation to ``bytes(keypair)``. + +If the secret is in base58 format, you can use ``Keypair.from_base58_string``: + +.. testcode:: + + from solders.keypair import Keypair + + b58_string = "5MaiiCavjCmn9Hs1o3eznqDEhRwxo7pXiAYez7keQUviUkauRiTMD8DrESdrNjN8zd9mTmVhRvBJeg5vhyvgrAhG" + keypair = Keypair.from_base58_string(b58_string) + print(f"Created Keypair with public key: {keypair.pubkey()}") + +.. testoutput:: + :options: -ELLIPSIS, +NORMALIZE_WHITESPACE + + Created Keypair with public key: 5pVyoAeURQHNMVU7DmfMHvCDNmTEYXWfEwc136GYhTKG + +------------------- +Verifying a keypair +------------------- + +If you have a keypair and a pubkey, you can check whether the given pubkey +comes from that keypair: + +.. testcode:: + + from solders.keypair import Keypair + from solders.pubkey import Pubkey + + public_key = Pubkey.from_string("24PNhTaNtomHhoy3fTRaMhAFCRj4uHqhZEEoWrKDbR5p") + + keys = [ + 174, 47, 154, 16, 202, 193, 206, 113, 199, 190, 53, 133, 169, 175, 31, 56, 222, 53, 138, + 189, 224, 216, 117, 173, 10, 149, 53, 45, 73, 251, 237, 246, 15, 185, 186, 82, 177, 240, + 148, 69, 241, 227, 167, 80, 141, 89, 240, 121, 121, 35, 172, 247, 68, 251, 226, 218, 48, + 63, 176, 109, 168, 89, 238, 135, + ] + keypair = Keypair.from_bytes(keys) + + assert keypair.pubkey() == public_key + +------------------------------------------------- +Restoring a keypair from a mnemonic (seed phrase) +------------------------------------------------- + +:: + + from solders.keypair import Keypair + from mnemonic import Mnemonic + + mnemo = Mnemonic("english") + seed = mnemo.to_seed("pill tomorrow foster begin walnut borrow virtual kick shift mutual shoe scatter") + keypair = Keypair.from_seed(seed[:32]) + +------------------------------ +Signing and verifying messages +------------------------------ + +The primary function of a keypair is to sign messages and enable verification of the signature. +Verification of a signature allows the recipient to be sure that the data was signed by the owner of a specific private key. + +.. testcode:: + + from solders.keypair import Keypair + + secret_key = [ + 174, 47, 154, 16, 202, 193, 206, 113, 199, 190, 53, 133, 169, 175, 31, 56, 222, 53, 138, 189, 224, 216, 117, + 173, 10, 149, 53, 45, 73, 251, 237, 246, 15, 185, 186, 82, 177, 240, 148, 69, 241, 227, 167, 80, 141, 89, 240, + 121, 121, 35, 172, 247, 68, 251, 226, 218, 48, 63, 176, 109, 168, 89, 238, 135, + ] + keypair = Keypair.from_bytes(secret_key) + message = b"The quick brown fox jumps over the lazy dog" + signature = keypair.sign_message(message) + assert signature.verify(keypair.pubkey(), message) diff --git a/_sources/tutorials/pubkeys.rst.txt b/_sources/tutorials/pubkeys.rst.txt new file mode 100644 index 00000000..465f4035 --- /dev/null +++ b/_sources/tutorials/pubkeys.rst.txt @@ -0,0 +1,43 @@ +======= +Pubkeys +======= + +The ``Pubkey`` class is used for both actual public keys, +and addresses that are off the ed25519 curve (e.g. program-derived addresses). + +---------------------------------------- +Checking if an address has a private key +---------------------------------------- + +Program-derived addresses (PDAs) do not lie on the ed25519 curve and thus do not have +private keys. + +.. testcode:: + + from solders.pubkey import Pubkey + + # Note that Keypair() will always give a public key that is valid for users + key = Pubkey.from_string('5oNDL3swdJJF1g9DzJiZ4ynHXgszjAEpUkxVYejchzrY') # Valid public key + assert key.is_on_curve() # Lies on the ed25519 curve and is suitable for users + + off_curve_address = Pubkey.from_string('4BJXYkfvg37zEmBbsacZjeQDpTNx91KppxFJxRqrz48e') # Valid public key + assert not off_curve_address.is_on_curve() # Not on the ed25519 curve, therefore not suitable for users + +--------------- +Generating PDAs +--------------- + +The ``find_program_address`` static method takes an array of seed bytes and tries +adding a "bump" byte until it finds an off-curve address (i.e. a PDA): + +.. testcode:: + + from solders.pubkey import Pubkey + + program_id = Pubkey.from_string("G1DCNUQTSGHehwdLCAmRyAG8hf51eCHrLNUqkgGKYASj") + pda, bump = Pubkey.find_program_address([b"test"], program_id) + print(f"bump: {bump}; pda: {pda}") + +.. testoutput:: + + bump: 253; pda: AfEjen5hHkTkEqy2yfyPhDQWq7dc7zbWU2aJmB3h8brU diff --git a/_sources/tutorials/rpc.rst.txt b/_sources/tutorials/rpc.rst.txt new file mode 100644 index 00000000..3f844db2 --- /dev/null +++ b/_sources/tutorials/rpc.rst.txt @@ -0,0 +1,69 @@ +=========== +RPC helpers +=========== + +While ``solders`` doesn't talk to RPCs directly, it does help to build RPC request JSONs +and parse RPC responses. It even supports batch requests (calling multiple RPC methods in one go). + +----------------------- +Building an RPC request +----------------------- + +Here we build a ``getFeeForMessage`` request and convert it to a JSON string +using the ``.to_json()`` method: + +.. doctest:: + + >>> from solders.rpc.requests import GetFeeForMessage + >>> from solders.commitment_config import CommitmentLevel + >>> from solders.message import MessageV0 + >>> GetFeeForMessage(MessageV0.default(), commitment=CommitmentLevel.Processed).to_json() + '{"method":"getFeeForMessage","jsonrpc":"2.0","id":0,"params":["gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",{"commitment":"processed"}]}' + +---------------------------- +Building a batch RPC request +---------------------------- + +We can combine a list of RPC request objects into a single JSON request using +the ``batch_to_json`` function: + +.. doctest:: + + >>> from solders.rpc.requests import batch_to_json, GetClusterNodes, GetEpochSchedule + >>> batch_to_json([GetClusterNodes(0), GetEpochSchedule(1)]) + '[{"method":"getClusterNodes","jsonrpc":"2.0","id":0},{"method":"getEpochSchedule","jsonrpc":"2.0","id":1}]' + +----------------------- +Parsing an RPC response +----------------------- + +The ``rpc.repsonses`` module parses JSON RPC responses into strongly-typed objects: + +.. testcode:: + + from solders.rpc.responses import GetIdentityResp, RpcIdentity + raw = """{ + "jsonrpc": "2.0", + "result": { "identity": "2r1F4iWqVcb8M1DbAjQuFpebkQHY9hcVU4WuW2DJBppN" }, + "id": 1 + }""" + parsed = GetIdentityResp.from_json(raw) + assert isinstance(parsed, GetIdentityResp) + assert str(parsed.value.identity) == "2r1F4iWqVcb8M1DbAjQuFpebkQHY9hcVU4WuW2DJBppN" + +----------------------------- +Parsing an RPC batch repsonse +----------------------------- + +The ``batch_from_json`` function parses an RPC batch response into a list of objects: + +.. doctest:: + + >>> from solders.rpc.responses import batch_from_json, GetBlockHeightResp, GetFirstAvailableBlockResp + >>> raw = '[{ "jsonrpc": "2.0", "result": 1233, "id": 1 },{ "jsonrpc": "2.0", "result": 111, "id": 1 }]' + >>> batch_from_json(raw, [GetBlockHeightResp, GetFirstAvailableBlockResp]) + [GetBlockHeightResp( + 1233, + ), GetFirstAvailableBlockResp( + 111, + )] diff --git a/_sources/tutorials/transactions.rst.txt b/_sources/tutorials/transactions.rst.txt new file mode 100644 index 00000000..0ea093b8 --- /dev/null +++ b/_sources/tutorials/transactions.rst.txt @@ -0,0 +1,94 @@ +============ +Transactions +============ + +Solana has two kinds of transactions: "legacy" transactions represented by +the ``Transaction`` class and versioned transactions represented by the +``VersionedTransaction`` class. These examples will focus on +versioned transactions which are what you should use if you have a choice. + +These examples do not demonstrate sending transactions or fetching the latest blockhash, +which you can do with the ``send_transaction`` and ``get_latest_blockhash`` methods in +solana-py. + +----------- +Sending SOL +----------- + +Here we construct a transaction with one instruction - it sends SOL from one +wallet to another via the System Program: + +.. testcode:: + + from solders.hash import Hash + from solders.keypair import Keypair + from solders.message import MessageV0 + from solders.system_program import TransferParams, transfer + from solders.transaction import VersionedTransaction + + sender = Keypair() # let's pretend this account actually has SOL to send + receiver = Keypair() + ix = transfer( + TransferParams( + from_pubkey=sender.pubkey(), to_pubkey=receiver.pubkey(), lamports=1_000_000 + ) + ) + blockhash = Hash.default() # replace with a real blockhash using get_latest_blockhash + msg = MessageV0.try_compile( + payer=sender.pubkey(), + instructions=[ix], + address_lookup_table_accounts=[], + recent_blockhash=blockhash, + ) + tx = VersionedTransaction(msg, [sender]) + +--------------- +Partial signing +--------------- + +Suppose you have a transaction that both Alice and Bob need to sign, and Bob doesn't want to give +Alice his keypair because last time he did that all his apes got stolen. + +One solution is for Alice to create a transaction containing her signature and a dummy signature using +the ``NullSigner`` class. She then serializes this transaction and sends it to Bob, who deserializes it +and replaces the dummy signature with his own signature: + +.. testcode:: + + from solders.hash import Hash + from solders.instruction import AccountMeta, Instruction + from solders.keypair import Keypair + from solders.message import MessageV0, to_bytes_versioned + from solders.null_signer import NullSigner + from solders.pubkey import Pubkey + from solders.transaction import VersionedTransaction + + keypair0 = Keypair() + keypair1 = Keypair() + ix = Instruction( + Pubkey.new_unique(), b"", [AccountMeta(keypair1.pubkey(), True, False)] + ) + message = MessageV0.try_compile(keypair0.pubkey(), [ix], [], Hash.default()) + # sign with a real signer and a null signer + signers = (keypair0, NullSigner(keypair1.pubkey())) + partially_signed = VersionedTransaction(message, signers) + serialized = bytes(partially_signed) + deserialized = VersionedTransaction.from_bytes(serialized) + assert deserialized == partially_signed + deserialized_message = deserialized.message + # find the null signer in the deserialized transaction + keypair1_sig_index = next( + i + for i, key in enumerate(deserialized_message.account_keys) + if key == keypair1.pubkey() + ) + sigs = deserialized.signatures + # replace the null signature with a real signature + sigs[keypair1_sig_index] = keypair1.sign_message( + to_bytes_versioned(deserialized_message) + ) + deserialized.signatures = sigs + fully_signed = VersionedTransaction(message, [keypair0, keypair1]) + assert deserialized.signatures == fully_signed.signatures + assert deserialized == fully_signed + assert bytes(deserialized) == bytes(fully_signed) diff --git a/_static/basic.css b/_static/basic.css new file mode 100644 index 00000000..7577acb1 --- /dev/null +++ b/_static/basic.css @@ -0,0 +1,903 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 360px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +nav.contents, +aside.topic, +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +nav.contents, +aside.topic, +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +nav.contents::after, +aside.topic::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/_static/css/badge_only.css b/_static/css/badge_only.css new file mode 100644 index 00000000..c718cee4 --- /dev/null +++ b/_static/css/badge_only.css @@ -0,0 +1 @@ +.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} \ No newline at end of file diff --git a/_static/css/fonts/Roboto-Slab-Bold.woff b/_static/css/fonts/Roboto-Slab-Bold.woff new file mode 100644 index 00000000..6cb60000 Binary files /dev/null and b/_static/css/fonts/Roboto-Slab-Bold.woff differ diff --git a/_static/css/fonts/Roboto-Slab-Bold.woff2 b/_static/css/fonts/Roboto-Slab-Bold.woff2 new file mode 100644 index 00000000..7059e231 Binary files /dev/null and b/_static/css/fonts/Roboto-Slab-Bold.woff2 differ diff --git a/_static/css/fonts/Roboto-Slab-Regular.woff b/_static/css/fonts/Roboto-Slab-Regular.woff new file mode 100644 index 00000000..f815f63f Binary files /dev/null and b/_static/css/fonts/Roboto-Slab-Regular.woff differ diff --git a/_static/css/fonts/Roboto-Slab-Regular.woff2 b/_static/css/fonts/Roboto-Slab-Regular.woff2 new file mode 100644 index 00000000..f2c76e5b Binary files /dev/null and b/_static/css/fonts/Roboto-Slab-Regular.woff2 differ diff --git a/_static/css/fonts/fontawesome-webfont.eot b/_static/css/fonts/fontawesome-webfont.eot new file mode 100644 index 00000000..e9f60ca9 Binary files /dev/null and b/_static/css/fonts/fontawesome-webfont.eot differ diff --git a/_static/css/fonts/fontawesome-webfont.svg b/_static/css/fonts/fontawesome-webfont.svg new file mode 100644 index 00000000..855c845e --- /dev/null +++ b/_static/css/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/_static/css/fonts/fontawesome-webfont.ttf b/_static/css/fonts/fontawesome-webfont.ttf new file mode 100644 index 00000000..35acda2f Binary files /dev/null and b/_static/css/fonts/fontawesome-webfont.ttf differ diff --git a/_static/css/fonts/fontawesome-webfont.woff b/_static/css/fonts/fontawesome-webfont.woff new file mode 100644 index 00000000..400014a4 Binary files /dev/null and b/_static/css/fonts/fontawesome-webfont.woff differ diff --git a/_static/css/fonts/fontawesome-webfont.woff2 b/_static/css/fonts/fontawesome-webfont.woff2 new file mode 100644 index 00000000..4d13fc60 Binary files /dev/null and b/_static/css/fonts/fontawesome-webfont.woff2 differ diff --git a/_static/css/fonts/lato-bold-italic.woff b/_static/css/fonts/lato-bold-italic.woff new file mode 100644 index 00000000..88ad05b9 Binary files /dev/null and b/_static/css/fonts/lato-bold-italic.woff differ diff --git a/_static/css/fonts/lato-bold-italic.woff2 b/_static/css/fonts/lato-bold-italic.woff2 new file mode 100644 index 00000000..c4e3d804 Binary files /dev/null and b/_static/css/fonts/lato-bold-italic.woff2 differ diff --git a/_static/css/fonts/lato-bold.woff b/_static/css/fonts/lato-bold.woff new file mode 100644 index 00000000..c6dff51f Binary files /dev/null and b/_static/css/fonts/lato-bold.woff differ diff --git a/_static/css/fonts/lato-bold.woff2 b/_static/css/fonts/lato-bold.woff2 new file mode 100644 index 00000000..bb195043 Binary files /dev/null and b/_static/css/fonts/lato-bold.woff2 differ diff --git a/_static/css/fonts/lato-normal-italic.woff b/_static/css/fonts/lato-normal-italic.woff new file mode 100644 index 00000000..76114bc0 Binary files /dev/null and b/_static/css/fonts/lato-normal-italic.woff differ diff --git a/_static/css/fonts/lato-normal-italic.woff2 b/_static/css/fonts/lato-normal-italic.woff2 new file mode 100644 index 00000000..3404f37e Binary files /dev/null and b/_static/css/fonts/lato-normal-italic.woff2 differ diff --git a/_static/css/fonts/lato-normal.woff b/_static/css/fonts/lato-normal.woff new file mode 100644 index 00000000..ae1307ff Binary files /dev/null and b/_static/css/fonts/lato-normal.woff differ diff --git a/_static/css/fonts/lato-normal.woff2 b/_static/css/fonts/lato-normal.woff2 new file mode 100644 index 00000000..3bf98433 Binary files /dev/null and b/_static/css/fonts/lato-normal.woff2 differ diff --git a/_static/css/theme.css b/_static/css/theme.css new file mode 100644 index 00000000..c03c88f0 --- /dev/null +++ b/_static/css/theme.css @@ -0,0 +1,4 @@ +html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden],audio:not([controls]){display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;text-decoration:none}ins,mark{color:#000}mark{background:#ff0;font-style:italic;font-weight:700}.rst-content code,.rst-content tt,code,kbd,pre,samp{font-family:monospace,serif;_font-family:courier new,monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:after,q:before{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,ol,ul{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure,form{margin:0}label{cursor:pointer}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{body,html,section{background:none!important}*{box-shadow:none!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}.rst-content .toctree-wrapper>p.caption,h2,h3,p{orphans:3;widows:3}.rst-content .toctree-wrapper>p.caption,h2,h3{page-break-after:avoid}}.btn,.fa:before,.icon:before,.rst-content .admonition,.rst-content .admonition-title:before,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .code-block-caption .headerlink:before,.rst-content .danger,.rst-content .eqno .headerlink:before,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-alert,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .eqno .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .eqno .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .eqno .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.wy-menu-vertical li.current>a button.pull-right.toctree-expand,.wy-menu-vertical li.on a button.pull-right.toctree-expand,.wy-menu-vertical li button.pull-right.toctree-expand{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.rst-content .admonition-title:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.icon-caret-down:before,.wy-dropdown .caret:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li button.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content .eqno .headerlink:before,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-weight:400;line-height:1;text-decoration:inherit}.rst-content .code-block-caption a .headerlink,.rst-content .eqno a .headerlink,.rst-content a .admonition-title,.rst-content code.download a span:first-child,.rst-content dl dt a .headerlink,.rst-content h1 a .headerlink,.rst-content h2 a .headerlink,.rst-content h3 a .headerlink,.rst-content h4 a .headerlink,.rst-content h5 a .headerlink,.rst-content h6 a .headerlink,.rst-content p.caption a .headerlink,.rst-content p a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li a button.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content .eqno .headerlink,a .rst-content code.download span:first-child,a .rst-content dl dt .headerlink,a .rst-content h1 .headerlink,a .rst-content h2 .headerlink,a .rst-content h3 .headerlink,a .rst-content h4 .headerlink,a .rst-content h5 .headerlink,a .rst-content h6 .headerlink,a .rst-content p.caption .headerlink,a .rst-content p .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li button.toctree-expand{display:inline-block;text-decoration:inherit}.btn .fa,.btn .icon,.btn .rst-content .admonition-title,.btn .rst-content .code-block-caption .headerlink,.btn .rst-content .eqno .headerlink,.btn .rst-content code.download span:first-child,.btn .rst-content dl dt .headerlink,.btn .rst-content h1 .headerlink,.btn .rst-content h2 .headerlink,.btn .rst-content h3 .headerlink,.btn .rst-content h4 .headerlink,.btn .rst-content h5 .headerlink,.btn .rst-content h6 .headerlink,.btn .rst-content p .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a button.toctree-expand,.btn .wy-menu-vertical li.on a button.toctree-expand,.btn .wy-menu-vertical li button.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content .eqno .headerlink,.nav .rst-content code.download span:first-child,.nav .rst-content dl dt .headerlink,.nav .rst-content h1 .headerlink,.nav .rst-content h2 .headerlink,.nav .rst-content h3 .headerlink,.nav .rst-content h4 .headerlink,.nav .rst-content h5 .headerlink,.nav .rst-content h6 .headerlink,.nav .rst-content p .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a button.toctree-expand,.nav .wy-menu-vertical li.on a button.toctree-expand,.nav .wy-menu-vertical li button.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .eqno .btn .headerlink,.rst-content .eqno .nav .headerlink,.rst-content .nav .admonition-title,.rst-content code.download .btn span:first-child,.rst-content code.download .nav span:first-child,.rst-content dl dt .btn .headerlink,.rst-content dl dt .nav .headerlink,.rst-content h1 .btn .headerlink,.rst-content h1 .nav .headerlink,.rst-content h2 .btn .headerlink,.rst-content h2 .nav .headerlink,.rst-content h3 .btn .headerlink,.rst-content h3 .nav .headerlink,.rst-content h4 .btn .headerlink,.rst-content h4 .nav .headerlink,.rst-content h5 .btn .headerlink,.rst-content h5 .nav .headerlink,.rst-content h6 .btn .headerlink,.rst-content h6 .nav .headerlink,.rst-content p .btn .headerlink,.rst-content p .nav .headerlink,.rst-content table>caption .btn .headerlink,.rst-content table>caption .nav .headerlink,.rst-content tt.download .btn span:first-child,.rst-content tt.download .nav span:first-child,.wy-menu-vertical li .btn button.toctree-expand,.wy-menu-vertical li.current>a .btn button.toctree-expand,.wy-menu-vertical li.current>a .nav button.toctree-expand,.wy-menu-vertical li .nav button.toctree-expand,.wy-menu-vertical li.on a .btn button.toctree-expand,.wy-menu-vertical li.on a .nav button.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .eqno .fa-large.headerlink,.btn .rst-content .fa-large.admonition-title,.btn .rst-content code.download span.fa-large:first-child,.btn .rst-content dl dt .fa-large.headerlink,.btn .rst-content h1 .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.btn .rst-content p .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.btn .wy-menu-vertical li button.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .eqno .fa-large.headerlink,.nav .rst-content .fa-large.admonition-title,.nav .rst-content code.download span.fa-large:first-child,.nav .rst-content dl dt .fa-large.headerlink,.nav .rst-content h1 .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.nav .rst-content p .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.nav .wy-menu-vertical li button.fa-large.toctree-expand,.rst-content .btn .fa-large.admonition-title,.rst-content .code-block-caption .btn .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.rst-content .eqno .btn .fa-large.headerlink,.rst-content .eqno .nav .fa-large.headerlink,.rst-content .nav .fa-large.admonition-title,.rst-content code.download .btn span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.rst-content dl dt .btn .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.rst-content p .btn .fa-large.headerlink,.rst-content p .nav .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.rst-content tt.download .btn span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.wy-menu-vertical li .btn button.fa-large.toctree-expand,.wy-menu-vertical li .nav button.fa-large.toctree-expand{line-height:.9em}.btn .fa-spin.icon,.btn .fa.fa-spin,.btn .rst-content .code-block-caption .fa-spin.headerlink,.btn .rst-content .eqno .fa-spin.headerlink,.btn .rst-content .fa-spin.admonition-title,.btn .rst-content code.download span.fa-spin:first-child,.btn .rst-content dl dt .fa-spin.headerlink,.btn .rst-content h1 .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.btn .rst-content p .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.btn .wy-menu-vertical li button.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .eqno .fa-spin.headerlink,.nav .rst-content .fa-spin.admonition-title,.nav .rst-content code.download span.fa-spin:first-child,.nav .rst-content dl dt .fa-spin.headerlink,.nav .rst-content h1 .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.nav .rst-content p .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.nav .wy-menu-vertical li button.fa-spin.toctree-expand,.rst-content .btn .fa-spin.admonition-title,.rst-content .code-block-caption .btn .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.rst-content .eqno .btn .fa-spin.headerlink,.rst-content .eqno .nav .fa-spin.headerlink,.rst-content .nav .fa-spin.admonition-title,.rst-content code.download .btn span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.rst-content dl dt .btn .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.rst-content p .btn .fa-spin.headerlink,.rst-content p .nav .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.rst-content tt.download .btn span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.wy-menu-vertical li .btn button.fa-spin.toctree-expand,.wy-menu-vertical li .nav button.fa-spin.toctree-expand{display:inline-block}.btn.fa:before,.btn.icon:before,.rst-content .btn.admonition-title:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content .eqno .btn.headerlink:before,.rst-content code.download span.btn:first-child:before,.rst-content dl dt .btn.headerlink:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content p .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li button.btn.toctree-expand:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.btn.icon:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content .eqno .btn.headerlink:hover:before,.rst-content code.download span.btn:first-child:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content p .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.wy-menu-vertical li button.btn.toctree-expand:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .icon:before,.btn-mini .rst-content .admonition-title:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.btn-mini .rst-content .eqno .headerlink:before,.btn-mini .rst-content code.download span:first-child:before,.btn-mini .rst-content dl dt .headerlink:before,.btn-mini .rst-content h1 .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.btn-mini .rst-content p .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.btn-mini .wy-menu-vertical li button.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content .eqno .btn-mini .headerlink:before,.rst-content code.download .btn-mini span:first-child:before,.rst-content dl dt .btn-mini .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.rst-content p .btn-mini .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.rst-content tt.download .btn-mini span:first-child:before,.wy-menu-vertical li .btn-mini button.toctree-expand:before{font-size:14px;vertical-align:-15%}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.wy-alert{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.rst-content .admonition-title,.wy-alert-title{font-weight:700;display:block;color:#fff;background:#6ab0de;padding:6px 12px;margin:-12px -12px 12px}.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.admonition,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.wy-alert.wy-alert-danger{background:#fdf3f2}.rst-content .danger .admonition-title,.rst-content .danger .wy-alert-title,.rst-content .error .admonition-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .admonition-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.wy-alert.wy-alert-danger .wy-alert-title{background:#f29f97}.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .wy-alert-warning.admonition,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.note,.rst-content .wy-alert-warning.seealso,.rst-content .wy-alert-warning.tip,.wy-alert.wy-alert-warning{background:#ffedcc}.rst-content .admonition-todo .admonition-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .attention .admonition-title,.rst-content .attention .wy-alert-title,.rst-content .caution .admonition-title,.rst-content .caution .wy-alert-title,.rst-content .warning .admonition-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.admonition .admonition-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.wy-alert.wy-alert-warning .wy-alert-title{background:#f0b37e}.rst-content .note,.rst-content .seealso,.rst-content .wy-alert-info.admonition,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.wy-alert.wy-alert-info{background:#e7f2fa}.rst-content .note .admonition-title,.rst-content .note .wy-alert-title,.rst-content .seealso .admonition-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .admonition-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.wy-alert.wy-alert-info .wy-alert-title{background:#6ab0de}.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.admonition,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.warning,.wy-alert.wy-alert-success{background:#dbfaf4}.rst-content .hint .admonition-title,.rst-content .hint .wy-alert-title,.rst-content .important .admonition-title,.rst-content .important .wy-alert-title,.rst-content .tip .admonition-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .admonition-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.wy-alert.wy-alert-success .wy-alert-title{background:#1abc9c}.rst-content .wy-alert-neutral.admonition,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.wy-alert.wy-alert-neutral{background:#f3f6f6}.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .admonition-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.wy-alert.wy-alert-neutral .wy-alert-title{color:#404040;background:#e1e4e5}.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.wy-alert.wy-alert-neutral a{color:#2980b9}.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .note p:last-child,.rst-content .seealso p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.wy-alert p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27ae60}.wy-tray-container li.wy-tray-item-info{background:#2980b9}.wy-tray-container li.wy-tray-item-warning{background:#e67e22}.wy-tray-container li.wy-tray-item-danger{background:#e74c3c}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width:768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px;color:#fff;border:1px solid rgba(0,0,0,.1);background-color:#27ae60;text-decoration:none;font-weight:400;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.05),inset 0 2px 0 0 rgba(0,0,0,.1);padding:8px 12px 6px}.btn:visited{color:#fff}.btn-disabled,.btn-disabled:active,.btn-disabled:focus,.btn-disabled:hover,.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980b9!important}.btn-info:hover{background-color:#2e8ece!important}.btn-neutral{background-color:#f3f6f6!important;color:#404040!important}.btn-neutral:hover{background-color:#e5ebeb!important;color:#404040}.btn-neutral:visited{color:#404040!important}.btn-success{background-color:#27ae60!important}.btn-success:hover{background-color:#295!important}.btn-danger{background-color:#e74c3c!important}.btn-danger:hover{background-color:#ea6153!important}.btn-warning{background-color:#e67e22!important}.btn-warning:hover{background-color:#e98b39!important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f!important}.btn-link{background-color:transparent!important;color:#2980b9;box-shadow:none;border-color:transparent!important}.btn-link:active,.btn-link:hover{background-color:transparent!important;color:#409ad5!important;box-shadow:none}.btn-link:visited{color:#9b59b6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:after,.wy-btn-group:before{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:1px solid #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980b9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:1px solid #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type=search]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980b9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned .wy-help-inline,.wy-form-aligned input,.wy-form-aligned label,.wy-form-aligned select,.wy-form-aligned textarea{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{margin:0}fieldset,legend{border:0;padding:0}legend{width:100%;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label,legend{display:block}label{margin:0 0 .3125em;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;max-width:1200px;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:after,.wy-control-group:before{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#e74c3c}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full input[type=color],.wy-control-group .wy-form-full input[type=date],.wy-control-group .wy-form-full input[type=datetime-local],.wy-control-group .wy-form-full input[type=datetime],.wy-control-group .wy-form-full input[type=email],.wy-control-group .wy-form-full input[type=month],.wy-control-group .wy-form-full input[type=number],.wy-control-group .wy-form-full input[type=password],.wy-control-group .wy-form-full input[type=search],.wy-control-group .wy-form-full input[type=tel],.wy-control-group .wy-form-full input[type=text],.wy-control-group .wy-form-full input[type=time],.wy-control-group .wy-form-full input[type=url],.wy-control-group .wy-form-full input[type=week],.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves input[type=color],.wy-control-group .wy-form-halves input[type=date],.wy-control-group .wy-form-halves input[type=datetime-local],.wy-control-group .wy-form-halves input[type=datetime],.wy-control-group .wy-form-halves input[type=email],.wy-control-group .wy-form-halves input[type=month],.wy-control-group .wy-form-halves input[type=number],.wy-control-group .wy-form-halves input[type=password],.wy-control-group .wy-form-halves input[type=search],.wy-control-group .wy-form-halves input[type=tel],.wy-control-group .wy-form-halves input[type=text],.wy-control-group .wy-form-halves input[type=time],.wy-control-group .wy-form-halves input[type=url],.wy-control-group .wy-form-halves input[type=week],.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds input[type=color],.wy-control-group .wy-form-thirds input[type=date],.wy-control-group .wy-form-thirds input[type=datetime-local],.wy-control-group .wy-form-thirds input[type=datetime],.wy-control-group .wy-form-thirds input[type=email],.wy-control-group .wy-form-thirds input[type=month],.wy-control-group .wy-form-thirds input[type=number],.wy-control-group .wy-form-thirds input[type=password],.wy-control-group .wy-form-thirds input[type=search],.wy-control-group .wy-form-thirds input[type=tel],.wy-control-group .wy-form-thirds input[type=text],.wy-control-group .wy-form-thirds input[type=time],.wy-control-group .wy-form-thirds input[type=url],.wy-control-group .wy-form-thirds input[type=week],.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full{float:left;display:block;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child,.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(odd){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child,.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control,.wy-control-no-input{margin:6px 0 0;font-size:90%}.wy-control-no-input{display:inline-block}.wy-control-group.fluid-input input[type=color],.wy-control-group.fluid-input input[type=date],.wy-control-group.fluid-input input[type=datetime-local],.wy-control-group.fluid-input input[type=datetime],.wy-control-group.fluid-input input[type=email],.wy-control-group.fluid-input input[type=month],.wy-control-group.fluid-input input[type=number],.wy-control-group.fluid-input input[type=password],.wy-control-group.fluid-input input[type=search],.wy-control-group.fluid-input input[type=tel],.wy-control-group.fluid-input input[type=text],.wy-control-group.fluid-input input[type=time],.wy-control-group.fluid-input input[type=url],.wy-control-group.fluid-input input[type=week]{width:100%}.wy-form-message-inline{padding-left:.3em;color:#666;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;*overflow:visible}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type=datetime-local]{padding:.34375em .625em}input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type=checkbox],input[type=radio],input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{outline:0;outline:thin dotted\9;border-color:#333}input.no-focus:focus{border-color:#ccc!important}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:1px auto #129fea}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=datetime][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#e74c3c;border:1px solid #e74c3c}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e74c3c}input[type=checkbox]:focus:invalid:focus,input[type=file]:focus:invalid:focus,input[type=radio]:focus:invalid:focus{outline-color:#e74c3c}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:1px solid #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{left:0;top:0;width:36px;height:12px;background:#ccc}.wy-switch:after,.wy-switch:before{position:absolute;content:"";display:block;border-radius:4px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{width:18px;height:18px;background:#999;left:-3px;top:-3px}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27ae60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#e74c3c}.wy-control-group.wy-control-group-error input[type=color],.wy-control-group.wy-control-group-error input[type=date],.wy-control-group.wy-control-group-error input[type=datetime-local],.wy-control-group.wy-control-group-error input[type=datetime],.wy-control-group.wy-control-group-error input[type=email],.wy-control-group.wy-control-group-error input[type=month],.wy-control-group.wy-control-group-error input[type=number],.wy-control-group.wy-control-group-error input[type=password],.wy-control-group.wy-control-group-error input[type=search],.wy-control-group.wy-control-group-error input[type=tel],.wy-control-group.wy-control-group-error input[type=text],.wy-control-group.wy-control-group-error input[type=time],.wy-control-group.wy-control-group-error input[type=url],.wy-control-group.wy-control-group-error input[type=week],.wy-control-group.wy-control-group-error textarea{border:1px solid #e74c3c}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27ae60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#e74c3c}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#e67e22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980b9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width:480px){.wy-form button[type=submit]{margin:.7em 0 0}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=text],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week],.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0}.wy-form-message,.wy-form-message-inline,.wy-form .wy-help-inline{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width:768px){.tablet-hide{display:none}}@media screen and (max-width:480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.rst-content table.docutils,.rst-content table.field-list,.wy-table{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.rst-content table.docutils caption,.rst-content table.field-list caption,.wy-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.rst-content table.docutils td,.rst-content table.docutils th,.rst-content table.field-list td,.rst-content table.field-list th,.wy-table td,.wy-table th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.rst-content table.docutils td:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list td:first-child,.rst-content table.field-list th:first-child,.wy-table td:first-child,.wy-table th:first-child{border-left-width:0}.rst-content table.docutils thead,.rst-content table.field-list thead,.wy-table thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.rst-content table.docutils thead th,.rst-content table.field-list thead th,.wy-table thead th{font-weight:700;border-bottom:2px solid #e1e4e5}.rst-content table.docutils td,.rst-content table.field-list td,.wy-table td{background-color:transparent;vertical-align:middle}.rst-content table.docutils td p,.rst-content table.field-list td p,.wy-table td p{line-height:18px}.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child,.wy-table td p:last-child{margin-bottom:0}.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min,.wy-table .wy-table-cell-min{width:1%;padding-right:0}.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:grey;font-size:90%}.wy-table-tertiary{color:grey;font-size:80%}.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,.wy-table-backed,.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6}.rst-content table.docutils,.wy-table-bordered-all{border:1px solid #e1e4e5}.rst-content table.docutils td,.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.rst-content table.docutils tbody>tr:last-child td,.wy-table-bordered-all tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0!important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980b9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9b59b6}html{height:100%}body,html{overflow-x:hidden}body{font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#404040;min-height:100%;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#e67e22!important}a.wy-text-warning:hover{color:#eb9950!important}.wy-text-info{color:#2980b9!important}a.wy-text-info:hover{color:#409ad5!important}.wy-text-success{color:#27ae60!important}a.wy-text-success:hover{color:#36d278!important}.wy-text-danger{color:#e74c3c!important}a.wy-text-danger:hover{color:#ed7669!important}.wy-text-neutral{color:#404040!important}a.wy-text-neutral:hover{color:#595959!important}.rst-content .toctree-wrapper>p.caption,h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif}p{line-height:24px;font-size:16px;margin:0 0 24px}h1{font-size:175%}.rst-content .toctree-wrapper>p.caption,h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}.rst-content code,.rst-content tt,code{white-space:nowrap;max-width:100%;background:#fff;border:1px solid #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#e74c3c;overflow-x:auto}.rst-content tt.code-large,code.code-large{font-size:90%}.rst-content .section ul,.rst-content .toctree-wrapper ul,.rst-content section ul,.wy-plain-list-disc,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.rst-content .section ul li,.rst-content .toctree-wrapper ul li,.rst-content section ul li,.wy-plain-list-disc li,article ul li{list-style:disc;margin-left:24px}.rst-content .section ul li p:last-child,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li p:last-child,.rst-content .toctree-wrapper ul li ul,.rst-content section ul li p:last-child,.rst-content section ul li ul,.wy-plain-list-disc li p:last-child,.wy-plain-list-disc li ul,article ul li p:last-child,article ul li ul{margin-bottom:0}.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,.rst-content section ul li li,.wy-plain-list-disc li li,article ul li li{list-style:circle}.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,.rst-content section ul li li li,.wy-plain-list-disc li li li,article ul li li li{list-style:square}.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,.rst-content section ul li ol li,.wy-plain-list-disc li ol li,article ul li ol li{list-style:decimal}.rst-content .section ol,.rst-content .section ol.arabic,.rst-content .toctree-wrapper ol,.rst-content .toctree-wrapper ol.arabic,.rst-content section ol,.rst-content section ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol.arabic li,.rst-content .section ol li,.rst-content .toctree-wrapper ol.arabic li,.rst-content .toctree-wrapper ol li,.rst-content section ol.arabic li,.rst-content section ol li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol.arabic li ul,.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content .toctree-wrapper ol.arabic li ul,.rst-content .toctree-wrapper ol li p:last-child,.rst-content .toctree-wrapper ol li ul,.rst-content section ol.arabic li ul,.rst-content section ol li p:last-child,.rst-content section ol li ul,.wy-plain-list-decimal li p:last-child,.wy-plain-list-decimal li ul,article ol li p:last-child,article ol li ul{margin-bottom:0}.rst-content .section ol.arabic li ul li,.rst-content .section ol li ul li,.rst-content .toctree-wrapper ol.arabic li ul li,.rst-content .toctree-wrapper ol li ul li,.rst-content section ol.arabic li ul li,.rst-content section ol li ul li,.wy-plain-list-decimal li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:after,.wy-breadcrumbs:before{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs>li{display:inline-block;padding-top:5px}.wy-breadcrumbs>li.wy-breadcrumbs-aside{float:right}.rst-content .wy-breadcrumbs>li code,.rst-content .wy-breadcrumbs>li tt,.wy-breadcrumbs>li .rst-content tt,.wy-breadcrumbs>li code{all:inherit;color:inherit}.breadcrumb-item:before{content:"/";color:#bbb;font-size:13px;padding:0 6px 0 3px}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width:480px){.wy-breadcrumbs-extra,.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:after,.wy-menu-horiz:before{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz li,.wy-menu-horiz ul{display:inline-block}.wy-menu-horiz li:hover{background:hsla(0,0%,100%,.1)}.wy-menu-horiz li.divide-left{border-left:1px solid #404040}.wy-menu-horiz li.divide-right{border-right:1px solid #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#55a5d9;height:32px;line-height:32px;padding:0 1.618em;margin:12px 0 0;display:block;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:1px solid #404040}.wy-menu-vertical li.divide-bottom{border-bottom:1px solid #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:grey;border-right:1px solid #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.rst-content .wy-menu-vertical li tt,.wy-menu-vertical li .rst-content tt,.wy-menu-vertical li code{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li button.toctree-expand{display:block;float:left;margin-left:-1.2em;line-height:18px;color:#4d4d4d;border:none;background:none;padding:0}.wy-menu-vertical li.current>a,.wy-menu-vertical li.on a{color:#404040;font-weight:700;position:relative;background:#fcfcfc;border:none;padding:.4045em 1.618em}.wy-menu-vertical li.current>a:hover,.wy-menu-vertical li.on a:hover{background:#fcfcfc}.wy-menu-vertical li.current>a:hover button.toctree-expand,.wy-menu-vertical li.on a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand{display:block;line-height:18px;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:1px solid #c9c9c9;border-top:1px solid #c9c9c9}.wy-menu-vertical .toctree-l1.current .toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .toctree-l11>ul{display:none}.wy-menu-vertical .toctree-l1.current .current.toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .current.toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .current.toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .current.toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .current.toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .current.toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .current.toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .current.toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .current.toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .current.toctree-l11>ul{display:block}.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a,.wy-menu-vertical li.toctree-l5 a,.wy-menu-vertical li.toctree-l6 a,.wy-menu-vertical li.toctree-l7 a,.wy-menu-vertical li.toctree-l8 a,.wy-menu-vertical li.toctree-l9 a,.wy-menu-vertical li.toctree-l10 a{color:#404040}.wy-menu-vertical li.toctree-l2 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{display:block}.wy-menu-vertical li.toctree-l2.current>a{padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{padding:.4045em 1.618em .4045em 4.045em}.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{padding:.4045em 1.618em .4045em 5.663em}.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a{padding:.4045em 1.618em .4045em 7.281em}.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a{padding:.4045em 1.618em .4045em 8.899em}.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a{padding:.4045em 1.618em .4045em 10.517em}.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a{padding:.4045em 1.618em .4045em 12.135em}.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a{padding:.4045em 1.618em .4045em 13.753em}.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a{padding:.4045em 1.618em .4045em 15.371em}.wy-menu-vertical li.toctree-l10.current>a{padding:.4045em 15.371em}.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{padding:.4045em 1.618em .4045em 16.989em}.wy-menu-vertical li.toctree-l2.current>a,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#c9c9c9}.wy-menu-vertical li.toctree-l2 button.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3.current>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#bdbdbd}.wy-menu-vertical li.toctree-l3 button.toctree-expand{color:#969696}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:400}.wy-menu-vertical a{line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover button.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active button.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980b9;text-align:center;color:#fcfcfc}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a{color:#fcfcfc;font-size:100%;font-weight:700;display:inline-block;padding:4px 6px;margin-bottom:.809em;max-width:100%}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search>a:hover{background:hsla(0,0%,100%,.1)}.wy-side-nav-search .wy-dropdown>a img.logo,.wy-side-nav-search>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search .wy-dropdown>a.icon img.logo,.wy-side-nav-search>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.version{margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-nav .wy-menu-vertical header{color:#2980b9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980b9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980b9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:after,.wy-nav-top:before{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:700}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:grey}footer p{margin-bottom:12px}.rst-content footer span.commit tt,footer span.commit .rst-content tt,footer span.commit code{padding:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:1em;background:none;border:none;color:grey}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:after,.rst-footer-buttons:before{width:100%;display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:after,.rst-breadcrumbs-buttons:before{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:1px solid #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:1px solid #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:grey;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width:768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-menu.wy-menu-vertical,.wy-side-nav-search,.wy-side-scroll{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width:1100px){.wy-nav-content-wrap{background:rgba(0,0,0,.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,.wy-nav-side,footer{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60;*zoom:1}.rst-versions .rst-current-version:after,.rst-versions .rst-current-version:before{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-content .eqno .rst-versions .rst-current-version .headerlink,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-content p .rst-versions .rst-current-version .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .icon,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-versions .rst-current-version .rst-content .eqno .headerlink,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-versions .rst-current-version .rst-content p .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-versions .rst-current-version .wy-menu-vertical li button.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version button.toctree-expand{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}.rst-content .toctree-wrapper>p.caption,.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6{margin-bottom:24px}.rst-content img{max-width:100%;height:auto}.rst-content div.figure,.rst-content figure{margin-bottom:24px}.rst-content div.figure .caption-text,.rst-content figure .caption-text{font-style:italic}.rst-content div.figure p:last-child.caption,.rst-content figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center,.rst-content figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img,.rst-content section>a>img,.rst-content section>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"\f08e";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;display:block;overflow:auto}.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px}.rst-content div[class^=highlight] div[class^=highlight],.rst-content pre.literal-block div[class^=highlight]{padding:0;border:none;margin:0}.rst-content div[class^=highlight] td.code{width:100%}.rst-content .linenodiv pre{border-right:1px solid #e6e9ea;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^=highlight] pre{white-space:pre;margin:0;padding:12px;display:block;overflow:auto}.rst-content div[class^=highlight] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:12px;line-height:1.4}.rst-content div.highlight .gp,.rst-content div.highlight span.linenos{user-select:none;pointer-events:none}.rst-content div.highlight span.linenos{display:inline-block;padding-left:0;padding-right:12px;margin-right:12px;border-right:1px solid #e6e9ea}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^=highlight],.rst-content div[class^=highlight] pre{white-space:pre-wrap}}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning{clear:both}.rst-content .admonition-todo .last,.rst-content .admonition-todo>:last-child,.rst-content .admonition .last,.rst-content .admonition>:last-child,.rst-content .attention .last,.rst-content .attention>:last-child,.rst-content .caution .last,.rst-content .caution>:last-child,.rst-content .danger .last,.rst-content .danger>:last-child,.rst-content .error .last,.rst-content .error>:last-child,.rst-content .hint .last,.rst-content .hint>:last-child,.rst-content .important .last,.rst-content .important>:last-child,.rst-content .note .last,.rst-content .note>:last-child,.rst-content .seealso .last,.rst-content .seealso>:last-child,.rst-content .tip .last,.rst-content .tip>:last-child,.rst-content .warning .last,.rst-content .warning>:last-child{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent!important;border-color:rgba(0,0,0,.1)!important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha>li,.rst-content .toctree-wrapper ol.loweralpha,.rst-content .toctree-wrapper ol.loweralpha>li,.rst-content section ol.loweralpha,.rst-content section ol.loweralpha>li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha>li,.rst-content .toctree-wrapper ol.upperalpha,.rst-content .toctree-wrapper ol.upperalpha>li,.rst-content section ol.upperalpha,.rst-content section ol.upperalpha>li{list-style:upper-alpha}.rst-content .section ol li>*,.rst-content .section ul li>*,.rst-content .toctree-wrapper ol li>*,.rst-content .toctree-wrapper ul li>*,.rst-content section ol li>*,.rst-content section ul li>*{margin-top:12px;margin-bottom:12px}.rst-content .section ol li>:first-child,.rst-content .section ul li>:first-child,.rst-content .toctree-wrapper ol li>:first-child,.rst-content .toctree-wrapper ul li>:first-child,.rst-content section ol li>:first-child,.rst-content section ul li>:first-child{margin-top:0}.rst-content .section ol li>p,.rst-content .section ol li>p:last-child,.rst-content .section ul li>p,.rst-content .section ul li>p:last-child,.rst-content .toctree-wrapper ol li>p,.rst-content .toctree-wrapper ol li>p:last-child,.rst-content .toctree-wrapper ul li>p,.rst-content .toctree-wrapper ul li>p:last-child,.rst-content section ol li>p,.rst-content section ol li>p:last-child,.rst-content section ul li>p,.rst-content section ul li>p:last-child{margin-bottom:12px}.rst-content .section ol li>p:only-child,.rst-content .section ol li>p:only-child:last-child,.rst-content .section ul li>p:only-child,.rst-content .section ul li>p:only-child:last-child,.rst-content .toctree-wrapper ol li>p:only-child,.rst-content .toctree-wrapper ol li>p:only-child:last-child,.rst-content .toctree-wrapper ul li>p:only-child,.rst-content .toctree-wrapper ul li>p:only-child:last-child,.rst-content section ol li>p:only-child,.rst-content section ol li>p:only-child:last-child,.rst-content section ul li>p:only-child,.rst-content section ul li>p:only-child:last-child{margin-bottom:0}.rst-content .section ol li>ol,.rst-content .section ol li>ul,.rst-content .section ul li>ol,.rst-content .section ul li>ul,.rst-content .toctree-wrapper ol li>ol,.rst-content .toctree-wrapper ol li>ul,.rst-content .toctree-wrapper ul li>ol,.rst-content .toctree-wrapper ul li>ul,.rst-content section ol li>ol,.rst-content section ol li>ul,.rst-content section ul li>ol,.rst-content section ul li>ul{margin-bottom:12px}.rst-content .section ol.simple li>*,.rst-content .section ol.simple li ol,.rst-content .section ol.simple li ul,.rst-content .section ul.simple li>*,.rst-content .section ul.simple li ol,.rst-content .section ul.simple li ul,.rst-content .toctree-wrapper ol.simple li>*,.rst-content .toctree-wrapper ol.simple li ol,.rst-content .toctree-wrapper ol.simple li ul,.rst-content .toctree-wrapper ul.simple li>*,.rst-content .toctree-wrapper ul.simple li ol,.rst-content .toctree-wrapper ul.simple li ul,.rst-content section ol.simple li>*,.rst-content section ol.simple li ol,.rst-content section ol.simple li ul,.rst-content section ul.simple li>*,.rst-content section ul.simple li ol,.rst-content section ul.simple li ul{margin-top:0;margin-bottom:0}.rst-content .line-block{margin-left:0;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0}.rst-content .topic-title{font-weight:700;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0 0 24px 24px}.rst-content .align-left{float:left;margin:0 24px 24px 0}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink{opacity:0;font-size:14px;font-family:FontAwesome;margin-left:.5em}.rst-content .code-block-caption .headerlink:focus,.rst-content .code-block-caption:hover .headerlink,.rst-content .eqno .headerlink:focus,.rst-content .eqno:hover .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink:focus,.rst-content .toctree-wrapper>p.caption:hover .headerlink,.rst-content dl dt .headerlink:focus,.rst-content dl dt:hover .headerlink,.rst-content h1 .headerlink:focus,.rst-content h1:hover .headerlink,.rst-content h2 .headerlink:focus,.rst-content h2:hover .headerlink,.rst-content h3 .headerlink:focus,.rst-content h3:hover .headerlink,.rst-content h4 .headerlink:focus,.rst-content h4:hover .headerlink,.rst-content h5 .headerlink:focus,.rst-content h5:hover .headerlink,.rst-content h6 .headerlink:focus,.rst-content h6:hover .headerlink,.rst-content p.caption .headerlink:focus,.rst-content p.caption:hover .headerlink,.rst-content p .headerlink:focus,.rst-content p:hover .headerlink,.rst-content table>caption .headerlink:focus,.rst-content table>caption:hover .headerlink{opacity:1}.rst-content p a{overflow-wrap:anywhere}.rst-content .wy-table td p,.rst-content .wy-table td ul,.rst-content .wy-table th p,.rst-content .wy-table th ul,.rst-content table.docutils td p,.rst-content table.docutils td ul,.rst-content table.docutils th p,.rst-content table.docutils th ul,.rst-content table.field-list td p,.rst-content table.field-list td ul,.rst-content table.field-list th p,.rst-content table.field-list th ul{font-size:inherit}.rst-content .btn:focus{outline:2px solid}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:1px solid #e1e4e5}.rst-content .sidebar dl,.rst-content .sidebar p,.rst-content .sidebar ul{font-size:90%}.rst-content .sidebar .last,.rst-content .sidebar>:last-child{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif;font-weight:700;background:#e1e4e5;padding:6px 12px;margin:-24px -24px 24px;font-size:100%}.rst-content .highlighted{background:#f1c40f;box-shadow:0 0 0 2px #f1c40f;display:inline;font-weight:700}.rst-content .citation-reference,.rst-content .footnote-reference{vertical-align:baseline;position:relative;top:-.4em;line-height:0;font-size:90%}.rst-content .citation-reference>span.fn-bracket,.rst-content .footnote-reference>span.fn-bracket{display:none}.rst-content .hlist{width:100%}.rst-content dl dt span.classifier:before{content:" : "}.rst-content dl dt span.classifier-delimiter{display:none!important}html.writer-html4 .rst-content table.docutils.citation,html.writer-html4 .rst-content table.docutils.footnote{background:none;border:none}html.writer-html4 .rst-content table.docutils.citation td,html.writer-html4 .rst-content table.docutils.citation tr,html.writer-html4 .rst-content table.docutils.footnote td,html.writer-html4 .rst-content table.docutils.footnote tr{border:none;background-color:transparent!important;white-space:normal}html.writer-html4 .rst-content table.docutils.citation td.label,html.writer-html4 .rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:auto minmax(80%,95%)}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{display:inline-grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{display:grid;grid-template-columns:auto auto minmax(.65rem,auto) minmax(40%,95%)}html.writer-html5 .rst-content aside.citation>span.label,html.writer-html5 .rst-content aside.footnote>span.label,html.writer-html5 .rst-content div.citation>span.label{grid-column-start:1;grid-column-end:2}html.writer-html5 .rst-content aside.citation>span.backrefs,html.writer-html5 .rst-content aside.footnote>span.backrefs,html.writer-html5 .rst-content div.citation>span.backrefs{grid-column-start:2;grid-column-end:3;grid-row-start:1;grid-row-end:3}html.writer-html5 .rst-content aside.citation>p,html.writer-html5 .rst-content aside.footnote>p,html.writer-html5 .rst-content div.citation>p{grid-column-start:4;grid-column-end:5}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{margin-bottom:24px}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{padding-left:1rem}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dd,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dd,html.writer-html5 .rst-content dl.footnote>dt{margin-bottom:0}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.footnote>dt{margin:0 .5rem .5rem 0;line-height:1.2rem;word-break:break-all;font-weight:400}html.writer-html5 .rst-content dl.citation>dt>span.brackets:before,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.citation>dt>span.brackets:after,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a{word-break:keep-all}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a:not(:first-child):before,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.citation>dd p,html.writer-html5 .rst-content dl.footnote>dd p{font-size:.9rem}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{padding-left:1rem;padding-right:1rem;font-size:.9rem;line-height:1.2rem}html.writer-html5 .rst-content aside.citation p,html.writer-html5 .rst-content aside.footnote p,html.writer-html5 .rst-content div.citation p{font-size:.9rem;line-height:1.2rem;margin-bottom:12px}html.writer-html5 .rst-content aside.citation span.backrefs,html.writer-html5 .rst-content aside.footnote span.backrefs,html.writer-html5 .rst-content div.citation span.backrefs{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content aside.citation span.backrefs>a,html.writer-html5 .rst-content aside.footnote span.backrefs>a,html.writer-html5 .rst-content div.citation span.backrefs>a{word-break:keep-all}html.writer-html5 .rst-content aside.citation span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content aside.footnote span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content div.citation span.backrefs>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content aside.citation span.label,html.writer-html5 .rst-content aside.footnote span.label,html.writer-html5 .rst-content div.citation span.label{line-height:1.2rem}html.writer-html5 .rst-content aside.citation-list,html.writer-html5 .rst-content aside.footnote-list,html.writer-html5 .rst-content div.citation-list{margin-bottom:24px}html.writer-html5 .rst-content dl.option-list kbd{font-size:.9rem}.rst-content table.docutils.footnote,html.writer-html4 .rst-content table.docutils.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content aside.footnote-list aside.footnote,html.writer-html5 .rst-content div.citation-list>div.citation,html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{color:grey}.rst-content table.docutils.footnote code,.rst-content table.docutils.footnote tt,html.writer-html4 .rst-content table.docutils.citation code,html.writer-html4 .rst-content table.docutils.citation tt,html.writer-html5 .rst-content aside.footnote-list aside.footnote code,html.writer-html5 .rst-content aside.footnote-list aside.footnote tt,html.writer-html5 .rst-content aside.footnote code,html.writer-html5 .rst-content aside.footnote tt,html.writer-html5 .rst-content div.citation-list>div.citation code,html.writer-html5 .rst-content div.citation-list>div.citation tt,html.writer-html5 .rst-content dl.citation code,html.writer-html5 .rst-content dl.citation tt,html.writer-html5 .rst-content dl.footnote code,html.writer-html5 .rst-content dl.footnote tt{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}html.writer-html5 .rst-content table.docutils th{border:1px solid #e1e4e5}html.writer-html5 .rst-content table.docutils td>p,html.writer-html5 .rst-content table.docutils th>p{line-height:1rem;margin-bottom:0;font-size:.9rem}.rst-content table.docutils td .last,.rst-content table.docutils td .last>:last-child{margin-bottom:0}.rst-content table.field-list,.rst-content table.field-list td{border:none}.rst-content table.field-list td p{line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content code,.rst-content tt{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;padding:2px 5px}.rst-content code big,.rst-content code em,.rst-content tt big,.rst-content tt em{font-size:100%!important;line-height:normal}.rst-content code.literal,.rst-content tt.literal{color:#e74c3c;white-space:normal}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040;overflow-wrap:normal}.rst-content kbd,.rst-content pre,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace}.rst-content a code,.rst-content a tt{color:#2980b9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:700;margin-bottom:12px}.rst-content dl ol,.rst-content dl p,.rst-content dl table,.rst-content dl ul{margin-bottom:12px}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}.rst-content dl dd>ol:last-child,.rst-content dl dd>p:last-child,.rst-content dl dd>table:last-child,.rst-content dl dd>ul:last-child{margin-bottom:0}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple){margin-bottom:24px}html.writer-html4 .rst-content dl:not(.docutils)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980b9;border-top:3px solid #6ab0de;padding:6px;position:relative}html.writer-html4 .rst-content dl:not(.docutils)>dt:before,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:before{color:#6ab0de}html.writer-html4 .rst-content dl:not(.docutils)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{margin-bottom:6px;border:none;border-left:3px solid #ccc;background:#f0f0f0;color:#555}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils)>dt:first-child,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:first-child{margin-top:0}html.writer-html4 .rst-content dl:not(.docutils) code.descclassname,html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descclassname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{background-color:transparent;border:none;padding:0;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .optional,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .property,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px;max-width:100%}html.writer-html4 .rst-content dl:not(.docutils) .k,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .k{font-style:italic}html.writer-html4 .rst-content dl:not(.docutils) .descclassname,html.writer-html4 .rst-content dl:not(.docutils) .descname,html.writer-html4 .rst-content dl:not(.docutils) .sig-name,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .sig-name{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#000}.rst-content .viewcode-back,.rst-content .viewcode-link{display:inline-block;color:#27ae60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:700}.rst-content code.download,.rst-content tt.download{background:inherit;padding:inherit;font-weight:400;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content code.download span:first-child,.rst-content tt.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{margin-right:4px}.rst-content .guilabel{border:1px solid #7fbbe3;background:#e7f2fa;font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>.kbd,.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>kbd{color:inherit;font-size:80%;background-color:#fff;border:1px solid #a6a6a6;border-radius:4px;box-shadow:0 2px grey;padding:2.4px 6px;margin:auto 0}.rst-content .versionmodified{font-style:italic}@media screen and (max-width:480px){.rst-content .sidebar{width:100%}}span[id*=MathJax-Span]{color:#404040}.math{text-align:center}@font-face{font-family:Lato;src:url(fonts/lato-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block} \ No newline at end of file diff --git a/_static/doctools.js b/_static/doctools.js new file mode 100644 index 00000000..d06a71d7 --- /dev/null +++ b/_static/doctools.js @@ -0,0 +1,156 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Base JavaScript utilities for all Sphinx HTML documentation. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); + } +}; + +/** + * Small JavaScript module for the documentation. + */ +const Documentation = { + init: () => { + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); + }, + + /** + * i18n support + */ + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } + }, + + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; + }, + + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; + }, + + /** + * helper function to focus on search bar + */ + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); + }, + + /** + * Initialise the domain index toggle buttons + */ + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); + }, + + initOnKeyListeners: () => { + // only install a listener if it is really needed + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; + + if (!event.shiftKey) { + switch (event.key) { + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + } + } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } + }); + }, +}; + +// quick alias for translations +const _ = Documentation.gettext; + +_ready(Documentation.init); diff --git a/_static/documentation_options.js b/_static/documentation_options.js new file mode 100644 index 00000000..5483f4cf --- /dev/null +++ b/_static/documentation_options.js @@ -0,0 +1,14 @@ +var DOCUMENTATION_OPTIONS = { + URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), + VERSION: '0.23.0', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: false, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: true, +}; \ No newline at end of file diff --git a/_static/favicon.ico b/_static/favicon.ico new file mode 100644 index 00000000..73495bfc Binary files /dev/null and b/_static/favicon.ico differ diff --git a/_static/file.png b/_static/file.png new file mode 100644 index 00000000..a858a410 Binary files /dev/null and b/_static/file.png differ diff --git a/_static/js/badge_only.js b/_static/js/badge_only.js new file mode 100644 index 00000000..526d7234 --- /dev/null +++ b/_static/js/badge_only.js @@ -0,0 +1 @@ +!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=4)}({4:function(e,t,r){}}); \ No newline at end of file diff --git a/_static/js/html5shiv-printshiv.min.js b/_static/js/html5shiv-printshiv.min.js new file mode 100644 index 00000000..2b43bd06 --- /dev/null +++ b/_static/js/html5shiv-printshiv.min.js @@ -0,0 +1,4 @@ +/** +* @preserve HTML5 Shiv 3.7.3-pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed +*/ +!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=y.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=y.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),y.elements=c+" "+a,j(b)}function f(a){var b=x[a[v]];return b||(b={},w++,a[v]=w,x[w]=b),b}function g(a,c,d){if(c||(c=b),q)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():u.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||t.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),q)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return y.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(y,b.frag)}function j(a){a||(a=b);var d=f(a);return!y.shivCSS||p||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),q||i(a,d),a}function k(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(l(b)));return g}function l(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(A+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function m(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+A+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function n(a){for(var b=a.length;b--;)a[b].removeNode()}function o(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,e,g=f(a),h=a.namespaces,i=a.parentWindow;return!B||a.printShived?a:("undefined"==typeof h[A]&&h.add(A),i.attachEvent("onbeforeprint",function(){b();for(var f,g,h,i=a.styleSheets,j=[],l=i.length,n=Array(l);l--;)n[l]=i[l];for(;h=n.pop();)if(!h.disabled&&z.test(h.media)){try{f=h.imports,g=f.length}catch(o){g=0}for(l=0;g>l;l++)n.push(f[l]);try{j.push(h.cssText)}catch(o){}}j=m(j.reverse().join("")),e=k(a),d=c(a,j)}),i.attachEvent("onafterprint",function(){n(e),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var p,q,r="3.7.3",s=a.html5||{},t=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,u=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",w=0,x={};!function(){try{var a=b.createElement("a");a.innerHTML="",p="hidden"in a,q=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){p=!0,q=!0}}();var y={elements:s.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:r,shivCSS:s.shivCSS!==!1,supportsUnknownElements:q,shivMethods:s.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=y,j(b);var z=/^$|\b(?:all|print)\b/,A="html5shiv",B=!q&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();y.type+=" print",y.shivPrint=o,o(b),"object"==typeof module&&module.exports&&(module.exports=y)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/_static/js/html5shiv.min.js b/_static/js/html5shiv.min.js new file mode 100644 index 00000000..cd1c674f --- /dev/null +++ b/_static/js/html5shiv.min.js @@ -0,0 +1,4 @@ +/** +* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed +*/ +!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3-pre",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/_static/js/theme.js b/_static/js/theme.js new file mode 100644 index 00000000..1fddb6ee --- /dev/null +++ b/_static/js/theme.js @@ -0,0 +1 @@ +!function(n){var e={};function t(i){if(e[i])return e[i].exports;var o=e[i]={i:i,l:!1,exports:{}};return n[i].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=n,t.c=e,t.d=function(n,e,i){t.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:i})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,e){if(1&e&&(n=t(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var i=Object.create(null);if(t.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var o in n)t.d(i,o,function(e){return n[e]}.bind(null,o));return i},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,"a",e),e},t.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},t.p="",t(t.s=0)}([function(n,e,t){t(1),n.exports=t(3)},function(n,e,t){(function(){var e="undefined"!=typeof window?window.jQuery:t(2);n.exports.ThemeNav={navBar:null,win:null,winScroll:!1,winResize:!1,linkScroll:!1,winPosition:0,winHeight:null,docHeight:null,isRunning:!1,enable:function(n){var t=this;void 0===n&&(n=!0),t.isRunning||(t.isRunning=!0,e((function(e){t.init(e),t.reset(),t.win.on("hashchange",t.reset),n&&t.win.on("scroll",(function(){t.linkScroll||t.winScroll||(t.winScroll=!0,requestAnimationFrame((function(){t.onScroll()})))})),t.win.on("resize",(function(){t.winResize||(t.winResize=!0,requestAnimationFrame((function(){t.onResize()})))})),t.onResize()})))},enableSticky:function(){this.enable(!0)},init:function(n){n(document);var e=this;this.navBar=n("div.wy-side-scroll:first"),this.win=n(window),n(document).on("click","[data-toggle='wy-nav-top']",(function(){n("[data-toggle='wy-nav-shift']").toggleClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift")})).on("click",".wy-menu-vertical .current ul li a",(function(){var t=n(this);n("[data-toggle='wy-nav-shift']").removeClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift"),e.toggleCurrent(t),e.hashChange()})).on("click","[data-toggle='rst-current-version']",(function(){n("[data-toggle='rst-versions']").toggleClass("shift-up")})),n("table.docutils:not(.field-list,.footnote,.citation)").wrap("
"),n("table.docutils.footnote").wrap("
"),n("table.docutils.citation").wrap("
"),n(".wy-menu-vertical ul").not(".simple").siblings("a").each((function(){var t=n(this);expand=n(''),expand.on("click",(function(n){return e.toggleCurrent(t),n.stopPropagation(),!1})),t.prepend(expand)}))},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),t=e.find('[href="'+n+'"]');if(0===t.length){var i=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(t=e.find('[href="#'+i.attr("id")+'"]')).length&&(t=e.find('[href="#"]'))}if(t.length>0){$(".wy-menu-vertical .current").removeClass("current").attr("aria-expanded","false"),t.addClass("current").attr("aria-expanded","true"),t.closest("li.toctree-l1").parent().addClass("current").attr("aria-expanded","true");for(let n=1;n<=10;n++)t.closest("li.toctree-l"+n).addClass("current").attr("aria-expanded","true");t[0].scrollIntoView()}}catch(n){console.log("Error expanding nav for anchor",n)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,t=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(t),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",(function(){this.linkScroll=!1}))},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current").attr("aria-expanded","false"),e.siblings().find("li.current").removeClass("current").attr("aria-expanded","false");var t=e.find("> ul li");t.length&&(t.removeClass("current").attr("aria-expanded","false"),e.toggleClass("current").attr("aria-expanded",(function(n,e){return"true"==e?"false":"true"})))}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:n.exports.ThemeNav,StickyNav:n.exports.ThemeNav}),function(){for(var n=0,e=["ms","moz","webkit","o"],t=0;t0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + diff --git a/_static/minus.png b/_static/minus.png new file mode 100644 index 00000000..d96755fd Binary files /dev/null and b/_static/minus.png differ diff --git a/_static/plus.png b/_static/plus.png new file mode 100644 index 00000000..7107cec9 Binary files /dev/null and b/_static/plus.png differ diff --git a/_static/pygments.css b/_static/pygments.css new file mode 100644 index 00000000..6f8b210a --- /dev/null +++ b/_static/pygments.css @@ -0,0 +1,75 @@ +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.highlight .hll { background-color: #ffffcc } +.highlight { background: #f8f8f8; } +.highlight .c { color: #3D7B7B; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #F00 } /* Error */ +.highlight .k { color: #008000; font-weight: bold } /* Keyword */ +.highlight .o { color: #666 } /* Operator */ +.highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */ +.highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #9C6500 } /* Comment.Preproc */ +.highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */ +.highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +.highlight .gr { color: #E40000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #008400 } /* Generic.Inserted */ +.highlight .go { color: #717171 } /* Generic.Output */ +.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #04D } /* Generic.Traceback */ +.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #008000 } /* Keyword.Pseudo */ +.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #B00040 } /* Keyword.Type */ +.highlight .m { color: #666 } /* Literal.Number */ +.highlight .s { color: #BA2121 } /* Literal.String */ +.highlight .na { color: #687822 } /* Name.Attribute */ +.highlight .nb { color: #008000 } /* Name.Builtin */ +.highlight .nc { color: #00F; font-weight: bold } /* Name.Class */ +.highlight .no { color: #800 } /* Name.Constant */ +.highlight .nd { color: #A2F } /* Name.Decorator */ +.highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */ +.highlight .nf { color: #00F } /* Name.Function */ +.highlight .nl { color: #767600 } /* Name.Label */ +.highlight .nn { color: #00F; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #19177C } /* Name.Variable */ +.highlight .ow { color: #A2F; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #BBB } /* Text.Whitespace */ +.highlight .mb { color: #666 } /* Literal.Number.Bin */ +.highlight .mf { color: #666 } /* Literal.Number.Float */ +.highlight .mh { color: #666 } /* Literal.Number.Hex */ +.highlight .mi { color: #666 } /* Literal.Number.Integer */ +.highlight .mo { color: #666 } /* Literal.Number.Oct */ +.highlight .sa { color: #BA2121 } /* Literal.String.Affix */ +.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */ +.highlight .sc { color: #BA2121 } /* Literal.String.Char */ +.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */ +.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #BA2121 } /* Literal.String.Double */ +.highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */ +.highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */ +.highlight .sx { color: #008000 } /* Literal.String.Other */ +.highlight .sr { color: #A45A77 } /* Literal.String.Regex */ +.highlight .s1 { color: #BA2121 } /* Literal.String.Single */ +.highlight .ss { color: #19177C } /* Literal.String.Symbol */ +.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */ +.highlight .fm { color: #00F } /* Name.Function.Magic */ +.highlight .vc { color: #19177C } /* Name.Variable.Class */ +.highlight .vg { color: #19177C } /* Name.Variable.Global */ +.highlight .vi { color: #19177C } /* Name.Variable.Instance */ +.highlight .vm { color: #19177C } /* Name.Variable.Magic */ +.highlight .il { color: #666 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/_static/searchtools.js b/_static/searchtools.js new file mode 100644 index 00000000..97d56a74 --- /dev/null +++ b/_static/searchtools.js @@ -0,0 +1,566 @@ +/* + * searchtools.js + * ~~~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for the full-text search. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +/** + * Simple result scoring code. + */ +if (typeof Scorer === "undefined") { + var Scorer = { + // Implement the following function to further tweak the score for each result + // The function takes a result array [docname, title, anchor, descr, score, filename] + // and returns the new score. + /* + score: result => { + const [docname, title, anchor, descr, score, filename] = result + return score + }, + */ + + // query matches the full name of an object + objNameMatch: 11, + // or matches in the last dotted part of the object name + objPartialMatch: 6, + // Additive scores depending on the priority of the object + objPrio: { + 0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5, // used to be unimportantResults + }, + // Used when the priority is not in the mapping. + objPrioDefault: 0, + + // query found in title + title: 15, + partialTitle: 7, + // query found in terms + term: 5, + partialTerm: 2, + }; +} + +const _removeChildren = (element) => { + while (element && element.lastChild) element.removeChild(element.lastChild); +}; + +/** + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping + */ +const _escapeRegExp = (string) => + string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string + +const _displayItem = (item, searchTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + + const [docName, title, anchor, descr, score, _filename] = item; + + let listItem = document.createElement("li"); + let requestUrl; + let linkUrl; + if (docBuilder === "dirhtml") { + // dirhtml builder + let dirname = docName + "/"; + if (dirname.match(/\/index\/$/)) + dirname = dirname.substring(0, dirname.length - 6); + else if (dirname === "index/") dirname = ""; + requestUrl = docUrlRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = docUrlRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; + } + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + anchor; + linkEl.dataset.score = score; + linkEl.innerHTML = title; + if (descr) + listItem.appendChild(document.createElement("span")).innerHTML = + " (" + descr + ")"; + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms) + ); + }); + Search.output.appendChild(listItem); +}; +const _finishSearch = (resultCount) => { + Search.stopPulse(); + Search.title.innerText = _("Search Results"); + if (!resultCount) + Search.status.innerText = Documentation.gettext( + "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." + ); + else + Search.status.innerText = _( + `Search finished, found ${resultCount} page(s) matching the search query.` + ); +}; +const _displayNextItem = ( + results, + resultCount, + searchTerms +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), searchTerms); + setTimeout( + () => _displayNextItem(results, resultCount, searchTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; + +/** + * Default splitQuery function. Can be overridden in ``sphinx.search`` with a + * custom function per language. + * + * The regular expression works by splitting the string on consecutive characters + * that are not Unicode letters, numbers, underscores, or emoji characters. + * This is the same as ``\W+`` in Python, preserving the surrogate pair area. + */ +if (typeof splitQuery === "undefined") { + var splitQuery = (query) => query + .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) + .filter(term => term) // remove remaining empty strings +} + +/** + * Search Module + */ +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, + + htmlToText: (htmlString) => { + const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); + htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent !== undefined) return docContent.textContent; + console.warn( + "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + ); + return ""; + }, + + init: () => { + const query = new URLSearchParams(window.location.search).get("q"); + document + .querySelectorAll('input[name="q"]') + .forEach((el) => (el.value = query)); + if (query) Search.performSearch(query); + }, + + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), + + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); + } + }, + + hasIndex: () => Search._index !== null, + + deferQuery: (query) => (Search._queued_query = query), + + stopPulse: () => (Search._pulse_status = -1), + + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { + Search._pulse_status = (Search._pulse_status + 1) % 4; + Search.dots.innerText = ".".repeat(Search._pulse_status); + if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something (or wait until index is loaded) + */ + performSearch: (query) => { + // create the required interface elements + const searchText = document.createElement("h2"); + searchText.textContent = _("Searching"); + const searchSummary = document.createElement("p"); + searchSummary.classList.add("search-summary"); + searchSummary.innerText = ""; + const searchList = document.createElement("ul"); + searchList.classList.add("search"); + + const out = document.getElementById("search-results"); + Search.title = out.appendChild(searchText); + Search.dots = Search.title.appendChild(document.createElement("span")); + Search.status = out.appendChild(searchSummary); + Search.output = out.appendChild(searchList); + + const searchProgress = document.getElementById("search-progress"); + // Some themes don't use the search progress node + if (searchProgress) { + searchProgress.innerText = _("Preparing search..."); + } + Search.startPulse(); + + // index already loaded, the browser was quick! + if (Search.hasIndex()) Search.query(query); + else Search.deferQuery(query); + }, + + /** + * execute search (requires search index to be loaded) + */ + query: (query) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // stem the search terms and add them to the correct list + const stemmer = new Stemmer(); + const searchTerms = new Set(); + const excludedTerms = new Set(); + const highlightTerms = new Set(); + const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); + splitQuery(query.trim()).forEach((queryTerm) => { + const queryTermLower = queryTerm.toLowerCase(); + + // maybe skip this "word" + // stopwords array is from language_data.js + if ( + stopwords.indexOf(queryTermLower) !== -1 || + queryTerm.match(/^\d+$/) + ) + return; + + // stem the word + let word = stemmer.stemWord(queryTermLower); + // select the correct list + if (word[0] === "-") excludedTerms.add(word.substr(1)); + else { + searchTerms.add(word); + highlightTerms.add(queryTermLower); + } + }); + + if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js + localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) + } + + // console.debug("SEARCH: searching for:"); + // console.info("required: ", [...searchTerms]); + // console.info("excluded: ", [...excludedTerms]); + + // array of [docname, title, anchor, descr, score, filename] + let results = []; + _removeChildren(document.getElementById("search-progress")); + + const queryLower = query.toLowerCase(); + for (const [title, foundTitles] of Object.entries(allTitles)) { + if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { + for (const [file, id] of foundTitles) { + let score = Math.round(100 * queryLower.length / title.length) + results.push([ + docNames[file], + titles[file] !== title ? `${titles[file]} > ${title}` : title, + id !== null ? "#" + id : "", + null, + score, + filenames[file], + ]); + } + } + } + + // search for explicit entries in index directives + for (const [entry, foundEntries] of Object.entries(indexEntries)) { + if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { + for (const [file, id] of foundEntries) { + let score = Math.round(100 * queryLower.length / entry.length) + results.push([ + docNames[file], + titles[file], + id ? "#" + id : "", + null, + score, + filenames[file], + ]); + } + } + } + + // lookup as object + objectTerms.forEach((term) => + results.push(...Search.performObjectSearch(term, objectTerms)) + ); + + // lookup as search terms in fulltext + results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + + // let the scorer override scores with a custom scoring function + if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); + + // now sort the results by score (in opposite order of appearance, since the + // display function below uses pop() to retrieve items) and then + // alphabetically + results.sort((a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; + }); + + // remove duplicate search results + // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept + let seen = new Set(); + results = results.reverse().reduce((acc, result) => { + let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); + if (!seen.has(resultStr)) { + acc.push(result); + seen.add(resultStr); + } + return acc; + }, []); + + results = results.reverse(); + + // for debugging + //Search.lastresults = results.slice(); // a copy + // console.info("search results:", Search.lastresults); + + // print the results + _displayNextItem(results, results.length, searchTerms); + }, + + /** + * search for object names + */ + performObjectSearch: (object, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const objects = Search._index.objects; + const objNames = Search._index.objnames; + const titles = Search._index.titles; + + const results = []; + + const objectSearchCallback = (prefix, match) => { + const name = match[4] + const fullname = (prefix ? prefix + "." : "") + name; + const fullnameLower = fullname.toLowerCase(); + if (fullnameLower.indexOf(object) < 0) return; + + let score = 0; + const parts = fullnameLower.split("."); + + // check for different match types: exact matches of full name or + // "last name" (i.e. last dotted part) + if (fullnameLower === object || parts.slice(-1)[0] === object) + score += Scorer.objNameMatch; + else if (parts.slice(-1)[0].indexOf(object) > -1) + score += Scorer.objPartialMatch; // matches in last name + + const objName = objNames[match[1]][2]; + const title = titles[match[0]]; + + // If more than one term searched for, we require other words to be + // found in the name/title/description + const otherTerms = new Set(objectTerms); + otherTerms.delete(object); + if (otherTerms.size > 0) { + const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); + if ( + [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) + ) + return; + } + + let anchor = match[3]; + if (anchor === "") anchor = fullname; + else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; + + const descr = objName + _(", in ") + title; + + // add custom score for some objects according to scorer + if (Scorer.objPrio.hasOwnProperty(match[2])) + score += Scorer.objPrio[match[2]]; + else score += Scorer.objPrioDefault; + + results.push([ + docNames[match[0]], + fullname, + "#" + anchor, + descr, + score, + filenames[match[0]], + ]); + }; + Object.keys(objects).forEach((prefix) => + objects[prefix].forEach((array) => + objectSearchCallback(prefix, array) + ) + ); + return results; + }, + + /** + * search for full-text terms in the index + */ + performTermsSearch: (searchTerms, excludedTerms) => { + // prepare search + const terms = Search._index.terms; + const titleTerms = Search._index.titleterms; + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + + const scoreMap = new Map(); + const fileMap = new Map(); + + // perform the search on the required terms + searchTerms.forEach((word) => { + const files = []; + const arr = [ + { files: terms[word], score: Scorer.term }, + { files: titleTerms[word], score: Scorer.title }, + ]; + // add support for partial matches + if (word.length > 2) { + const escapedWord = _escapeRegExp(word); + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord) && !terms[word]) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord) && !titleTerms[word]) + arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); + }); + } + + // no match but word was a required one + if (arr.every((record) => record.files === undefined)) return; + + // found search word in contents + arr.forEach((record) => { + if (record.files === undefined) return; + + let recordFiles = record.files; + if (recordFiles.length === undefined) recordFiles = [recordFiles]; + files.push(...recordFiles); + + // set score for the word in each file + recordFiles.forEach((file) => { + if (!scoreMap.has(file)) scoreMap.set(file, {}); + scoreMap.get(file)[word] = record.score; + }); + }); + + // create the mapping + files.forEach((file) => { + if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) + fileMap.get(file).push(word); + else fileMap.set(file, [word]); + }); + }); + + // now check if the files don't contain excluded terms + const results = []; + for (const [file, wordList] of fileMap) { + // check if all requirements are matched + + // as search terms with length < 3 are discarded + const filteredTermCount = [...searchTerms].filter( + (term) => term.length > 2 + ).length; + if ( + wordList.length !== searchTerms.size && + wordList.length !== filteredTermCount + ) + continue; + + // ensure that none of the excluded terms is in the search result + if ( + [...excludedTerms].some( + (term) => + terms[term] === file || + titleTerms[term] === file || + (terms[term] || []).includes(file) || + (titleTerms[term] || []).includes(file) + ) + ) + break; + + // select one (max) score for the file. + const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); + // add result to the result list + results.push([ + docNames[file], + titles[file], + "", + null, + score, + filenames[file], + ]); + } + return results; + }, + + /** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words. + */ + makeSearchSummary: (htmlText, keywords) => { + const text = Search.htmlToText(htmlText); + if (text === "") return null; + + const textLower = text.toLowerCase(); + const actualStartPosition = [...keywords] + .map((k) => textLower.indexOf(k.toLowerCase())) + .filter((i) => i > -1) + .slice(-1)[0]; + const startWithContext = Math.max(actualStartPosition - 120, 0); + + const top = startWithContext === 0 ? "" : "..."; + const tail = startWithContext + 240 < text.length ? "..." : ""; + + let summary = document.createElement("p"); + summary.classList.add("context"); + summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; + + return summary; + }, +}; + +_ready(Search.init); diff --git a/_static/sphinx_highlight.js b/_static/sphinx_highlight.js new file mode 100644 index 00000000..aae669d7 --- /dev/null +++ b/_static/sphinx_highlight.js @@ -0,0 +1,144 @@ +/* Highlighting utilities for Sphinx HTML documentation. */ +"use strict"; + +const SPHINX_HIGHLIGHT_ENABLED = true + +/** + * highlight a given string on a node by wrapping it in + * span elements with the given class name. + */ +const _highlight = (node, addItems, text, className) => { + if (node.nodeType === Node.TEXT_NODE) { + const val = node.nodeValue; + const parent = node.parentNode; + const pos = val.toLowerCase().indexOf(text); + if ( + pos >= 0 && + !parent.classList.contains(className) && + !parent.classList.contains("nohighlight") + ) { + let span; + + const closestNode = parent.closest("body, svg, foreignObject"); + const isInSVG = closestNode && closestNode.matches("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.classList.add(className); + } + + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + parent.insertBefore( + span, + parent.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + + if (isInSVG) { + const rect = document.createElementNS( + "http://www.w3.org/2000/svg", + "rect" + ); + const bbox = parent.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute("class", className); + addItems.push({ parent: parent, target: rect }); + } + } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); + } +}; +const _highlightText = (thisNode, text, className) => { + let addItems = []; + _highlight(thisNode, addItems, text, className); + addItems.forEach((obj) => + obj.parent.insertAdjacentElement("beforebegin", obj.target) + ); +}; + +/** + * Small JavaScript module for the documentation. + */ +const SphinxHighlight = { + + /** + * highlight the search words provided in localstorage in the text + */ + highlightSearchWords: () => { + if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight + + // get and clear terms from localstorage + const url = new URL(window.location); + const highlight = + localStorage.getItem("sphinx_highlight_terms") + || url.searchParams.get("highlight") + || ""; + localStorage.removeItem("sphinx_highlight_terms") + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); + + // get individual terms from highlight string + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do + + // There should never be more than one element matching "div.body" + const divBody = document.querySelectorAll("div.body"); + const body = divBody.length ? divBody[0] : document.querySelector("body"); + window.setTimeout(() => { + terms.forEach((term) => _highlightText(body, term, "highlighted")); + }, 10); + + const searchBox = document.getElementById("searchbox"); + if (searchBox === null) return; + searchBox.appendChild( + document + .createRange() + .createContextualFragment( + '" + ) + ); + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + localStorage.removeItem("sphinx_highlight_terms") + }, + + initEscapeListener: () => { + // only install a listener if it is really needed + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; + if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { + SphinxHighlight.hideSearchWords(); + event.preventDefault(); + } + }); + }, +}; + +_ready(SphinxHighlight.highlightSearchWords); +_ready(SphinxHighlight.initEscapeListener); diff --git a/api_reference/account.html b/api_reference/account.html new file mode 100644 index 00000000..4f2f7693 --- /dev/null +++ b/api_reference/account.html @@ -0,0 +1,345 @@ + + + + + + + Account — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Account

+
+
+class Account(lamports, data, owner, executable=False, rent_epoch=Ellipsis)
+

An Account with data that is stored on chain.

+
+
Parameters:
+
    +
  • lamports (int) – Lamports in the account.

  • +
  • data (bytes) – Data held in this account.

  • +
  • owner (Pubkey) – The program that owns this account. If executable, the program that loads this account.

  • +
  • executable (bool) – Whether this account’s data contains a loaded program (and is now read-only). Defaults to False.

  • +
  • epoch_info (int) – The epoch at which this account will next owe rent. Defaults to 0.

  • +
+
+
+
+
+data
+

Data held in this account.

+
+
Type:
+

bytes

+
+
+
+ +
+
+static default()
+

Create a new default account.

+
+
Returns:
+

The default account.

+
+
Return type:
+

Account

+
+
+
+ +
+
+executable
+

this account’s data contains a loaded program (and is now read-only)

+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+lamports
+

lamports in the account

+
+ +
+
+owner
+

the program that owns this account. If executable, the program that loads this account.

+
+ +
+
+rent_epoch
+

the epoch at which this account will next owe rent

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class AccountJSON(lamports, data, owner, executable=False, rent_epoch=Ellipsis)
+

An Account with data that is stored on chain, where the data is parsed as a JSON string.

+
+
Parameters:
+
    +
  • lamports (int) – Lamports in the account.

  • +
  • data (solders.account_decoder.ParsedAccount) – Data held in this account.

  • +
  • owner (Pubkey) – The program that owns this account. If executable, the program that loads this account.

  • +
  • executable (bool) – Whether this account’s data contains a loaded program (and is now read-only). Defaults to False.

  • +
  • epoch_info (int) – The epoch at which this account will next owe rent. Defaults to 0.

  • +
+
+
+
+
+data
+

Data held in this account.

+
+
Type:
+

solders.account_decoder.ParsedAccount

+
+
+
+ +
+
+executable
+

Whether this account’s data contains a loaded program (and is now read-only).

+
+
Type:
+

bool

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+lamports
+

Lamports in the account.

+
+
Type:
+

int

+
+
+
+ +
+
+owner
+

The program that owns this account. If executable, the program that loads this account.

+
+
Type:
+

Pubkey

+
+
+
+ +
+
+rent_epoch
+

The epoch at which this account will next owe rent.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/account_decoder.html b/api_reference/account_decoder.html new file mode 100644 index 00000000..905f3542 --- /dev/null +++ b/api_reference/account_decoder.html @@ -0,0 +1,316 @@ + + + + + + + Account Decoder — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Account Decoder

+
+
+class UiDataSliceConfig(offset, length)
+

Configuration object for limiting returned account data.

+
+
Parameters:
+
    +
  • offset (int) – Skip this many bytes at the beginning of the data.

  • +
  • length (int) – Return only this many bytes.

  • +
+
+
+
+
+length
+
+ +
+
+offset
+
+ +
+ +
+
+class UiAccountEncoding
+

Encoding options for account data.

+
+
+Base58 = UiAccountEncoding.Base58
+
+ +
+
+Base64 = UiAccountEncoding.Base64
+
+ +
+
+Base64Zstd = UiAccountEncoding.Base64Zstd
+
+ +
+
+Binary = UiAccountEncoding.Binary
+
+ +
+
+JsonParsed = UiAccountEncoding.JsonParsed
+
+ +
+ +
+
+class ParsedAccount(program, parsed, space)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+parsed
+
+ +
+
+program
+
+ +
+
+space
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class UiTokenAmount(ui_amount, decimals, amount, ui_amount_string)
+
+
+amount
+
+ +
+
+decimals
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+ui_amount
+
+ +
+
+ui_amount_string
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/address_lookup_table_account.html b/api_reference/address_lookup_table_account.html new file mode 100644 index 00000000..c1860545 --- /dev/null +++ b/api_reference/address_lookup_table_account.html @@ -0,0 +1,434 @@ + + + + + + + Address Lookup Table Account — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Address Lookup Table Account

+
+
+class AddressLookupTableAccount(key, addresses)
+

The definition of address lookup table accounts as used by MessageV0.

+
+
+addresses
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+key
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class AddressLookupTable(meta, addresses)
+
+
+addresses
+
+ +
+
+static deserialize(data)
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+get_active_addresses_len(current_slot, slot_hashes)
+
+ +
+
+lookup(current_slot, indexes, slot_hashes)
+
+ +
+
+meta
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class LookupTableMeta(deactivation_slot=Ellipsis, last_extended_slot=0, last_extended_slot_start_index=0, authority=None, padding=0)
+
+
+authority
+
+ +
+
+deactivation_slot
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+is_active(current_slot, slot_hashes)
+
+ +
+
+last_extended_slot
+
+ +
+
+last_extended_slot_start_index
+
+ +
+
+padding
+
+ +
+
+status(current_slot, slot_hashes)
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class LookupTableStatusFieldless
+
+
+Activated = LookupTableStatusFieldless.Activated
+
+ +
+
+Deactivated = LookupTableStatusFieldless.Deactivated
+
+ +
+ +
+
+class LookupTableStatusDeactivating(remaining_blocks)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+remaining_slots
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class SlotHashes(slot_hashes)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+slot_hashes
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+derive_lookup_table_address(authority_address, recent_block_slot)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/bankrun.html b/api_reference/bankrun.html new file mode 100644 index 00000000..a32559ab --- /dev/null +++ b/api_reference/bankrun.html @@ -0,0 +1,701 @@ + + + + + + + Bankrun — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Bankrun

+
+
+exception BanksClientError
+

Raised when BanksClient encounters an error.

+
+ +
+
+class BanksClient
+

A client for the ledger state, from the perspective of an arbitrary validator.

+

The client is used to send transactions and query account data, among other things. +Use bankrun.start() to initialize a BanksClient.

+
+
+get_account(address, commitment=None)
+

Return the account at the given address at the slot corresponding to the given +commitment level. If the account is not found, None is returned.

+
+
Parameters:
+
    +
  • address (Pubkey) – The account address to look up.

  • +
  • commitment (Optional[CommitmentLevel]) – The commitment level to use.

  • +
+
+
Returns:
+

The account object, if the account exists

+
+
Return type:
+

Optional[Account]

+
+
+
+ +
+
+get_balance(address, commitment=None)
+

Return the balance in lamports of an account at the given address at the slot +corresponding to the given commitment level.

+
+
Parameters:
+
    +
  • address (Pubkey) – The account to look up.

  • +
  • commitment (Optional[CommitmentLevel]) – The commitment level to use.

  • +
+
+
Returns:
+

The account balance in lamports.

+
+
Return type:
+

int

+
+
+
+ +
+
+get_block_height(commitment=None)
+

Get the current block height.

+
+
Parameters:
+

commitment (Optional[CommitmentLevel]) – The commitment level to use.

+
+
Returns:
+

The current block height.

+
+
Return type:
+

int

+
+
+
+ +
+
+get_clock()
+

Get the cluster clock.

+
+
Returns:
+

the clock object.

+
+
Return type:
+

Clock

+
+
+
+ +
+
+get_fee_for_message(message, commitment=None)
+

Get the fee in lamports for a given message.

+
+
Parameters:
+
    +
  • message (Message) – The message to check.

  • +
  • commitment (Optional[CommitmentLevel]) – The commitment level to use.

  • +
+
+
Returns:
+

The fee for the given message.

+
+
Return type:
+

Optional[int]

+
+
+
+ +
+
+get_latest_blockhash(commitment=None)
+

Returns latest blockhash and last valid block height for given commitment level.

+
+
Parameters:
+

commitment (Optional[CommitmentLevel]) – The commitment level to use.

+
+
Returns:
+

The blockhash and last valid block height.

+
+
Return type:
+

tuple[Hash, int]

+
+
+
+ +
+
+get_rent()
+

Get the cluster rent.

+
+
Returns:
+

The rent object.

+
+
Return type:
+

Rent

+
+
+
+ +
+
+get_slot(commitment=None)
+

Get the slot that has reached the given commitment level (or the default commitment).

+
+
Parameters:
+

commitment (Optional[CommitmentLevel]) – The commitment level to use.

+
+
Returns:
+

The current slot.

+
+
Return type:
+

int

+
+
+
+ +
+
+get_transaction_status(signature)
+

Return the status of a transaction with a signature matching the transaction’s first +signature.

+

Return None if the transaction is not found, which may be because the +blockhash was expired or the fee-paying account had insufficient funds to pay the +transaction fee. Note that servers rarely store the full transaction history. This +method may return None if the transaction status has been discarded.

+
+
Parameters:
+

signature (Signature) – The transaction signature (the first signature of the transaction).

+
+
Returns:
+

The transaction status, if found.

+
+
Return type:
+

Optional[TransactionStatus]

+
+
+
+ +
+
+get_transaction_statuses(signatures)
+

Same as get_transaction_status, but for multiple transactions.

+
+
Parameters:
+

signatures (Sequence[Signature]) – The transaction signatures.

+
+
Returns:
+

The transaction statuses, if found.

+
+
Return type:
+

List[Optional[TransactionStatus]]

+
+
+
+ +
+
+process_transaction(transaction)
+

Process a transaction and return the transaction metadata, raising any errors.

+
+
Parameters:
+

transaction (Transaction | VersionedTransaction) – The transaction to send.

+
+
Returns:
+

The transaction result and metadata.

+
+
Return type:
+

BanksTransactionResultWithMeta

+
+
+
+ +
+
+send_transaction(transaction)
+

Send a transaction and return immediately.

+
+
Parameters:
+

transaction (Transaction | VersionedTransaction) – The transaction to send.

+
+
+
+ +
+
+simulate_transaction(transaction, commitment=None)
+

Simulate a transaction at the given commitment level.

+
+
Parameters:
+
+
+
Returns:
+

The transaction simulation result.

+
+
Return type:
+

BanksTransactionResultWithMeta

+
+
+
+ +
+ +
+
+class ProgramTestContext
+

The result of calling bankrun.start().

+

Contains a BanksClient, a recent blockhash and a funded payer keypair.

+
+
+banks_client
+

The client for this test.

+
+
Type:
+

BanksClient

+
+
+
+ +
+
+increment_vote_account_credits(vote_account_address, number_of_credits)
+

Manually increment vote credits for the current epoch in the specified vote account to simulate validator voting activity.

+
+
Parameters:
+
    +
  • vote_account_address (Pubkey) – The vote account addess in which to increment credits.

  • +
  • number_of_credits (int) – How many credits to increment by.

  • +
+
+
+
+ +
+
+last_blockhash
+

The last blockhash registered when the client was initialized.

+
+
Type:
+

Hash

+
+
+
+ +
+
+payer
+

A funded keypair for sending transactions.

+
+
Type:
+

Keypair

+
+
+
+ +
+
+set_account(address, account)
+

Create or overwrite an account, subverting normal runtime checks.

+

This method exists to make it easier to set up artificial situations +that would be difficult to replicate by sending individual transactions. +Beware that it can be used to create states that would not be reachable +by sending transactions!

+
+
Parameters:
+
    +
  • address (Pubkey) – The address to write to.

  • +
  • account (Account) – The account object to write.

  • +
+
+
+
+ +
+
+set_clock(clock)
+

Overwrite the clock sysvar.

+
+
Parameters:
+

clock (Clock) – The new clock object.

+
+
+
+ +
+
+set_rent(rent)
+

Overwrite the rent sysvar.

+
+
Parameters:
+

rent (Rent) – The new rent object.

+
+
+
+ +
+
+warp_to_slot(warp_slot)
+

Force the working bank ahead to a new slot

+
+
Parameters:
+

warp_slot (int) – The slot to warp to.

+
+
+
+ +
+ +
+
+class BanksTransactionResultWithMeta(result=None, meta=None)
+

A transaction result.

+

Contains transaction metadata, and the transaction error, if there is one.

+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+meta
+

The transaction metadata.

+
+
Type:
+

Optional[BanksTransactionMeta]

+
+
+
+ +
+
+result
+

The transaction error info, if the transaction failed.

+
+
Type:
+

Optional[TransactionErrorType]

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class BanksTransactionMeta(log_messages, compute_units_consumed, return_data=None)
+

Transaction metadata.

+
+
+compute_units_consumed
+

The number of compute units consumed by the transaction.

+
+
Type:
+

int

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+log_messages
+

The log messages written during transaction execution.

+
+
Type:
+

List[str]

+
+
+
+ +
+
+return_data
+

The transaction return data, if present.

+
+
Type:
+

Optional[TransactionReturnData]

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+start(programs=None, accounts=None, compute_max_units=None, transaction_account_lock_limit=None)
+

Start a bankrun!

+

This will spin up a BanksServer and a BanksClient, +deploy programs and add accounts as instructed.

+
+
Parameters:
+
    +
  • programs (Optional[Sequence[Tuple[str, Pubkey]]]) – A sequence of (program_name, program_id) tuples +indicating which programs to deploy to the test environment. See the main bankrun docs for more explanation +on how to add programs.

  • +
  • accounts (Optional[Sequence[Tuple[Pubkey, Account]]]) – A sequence of (address, account_object) tuples, indicating +what data to write to the given addresses.

  • +
  • compute_max_units (Optional[int]) – Override the default compute unit limit for a transaction.

  • +
  • transaction_account_lock_limit (Optional[int]) – Override the default transaction account lock limit.

  • +
+
+
Returns:
+

a container for stuff you’ll need to send transactions and interact with the test environment.

+
+
Return type:
+

ProgramTestContext

+
+
+
+ +
+
+start_anchor(path, extra_programs=None, accounts=None, compute_max_units=None, transaction_account_lock_limit=None)
+

Start a bankrun in an Anchor workspace, with all the workspace programs deployed.

+

This will spin up a BanksServer and a BanksClient, +deploy programs and add accounts as instructed.

+
+
Parameters:
+
    +
  • path (pathlib.Path) – Path to root of the Anchor project.

  • +
  • extra_programs (Optional[Sequence[Tuple[str, Pubkey]]]) – A sequence of (program_name, program_id) tuples +indicating extra programs to deploy alongside the Anchor workspace programs. See the main bankrun docs for more explanation +on how to add programs.

  • +
  • accounts (Optional[Sequence[Tuple[Pubkey, Account]]]) – A sequence of (address, account_object) tuples, indicating +what data to write to the given addresses.

  • +
  • compute_max_units (Optional[int]) – Override the default compute unit limit for a transaction.

  • +
  • transaction_account_lock_limit (Optional[int]) – Override the default transaction account lock limit.

  • +
+
+
Returns:
+

a container for stuff you’ll need to send transactions and interact with the test environment.

+
+
Return type:
+

ProgramTestContext

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/commitment_config.html b/api_reference/commitment_config.html new file mode 100644 index 00000000..7dbf34ac --- /dev/null +++ b/api_reference/commitment_config.html @@ -0,0 +1,252 @@ + + + + + + + Commitment Config — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Commitment Config

+
+
+class CommitmentConfig(commitment)
+

Wrapper object for CommitmentLevel.

+
+
Parameters:
+

commitment (CommitmentLevel) – Bank state to query.

+
+
+
+
+commitment
+
+ +
+
+static confirmed()
+

Create a new instance with confirmed commitment.

+
+ +
+
+static default()
+

Create a new default instance.

+
+ +
+
+static finalized()
+

Create a new instance with finalized commitment.

+
+ +
+
+static from_string(s)
+

Create from a string.

+
+ +
+
+is_at_least_confirmed()
+

Check if using at least confirmed commitment.

+
+ +
+
+is_confirmed()
+

Check if using confirmed commitment.

+
+ +
+
+is_finalized()
+

Check if using finalized commitment.

+
+ +
+
+static processed()
+

Create a new instance with processed commitment.

+
+ +
+ +
+
+class CommitmentLevel
+

RPC request commitment options.

+
+
+Confirmed = CommitmentLevel.Confirmed
+
+ +
+
+Finalized = CommitmentLevel.Finalized
+
+ +
+
+Processed = CommitmentLevel.Processed
+
+ +
+
+static default()
+

Create a new default instance.

+
+ +
+
+static from_string(s)
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/compute_budget.html b/api_reference/compute_budget.html new file mode 100644 index 00000000..3ab7ea23 --- /dev/null +++ b/api_reference/compute_budget.html @@ -0,0 +1,161 @@ + + + + + + + Compute Budget — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Compute Budget

+
+
+request_heap_frame(bytes_)
+

Request a specific transaction-wide program heap region size in bytes. +The value requested must be a multiple of 1024. This new heap region +size applies to each program executed in the transaction, including all +calls to CPIs.

+
+ +
+
+set_compute_unit_limit(units)
+

Set a specific compute unit limit that the transaction is allowed to consume.

+
+ +
+
+set_compute_unit_price(micro_lamports)
+

Set a compute unit price in “micro-lamports” to pay a higher transaction +fee for higher transaction prioritization.

+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/epoch_schedule.html b/api_reference/epoch_schedule.html new file mode 100644 index 00000000..b9b104d8 --- /dev/null +++ b/api_reference/epoch_schedule.html @@ -0,0 +1,305 @@ + + + + + + + Epoch Schedule — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Epoch Schedule

+
+
+class EpochSchedule(slots_per_epoch)
+

Configuration for epochs and slots.

+
+
Parameters:
+

slots_per_epoch (int) – The maximum number of slots in each epoch.

+
+
+
+
+static custom(slots_per_epoch, leader_schedule_slot_offset, warmup)
+
+ +
+
+static default()
+

Create a new default EpochSchedule.

+
+
Returns:
+

The default EpochSchedule.

+
+
Return type:
+

EpochSchedule

+
+
+
+ +
+
+first_normal_epoch
+

Basically log2(slots_per_epoch) - log2(MINIMUM_SLOTS_PER_EPOCH)

+
+
Type:
+

int

+
+
+
+ +
+
+first_normal_slot
+

Basically MINIMUM_SLOTS_PER_EPOCH * (2.pow(first_normal_epoch) - 1)

+
+
Type:
+

int

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+get_epoch(slot)
+

Get epoch for the given slot

+
+ +
+
+get_epoch_and_slot_index(slot)
+

get epoch and offset into the epoch for the given slot

+
+ +
+
+get_first_slot_in_epoch(epoch)
+
+ +
+
+get_last_slot_in_epoch(epoch)
+
+ +
+
+get_leader_schedule_epoch(slot)
+

Get the epoch for which the given slot should save off +information about stakers.

+
+ +
+
+get_slots_in_epoch(epoch)
+

Get the length of the given epoch (in slots).

+
+ +
+
+leader_schedule_slot_offset
+

A number of slots before beginning of an epoch to calculate a leader schedule for that epoch.

+
+
Type:
+

int

+
+
+
+ +
+
+slots_per_epoch
+

The maximum number of slots in each epoch.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+warmup
+

Whether epochs start short and grow

+
+
Type:
+

bool

+
+
+
+ +
+
+static without_warmup()
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/errors.html b/api_reference/errors.html new file mode 100644 index 00000000..aeac4aeb --- /dev/null +++ b/api_reference/errors.html @@ -0,0 +1,164 @@ + + + + + + + Errors — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Errors

+
+
+exception BincodeError
+

Raised when the Rust bincode library returns an error during (de)serialization.

+
+ +
+
+exception SignerError
+

Raised when an error is encountered during transaction signing.

+
+ +
+
+exception CborError
+

Raised when the Rust cbor library returns an error during (de)serialization.

+
+ +
+
+exception SerdeJSONError
+

Raised when an error is encountered during JSON (de)serialization.

+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/hash.html b/api_reference/hash.html new file mode 100644 index 00000000..07d051a9 --- /dev/null +++ b/api_reference/hash.html @@ -0,0 +1,285 @@ + + + + + + + Hash — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Hash

+
+
+class Hash(hash_bytes)
+

A SHA-256 hash, most commonly used for blockhashes.

+
+
Parameters:
+

hash_bytes (bytes) – the hashed bytes.

+
+
+
+
+LENGTH = 32
+
+ +
+
+static default()
+

The default Hash object.

+
+
Returns:
+

a Hash object.

+
+
Return type:
+

Hash

+
+
+

Example

+
>>> from solders.hash import Hash
+>>> Hash.default()
+Hash(
+    11111111111111111111111111111111,
+)
+
+
+
+ +
+
+static from_bytes(raw_bytes)
+

Construct from bytes. Equivalent to Hash.__init__ but included for the sake of consistency.

+
+
Parameters:
+

raw_bytes (bytes) – the hashed bytes.

+
+
Returns:
+

a Hash object.

+
+
Return type:
+

Hash

+
+
+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+static from_string(s)
+

Create a Hash from a base-58 string.

+
+
Parameters:
+

s (str) – The base-58 encoded string

+
+
Returns:
+

a Hash object.

+
+
Return type:
+

Hash

+
+
+

Example

+
>>> from solders.hash import Hash
+>>> Hash.from_string("4uQeVj5tqViQh7yWWGStvkEG1Zmhx6uasJtWCJziofM")
+Hash(
+    4uQeVj5tqViQh7yWWGStvkEG1Zmhx6uasJtWCJziofM,
+)
+
+
+
+ +
+
+static hash(val)
+

Return a Sha256 hash for the given data.

+
+
Parameters:
+

val (bytes) – the data to hash.

+
+
Returns:
+

a Hash object.

+
+
Return type:
+

Hash

+
+
+

Example

+
>>> from solders.hash import Hash
+>>> Hash.hash(b"foo")
+Hash(
+    3yMApqCuCjXDWPrbjfR5mjCPTHqFG8Pux1TxQrEM35jj,
+)
+
+
+
+ +
+
+static new_unique()
+

Create a unique Hash for tests and benchmarks.

+
+
Returns:
+

a Hash object.

+
+
Return type:
+

Hash

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+exception ParseHashError
+

Raised when an error is encountered converting a string into a Hash.

+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/index.html b/api_reference/index.html new file mode 100644 index 00000000..ee2e47d6 --- /dev/null +++ b/api_reference/index.html @@ -0,0 +1,354 @@ + + + + + + + API Reference — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

API Reference

+

Modules:

+
+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/instruction.html b/api_reference/instruction.html new file mode 100644 index 00000000..78b012be --- /dev/null +++ b/api_reference/instruction.html @@ -0,0 +1,437 @@ + + + + + + + Instruction — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Instruction

+
+
+class AccountMeta(pubkey, is_signer, is_writable)
+

Describes a single account read or written by a program during instruction +execution.

+

When constructing an Instruction, a list of all accounts that may be +read or written during the execution of that instruction must be supplied. +Any account that may be mutated by the program during execution, either its +data or metadata such as held lamports, must be writable.

+

Note that because the Solana runtime schedules parallel transaction +execution around which accounts are writable, care should be taken that only +accounts which actually may be mutated are specified as writable.

+
+
Parameters:
+
    +
  • pubkey (Pubkey) – An account’s public key.

  • +
  • is_signer (bool) – True if an Instruction requires a Transaction +signature matching pubkey.

  • +
  • is_writable (bool) – True if the account data or metadata may be mutated during program execution.

  • +
+
+
+

Example

+
>>> from solders.pubkey import Pubkey
+>>> from solders.instruction import AccountMeta, Instruction
+>>> from_pubkey = Pubkey.new_unique()
+>>> to_pubkey = Pubkey.new_unique()
+>>> program_id = Pubkey.new_unique()
+>>> instruction_data = bytes([1])
+>>> accs = [AccountMeta(from_pubkey, is_signer=True, is_writable=True), AccountMeta(to_pubkey, is_signer=True, is_writable=True)]
+>>> instruction = Instruction(program_id, instruction_data, accs)
+
+
+
+
+static from_bytes(data)
+

Deserialize a serialized AccountMeta object.

+
+
Parameters:
+

data (bytes) – the serialized AccountMeta.

+
+
Returns:
+

the deserialized AccountMeta.

+
+
Return type:
+

AccountMeta

+
+
+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+is_signer
+
+ +
+
+is_writable
+
+ +
+
+pubkey
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class Instruction(program_id, data, accounts)
+

A directive for a single invocation of a Solana program.

+

An instruction specifies which program it is calling, which accounts it may +read or modify, and additional data that serves as input to the program. One +or more instructions are included in transactions submitted by Solana +clients. Instructions are also used to describe cross-program +invocations.

+

During execution, a program will receive a list of account data as one of +its arguments, in the same order as specified during Instruction +construction.

+

While Solana is agnostic to the format of the instruction data, it has +built-in support for serialization via +borsh +and bincode.

+

When constructing an Instruction, a list of all accounts that may be +read or written during the execution of that instruction must be supplied as +AccountMeta values.

+

Specifying Account Metadata

+

Any account whose data may be mutated by the program during execution must +be specified as writable. During execution, writing to an account that was +not specified as writable will cause the transaction to fail. Writing to an +account that is not owned by the program will cause the transaction to fail.

+

Any account whose lamport balance may be mutated by the program during +execution must be specified as writable. During execution, mutating the +lamports of an account that was not specified as writable will cause the +transaction to fail. While subtracting lamports from an account not owned +by the program will cause the transaction to fail, adding lamports to any +account is allowed, as long is it is mutable.

+

Accounts that are not read or written by the program may still be specified +in an Instruction’s account list. These will affect scheduling of program +execution by the runtime, but will otherwise be ignored.

+

When building a transaction, the Solana runtime coalesces all accounts used +by all instructions in that transaction, along with accounts and permissions +required by the runtime, into a single account list. Some accounts and +account permissions required by the runtime to process a transaction are +not required to be included in an Instruction’s account list. These +include:

+
    +
  • The program ID: it is a separate field of Instruction

  • +
  • The transaction’s fee-paying account: it is added during Message +construction. A program may still require the fee payer as part of the +account list if it directly references it.

  • +
+

Programs may require signatures from some accounts, in which case they +should be specified as signers during Instruction construction. The +program must still validate during execution that the account is a signer.

+
+
Parameters:
+
    +
  • program_id (Pubkey) – Pubkey of the program that executes this instruction.

  • +
  • data (bytes) – Opaque data passed to the program for its own interpretation.

  • +
  • accounts (list[AccountMeta]) – Metadata describing accounts that should be passed to the program.

  • +
+
+
+
+
+accounts
+
+ +
+
+data
+
+ +
+
+static from_bytes(data)
+

Deserialize a serialized Instruction object.

+
+
Parameters:
+

data (bytes) – the serialized Instruction.

+
+
Returns:
+

the deserialized Instruction.

+
+
Return type:
+

Instruction

+
+
+

Example

+
>>> from solders.pubkey import Pubkey
+>>> from solders.instruction import AccountMeta, Instruction
+>>> from_pubkey = Pubkey.new_unique()
+>>> to_pubkey = Pubkey.new_unique()
+>>> program_id = Pubkey.new_unique()
+>>> instruction_data = bytes([1])
+>>> accounts = [AccountMeta(from_pubkey, is_signer=True, is_writable=True), AccountMeta(to_pubkey, is_signer=True, is_writable=True),]
+>>> instruction = Instruction(program_id, instruction_data, accounts)
+>>> serialized = bytes(instruction)
+>>> assert Instruction.from_bytes(serialized) == instruction
+
+
+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+program_id
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class CompiledInstruction(program_id_index, data, accounts)
+

A compact encoding of an instruction.

+

A CompiledInstruction is a component of a multi-instruction Message, +which is the core of a Solana transaction. It is created during the +construction of Message. Most users will not interact with it directly.

+
+
Parameters:
+
    +
  • program_id_index (int) – Index into the transaction keys array indicating the +program account that executes this instruction.

  • +
  • data (bytes) – The program input data.

  • +
  • accounts (bytes) – Ordered indices into the transaction keys array indicating +which accounts to pass to the program.

  • +
+
+
+
+
+accounts
+
+ +
+
+data
+
+ +
+
+static from_bytes(data)
+

Deserialize a serialized CompiledInstruction object.

+
+
Parameters:
+

data (bytes) – the serialized CompiledInstruction.

+
+
Returns:
+

The deserialized CompiledInstruction.

+
+
Return type:
+

CompiledInstruction

+
+
+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+program_id(program_ids)
+

Return the pubkey of the program that executes this instruction.

+
+
Returns:
+

The program ID.

+
+
Return type:
+

Pubkey

+
+
+
+ +
+
+program_id_index
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/keypair.html b/api_reference/keypair.html new file mode 100644 index 00000000..ea896553 --- /dev/null +++ b/api_reference/keypair.html @@ -0,0 +1,414 @@ + + + + + + + Keypair — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Keypair

+
+
+class Keypair
+

A vanilla Ed25519 key pair.

+

Calling Keypair() creates a new, random Keypair.

+

Example

+
>>> from solders.keypair import Keypair
+>>> assert Keypair() != Keypair()
+
+
+
+
+LENGTH = 64
+
+ +
+
+static from_base58_string(s)
+

Recovers a Keypair from a base58-encoded string.

+
+
Parameters:
+

s (str) – The base58-encoded string.

+
+
Returns:
+

a keypair oject.

+
+
Return type:
+

Keypair

+
+
+

Example

+
>>> from solders.keypair import Keypair
+>>> raw_bytes = b'\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x8a\x88\xe3\xddt\t\xf1\x95\xfdR\xdb-<\xba]r\xcag\t\xbf\x1d\x94\x12\x1b\xf3t\x88\x01\xb4\x0fo\\'
+>>> base58_str = "2AXDGYSE4f2sz7tvMMzyHvUfcoJmxudvdhBcmiUSo6iuCXagjUCKEQF21awZnUGxmwD4m9vGXuC3qieHXJQHAcT"
+>>> kp = Keypair.from_base58_string(base58_str)
+>>> assert kp == Keypair.from_bytes(raw_bytes)
+>>> assert str(kp) == base58_str
+
+
+
+ +
+
+static from_bytes(raw_bytes)
+

Recovers a Keypair from bytes.

+
+
Parameters:
+

raw_bytes (bytes) – a 64-byte keypair.

+
+
Returns:
+

a keypair object.

+
+
Return type:
+

Keypair

+
+
+

Example

+
>>> from solders.keypair import Keypair
+>>> kp = Keypair()
+>>> assert kp == Keypair.from_bytes(bytes(kp))
+
+
+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+static from_seed(seed)
+

Generate a keypair from a 32-byte seed.

+
+
Parameters:
+

seed (bytes) – 32-byte seed.

+
+
Returns:
+

The generated keypair.

+
+
Return type:
+

Keypair

+
+
+

Example

+
>>> from solders.keypair import Keypair
+>>> from solders.pubkey import Pubkey
+>>> seed_bytes = bytes([0] * 32)
+>>> from_seed = Keypair.from_seed(seed_bytes)
+>>> from_bytes = Keypair.from_bytes(seed_bytes + bytes(from_seed.pubkey()))
+>>> assert from_seed == from_bytes
+
+
+
+ +
+
+static from_seed_and_derivation_path(seed, dpath)
+

Generate a keypair from a 32-byte seed and derivation path..

+
+
Parameters:
+
    +
  • seed (bytes) – 32-byte seed.

  • +
  • dpath (str) – derivation path.

  • +
+
+
Returns:
+

The generated keypair.

+
+
Return type:
+

Keypair

+
+
+

Example

+
>>> from solders.keypair import Keypair
+>>> from solders.pubkey import Pubkey
+>>> seed_bytes = bytes([0] * 64)
+>>> account_index = 0
+>>> derivation_path = f"m/44'/501'/0'/{account_index}'"
+>>> from_seed = Keypair.from_seed_and_derivation_path(seed_bytes, derivation_path)
+
+
+
+ +
+
+static from_seed_phrase_and_passphrase(seed_phrase, passphrase)
+

Generate a keypair from a seed phrase and passphrase.

+
+
Parameters:
+
    +
  • seed_phrase (string) – Secret seed phrase.

  • +
  • passphrase (string) – Passphrase.

  • +
+
+
+

Example

+
>>> from pybip39 import Mnemonic, Seed
+>>> from solders.keypair import Keypair
+>>> mnemonic = Mnemonic()
+>>> passphrase = "42"
+>>> seed = Seed(mnemonic, passphrase)
+>>> expected_keypair = Keypair.from_seed(bytes(seed)[:32])
+>>> keypair = Keypair.from_seed_phrase_and_passphrase(mnemonic.phrase, passphrase)
+>>> assert keypair.pubkey() == expected_keypair.pubkey()
+
+
+
+ +
+
+is_interactive()
+

Whether the impelmentation requires user interaction to sign.

+
+
Returns:
+

Always False for this class.

+
+
Return type:
+

bool

+
+
+
+ +
+
+pubkey()
+

Get this keypair’s Pubkey.

+
+
Returns:
+

the pubkey of this keypair.

+
+
Return type:
+

Pubkey

+
+
+

Example

+
>>> from solders.keypair import Keypair
+>>> from solders.pubkey import Pubkey
+>>> seed_bytes = bytes([0] * 32)
+>>> pubkey_bytes = b";j'\xbc\xce\xb6\xa4-b\xa3\xa8\xd0*o\rse2\x15w\x1d\xe2C\xa6:\xc0H\xa1\x8bY\xda)"
+>>> kp = Keypair.from_bytes(seed_bytes + pubkey_bytes)
+>>> assert kp.pubkey() == Pubkey(pubkey_bytes)
+
+
+
+ +
+
+secret()
+

Gets this Keypair’s secret key.

+
+
Returns:
+

The secret key in 32 bytes.

+
+
Return type:
+

bytes

+
+
+

Example

+
>>> from solders.keypair import Keypair
+>>> kp = Keypair()
+>>> assert kp.secret() == bytes(kp)[:32]
+
+
+
+ +
+
+sign_message(message)
+

Sign a mesage with this keypair, producing an Ed25519 signature over the provided message bytes.

+
+
Parameters:
+

message (bytes) – The message to sign.

+
+
Returns:
+

The Ed25519 signature.

+
+
Return type:
+

Signature

+
+
+

Example

+
>>> from solders.keypair import Keypair
+>>> seed = bytes([1] * 32)
+>>> keypair = Keypair.from_seed(seed)
+>>> msg = b"hello"
+>>> sig = keypair.sign_message(msg)
+>>> bytes(sig).hex()
+'e1430c6ebd0d53573b5c803452174f8991ef5955e0906a09e8fdc7310459e9c82a402526748c3431fe7f0e5faafbf7e703234789734063ee42be17af16438d08'
+
+
+
+ +
+
+to_bytes_array()
+

Returns this Keypair as a byte array.

+
+
Returns:
+

the keypair as a list of 64 u8 ints.

+
+
Return type:
+

list[int]

+
+
+

Example

+
>>> from solders.keypair import Keypair
+>>> raw_bytes = b'\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x8a\x88\xe3\xddt\t\xf1\x95\xfdR\xdb-<\xba]r\xcag\t\xbf\x1d\x94\x12\x1b\xf3t\x88\x01\xb4\x0fo\\'
+>>> assert Keypair.from_bytes(raw_bytes).to_bytes_array() == list(raw_bytes)
+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/message.html b/api_reference/message.html new file mode 100644 index 00000000..f9f48486 --- /dev/null +++ b/api_reference/message.html @@ -0,0 +1,1021 @@ + + + + + + + Message — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Message

+
+
+class Message(instructions, payer=None)
+

A Solana transaction message.

+

Some constructors accept an optional payer, the account responsible for +paying the cost of executing a transaction. In most cases, callers should +specify the payer explicitly in these constructors. In some cases though, +the caller is not required to specify the payer, but is still allowed to: +in the Message object, the first account is always the fee-payer, so if +the caller has knowledge that the first account of the constructed +transaction’s Message is both a signer and the expected fee-payer, then +redundantly specifying the fee-payer is not strictly required.

+
+
Parameters:
+
    +
  • instructions (Sequence[Instruction]) – The instructions to include in the message.

  • +
  • payer (Optional[Pubkey]) – The fee payer. Defaults to None.

  • +
+
+
+

Example

+
>>> from solders.message import Message
+>>> from solders.keypair import Keypair
+>>> from solders.instruction import Instruction
+>>> from solders.hash import Hash
+>>> from solders.transaction import Transaction
+>>> from solders.pubkey import Pubkey
+>>> program_id = Pubkey.default()
+>>> arbitrary_instruction_data = bytes([1])
+>>> accounts = []
+>>> instruction = Instruction(program_id, arbitrary_instruction_data, accounts)
+>>> payer = Keypair()
+>>> message = Message([instruction], payer.pubkey())
+>>> blockhash = Hash.default()  # replace with a real blockhash
+>>> tx = Transaction([payer], message, blockhash)
+
+
+
+
+account_keys
+

All the account keys used by this transaction.

+
+
Type:
+

list[Pubkey]

+
+
+
+ +
+
+compile_instruction(ix)
+

Convert an Instruction into a CompiledInstruction using self.account_keys.

+
+
Returns:
+

The compiled instruction.

+
+
Return type:
+

CompiledInstruction

+
+
+
+ +
+
+static default()
+

Create a new default Message.

+
+
Returns:
+

default Message.

+
+
Return type:
+

Message

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize a serialized Message object.

+
+
Parameters:
+

data (bytes) – The serialized Message.

+
+
Returns:
+

The deserialized Message.

+
+
Return type:
+

Message

+
+
+

Example

+
>>> from solders.pubkey import Pubkey
+>>> from solders.instruction import AccountMeta, Instruction
+>>> from solders.message import Message
+>>> from_pubkey = Pubkey.new_unique()
+>>> to_pubkey = Pubkey.new_unique()
+>>> program_id = Pubkey.new_unique()
+>>> instruction_data = bytes([1])
+>>> accounts = [AccountMeta(from_pubkey, is_signer=True, is_writable=True), AccountMeta(to_pubkey, is_signer=True, is_writable=True)]
+>>> instruction = Instruction(program_id, instruction_data, accounts)
+>>> message = Message([instruction])
+>>> serialized = bytes(message)
+>>> assert Message.from_bytes(serialized) == message
+
+
+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+has_duplicates()
+

Check if account_keys has any duplicate keys.

+
+
Returns:
+

True if there are duplicates.

+
+
Return type:
+

bool

+
+
+
+ +
+
+hash()
+

Compute the blake3 hash of this transaction’s message.

+
+
Returns:
+

The blake3 hash.

+
+
Return type:
+

Hash

+
+
+
+ +
+
+static hash_raw_message(message_bytes)
+

Compute the blake3 hash of a raw transaction message.

+
+
Returns:
+

The blake3 hash.

+
+
Return type:
+

Hash

+
+
+
+ +
+
+header
+

The message header, identifying signed and read-only account_keys.

+
+
Type:
+

MessageHeader

+
+
+
+ +
+
+instructions
+

Programs that will be executed in sequence +and committed in one atomic transaction if all succeed.

+
+
Type:
+

list[CompiledInstruction]

+
+
+
+ +
+
+is_key_called_as_program(key_index)
+

Check if the program_id_index of any of the message’s instructions matches key_index.

+
+
Parameters:
+

key_index (int) – The index to check.

+
+
Returns:
+

The result of the check.

+
+
Return type:
+

bool

+
+
+
+ +
+
+is_signer(i)
+

See https://docs.rs/solana-sdk/latest/solana_sdk/message/legacy/struct.Message.html#method.is_signer

+
+ +
+
+is_upgradeable_loader_present()
+

See https://docs.rs/solana-sdk/latest/solana_sdk/message/legacy/struct.Message.html#method.is_upgradeable_loader_present

+
+ +
+
+maybe_executable(i)
+

See https://docs.rs/solana-sdk/latest/solana_sdk/message/legacy/struct.Message.html#method.maybe_executable

+
+ +
+
+static new_with_blockhash(instructions, payer, blockhash)
+

Create a new message while setting the blockhash.

+
+
Parameters:
+
    +
  • instructions (Sequence[Instruction]) – The instructions to include in the message.

  • +
  • payer (Optional[Pubkey]) – The fee payer. Defaults to None.

  • +
  • blockhash (Hash) – a recent blockhash.

  • +
+
+
Returns:
+

The message object.

+
+
Return type:
+

Message

+
+
+

Example

+
>>> from typing import List
+>>> from solders.message import Message
+>>> from solders.keypair import Keypair
+>>> from solders.pubkey import Pubkey
+>>> from solders.instruction import Instruction, AccountMeta
+>>> from solders.hash import Hash
+>>> from solders.transaction import Transaction
+>>> program_id = Pubkey.default()
+>>> blockhash = Hash.default()  # replace with a real blockhash
+>>> arbitrary_instruction_data = bytes([1])
+>>> accounts: List[AccountMeta] = []
+>>> instruction = Instruction(program_id, arbitrary_instruction_data, accounts)
+>>> payer = Keypair()
+>>> message = Message.new_with_blockhash([instruction], payer.pubkey(), blockhash)
+>>> tx = Transaction.new_unsigned(message)
+>>> tx.sign([payer], tx.message.recent_blockhash)
+
+
+
+ +
+
+static new_with_compiled_instructions(num_required_signatures, num_readonly_signed_accounts, num_readonly_unsigned_accounts, account_keys, recent_blockhash, instructions)
+

Create a new message by specifying all the fields required for the message, including the MessageHeader fields.

+
+
Parameters:
+
    +
  • num_required_signatures (int) – The number of signatures required for this message +to be considered valid. The signers of those signatures must match the +first num_required_signatures of Message.account_keys.

  • +
  • num_readonly_signed_accounts (int) – The last num_readonly_signed_accounts of +the signed keys are read-only accounts.

  • +
  • num_readonly_unsigned_accounts (int) – The last num_readonly_unsigned_accounts +of the unsigned keys are read-only accounts.

  • +
  • account_keys (list[Pubkey]) – All the account keys used by this transaction.

  • +
  • recent_blockhash (Hash) – The id of a recent ledger entry.

  • +
  • instructions (list[CompiledInstruction]) – Programs that will be executed in sequence +and committed in one atomic transaction if all succeed.

  • +
+
+
Returns:
+

The message object.

+
+
Return type:
+

Message

+
+
+
+ +
+
+static new_with_nonce(instructions, payer, nonce_account_pubkey, nonce_authority_pubkey)
+

Create a new message for a nonced transaction.

+
+
Parameters:
+
    +
  • instructions (Sequence[Instruction]) – The instructions to include in the message.

  • +
  • payer (Optional[Pubkey]) – The fee payer. Defaults to None.

  • +
  • nonce_account_pubkey (Pubkey) – The nonce account pubkey.

  • +
  • nonce_authority_pubkey (Pubkey) – The nonce account authority (for advance and close).

  • +
+
+
+

In this type of transaction, the blockhash is replaced with a durable +transaction nonce, allowing for extended time to pass between the +transaction’s signing and submission to the blockchain.

+

Example

+
>>> from typing import List
+>>> from solders.message import Message
+>>> from solders.keypair import Keypair
+>>> from solders.pubkey import Pubkey
+>>> from solders.instruction import Instruction, AccountMeta
+>>> from solders.hash import Hash
+>>> from solders.transaction import Transaction
+>>> program_id = Pubkey.default()
+>>> blockhash = Hash.default()  # replace with a real blockhash
+>>> arbitrary_instruction_data = bytes([1])
+>>> accounts: List[AccountMeta] = []
+>>> instruction = Instruction(program_id, arbitrary_instruction_data, accounts)
+>>> payer = Keypair()
+>>> nonce_account = Pubkey.default()  # replace with a real nonce account
+>>> message = Message.new_with_nonce([instruction], payer.pubkey(), nonce_account, payer.pubkey())
+>>> # This transaction will need to be signed later, using the blockhash stored in the nonce account.
+>>> tx = Transaction.new_unsigned(message)
+
+
+
+ +
+
+program_id(instruction_index)
+

Return the program ID of an instruction at a particular index in the message.

+
+
Parameters:
+

instruction_index (int) – The position of the instruction in the +message’s list of instructions.

+
+
Returns:
+

The program ID.

+
+
Return type:
+

Pubkey

+
+
+
+ +
+
+program_ids()
+

Return the program ID of each instruction in the message.

+
+
Returns:
+

The program IDs.

+
+
Return type:
+

list[Pubkey]

+
+
+
+ +
+
+program_index(instruction_index)
+

Return the program_id_index of the instruction at instruction_index in the message.

+
+
Parameters:
+

instruction_index (int) – The position of the instruction in the +message’s list of instructions.

+
+
Returns:
+

The program ID index.

+
+
Return type:
+

int

+
+
+
+ +
+
+program_position(index)
+

See https://docs.rs/solana-sdk/latest/solana_sdk/message/legacy/struct.Message.html#method.program_position

+
+ +
+
+recent_blockhash
+

The id of a recent ledger entry.

+
+
Type:
+

Hash

+
+
+
+ +
+
+signer_keys()
+

See https://docs.rs/solana-sdk/latest/solana_sdk/message/legacy/struct.Message.html#method.signer_keys

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class MessageHeader(num_required_signatures, num_readonly_signed_accounts, num_readonly_unsigned_accounts)
+

Describes the organization of a Message’s account keys.

+

Every Instruction specifies which accounts it may reference, or +otherwise requires specific permissions of. Those specifications are: +whether the account is read-only, or read-write; and whether the account +must have signed the transaction containing the instruction.

+

Whereas an individual Instruction contains a list of all accounts they may +access, along with their required permissions, a Message contains a +single shared flat list of all accounts required by all instructions in +a transaction. When building a Message, this flat list is created and +each Instruction is converted to CompiledInstruction. Each +CompiledInstruction then references by index the accounts they require in +the single shared account list.

+

The shared account list is ordered by the permissions required of the accounts:

+
    +
  • accounts that are writable and signers

  • +
  • accounts that are read-only and signers

  • +
  • accounts that are writable and not signers

  • +
  • accounts that are read-only and not signers

  • +
+

Given this ordering, the fields of MessageHeader describe which accounts +in a transaction require which permissions.

+

When multiple transactions access the same read-only accounts, the runtime +may process them in parallel, in a single +PoH entry. +Transactions that access the same read-write accounts are processed sequentially.

+
+
Parameters:
+
    +
  • num_required_signatures (int) – The number of signatures required for this message +to be considered valid. The signers of those signatures must match the +first num_required_signatures of Message.account_keys.

  • +
  • num_readonly_signed_accounts (int) – The last num_readonly_signed_accounts of +the signed keys are read-only accounts.

  • +
  • num_readonly_unsigned_accounts (int) – The last num_readonly_unsigned_accounts +of the unsigned keys are read-only accounts.

  • +
+
+
+
+
+LENGTH = 3
+
+ +
+
+static default()
+

Create a new default MessageHeader.

+
+
Returns:
+

default MessageHeader.

+
+
Return type:
+

MessageHeader

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize a serialized MessageHeader object.

+
+
Parameters:
+

data (bytes) – The serialized MessageHeader.

+
+
Returns:
+

The deserialized MessageHeader.

+
+
Return type:
+

MessageHeader

+
+
+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+num_readonly_signed_accounts
+
+ +
+
+num_readonly_unsigned_accounts
+
+ +
+
+num_required_signatures
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class MessageV0(header, account_keys, recent_blockhash, instructions, address_table_lookups)
+

A Solana transaction message (v0).

+

This message format supports succinct account loading with +on-chain address lookup tables

+
+
Parameters:
+
    +
  • header (MessageHeader) – The message header, identifying signed and read-only account_keys. +Header values only describe static account_keys, they do not describe +any additional account keys loaded via address table lookups.

  • +
  • account_keys (Sequence[Pubkey]) – List of accounts loaded by this transaction.

  • +
  • recent_blockhash (Hash) – Hash of a recent block.

  • +
  • instructions (Sequence[Instruction]) – The instructions to include in the message.

  • +
  • address_table_lookups (Sequence[MessageAddressTableLookup]) – List of address table lookups used to load additional accounts +for this transaction.

  • +
+
+
+

Example

+
>>> from solders.message import MessageV0, MessageHeader, MessageAddressTableLookup
+>>> from solders.instruction import CompiledInstruction
+>>> from solders.hash import Hash
+>>> from solders.pubkey import Pubkey
+>>> program_id = Pubkey.default()
+>>> arbitrary_instruction_data = bytes([1])
+>>> accounts = []
+>>> instructions=[CompiledInstruction(program_id_index=4, accounts=bytes([1, 2, 3, 5, 6]), data=bytes([]))]
+>>> account_keys = [Pubkey.new_unique()]
+>>> header = MessageHeader(1, 0, 0)
+>>> lookups = [MessageAddressTableLookup(Pubkey.new_unique(), bytes([1, 2, 3]), bytes([0]))]
+>>> blockhash = Hash.default()  # replace with a real blockhash
+>>> message = MessageV0(header, account_keys, blockhash, instructions, lookups)
+
+
+
+
+account_keys
+
+ +
+
+address_table_lookups
+
+ +
+
+static default()
+

Create a new default MessageV0.

+
+
Returns:
+

default MessageV0.

+
+
Return type:
+

MessageV0

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+hash()
+

Compute the blake3 hash of this transaction’s message.

+
+
Returns:
+

The blake3 hash.

+
+
Return type:
+

Hash

+
+
+
+ +
+
+static hash_raw_message(message_bytes)
+

Compute the blake3 hash of a raw transaction message.

+
+
Returns:
+

The blake3 hash.

+
+
Return type:
+

Hash

+
+
+
+ +
+
+header
+
+ +
+
+instructions
+
+ +
+
+is_key_called_as_program(key_index)
+

Returns true if the account at the specified index is called as a program by an instruction

+
+ +
+
+is_maybe_writable(key_index)
+

Returns true if the account at the specified index was requested as writable. +Before loading addresses, we can’t demote write locks for dynamically loaded +addresses so this should not be used by the runtime.

+
+ +
+
+is_non_loader_key(key_index)
+

Returns true if the account at the specified index is not invoked as a +program or, if invoked, is passed to a program.

+
+ +
+
+is_signer(index)
+

Returns true if the account at the specified index signed this +message.

+
+ +
+
+recent_blockhash
+
+ +
+
+sanitize()
+

Sanitize message fields and compiled instruction indexes.

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+static try_compile(payer, instructions, address_lookup_table_accounts, recent_blockhash)
+

Create a signable transaction message from a payer public key, recent_blockhash, +list of instructions, and a list of address_lookup_table_accounts.

+
+
Parameters:
+
    +
  • payer (Pubkey) – The fee payer.

  • +
  • instructions (Sequence[Instruction]) – The instructions to include in the message.

  • +
  • address_table_lookups (Sequence[MessageAddressTableLookup]) – List of address table lookups used to load additional accounts +for this transaction.

  • +
  • recent_blockhash (Hash) – Hash of a recent block.

  • +
+
+
+

Example

+
>>> from solders.pubkey import Pubkey
+>>> from solders.instruction import Instruction, AccountMeta
+>>> from solders.message import Message
+>>> from solders.address_lookup_table_account import AddressLookupTableAccount
+>>> from solders.hash import Hash
+>>> keys = [Pubkey.new_unique() for i in range(7)]
+>>> payer = keys[0]
+>>> program_id = keys[6]
+>>> ix_accounts = [AccountMeta(keys[1], True, True), AccountMeta(keys[2], True, False), AccountMeta(keys[3], False, True),AccountMeta(keys[4], False, True),AccountMeta(keys[5], False, False),]
+>>> instructions = [Instruction(program_id, bytes([]), ix_accounts)]
+>>> lookup_acc0 = AddressLookupTableAccount(key=Pubkey.new_unique(), addresses=[keys[4], keys[5], keys[6]])
+>>> lookup_acc1 = AddressLookupTableAccount(key=Pubkey.new_unique(), addresses=[])
+>>> lookup_accs = [lookup_acc0, lookup_acc1]
+>>> recent_blockhash = Hash.new_unique()
+>>> msg = MessageV0.try_compile(payer, instructions, lookup_accs, recent_blockhash)
+
+
+
+ +
+ +
+
+class MessageAddressTableLookup(account_key, writable_indexes, readonly_indexes)
+

Address table lookups describe an on-chain address lookup table to use +for loading more readonly and writable accounts in a single tx.

+
+
Parameters:
+
    +
  • account_key (Pubkey) – Address lookup table account key.

  • +
  • writable_indexes (bytes) – List of u8 indexes used to load writable account addresses, represented as bytes.

  • +
  • readonly_indexes (bytes) – List of u8 indexes used to load readonly account addresses, represented as bytes.

  • +
+
+
+
+
+account_key
+

Address lookup table account key.

+
+
Type:
+

Pubkey

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+readonly_indexes
+

List of u8 indexes used to load readonly account addresses, represented as bytes.

+
+
Type:
+

bytes

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+writable_indexes
+

List of u8 indexes used to load writable account addresses, represented as bytes.

+
+
Type:
+

bytes

+
+
+
+ +
+ +
+
+to_bytes_versioned(msg)
+

Serialize a versioned message, with a leading byte indicating whether or not it’s a legacy message.

+

If you want to serialize without the leading byte, use bytes(msg).

+
+
Parameters:
+

msg (VersionedMessage) – The message to serialize.

+
+
Returns:
+

the serialized message.

+
+
Return type:
+

bytes

+
+
+
+ +
+
+from_bytes_versioned(raw)
+

Deserialize a versioned message, where the first byte indicates whether or not it’s a legacy message.

+
+
Parameters:
+

raw (bytes) – The serialized message.

+
+
Returns:
+

the deserialized message.

+
+
Return type:
+

VersionedMessage

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/null_signer.html b/api_reference/null_signer.html new file mode 100644 index 00000000..a5bb3268 --- /dev/null +++ b/api_reference/null_signer.html @@ -0,0 +1,229 @@ + + + + + + + Null Signer — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Null Signer

+
+
+class NullSigner(pubkey)
+

A signer implementation that always produces solders.signature.Signature.default(). +Used as a placeholder for absentee signers whose ‘Pubkey` is required to construct +the transaction.

+
+
Parameters:
+

pubkey (Pubkey) – The pubkey of the signer.

+
+
+
+
+static default()
+

Create a new default null signer.

+
+
Returns:
+

The default null signer.

+
+
Return type:
+

NullSigner

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize a serialized NullSigner object.

+
+
Parameters:
+

data (bytes) – The serialized NullSigner.

+
+
Returns:
+

The deserialized NullSigner.

+
+
Return type:
+

NullSigner

+
+
+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+pubkey()
+

Return the pubkey of the signer.

+
+
Returns:
+

The signer’s pubkey.

+
+
Return type:
+

Pubkey

+
+
+
+ +
+
+sign_message(message)
+

Simply returns solders.signature.Signature.default().

+
+
Returns:
+

The default signature.

+
+
Return type:
+

Signature

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/presigner.html b/api_reference/presigner.html new file mode 100644 index 00000000..3463c8cb --- /dev/null +++ b/api_reference/presigner.html @@ -0,0 +1,225 @@ + + + + + + + Presigner — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Presigner

+
+
+class Presigner(pubkey, signature)
+

A signer that represents a Signature that has been +constructed externally. Performs a signature verification against the +expected message upon sign() requests to affirm its relationship to +the message bytes.

+
+
Parameters:
+
    +
  • pubkey (Pubkey) – The pubkey of the signer.

  • +
  • signature (Signature) – The signature created by signing the message.

  • +
+
+
+
+
+static default()
+

Create a new default presigner.

+
+
Returns:
+

The default presigner.

+
+
Return type:
+

Presigner

+
+
+
+ +
+
+pubkey()
+

Get this signer’s Pubkey.

+
+
Returns:
+

The pubkey of the presigner.

+
+
Return type:
+

Pubkey

+
+
+

Example

+
>>> from solders.keypair import Keypair
+>>> from solders.pubkey import Pubkey
+>>> seed_bytes = bytes([0] * 32)
+>>> pubkey_bytes = b";j'\xbc\xce\xb6\xa4-b\xa3\xa8\xd0*o\rse2\x15w\x1d\xe2C\xa6:\xc0H\xa1\x8bY\xda)"
+>>> kp = Keypair.from_bytes(seed_bytes + pubkey_bytes)
+>>> assert kp.pubkey() == Pubkey(pubkey_bytes)
+
+
+
+ +
+
+sign_message(message)
+

Verifies the signature of the presigner and returns it if valid.

+
+
Returns:
+

The signature assigned to this object.

+
+
Return type:
+

Signature

+
+
Raises:
+

SignerError – if the signature is invalid.

+
+
+

Example

+
>>> from solders.keypair import Keypair
+>>> from solders.presigner import Presigner
+>>> keypair = Keypair.from_seed(bytes([0] * 32))
+>>> pubkey = keypair.pubkey()
+>>> data = bytes([1])
+>>> sig = keypair.sign_message(data)
+>>> presigner = Presigner(pubkey, sig)
+>>> assert presigner.pubkey() == pubkey
+>>> assert presigner.sign_message(data) == sig
+
+
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/pubkey.html b/api_reference/pubkey.html new file mode 100644 index 00000000..bcfad1e9 --- /dev/null +++ b/api_reference/pubkey.html @@ -0,0 +1,397 @@ + + + + + + + Pubkey — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Pubkey

+
+
+class Pubkey(pubkey_bytes)
+

A public key.

+
+
Parameters:
+

pubkey_bytes (bytes) – The pubkey in bytes.

+
+
+

Example

+
>>> from solders.pubkey import Pubkey
+>>> pubkey = Pubkey(bytes([1] * 32))
+>>> str(pubkey)
+'4vJ9JU1bJJE96FWSJKvHsmmFADCg4gpZQff4P3bkLKi'
+>>> bytes(pubkey).hex()
+'0101010101010101010101010101010101010101010101010101010101010101'
+
+
+
+
+LENGTH = 32
+
+ +
+
+static create_program_address(seeds, program_id)
+

Derive a program address from seeds and a program ID.

+
+
Parameters:
+
    +
  • seeds (Sequence[bytes]) – The seeds to use.

  • +
  • program_id (Pubkey) – The program ID.

  • +
+
+
Returns:
+

The derived program address.

+
+
Return type:
+

Pubkey

+
+
Raises:
+

PubkeyError – if the resulting address is invalid.

+
+
+

Example

+
>>> from solders.pubkey import Pubkey
+>>> program_id = Pubkey.from_string("BPFLoader1111111111111111111111111111111111")
+>>> Pubkey.create_program_address([b"", bytes([1])], program_id)
+Pubkey(
+    3gF2KMe9KiC6FNVBmfg9i267aMPvK37FewCip4eGBFcT,
+)
+
+
+
+ +
+
+static create_with_seed(base, seed, program_id)
+

Derive a pubkey from another key, a seed, and a program ID.

+
+
Parameters:
+
    +
  • base (Pubkey) – The other pubkey to use.

  • +
  • seed (str) – The seed string

  • +
  • program_id (Pubkey) – The program ID.

  • +
+
+
Returns:
+

The derived pubkey.

+
+
Return type:
+

Pubkey

+
+
+

Example

+
>>> from solders.pubkey import Pubkey
+>>> default_public_key = Pubkey.default()
+>>> Pubkey.create_with_seed(default_public_key, "limber chicken: 4/45", default_public_key)
+Pubkey(
+    9h1HyLCW5dZnBVap8C5egQ9Z6pHyjsh5MNy83iPqqRuq,
+)
+
+
+
+ +
+
+static default()
+

Create a new default pubkey.

+
+
Returns:
+

The default pubkey.

+
+
Return type:
+

Pubkey

+
+
+

Example

+
>>> from solders.pubkey import Pubkey
+>>> Pubkey.default()
+Pubkey(
+    11111111111111111111111111111111,
+)
+
+
+
+ +
+
+static find_program_address(seeds, program_id)
+

Find a valid program derived address and its corresponding bump seed.

+

Program derived addresses (PDAs) are account keys that only the program, +program_id, has the authority to sign. The address is of the same form +as a Solana Pubkey, except they are ensured to not be on the ed25519 +curve and thus have no associated private key. When performing +cross-program invocations the program can “sign” for the key by calling +invoke_signed and passing the same seeds used to generate the +address, along with the calculated bump seed, which this function +returns as the second tuple element. The runtime will verify that the +program associated with this address is the caller and thus authorized +to be the signer.

+

The seeds are application-specific, and must be carefully selected to +uniquely derive accounts per application requirements. It is common to +use static strings and other pubkeys as seeds.

+

Because the program address must not lie on the ed25519 curve, there may +be seed and program id combinations that are invalid. For this reason, +an extra seed (the bump seed) is calculated that results in a +point off the curve. The bump seed must be passed as an additional seed +when calling invoke_signed.

+

Warning: Because of the way the seeds are hashed there is a potential +for program address collisions for the same program id. The seeds are +hashed sequentially which means that seeds {“abcdef”}, {“abc”, “def”}, +and {“ab”, “cd”, “ef”} will all result in the same program address given +the same program id. Since the chance of collision is local to a given +program id, the developer of that program must take care to choose seeds +that do not collide with each other. For seed schemes that are susceptible +to this type of hash collision, a common remedy is to insert separators +between seeds, e.g. transforming {“abc”, “def”} into {“abc”, “-”, “def”}.

+
+
Parameters:
+
    +
  • seeds (Sequence[bytes]) – The seeds to use.

  • +
  • program_id (Pubkey) – The program ID.

  • +
+
+
Returns:
+

The PDA.

+
+
Return type:
+

Pubkey

+
+
+

Example

+
>>> from solders.pubkey import Pubkey
+>>> program_id = Pubkey.from_string("BPFLoader1111111111111111111111111111111111")
+>>> program_address, nonce = Pubkey.find_program_address([b""], program_id)
+>>> program_address
+Pubkey(
+    EXWkUCz3YJU9TDVk39ogA4TwoVsUi75ZDhH6yT7acPgQ,
+)
+>>> nonce
+255
+
+
+
+ +
+
+static from_bytes(raw)
+

Construct from bytes. Equivalent to Pubkey.__init__ but included for the sake of consistency.

+
+
Parameters:
+

raw (bytes) – the pubkey bytes.

+
+
Returns:
+

a Pubkey object.

+
+
Return type:
+

Pubkey

+
+
+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+static from_string(s)
+

Retrieve a pubkey from a base58 string.

+
+
Returns:
+

the pubkey obtained from the base58 string.

+
+
Return type:
+

Pubkey

+
+
+

Example

+
>>> from solders.pubkey import Pubkey
+>>> Pubkey.from_string("BPFLoader1111111111111111111111111111111111")
+Pubkey(
+    BPFLoader1111111111111111111111111111111111,
+)
+
+
+
+ +
+
+is_on_curve()
+

Check that the pubkey is on the ed25519 curve.

+
+
Returns:
+

True if the pubkey is on the curve.

+
+
Return type:
+

bool

+
+
+
+ +
+
+static new_unique()
+

Unique pubkey for tests and benchmarks.

+
+
Returns:
+

Randomly generated pubkey.

+
+
Return type:
+

Pubkey

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/rpc/config.html b/api_reference/rpc/config.html new file mode 100644 index 00000000..10bff64b --- /dev/null +++ b/api_reference/rpc/config.html @@ -0,0 +1,1643 @@ + + + + + + + Config — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Config

+
+
+class RpcSignatureStatusConfig(search_transaction_history)
+

Configuration object for getSignatureStatuses.

+
+
Parameters:
+

search_transaction_history – If True, a Solana node will search its ledger cache for any signatures not found in the recent status cache

+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+search_transaction_history
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class RpcSendTransactionConfig(skip_preflight=False, preflight_commitment=None, max_retries=None, min_context_slot=None)
+

Configuration object for sendTransaction.

+
+
Parameters:
+
    +
  • skip_preflight (bool) – If true, skip the preflight transaction checks.

  • +
  • preflight_commitment (Optional[CommitmentLevel]) – Commitment level to use for preflight checks.

  • +
  • max_retries – (Optional[int]): Maximum number of times for the RPC node to retry sending +the transaction to the leader. If this parameter not provided, the RPC node will +retry the transaction until it is finalized or until the blockhash expires.

  • +
  • min_context_slot (Optional[int]) – The minimum slot that the request can be evaluated at.

  • +
+
+
+
+
+static default()
+

Create a new default instance of this class.

+
+
Returns:
+

The default instance.

+
+
Return type:
+

RpcSendTransactionConfig

+
+
+
+ +
+
+encoding
+

Encoding used for the transaction data.

+
+
Type:
+

UiTransactionEncoding

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+max_retries
+

Maximum number of times for the RPC node to retry sending the transaction to the leader.

+
+
Type:
+

Optional[int]

+
+
+
+ +
+
+min_context_slot
+

The minimum slot that the request can be evaluated at.

+
+
Type:
+

Optional[int]

+
+
+
+ +
+
+preflight_commitment
+

Commitment level to use for preflight checks.

+
+
Type:
+

Optional[CommitmentLevel]

+
+
+
+ +
+
+skip_preflight
+

If true, skip the preflight transaction checks.

+
+
Type:
+

bool

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class RpcSimulateTransactionAccountsConfig(addresses, encoding=None)
+

Accounts configuration for simulateTransaction.

+
+
Parameters:
+
    +
  • encoding (Optional[UiAccountEncoding]) – Encoding for returned Account data

  • +
  • addresses (Sequence[Pubkey]) – An array of accounts to return.

  • +
+
+
+
+
+addresses
+
+ +
+
+static default()
+

Create a new default instance of this class.

+
+
Returns:
+

The default instance.

+
+
Return type:
+

RpcSimulateTransactionAccountsConfig

+
+
+
+ +
+
+encoding
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class RpcSimulateTransactionConfig(sig_verify=False, replace_recent_blockhash=False, commitment=None, accounts=None, min_context_slot=None, inner_instructions=False)
+

Configuration object for simulateTransaction.

+
+
Parameters:
+
    +
  • sig_verify (bool) – If True the transaction signatures will be verified +(conflicts with replace_recent_blockhash).

  • +
  • replace_recent_blockhash (bool) – If True the transaction recent blockhash +will be replaced with the most recent blockhash +(conflicts with sig_verify).

  • +
  • commitment (Optional[CommitmentLevel]) – Commitment level at which to simulate the transaction.

  • +
  • accounts (Optional[RpcSimulateTransactionAccountsConfig]) – Accounts configuration object.

  • +
  • min_context_slot (Optional[int]) – The minimum slot that the request can be evaluated at.

  • +
+
+
+
+
+accounts
+
+ +
+
+commitment
+
+ +
+
+static default()
+

Create a new default instance of this class.

+
+
Returns:
+

The default instance.

+
+
Return type:
+

RpcSimulateTransactionConfig

+
+
+
+ +
+
+encoding
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+inner_instructions
+
+ +
+
+min_context_slot
+
+ +
+
+replace_recent_blockhash
+
+ +
+
+sig_verify
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class RpcRequestAirdropConfig(recent_blockhash=None, commitment=None)
+

Configuration object for requestAirdrop.

+
+
Parameters:
+
    +
  • recent_blockhash (Optional[Hash]) – The ID of a recent ledger entry.

  • +
  • commitment (Optional[CommitmentLevel]) – Bank state to query.

  • +
+
+
+
+
+commitment
+
+ +
+
+static default()
+

Create a new default instance of this class.

+
+
Returns:
+

The default instance.

+
+
Return type:
+

RpcRequestAirdropConfig

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+recent_blockhash
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class RpcLeaderScheduleConfig(identity=None, commitment=None)
+

Configuration object for getLeaderSchedule.

+
+
Parameters:
+
    +
  • identity (Optional[Pubkey]) – Validator identity.

  • +
  • commitment (Optional[CommitmentLevel]) – Bank state to query.

  • +
+
+
+
+
+commitment
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+identity
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class RpcBlockProductionConfigRange(first_slot, last_slot=None)
+

Range object for RpcBlockProductionConfig.

+
+
Parameters:
+
    +
  • first_slot (int) – First slot in the range

  • +
  • last_slot (Optional[int]) – Last slot in the range.

  • +
+
+
+
+
+first_slot
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+last_slot
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class RpcBlockProductionConfig(identity=None, range=None, commitment=None)
+

Configuration object for getBlockProduction.

+
+
Parameters:
+
+
+
+
+
+commitment
+
+ +
+
+static default()
+

Create a new default instance of this class.

+
+
Returns:
+

The default instance.

+
+
Return type:
+

RpcBlockProductionConfig

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+identity
+
+ +
+
+range
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class RpcGetVoteAccountsConfig(vote_pubkey=None, commitment=None, keep_unstaked_delinquents=None, delinquent_slot_distance=None)
+

Configuration object for getVoteAccounts.

+
+
Parameters:
+
    +
  • vote_pubkey (Optional[Pubkey]) – Validator vote address.

  • +
  • commitment (Optional[CommitmentLevel]) – Bank state to query.

  • +
  • keep_unstaked_delinquents (Optional[bool]) – Do not filter out delinquent validators with no stake.

  • +
  • delinquent_slot_distance (Optional[int]) – Specify the number of slots behind the tip that a validator +must fall to be considered delinquent. +NOTE: For the sake of consistency between ecosystem products, it is not recommended that +this argument be specified.

  • +
+
+
+
+
+commitment
+
+ +
+
+static default()
+

Create a new default instance of this class.

+
+
Returns:
+

The default instance.

+
+
Return type:
+

RpcGetVoteAccountsConfig

+
+
+
+ +
+
+delinquent_slot_distance
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+keep_unstaked_delinquents
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+vote_pubkey
+
+ +
+ +
+
+class RpcLargestAccountsFilter
+

Filter for getLargestAccounts.

+
+
+Circulating = RpcLargestAccountsFilter.Circulating
+
+ +
+
+NonCirculating = RpcLargestAccountsFilter.NonCirculating
+
+ +
+ +
+
+class RpcSupplyConfig(exclude_non_circulating_accounts_list, commitment=None)
+

Configuration object for getSupply.

+
+
Parameters:
+
    +
  • commitment (Optional[CommitmentLevel]) – Bank state to query.

  • +
  • exclude_non_circulating_accounts_list (bool) – Exclude non circulating accounts list from response.

  • +
+
+
+
+
+commitment
+
+ +
+
+static default()
+

Create a new default instance of this class.

+
+
Returns:
+

The default instance.

+
+
Return type:
+

RpcSupplyConfig

+
+
+
+ +
+
+exclude_non_circulating_accounts_list
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class RpcEpochConfig(epoch=None, commitment=None, min_context_slot=None)
+

Configuration object containing epoch information.

+
+
Parameters:
+
    +
  • epoch (Optional[int]) – Epoch is a unit of time a given leader schedule is honored, some number of Slots.

  • +
  • commitment (Optional[CommitmentLevel]) – Bank state to query.

  • +
  • min_context_slot (Optional[int]) – The minimum slot that the request can be evaluated at.

  • +
+
+
+
+
+commitment
+
+ +
+
+static default()
+

Create a new default instance of this class.

+
+
Returns:
+

The default instance.

+
+
Return type:
+

RpcEpochConfig

+
+
+
+ +
+
+epoch
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+min_context_slot
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class RpcAccountInfoConfig(encoding=None, data_slice=None, commitment=None, min_context_slot=None)
+

Configuration object for getAccountInfo.

+
+
Parameters:
+
    +
  • encoding (Optional[UiAccountEncoding]) – Encoding for returned account data.

  • +
  • data_slice (Optiona;[UiDataSliceConfig]) – Limit the returned account data.

  • +
  • commitment (Optional[CommitmentLevel]) – Bank state to query.

  • +
  • min_context_slot (Optional[int]) – The minimum slot that the request can be evaluated at.

  • +
+
+
+
+
+commitment
+
+ +
+
+data_slice
+
+ +
+
+static default()
+

Create a new default instance of this class.

+
+
Returns:
+

The default instance.

+
+
Return type:
+

RpcEpochConfig

+
+
+
+ +
+
+encoding
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+min_context_slot
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class RpcProgramAccountsConfig(account_config, filters=None, with_context=None, sort_results=None)
+

Configuration object for getProgramAccounts.

+
+
Parameters:
+
    +
  • account_config (RpcAccountInfoConfig) – Account info config.

  • +
  • filters (Optional[Sequence[int | Memcmp]]) – Filter results using various filter objects; account must meet all filter criteria to be included in results.

  • +
  • with_context (Optional[bool]) – Wrap the result in an RpcResponse JSON object.

  • +
+
+
+
+
+account_config
+
+ +
+
+static default()
+

Create a new default instance of this class.

+
+
Returns:
+

The default instance.

+
+
Return type:
+

RpcEpochConfig

+
+
+
+ +
+
+filters
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+with_context
+
+ +
+ +
+
+class RpcTransactionLogsFilter
+

Fieldless filters for logsSubscribe.

+
+
+All = RpcTransactionLogsFilter.All
+
+ +
+
+AllWithVotes = RpcTransactionLogsFilter.AllWithVotes
+
+ +
+ +
+
+class RpcTransactionLogsFilterMentions(pubkey)
+

mentions filter for logsSubscribe.

+
+
Parameters:
+

pubkey (Pubkey) – Subscribe to all transactions that mention the provided Pubkey.

+
+
+
+
+pubkey
+
+ +
+ +
+
+class RpcTransactionLogsConfig(commitment=None)
+

Configuration object for logsSubscribe.

+
+
Parameters:
+

commitment (Optional[CommitmentLevel]) – Bank state to query.

+
+
+
+
+commitment
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class RpcTokenAccountsFilterMint(mint)
+

mint filter for getTokenAccountsBy* methods.

+
+
Parameters:
+

mint (Pubkey) – Pubkey of the specific token Mint to limit accounts to.

+
+
+
+
+mint
+
+ +
+ +
+
+class RpcTokenAccountsFilterProgramId(program_id)
+

programId filter for getTokenAccountsBy* methods.

+
+
Parameters:
+

program_id (Pubkey) – Pubkey of the Token program that owns the accounts.

+
+
+
+
+program_id
+
+ +
+ +
+
+class RpcSignatureSubscribeConfig(commitment=None, enable_received_notification=None)
+

Configuration object for signatureSubscribe.

+
+
Parameters:
+
    +
  • commitment (Optional[CommitmentLevel]) – Bank state to query.

  • +
  • enable_received_notification (Optional[bool]) – Enable received notification.

  • +
+
+
+
+
+commitment
+
+ +
+
+static default()
+

Create a new default instance of this class.

+
+
Returns:
+

The default instance.

+
+
Return type:
+

RpcSignatureSubscribeConfig

+
+
+
+ +
+
+enable_received_notification
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class RpcBlockSubscribeFilter
+

Filter for blockSubscribe.

+
+
+All = RpcBlockSubscribeFilter.All
+
+ +
+ +
+
+class RpcBlockSubscribeFilterMentions(pubkey)
+

mentions filter for blockSubscribe.

+
+
Parameters:
+

pubkey (Pubkey) – Return only transactions that mention the provided pubkey.

+
+
+
+
+pubkey
+
+ +
+ +
+
+class RpcBlockSubscribeConfig(commitment=None, encoding=None, transaction_details=None, show_rewards=None, max_supported_transaction_version=None)
+

Configuration object for blockSubscribe.

+
+
Parameters:
+
    +
  • commitment (Optional[CommitmentLevel]) – Bank state to query.

  • +
  • encoding (Optional[UiTransactionEncoding]) – Encoding used for the transaction data.

  • +
  • transaction_details (Optional[TransactionDetails]) – Level of transaction detail to return.

  • +
  • show_rewards (Optional[bool]) – Whether to populate the rewards array.

  • +
  • max_supported_transaction_version (Optional[int]) – Set the max transaction version to return in responses.

  • +
+
+
+
+
+commitment
+
+ +
+
+static default()
+

Create a new default instance of this class.

+
+
Returns:
+

The default instance.

+
+
Return type:
+

RpcBlockSubscribeConfig

+
+
+
+ +
+
+encoding
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+max_supported_transaction_version
+
+ +
+
+show_rewards
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+transaction_details
+
+ +
+ +
+
+class RpcSignaturesForAddressConfig(before=None, until=None, limit=None, commitment=None, min_context_slot=None)
+

Configuration object for getSignaturesForAddress.

+
+
Parameters:
+
    +
  • before (Optional[Signature]) – Start searching backwards from this transaction signature.

  • +
  • until (Optional[Signature]) – Search until this transaction signature.

  • +
  • limit (Optional[int]) – Maximum transaction signatures to return (between 1 and 1,000, default: 1,000).

  • +
  • commitment (Optional[CommitmentLevel]) – Bank state to query.

  • +
  • min_context_slot (Optional[int]) – The minimum slot that the request can be evaluated at.

  • +
+
+
+
+
+before
+
+ +
+
+commitment
+
+ +
+
+static default()
+

Create a new default instance of this class.

+
+
Returns:
+

The default instance.

+
+
Return type:
+

RpcSignaturesForAddressConfig

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+limit
+
+ +
+
+min_context_slot
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+until
+
+ +
+ +
+
+class RpcBlockConfig(encoding=None, transaction_details=None, rewards=None, commitment=None, max_supported_transaction_version=None)
+

Configuration object for getBlock.

+
+
Parameters:
+
    +
  • encoding (Optional[UiTransactionEncoding]) – Encoding used for the transaction data.

  • +
  • transaction_details (Optional[TransactionDetails]) – Level of transaction detail to return.

  • +
  • rewards (Optional[bool]) – Whether to populate the rewards array.

  • +
  • commitment (Optional[CommitmentLevel]) – Bank state to query.

  • +
  • max_supported_transaction_version (Optional[int]) – Set the max transaction version to return in responses.

  • +
+
+
+
+
+commitment
+
+ +
+
+static default()
+

Create a new default instance of this class.

+
+
Returns:
+

The default instance.

+
+
Return type:
+

RpcBlockConfig

+
+
+
+ +
+
+encoding
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+max_supported_transaction_version
+
+ +
+
+rewards
+
+ +
+
+static rewards_only()
+

Create a new instance for only showing rewards.

+
+ +
+
+static rewards_with_commitment(commitment=None)
+

Create a new instance for only showing rewards, with a specified commitment level.

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+transaction_details
+
+ +
+ +
+
+class RpcTransactionConfig(encoding=None, commitment=None, max_supported_transaction_version=None)
+

Configuration object for getTransaction.

+
+
Parameters:
+
    +
  • encoding (Optional[UiTransactionEncoding]) – Encoding used for the transaction data.

  • +
  • commitment (Optional[CommitmentLevel]) – Bank state to query.

  • +
  • max_supported_transaction_version (Optional[int]) – Set the max transaction version to return in responses.

  • +
+
+
+
+
+commitment
+
+ +
+
+static default()
+

Create a new default instance of this class.

+
+
Returns:
+

The default instance.

+
+
Return type:
+

RpcTransactionConfig

+
+
+
+ +
+
+encoding
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+max_supported_transaction_version
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class RpcContextConfig(commitment=None, min_context_slot=None)
+

General context configuration.

+
+
Parameters:
+
    +
  • commitment (Optional[CommitmentLevel]) – Bank state to query.

  • +
  • min_context_slot (Optional[int]) – The minimum slot that the request can be evaluated at.

  • +
+
+
+
+
+commitment
+
+ +
+
+static default()
+

Create a new default instance of this class.

+
+
Returns:
+

The default instance.

+
+
Return type:
+

RpcContextConfig

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+min_context_slot
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/rpc/errors.html b/api_reference/rpc/errors.html new file mode 100644 index 00000000..0e9bce7b --- /dev/null +++ b/api_reference/rpc/errors.html @@ -0,0 +1,1210 @@ + + + + + + + Errors — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Errors

+
+
+class RpcCustomErrorFieldless
+
+
+NoSnapshot = RpcCustomErrorFieldless.NoSnapshot
+
+ +
+
+TransactionHistoryNotAvailable = RpcCustomErrorFieldless.TransactionHistoryNotAvailable
+
+ +
+
+TransactionSignatureLenMismatch = RpcCustomErrorFieldless.TransactionSignatureLenMismatch
+
+ +
+
+TransactionSignatureVerificationFailure = RpcCustomErrorFieldless.TransactionSignatureVerificationFailure
+
+ +
+ +
+
+class BlockCleanedUp(slot, first_available_block)
+
+
+first_available_block
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+slot
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class SendTransactionPreflightFailure(message, result)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+message
+
+ +
+
+result
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class BlockNotAvailable(slot)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+slot
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class BlockCleanedUpMessage(message)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+message
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class SendTransactionPreflightFailureMessage(message, data)
+
+
+data
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+message
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class BlockNotAvailableMessage(message)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+message
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class NodeUnhealthy(num_slots_behind=None)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+num_slots_behind
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class NodeUnhealthyMessage(message, data)
+
+
+data
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+message
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class TransactionPrecompileVerificationFailure(error)
+
+
+error
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class SlotSkipped(slot)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+slot
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class LongTermStorageSlotSkipped(slot)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+slot
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class KeyExcludedFromSecondaryIndex(index_key)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+index_key
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class TransactionPrecompileVerificationFailureMessage(message)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+message
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class SlotSkippedMessage(message)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+message
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class LongTermStorageSlotSkippedMessage(message)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+message
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class KeyExcludedFromSecondaryIndexMessage(message)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+message
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class ScanError(message)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+message
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class BlockStatusNotAvailableYet(slot)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+slot
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class ScanErrorMessage(message)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+message
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class BlockStatusNotAvailableYetMessage(message)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+message
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class MinContextSlotNotReached(context_slot)
+
+
+context_slot
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class MinContextSlotNotReachedMessage(message, data)
+
+
+data
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+message
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class UnsupportedTransactionVersion(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class UnsupportedTransactionVersionMessage(message)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+message
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class ParseErrorMessage(message)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+message
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class InvalidRequestMessage(message)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+message
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class MethodNotFoundMessage(message)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+message
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class InvalidParamsMessage(message)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+message
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class InternalErrorMessage(message)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+message
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/rpc/filter.html b/api_reference/rpc/filter.html new file mode 100644 index 00000000..926c18b7 --- /dev/null +++ b/api_reference/rpc/filter.html @@ -0,0 +1,199 @@ + + + + + + + Filter — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Filter

+
+
+class Memcmp(offset, bytes_)
+

Compares a provided series of bytes with program account data at a particular offset.

+
+
Parameters:
+
    +
  • offset (int) – Data offset to begin match.

  • +
  • bytes (str | Sequnce[int]) – Bytes, encoded with specified encoding, or default Binary

  • +
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+offset
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class RpcFilterTypeFieldless
+
+
+TokenAccountState = RpcFilterTypeFieldless.TokenAccountState
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/rpc/index.html b/api_reference/rpc/index.html new file mode 100644 index 00000000..d413e56e --- /dev/null +++ b/api_reference/rpc/index.html @@ -0,0 +1,418 @@ + + + + + + + RPC — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

RPC

+

Modules:

+
+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/rpc/requests.html b/api_reference/rpc/requests.html new file mode 100644 index 00000000..e86d2eab --- /dev/null +++ b/api_reference/rpc/requests.html @@ -0,0 +1,5555 @@ + + + + + + + Requests — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Requests

+
+
+class GetAccountInfo(pubkey, config=None, id=None)
+

A getAccountInfo request.

+
+
Parameters:
+
    +
  • pubkey (Pubkey) – Pubkey of account to query.

  • +
  • config (Optional[RpcAccountInfoConfig]) – Extra configuration.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetAccountInfo
+>>> from solders.rpc.config import RpcAccountInfoConfig
+>>> from solders.pubkey import Pubkey
+>>> from solders.account_decoder import UiAccountEncoding
+>>> config = RpcAccountInfoConfig(UiAccountEncoding.Base64)
+>>> GetAccountInfo(Pubkey.default(), config).to_json()
+'{"method":"getAccountInfo","jsonrpc":"2.0","id":0,"params":["11111111111111111111111111111111",{"encoding":"base64","dataSlice":null,"minContextSlot":null}]}'
+
+
+
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcAccountInfoConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+pubkey
+

Pubkey of account to query.

+
+
Type:
+

Pubkey

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetBalance(pubkey, config=None, id=None)
+

A getBalance request.

+
+
Parameters:
+
    +
  • pubkey (Pubkey) – Pubkey of account to query.

  • +
  • config (Optional[RpcContextConfig]) – Extra configuration.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetBalance
+>>> from solders.rpc.config import RpcContextConfig
+>>> from solders.pubkey import Pubkey
+>>> config = RpcContextConfig(min_context_slot=1)
+>>> GetBalance(Pubkey.default(), config).to_json()
+'{"method":"getBalance","jsonrpc":"2.0","id":0,"params":["11111111111111111111111111111111",{"minContextSlot":1}]}'
+
+
+
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcContextConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+pubkey
+

Pubkey of account to query.

+
+
Type:
+

Pubkey

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetBlock(slot, config=None, id=None)
+

A getBlock request.

+
+
Parameters:
+
    +
  • slot (int) – The slot to query.

  • +
  • config (Optional[RpcBlockConfig]) – Extra configuration.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetBlock
+>>> from solders.rpc.config import RpcBlockConfig
+>>> from solders.transaction_status import TransactionDetails, UiTransactionEncoding
+>>> config = RpcBlockConfig(encoding=UiTransactionEncoding.Base58, transaction_details=TransactionDetails.None_)
+>>> GetBlock(123, config).to_json()
+'{"method":"getBlock","jsonrpc":"2.0","id":0,"params":[123,{"encoding":"base58","transactionDetails":"none","rewards":null,"maxSupportedTransactionVersion":null}]}'
+
+
+
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcBlockConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+slot
+

The slot to query.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetBlockHeight(config=None, id=None)
+

A getBlockHeight request.

+
+
Parameters:
+
    +
  • config (Optional[RpcContextConfig]) – Extra configuration.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetBlockHeight
+>>> from solders.rpc.config import RpcContextConfig
+>>> config = RpcContextConfig(min_context_slot=123)
+>>> GetBlockHeight(config).to_json()
+'{"method":"getBlockHeight","jsonrpc":"2.0","id":0,"params":[{"minContextSlot":123}]}'
+
+
+
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcContextConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetBlockProduction(config=None, id=None)
+

A getBlockProduction request.

+
+
Parameters:
+
+
+
+

Example

+
>>> from solders.rpc.requests import GetBlockProduction
+>>> from solders.rpc.config import RpcBlockProductionConfig, RpcBlockProductionConfigRange
+>>> from solders.pubkey import Pubkey
+>>> slot_range = RpcBlockProductionConfigRange(first_slot=10, last_slot=15)
+>>> config = RpcBlockProductionConfig(identity=Pubkey.default(), range=slot_range)
+>>> GetBlockProduction(config).to_json()
+'{"method":"getBlockProduction","jsonrpc":"2.0","id":0,"params":[{"identity":"11111111111111111111111111111111","range":{"firstSlot":10,"lastSlot":15}}]}'
+
+
+
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcBlockProductionConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetBlockCommitment(slot, id=None)
+

A getBlockCommitment request.

+
+
Parameters:
+
    +
  • slot (int) – The slot to query.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetBlockCommitment
+>>> GetBlockCommitment(123).to_json()
+'{"method":"getBlockCommitment","jsonrpc":"2.0","id":0,"params":[123]}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+slot
+

The slot to query.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetBlocks(start, end=None, commitment=None, id=None)
+

A getBlocks request.

+
+
Parameters:
+
    +
  • start (int) – The start slot.

  • +
  • end (Optional[int]) – The end slot.

  • +
  • commitment (Optional[CommitmentLevel]) – Bank state to query.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetBlocks
+>>> from solders.commitment_config import CommitmentLevel
+>>> GetBlocks(123, commitment=CommitmentLevel.Processed).to_json()
+'{"method":"getBlocks","jsonrpc":"2.0","id":0,"params":[123,null,{"commitment":"processed"}]}'
+
+
+
+
+commitment
+

Bank state to query.

+
+
Type:
+

Optional[CommitmentLevel]

+
+
+
+ +
+
+end
+

The end slot.

+
+
Type:
+

Optional[int]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+start
+

The start slot.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetBlocksWithLimit(start, limit=None, commitment=None, id=None)
+

A getBlocksWithLimit request.

+
+
Parameters:
+
    +
  • start (int) – The start slot.

  • +
  • limit (Optional[int]) – Maximum number of blocks.

  • +
  • commitment (Optional[CommitmentLevel]) – Bank state to query.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetBlocksWithLimit
+>>> from solders.commitment_config import CommitmentLevel
+>>> GetBlocksWithLimit(123, 5, commitment=CommitmentLevel.Processed).to_json()
+'{"method":"getBlocksWithLimit","jsonrpc":"2.0","id":0,"params":[123,5,{"commitment":"processed"}]}'
+
+
+
+
+commitment
+

Bank state to query.

+
+
Type:
+

Optional[CommitmentLevel]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+limit
+

Maximum number of blocks.

+
+
Type:
+

Optional[int]

+
+
+
+ +
+
+start
+

The start slot.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetBlockTime(slot, id=None)
+

A getBlockTime request.

+
+
Parameters:
+
    +
  • slot (int) – The slot to query.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetBlockTime
+>>> GetBlockTime(123).to_json()
+'{"method":"getBlockTime","jsonrpc":"2.0","id":0,"params":[123]}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+slot
+

The slot to query.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetClusterNodes(id=None)
+

getClusterNodes request.

+
+
Parameters:
+

id (Optional[int]) – Request ID.

+
+
+

Example

+
>>> from solders.rpc.requests import GetClusterNodes
+>>> GetClusterNodes(123).to_json()
+'{"method":"getClusterNodes","jsonrpc":"2.0","id":123}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetEpochInfo(config=None, id=None)
+

A getEpochInfo request.

+
+
Parameters:
+
    +
  • config (Optional[RpcContextConfig]) – Extra configuration.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetEpochInfo
+>>> from solders.rpc.config import RpcContextConfig
+>>> from solders.commitment_config import CommitmentLevel
+>>> config = RpcContextConfig(commitment=CommitmentLevel.Processed)
+>>> GetEpochInfo(config).to_json()
+'{"method":"getEpochInfo","jsonrpc":"2.0","id":0,"params":[{"commitment":"processed","minContextSlot":null}]}'
+
+
+
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcContextConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetEpochSchedule(id=None)
+

getEpochSchedule request.

+
+
Parameters:
+

id (Optional[int]) – Request ID.

+
+
+

Example

+
>>> from solders.rpc.requests import GetEpochSchedule
+>>> GetEpochSchedule(123).to_json()
+'{"method":"getEpochSchedule","jsonrpc":"2.0","id":123}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetFeeForMessage(message, commitment=None, id=None)
+

A getFeeForMessage request.

+
+
Parameters:
+
    +
  • message (VersionedMessage) – The message for which to calculate the fee.

  • +
  • commitment (Optional[CommitmentLevel]) – Bank state to query.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetFeeForMessage
+>>> from solders.commitment_config import CommitmentLevel
+>>> from solders.message import MessageV0
+>>> GetFeeForMessage(MessageV0.default(), commitment=CommitmentLevel.Processed).to_json()
+'{"method":"getFeeForMessage","jsonrpc":"2.0","id":0,"params":["gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",{"commitment":"processed"}]}'
+
+
+
+
+commitment
+

Bank state to query.

+
+
Type:
+

Optional[CommitmentLevel]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+message
+

The message for which to calculate the fee.

+
+
Type:
+

VersionedMessage

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetFirstAvailableBlock(id=None)
+

getFirstAvailableBlock request.

+
+
Parameters:
+

id (Optional[int]) – Request ID.

+
+
+

Example

+
>>> from solders.rpc.requests import GetFirstAvailableBlock
+>>> GetFirstAvailableBlock(123).to_json()
+'{"method":"getFirstAvailableBlock","jsonrpc":"2.0","id":123}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetGenesisHash(id=None)
+

getGenesisHash request.

+
+
Parameters:
+

id (Optional[int]) – Request ID.

+
+
+

Example

+
>>> from solders.rpc.requests import GetGenesisHash
+>>> GetGenesisHash(123).to_json()
+'{"method":"getGenesisHash","jsonrpc":"2.0","id":123}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetHealth(id=None)
+

getHealth request.

+
+
Parameters:
+

id (Optional[int]) – Request ID.

+
+
+

Example

+
>>> from solders.rpc.requests import GetHealth
+>>> GetHealth(123).to_json()
+'{"method":"getHealth","jsonrpc":"2.0","id":123}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetHighestSnapshotSlot(id=None)
+

getHighestSnapshotSlot request.

+
+
Parameters:
+

id (Optional[int]) – Request ID.

+
+
+

Example

+
>>> from solders.rpc.requests import GetHighestSnapshotSlot
+>>> GetHighestSnapshotSlot(123).to_json()
+'{"method":"getHighestSnapshotSlot","jsonrpc":"2.0","id":123}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetIdentity(id=None)
+

getIdentity request.

+
+
Parameters:
+

id (Optional[int]) – Request ID.

+
+
+

Example

+
>>> from solders.rpc.requests import GetIdentity
+>>> GetIdentity(123).to_json()
+'{"method":"getIdentity","jsonrpc":"2.0","id":123}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetInflationGovernor(commitment=None, id=None)
+

A getInflationGovernor request.

+
+
Parameters:
+
    +
  • config (Optional[CommitmentLevel]) – Bank state to query.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetInflationGovernor
+>>> from solders.commitment_config import CommitmentLevel
+>>> GetInflationGovernor(CommitmentLevel.Finalized).to_json()
+'{"method":"getInflationGovernor","jsonrpc":"2.0","id":0,"params":[{"commitment":"finalized"}]}'
+
+
+
+
+commitment
+

Bank state to query.

+
+
Type:
+

Optional[CommitmentLevel]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetInflationRate(id=None)
+

getInflationRate request.

+
+
Parameters:
+

id (Optional[int]) – Request ID.

+
+
+

Example

+
>>> from solders.rpc.requests import GetInflationRate
+>>> GetInflationRate(123).to_json()
+'{"method":"getInflationRate","jsonrpc":"2.0","id":123}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetInflationReward(addresses, config=None, id=None)
+

A getInflationReward request.

+
+
Parameters:
+
    +
  • addresses (Optional[Sequence[Pubkey]]) – Addresses to query.

  • +
  • config (Optional[RpcEpochConfig]) – Extra configuration.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetInflationReward
+>>> from solders.rpc.config import RpcEpochConfig
+>>> from solders.pubkey import Pubkey
+>>> config = RpcEpochConfig(epoch=1234)
+>>> addresses = [Pubkey.default(), Pubkey.default()]
+>>> GetInflationReward(addresses, config).to_json()
+'{"method":"getInflationReward","jsonrpc":"2.0","id":0,"params":[["11111111111111111111111111111111","11111111111111111111111111111111"],{"epoch":1234,"minContextSlot":null}]}'
+
+
+
+
+addresses
+

Addresses to query.

+
+
Type:
+

Optional[Sequence[Pubkey]]

+
+
+
+ +
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcEpochConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetLargestAccounts(commitment=None, filter_=None, id=None)
+

A getLargestAccounts request.

+
+
Parameters:
+
+
+
+

Example

+
>>> from solders.rpc.requests import GetLargestAccounts
+>>> from solders.rpc.config import RpcLargestAccountsFilter
+>>> from solders.commitment_config import CommitmentLevel
+>>> commitment = CommitmentLevel.Processed
+>>> filter_ = RpcLargestAccountsFilter.Circulating
+>>> GetLargestAccounts(commitment=commitment, filter_=filter_).to_json()
+'{"method":"getLargestAccounts","jsonrpc":"2.0","id":0,"params":[{"commitment":"processed"},"circulating"]}'
+
+
+
+
+commitment
+

Bank state to query.

+
+
Type:
+

Optional[CommitmentLevel]

+
+
+
+ +
+
+filter_
+

Filter results by account type.

+
+
Type:
+

Optional[RpcLargestAccountsFilter]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetLatestBlockhash(config=None, id=None)
+

A getLatestBlockhash request.

+
+
Parameters:
+
    +
  • config (Optional[RpcContextConfig]) – Extra configuration.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetLatestBlockhash
+>>> from solders.rpc.config import RpcContextConfig
+>>> from solders.commitment_config import CommitmentLevel
+>>> config = RpcContextConfig(commitment=CommitmentLevel.Processed)
+>>> GetLatestBlockhash(config).to_json()
+'{"method":"getLatestBlockhash","jsonrpc":"2.0","id":0,"params":[{"commitment":"processed","minContextSlot":null}]}'
+
+
+
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcContextConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetLeaderSchedule(slot=None, config=None, id=None)
+

A GetLeaderSchedule request.

+
+
Parameters:
+
    +
  • slot (Optional[int]) – The slot to query.

  • +
  • config (Optional[RpcLeaderScheduleConfig]) – Extra configuration.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetLeaderSchedule
+>>> from solders.rpc.config import RpcLeaderScheduleConfig
+>>> from solders.pubkey import Pubkey
+>>> config = RpcLeaderScheduleConfig(identity=Pubkey.default())
+>>> GetLeaderSchedule(123, config).to_json()
+'{"method":"getLeaderSchedule","jsonrpc":"2.0","id":0,"params":[123,{"identity":"11111111111111111111111111111111"}]}'
+
+
+
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcLeaderScheduleConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+slot
+

The slot to query.

+
+
Type:
+

Optional[int]

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetMaxRetransmitSlot(id=None)
+

getMaxRetransmitSlot request.

+
+
Parameters:
+

id (Optional[int]) – Request ID.

+
+
+

Example

+
>>> from solders.rpc.requests import GetMaxRetransmitSlot
+>>> GetMaxRetransmitSlot(123).to_json()
+'{"method":"getMaxRetransmitSlot","jsonrpc":"2.0","id":123}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetMaxShredInsertSlot(id=None)
+

getMaxShredInsertSlot request.

+
+
Parameters:
+

id (Optional[int]) – Request ID.

+
+
+

Example

+
>>> from solders.rpc.requests import GetMaxShredInsertSlot
+>>> GetMaxShredInsertSlot(123).to_json()
+'{"method":"getMaxShredInsertSlot","jsonrpc":"2.0","id":123}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetMinimumBalanceForRentExemption(length, commitment=None, id=None)
+

A getMinimumBalanceForRentExemption request.

+
+
Parameters:
+
    +
  • length (int) – Acccount data length

  • +
  • commitment (Optional[CommitmentLevel]) – Bank state to query.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetMinimumBalanceForRentExemption
+>>> GetMinimumBalanceForRentExemption(50).to_json()
+'{"method":"getMinimumBalanceForRentExemption","jsonrpc":"2.0","id":0,"params":[50]}'
+
+
+
+
+commitment
+

Bank state to query.

+
+
Type:
+

Optional[CommitmentLevel]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+length
+

Acccount data length

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetMultipleAccounts(accounts, config=None, id=None)
+

A getMultipleAccounts request.

+
+
Parameters:
+
    +
  • accounts (Sequence[Pubkey]) – Accounts to query.

  • +
  • config (Optional[RpcAccountInfoConfig]) – Extra configuration.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetMultipleAccounts
+>>> from solders.rpc.config import RpcAccountInfoConfig
+>>> from solders.commitment_config import CommitmentLevel
+>>> from solders.pubkey import Pubkey
+>>> from solders.account_decoder import UiAccountEncoding, UiDataSliceConfig
+>>> encoding = UiAccountEncoding.Base64Zstd
+>>> data_slice = UiDataSliceConfig(10, 8)
+>>> config = RpcAccountInfoConfig(encoding=encoding, data_slice=data_slice)
+>>> accounts = [Pubkey.default(), Pubkey.default()]
+>>> GetMultipleAccounts(accounts, config).to_json()
+'{"method":"getMultipleAccounts","jsonrpc":"2.0","id":0,"params":[["11111111111111111111111111111111","11111111111111111111111111111111"],{"encoding":"base64+zstd","dataSlice":{"offset":10,"length":8},"minContextSlot":null}]}'
+
+
+
+
+accounts
+

Accounts to query.

+
+
Type:
+

Sequence[Pubkey]

+
+
+
+ +
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcAccountInfoConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetProgramAccounts(program, config=None, id=None)
+

A getProgramAccounts request.

+
+
Parameters:
+
    +
  • program (Pubkey) – The program that owns the accounts

  • +
  • config (Optional[RpcProgramAccountsConfig]) – Extra configuration.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetProgramAccounts
+>>> from solders.rpc.config import RpcProgramAccountsConfig, RpcAccountInfoConfig
+>>> from solders.rpc.filter import Memcmp
+>>> from solders.pubkey import Pubkey
+>>> acc_info_config = RpcAccountInfoConfig.default()
+>>> filters = [10, Memcmp(offset=10, bytes_=b"123")]
+>>> config = RpcProgramAccountsConfig(acc_info_config, filters)
+>>> GetProgramAccounts(Pubkey.default(), config).to_json()
+'{"method":"getProgramAccounts","jsonrpc":"2.0","id":0,"params":["11111111111111111111111111111111",{"filters":[{"dataSize":10},{"memcmp":{"offset":10,"encoding":"bytes","bytes":[49,50,51]}}],"encoding":null,"dataSlice":null,"minContextSlot":null,"withContext":null,"sortResults":null}]}'
+
+
+
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcProgramAccountsConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+program
+

The program that owns the accounts

+
+
Type:
+

Pubkey

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetRecentPerformanceSamples(limit=None, id=None)
+

A getRecentPerformanceSamples request.

+
+
Parameters:
+
    +
  • limit (int) – Number of samples to return (maximum 720).

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetRecentPerformanceSamples
+>>> GetRecentPerformanceSamples(5).to_json()
+'{"method":"getRecentPerformanceSamples","jsonrpc":"2.0","id":0,"params":[5]}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+limit
+

Number of samples to return.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetSignaturesForAddress(address, config=None, id=None)
+

A getSignaturesForAddress request.

+
+
Parameters:
+
    +
  • address (Pubkey) – The address by which to filter transactions.

  • +
  • config (Optional[RpcSignaturesForAddressConfig]) – Extra configuration.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetSignaturesForAddress
+>>> from solders.rpc.config import RpcSignaturesForAddressConfig
+>>> config = RpcSignaturesForAddressConfig(limit=10)
+>>> GetSignaturesForAddress(Pubkey.default(), config).to_json()
+'{"method":"getSignaturesForAddress","jsonrpc":"2.0","id":0,"params":["11111111111111111111111111111111",{"before":null,"until":null,"limit":10,"minContextSlot":null}]}'
+
+
+
+
+address
+

The address by which to filter transactions.

+
+
Type:
+

Pubkey

+
+
+
+ +
+
+config
+

Extra configuration

+
+
Type:
+

Optional[RpcSignaturesForAddressConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetSignatureStatuses(signatures, config=None, id=None)
+

A getSignatureStatuses request.

+
+
Parameters:
+
    +
  • signatures (Sequence[Signature]) – The signatures to query.

  • +
  • config (Optional[RpcSignatureStatusConfig]) – Extra configuration.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetSignatureStatuses
+>>> from solders.signature import Signature
+>>> from solders.rpc.config import RpcSignatureStatusConfig
+>>> config = RpcSignatureStatusConfig(search_transaction_history=True)
+>>> GetSignatureStatuses([Signature.default()], config).to_json()
+'{"method":"getSignatureStatuses","jsonrpc":"2.0","id":0,"params":[["1111111111111111111111111111111111111111111111111111111111111111"],{"searchTransactionHistory":true}]}'
+
+
+
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcSignatureStatusConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+signatures
+

The signatures to query.

+
+
Type:
+

Sequence[Signature]

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetSlot(config=None, id=None)
+

A getSlot request.

+
+
Parameters:
+
    +
  • config (Optional[RpcContextConfig]) – Extra configuration.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetSlot
+>>> from solders.rpc.config import RpcContextConfig
+>>> config = RpcContextConfig(min_context_slot=123)
+>>> GetSlot(config).to_json()
+'{"method":"getSlot","jsonrpc":"2.0","id":0,"params":[{"minContextSlot":123}]}'
+
+
+
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcContextConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetSlotLeader(config=None, id=None)
+

A getSlotLeader request.

+
+
Parameters:
+
    +
  • config (Optional[RpcContextConfig]) – Extra configuration.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetSlotLeader
+>>> from solders.rpc.config import RpcContextConfig
+>>> config = RpcContextConfig(min_context_slot=123)
+>>> GetSlotLeader(config).to_json()
+'{"method":"getSlotLeader","jsonrpc":"2.0","id":0,"params":[{"minContextSlot":123}]}'
+
+
+
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcContextConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetSlotLeaders(start, limit, id=None)
+

A getSlotLeaders request.

+
+
Parameters:
+
    +
  • start (int) – The start slot.

  • +
  • limit (int) – The number of leaders to return.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetSlotLeaders
+>>> GetSlotLeaders(100, 10).to_json()
+'{"method":"getSlotLeaders","jsonrpc":"2.0","id":0,"params":[100,10]}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+limit
+

The number of leaders to return.

+
+
Type:
+

int

+
+
+
+ +
+
+start
+

The start slot.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetStakeActivation(account, config=None, id=None)
+

A getStakeActivation request.

+
+
Parameters:
+
    +
  • account (Pubkey) – The stake account to query.

  • +
  • config (Optional[RpcEpochConfig]) – Extra configuration.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetStakeActivation
+>>> from solders.rpc.config import RpcEpochConfig
+>>> from solders.pubkey import Pubkey
+>>> config = RpcEpochConfig(epoch=1234)
+>>> GetStakeActivation(Pubkey.default(), config).to_json()
+'{"method":"getStakeActivation","jsonrpc":"2.0","id":0,"params":["11111111111111111111111111111111",{"epoch":1234,"minContextSlot":null}]}'
+
+
+
+
+account
+

The stake account to query.

+
+
Type:
+

Pubkey

+
+
+
+ +
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcEpochConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetSupply(config=None, id=None)
+

A getSupply request.

+
+
Parameters:
+
    +
  • config (Optional[RpcSupplyConfig]) – Extra configuration.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetSupply
+>>> from solders.rpc.config import RpcSupplyConfig
+>>> config = RpcSupplyConfig(exclude_non_circulating_accounts_list=True)
+>>> GetSupply(config).to_json()
+'{"method":"getSupply","jsonrpc":"2.0","id":0,"params":[{"excludeNonCirculatingAccountsList":true}]}'
+
+
+
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcSupplyConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetTokenAccountBalance(account, commitment=None, id=None)
+

A getTokenAccountBalance request.

+
+
Parameters:
+
    +
  • account (Pubkey) – The token account to query.

  • +
  • commitment (Optional[CommitmentLevel]) – Extra configuration.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetTokenAccountBalance
+>>> from solders.commitment_config import CommitmentLevel
+>>> from solders.pubkey import Pubkey
+>>> GetTokenAccountBalance(Pubkey.default(), CommitmentLevel.Processed).to_json()
+'{"method":"getTokenAccountBalance","jsonrpc":"2.0","id":0,"params":["11111111111111111111111111111111",{"commitment":"processed"}]}'
+
+
+
+
+account
+

The token account to query.

+
+
Type:
+

Pubkey

+
+
+
+ +
+
+commitment
+

Bank state to query.

+
+
Type:
+

Optional[CommitmentLevel]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetTokenAccountsByDelegate(account, filter_, config=None, id=None)
+

A getTokenAccountsByDelegate request.

+
+
Parameters:
+
+
+
+

Example

+
>>> from solders.rpc.requests import GetTokenAccountsByDelegate
+>>> from solders.rpc.config import RpcTokenAccountsFilterProgramId, RpcAccountInfoConfig
+>>> from solders.pubkey import Pubkey
+>>> program_filter = RpcTokenAccountsFilterProgramId(Pubkey.from_string("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"))
+>>> config = RpcAccountInfoConfig(min_context_slot=1234)
+>>> req = GetTokenAccountsByDelegate(Pubkey.default(), program_filter, config)
+>>> req.to_json()
+'{"method":"getTokenAccountsByDelegate","jsonrpc":"2.0","id":0,"params":["11111111111111111111111111111111",{"programId":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"encoding":null,"dataSlice":null,"minContextSlot":1234}]}'
+>>> req.filter_
+RpcTokenAccountsFilterProgramId(
+    Pubkey(
+        TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA,
+    ),
+)
+
+
+
+
+account
+

The account delegate to query.

+
+
Type:
+

Pubkey

+
+
+
+ +
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcAccountInfoConfig]

+
+
+
+ +
+
+filter_
+

Filter by either token mint or token program.

+
+
Type:
+

RpcTokenAccountsFilterWrapper

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetTokenAccountsByOwner(account, filter_, config=None, id=None)
+

A getTokenAccountsByOwner request.

+
+
Parameters:
+
+
+
+

Example

+
>>> from solders.rpc.requests import GetTokenAccountsByOwner
+>>> from solders.rpc.config import RpcTokenAccountsFilterMint, RpcAccountInfoConfig
+>>> from solders.pubkey import Pubkey
+>>> mint_filter = RpcTokenAccountsFilterMint(Pubkey.default())
+>>> config = RpcAccountInfoConfig(min_context_slot=1234)
+>>> req = GetTokenAccountsByOwner(Pubkey.default(), mint_filter, config)
+>>> req.to_json()
+'{"method":"getTokenAccountsByOwner","jsonrpc":"2.0","id":0,"params":["11111111111111111111111111111111",{"mint":"11111111111111111111111111111111"},{"encoding":null,"dataSlice":null,"minContextSlot":1234}]}'
+>>> req.filter_
+RpcTokenAccountsFilterMint(
+    Pubkey(
+        11111111111111111111111111111111,
+    ),
+)
+
+
+
+
+account
+

The account owner to query.

+
+
Type:
+

Pubkey

+
+
+
+ +
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcAccountInfoConfig]

+
+
+
+ +
+
+filter_
+

Filter by either token mint or token program.

+
+
Type:
+

RpcTokenAccountsFilterWrapper

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetTokenLargestAccounts(mint, commitment=None, id=None)
+

A getTokenLargestAccounts request.

+
+
Parameters:
+
    +
  • mint (Pubkey) – The token mint to query.

  • +
  • commitment (Optional[CommitmentLevel]) – Bank state to query.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetTokenLargestAccounts
+>>> from solders.pubkey import Pubkey
+>>> GetTokenLargestAccounts(Pubkey.default()).to_json()
+'{"method":"getTokenLargestAccounts","jsonrpc":"2.0","id":0,"params":["11111111111111111111111111111111"]}'
+
+
+
+
+commitment
+

Bank state to query.

+
+
Type:
+

Optional[CommitmentLevel]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+mint
+

The token mint to query.

+
+
Type:
+

Pubkey

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetTokenSupply(mint, commitment=None, id=None)
+

A getTokenSupply request.

+
+
Parameters:
+
    +
  • mint (Pubkey) – The token mint to query.

  • +
  • commitment (Optional[CommitmentLevel]) – Bank state to query.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetTokenSupply
+>>> from solders.pubkey import Pubkey
+>>> GetTokenSupply(Pubkey.default()).to_json()
+'{"method":"getTokenSupply","jsonrpc":"2.0","id":0,"params":["11111111111111111111111111111111"]}'
+
+
+
+
+commitment
+

Bank state to query.

+
+
Type:
+

Optional[CommitmentLevel]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+mint
+

The token mint to query.

+
+
Type:
+

Pubkey

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetTransaction(signature, config=None, id=None)
+

A getTransaction request.

+
+
Parameters:
+
    +
  • signature (Signature) – The transaction signature to query.

  • +
  • config (Optional[RpcTransactionConfig]) – Extra configuration.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetTransaction
+>>> from solders.rpc.config import RpcTransactionConfig
+>>> from solders.signature import Signature
+>>> config = RpcTransactionConfig(max_supported_transaction_version=1)
+>>> GetTransaction(Signature.default(), config).to_json()
+'{"method":"getTransaction","jsonrpc":"2.0","id":0,"params":["1111111111111111111111111111111111111111111111111111111111111111",{"encoding":null,"maxSupportedTransactionVersion":1}]}'
+
+
+
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcTransactionConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+signature
+

The signature to query.

+
+
Type:
+

Pubkey

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetTransactionCount(config=None, id=None)
+

A getTransactionCount request.

+
+
Parameters:
+
    +
  • config (Optional[RpcContextConfig]) – Extra configuration.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import GetTransactionCount
+>>> from solders.rpc.config import RpcContextConfig
+>>> config = RpcContextConfig(min_context_slot=1234)
+>>> GetTransactionCount(config).to_json()
+'{"method":"getTransactionCount","jsonrpc":"2.0","id":0,"params":[{"minContextSlot":1234}]}'
+
+
+
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcContextConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetVersion(id=None)
+

getVersion request.

+
+
Parameters:
+

id (Optional[int]) – Request ID.

+
+
+

Example

+
>>> from solders.rpc.requests import GetVersion
+>>> GetVersion(123).to_json()
+'{"method":"getVersion","jsonrpc":"2.0","id":123}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetVoteAccounts(config=None, id=None)
+

A getVoteAccounts request.

+
+
Parameters:
+
+
+
+

Example

+
>>> from solders.rpc.requests import GetVoteAccounts
+>>> from solders.rpc.config import RpcGetVoteAccountsConfig
+>>> config = RpcGetVoteAccountsConfig(keep_unstaked_delinquents=False)
+>>> GetVoteAccounts(config).to_json()
+'{"method":"getVoteAccounts","jsonrpc":"2.0","id":0,"params":[{"votePubkey":null,"keepUnstakedDelinquents":false,"delinquentSlotDistance":null}]}'
+
+
+
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcGetVoteAccountsConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class IsBlockhashValid(blockhash, config=None, id=None)
+

An isBlockhashValid request.

+
+
Parameters:
+
    +
  • blockhash (Hash) – The blockhash to check.

  • +
  • config (Optional[RpcContextConfig]) – Extra configuration.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import IsBlockhashValid
+>>> from solders.hash import Hash
+>>> IsBlockhashValid(Hash.default()).to_json()
+'{"method":"isBlockhashValid","jsonrpc":"2.0","id":0,"params":["11111111111111111111111111111111"]}'
+
+
+
+
+blockhash
+

The blockhash to check.

+
+
Type:
+

Hash

+
+
+
+ +
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcContextConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class MinimumLedgerSlot(id=None)
+

minimumLedgerSlot request.

+
+
Parameters:
+

id (Optional[int]) – Request ID.

+
+
+

Example

+
>>> from solders.rpc.requests import MinimumLedgerSlot
+>>> MinimumLedgerSlot(123).to_json()
+'{"method":"minimumLedgerSlot","jsonrpc":"2.0","id":123}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class RequestAirdrop(pubkey, lamports, config=None, id=None)
+

A requestAirdrop request.

+
+
Parameters:
+
    +
  • pubkey (Pubkey) – Pubkey of account to receive lamports.

  • +
  • lamports (int) – How many lamports to airdrop.

  • +
  • config (Optional[RpcRequestAirdropConfig]) – Extra configuration.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import RequestAirdrop
+>>> from solders.rpc.config import RpcRequestAirdropConfig
+>>> from solders.pubkey import Pubkey
+>>> from solders.commitment_config import CommitmentLevel
+>>> config = RpcRequestAirdropConfig(commitment=CommitmentLevel.Confirmed)
+>>> RequestAirdrop(Pubkey.default(), 1000, config).to_json()
+'{"method":"requestAirdrop","jsonrpc":"2.0","id":0,"params":["11111111111111111111111111111111",1000,{"recentBlockhash":null,"commitment":"confirmed"}]}'
+
+
+
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcRequestAirdropConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+lamports
+

How many lamports to airdrop.

+
+
Type:
+

int

+
+
+
+ +
+
+pubkey
+

Pubkey of account to receive lamports.

+
+
Type:
+

Pubkey

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class SendLegacyTransaction(tx, config=None, id=None)
+

A sendTransaction request.

+
+
Parameters:
+
+
+
+

Example

+
>>> from typing import List
+>>> from solders.rpc.requests import SendLegacyTransaction
+>>> from solders.rpc.config import RpcSendTransactionConfig
+>>> from solders.transaction import Transaction
+>>> from solders.message import Message
+>>> from solders.keypair import Keypair
+>>> from solders.instruction import Instruction, AccountMeta
+>>> from solders.hash import Hash
+>>> from solders.pubkey import Pubkey
+>>> from solders.commitment_config import CommitmentLevel
+>>> program_id = Pubkey.default()
+>>> arbitrary_instruction_data = b"abc"
+>>> accounts: List[AccountMeta] = []
+>>> instruction = Instruction(program_id, arbitrary_instruction_data, accounts)
+>>> seed = bytes([1] * 32)
+>>> payer = Keypair.from_seed(seed)
+>>> message = Message([instruction], payer.pubkey())
+>>> blockhash = Hash.default()  # replace with a real blockhash
+>>> tx = Transaction([payer], message, blockhash)
+>>> commitment = CommitmentLevel.Confirmed
+>>> config = RpcSendTransactionConfig(preflight_commitment=commitment)
+>>> SendLegacyTransaction(tx, config).to_json()
+'{"method":"sendTransaction","jsonrpc":"2.0","id":0,"params":["AaVkKDb3UlpidO/ucBnOcmS+1dY8ZAC4vHxTxiccV8zPBlupuozppRjwrILZJaoKggAcVSD1XlAKstDVEPFOVgwBAAECiojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAA2FiYw==",{"skipPreflight":false,"preflightCommitment":"confirmed","encoding":"base64","maxRetries":null,"minContextSlot":null}]}'
+
+
+
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcSendTransactionConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+tx
+

The signed transaction to send.

+
+
Type:
+

Transaction

+
+
+
+ +
+ +
+
+class SendRawTransaction(tx, config=None, id=None)
+

A raw sendTransaction request.

+
+
Parameters:
+
    +
  • tx (bytes) – The signed, serialized transaction to send.

  • +
  • config (Optional[RpcSendTransactionConfig]) – Extra configuration.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from typing import List
+>>> from solders.rpc.requests import SendRawTransaction
+>>> from solders.rpc.config import RpcSendTransactionConfig
+>>> from solders.transaction import Transaction
+>>> from solders.message import Message
+>>> from solders.keypair import Keypair
+>>> from solders.instruction import Instruction, AccountMeta
+>>> from solders.hash import Hash
+>>> from solders.pubkey import Pubkey
+>>> from solders.commitment_config import CommitmentLevel
+>>> program_id = Pubkey.default()
+>>> arbitrary_instruction_data = b"abc"
+>>> accounts: List[AccountMeta] = []
+>>> instruction = Instruction(program_id, arbitrary_instruction_data, accounts)
+>>> seed = bytes([1] * 32)
+>>> payer = Keypair.from_seed(seed)
+>>> message = Message([instruction], payer.pubkey())
+>>> blockhash = Hash.default()  # replace with a real blockhash
+>>> tx = Transaction([payer], message, blockhash)
+>>> commitment = CommitmentLevel.Confirmed
+>>> config = RpcSendTransactionConfig(preflight_commitment=commitment)
+>>> SendRawTransaction(bytes(tx), config).to_json()
+'{"method":"sendTransaction","jsonrpc":"2.0","id":0,"params":["AaVkKDb3UlpidO/ucBnOcmS+1dY8ZAC4vHxTxiccV8zPBlupuozppRjwrILZJaoKggAcVSD1XlAKstDVEPFOVgwBAAECiojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAA2FiYw==",{"skipPreflight":false,"preflightCommitment":"confirmed","encoding":"base64","maxRetries":null,"minContextSlot":null}]}'
+
+
+
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcSendTransactionConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+tx
+

The raw signed transaction to send.

+
+
Type:
+

List[int]

+
+
+
+ +
+ +
+
+class SendVersionedTransaction(tx, config=None, id=None)
+

A sendTransaction request.

+
+
Parameters:
+
+
+
+

Example

+
>>> from typing import List
+>>> from solders.rpc.requests import SendVersionedTransaction
+>>> from solders.rpc.config import RpcSendTransactionConfig
+>>> from solders.transaction import VersionedTransaction
+>>> from solders.message import Message
+>>> from solders.keypair import Keypair
+>>> from solders.instruction import Instruction, AccountMeta
+>>> from solders.hash import Hash
+>>> from solders.pubkey import Pubkey
+>>> from solders.commitment_config import CommitmentLevel
+>>> program_id = Pubkey.default()
+>>> arbitrary_instruction_data = b"abc"
+>>> accounts: List[AccountMeta] = []
+>>> instruction = Instruction(program_id, arbitrary_instruction_data, accounts)
+>>> seed = bytes([1] * 32)
+>>> payer = Keypair.from_seed(seed)
+>>> blockhash = Hash.default()  # replace with a real blockhash
+>>> message = Message.new_with_blockhash([instruction], payer.pubkey(), blockhash)
+>>> tx = VersionedTransaction(message, [payer])
+>>> commitment = CommitmentLevel.Confirmed
+>>> config = RpcSendTransactionConfig(preflight_commitment=commitment)
+>>> SendVersionedTransaction(tx, config).to_json()
+'{"method":"sendTransaction","jsonrpc":"2.0","id":0,"params":["AaVkKDb3UlpidO/ucBnOcmS+1dY8ZAC4vHxTxiccV8zPBlupuozppRjwrILZJaoKggAcVSD1XlAKstDVEPFOVgwBAAECiojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAA2FiYw==",{"skipPreflight":false,"preflightCommitment":"confirmed","encoding":"base64","maxRetries":null,"minContextSlot":null}]}'
+
+
+
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcSendTransactionConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+tx
+

The signed transaction to send.

+
+
Type:
+

VersionedTransaction

+
+
+
+ +
+ +
+
+class ValidatorExit(id=None)
+

validatorExit request.

+
+
Parameters:
+

id (Optional[int]) – Request ID.

+
+
+

Example

+
>>> from solders.rpc.requests import ValidatorExit
+>>> ValidatorExit(123).to_json()
+'{"method":"validatorExit","jsonrpc":"2.0","id":123}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class AccountSubscribe(account, config=None, id=None)
+

An accountSubscribe request.

+
+
Parameters:
+
    +
  • account (Pubkey) – Account to watch.

  • +
  • config (Optional[RpcAccountInfoConfig]) – Extra configuration.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import AccountSubscribe
+>>> from solders.rpc.config import RpcAccountInfoConfig
+>>> from solders.pubkey import Pubkey
+>>> from solders.account_decoder import UiAccountEncoding
+>>> config = RpcAccountInfoConfig(UiAccountEncoding.Base64)
+>>> AccountSubscribe(Pubkey.default(), config).to_json()
+'{"method":"accountSubscribe","jsonrpc":"2.0","id":0,"params":["11111111111111111111111111111111",{"encoding":"base64","dataSlice":null,"minContextSlot":null}]}'
+
+
+
+
+account
+

Account to watch.

+
+
Type:
+

Pubkey

+
+
+
+ +
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcAccountInfoConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class BlockSubscribe(filter_, config=None, id=None)
+

A blockSubscribe request.

+
+
Parameters:
+
+
+
+

Example

+
>>> from solders.rpc.requests import BlockSubscribe
+>>> from solders.rpc.config import RpcBlockSubscribeConfig, RpcBlockSubscribeFilter, RpcBlockSubscribeFilterMentions
+>>> from solders.pubkey import Pubkey
+>>> from solders.commitment_config import CommitmentLevel
+>>> from solders.transaction_status import TransactionDetails
+>>> config = RpcBlockSubscribeConfig(transaction_details=TransactionDetails.Signatures)
+>>> BlockSubscribe(RpcBlockSubscribeFilter.All, config).to_json()
+'{"method":"blockSubscribe","jsonrpc":"2.0","id":0,"params":["all",{"encoding":null,"transactionDetails":"signatures","showRewards":null,"maxSupportedTransactionVersion":null}]}'
+>>> BlockSubscribe(RpcBlockSubscribeFilterMentions(Pubkey.default()), config).to_json()
+'{"method":"blockSubscribe","jsonrpc":"2.0","id":0,"params":[{"mentionsAccountOrProgram":"11111111111111111111111111111111"},{"encoding":null,"transactionDetails":"signatures","showRewards":null,"maxSupportedTransactionVersion":null}]}'
+
+
+
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcBlockSubscribeConfig]

+
+
+
+ +
+
+filter_
+

The filter being applied.

+
+
Type:
+

Union[RpcBlockSubscribeFilter | RpcBlockSubscribeFilterMentions]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class LogsSubscribe(filter_, config=None, id=None)
+

A logsSubscribe request.

+
+
Parameters:
+
+
+
+

Example

+
>>> from solders.rpc.requests import LogsSubscribe
+>>> from solders.rpc.config import RpcTransactionLogsConfig, RpcTransactionLogsFilter, RpcTransactionLogsFilterMentions
+>>> from solders.pubkey import Pubkey
+>>> from solders.commitment_config import CommitmentLevel
+>>> config = RpcTransactionLogsConfig(commitment=CommitmentLevel.Confirmed)
+>>> LogsSubscribe(RpcTransactionLogsFilter.All, config).to_json()
+'{"method":"logsSubscribe","jsonrpc":"2.0","id":0,"params":["all",{"commitment":"confirmed"}]}'
+>>> LogsSubscribe(RpcTransactionLogsFilterMentions(Pubkey.default()), config).to_json()
+'{"method":"logsSubscribe","jsonrpc":"2.0","id":0,"params":[{"mentions":["11111111111111111111111111111111"]},{"commitment":"confirmed"}]}'
+
+
+
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcTransactionLogsConfig]

+
+
+
+ +
+
+filter_
+

The filter being applied.

+
+
Type:
+

Union[RpcTransactionLogsFilter | RpcTransactionLogsFilterMentions]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class ProgramSubscribe(program, config=None, id=None)
+

A programSubscribe request.

+
+
Parameters:
+
    +
  • program (Pubkey) – The program that owns the accounts

  • +
  • config (Optional[RpcProgramAccountsConfig]) – Extra configuration.

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import ProgramSubscribe
+>>> from solders.rpc.config import RpcProgramAccountsConfig, RpcAccountInfoConfig
+>>> from solders.rpc.filter import Memcmp
+>>> from solders.pubkey import Pubkey
+>>> acc_info_config = RpcAccountInfoConfig.default()
+>>> filters = [10, Memcmp(offset=10, bytes_=b"123")]
+>>> config = RpcProgramAccountsConfig(acc_info_config, filters)
+>>> ProgramSubscribe(Pubkey.default(), config).to_json()
+'{"method":"programSubscribe","jsonrpc":"2.0","id":0,"params":["11111111111111111111111111111111",{"filters":[{"dataSize":10},{"memcmp":{"offset":10,"encoding":"bytes","bytes":[49,50,51]}}],"encoding":null,"dataSlice":null,"minContextSlot":null,"withContext":null,"sortResults":null}]}'
+
+
+
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcProgramAccountsConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+program
+

The program that owns the accounts

+
+
Type:
+

Pubkey

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class SignatureSubscribe(signature, config=None, id=None)
+

A signatureSubscribe request.

+
+
Parameters:
+
+
+
+

Example

+
>>> from solders.rpc.requests import SignatureSubscribe
+>>> from solders.rpc.config import RpcSignatureSubscribeConfig
+>>> from solders.signature import Signature
+>>> config = RpcSignatureSubscribeConfig(enable_received_notification=False)
+>>> SignatureSubscribe(Signature.default(), config).to_json()
+'{"method":"signatureSubscribe","jsonrpc":"2.0","id":0,"params":["1111111111111111111111111111111111111111111111111111111111111111",{"enableReceivedNotification":false}]}'
+
+
+
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcSignatureSubscribeConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+signature
+

The signature being watched

+
+
Type:
+

Signature

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class SlotSubscribe(id=None)
+

slotSubscribe request.

+
+
Parameters:
+

id (Optional[int]) – Request ID.

+
+
+

Example

+
>>> from solders.rpc.requests import SlotSubscribe
+>>> SlotSubscribe(123).to_json()
+'{"method":"slotSubscribe","jsonrpc":"2.0","id":123}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class SlotsUpdatesSubscribe(id=None)
+

slotsUpdatesSubscribe request.

+
+
Parameters:
+

id (Optional[int]) – Request ID.

+
+
+

Example

+
>>> from solders.rpc.requests import SlotsUpdatesSubscribe
+>>> SlotsUpdatesSubscribe(123).to_json()
+'{"method":"slotsUpdatesSubscribe","jsonrpc":"2.0","id":123}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class RootSubscribe(id=None)
+

rootSubscribe request.

+
+
Parameters:
+

id (Optional[int]) – Request ID.

+
+
+

Example

+
>>> from solders.rpc.requests import RootSubscribe
+>>> RootSubscribe(123).to_json()
+'{"method":"rootSubscribe","jsonrpc":"2.0","id":123}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class VoteSubscribe(id=None)
+

voteSubscribe request.

+
+
Parameters:
+

id (Optional[int]) – Request ID.

+
+
+

Example

+
>>> from solders.rpc.requests import VoteSubscribe
+>>> VoteSubscribe(123).to_json()
+'{"method":"voteSubscribe","jsonrpc":"2.0","id":123}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class AccountUnsubscribe(subscription_id, id=None)
+

accountUnsubscribe request.

+
+
Parameters:
+
    +
  • subscription_id (int) – ID of subscription to cancel

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import AccountUnsubscribe
+>>> AccountUnsubscribe(1, 2).to_json()
+'{"method":"accountUnsubscribe","jsonrpc":"2.0","id":2,"params":[1]}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+subscription_id
+

ID of subscription to cancel

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class BlockUnsubscribe(subscription_id, id=None)
+

blockUnsubscribe request.

+
+
Parameters:
+
    +
  • subscription_id (int) – ID of subscription to cancel

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import BlockUnsubscribe
+>>> BlockUnsubscribe(1, 2).to_json()
+'{"method":"blockUnsubscribe","jsonrpc":"2.0","id":2,"params":[1]}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+subscription_id
+

ID of subscription to cancel

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class LogsUnsubscribe(subscription_id, id=None)
+

logsUnsubscribe request.

+
+
Parameters:
+
    +
  • subscription_id (int) – ID of subscription to cancel

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import LogsUnsubscribe
+>>> LogsUnsubscribe(1, 2).to_json()
+'{"method":"logsUnsubscribe","jsonrpc":"2.0","id":2,"params":[1]}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+subscription_id
+

ID of subscription to cancel

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class ProgramUnsubscribe(subscription_id, id=None)
+

programUnsubscribe request.

+
+
Parameters:
+
    +
  • subscription_id (int) – ID of subscription to cancel

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import ProgramUnsubscribe
+>>> ProgramUnsubscribe(1, 2).to_json()
+'{"method":"programUnsubscribe","jsonrpc":"2.0","id":2,"params":[1]}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+subscription_id
+

ID of subscription to cancel

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class SignatureUnsubscribe(subscription_id, id=None)
+

signatureUnsubscribe request.

+
+
Parameters:
+
    +
  • subscription_id (int) – ID of subscription to cancel

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import SignatureUnsubscribe
+>>> SignatureUnsubscribe(1, 2).to_json()
+'{"method":"signatureUnsubscribe","jsonrpc":"2.0","id":2,"params":[1]}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+subscription_id
+

ID of subscription to cancel

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class SimulateLegacyTransaction(tx, config=None, id=None)
+

A simulateTransaction request.

+
+
Parameters:
+
+
+
+

Example

+
>>> from solders.rpc.requests import SimulateLegacyTransaction
+>>> from solders.rpc.config import RpcSimulateTransactionConfig, RpcSimulateTransactionAccountsConfig
+>>> from solders.account_decoder import UiAccountEncoding
+>>> from solders.transaction import Transaction
+>>> from solders.message import Message
+>>> from solders.keypair import Keypair
+>>> from solders.instruction import Instruction
+>>> from solders.hash import Hash
+>>> from solders.pubkey import Pubkey
+>>> from solders.commitment_config import CommitmentLevel
+>>> program_id = Pubkey.default()
+>>> arbitrary_instruction_data = b"abc"
+>>> accounts = []
+>>> instruction = Instruction(program_id, arbitrary_instruction_data, accounts)
+>>> seed = bytes([1] * 32)
+>>> payer = Keypair.from_seed(seed)
+>>> message = Message([instruction], payer.pubkey())
+>>> blockhash = Hash.default()  # replace with a real blockhash
+>>> tx = Transaction([payer], message, blockhash)
+>>> account_encoding = UiAccountEncoding.Base64Zstd
+>>> accounts_config = RpcSimulateTransactionAccountsConfig([Pubkey.default()], account_encoding)
+>>> commitment = CommitmentLevel.Confirmed
+>>> config = RpcSimulateTransactionConfig(commitment=commitment, accounts=accounts_config)
+>>> SimulateLegacyTransaction(tx, config).to_json()
+'{"method":"simulateTransaction","jsonrpc":"2.0","id":0,"params":["AaVkKDb3UlpidO/ucBnOcmS+1dY8ZAC4vHxTxiccV8zPBlupuozppRjwrILZJaoKggAcVSD1XlAKstDVEPFOVgwBAAECiojj3XQJ8ZX9UtstPLpdcspnCb8dlBIb83SIAbQPb1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAA2FiYw==",{"sigVerify":false,"replaceRecentBlockhash":false,"commitment":"confirmed","encoding":"base64","accounts":{"encoding":"base64+zstd","addresses":["11111111111111111111111111111111"]},"minContextSlot":null,"innerInstructions":false}]}'
+
+
+
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcSimulateTransactionConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+tx
+

The transaction to simulate.

+
+
Type:
+

Transaction

+
+
+
+ +
+ +
+
+class SimulateVersionedTransaction(tx, config=None, id=None)
+

A simulateTransaction request.

+
+
Parameters:
+
+
+
+

Example

+
>>> from solders.rpc.requests import SimulateVersionedTransaction
+>>> from solders.rpc.config import RpcSimulateTransactionConfig, RpcSimulateTransactionAccountsConfig
+>>> from solders.account_decoder import UiAccountEncoding
+>>> from solders.transaction import VersionedTransaction
+>>> from solders.message import Message
+>>> from solders.keypair import Keypair
+>>> from solders.instruction import Instruction
+>>> from solders.hash import Hash
+>>> from solders.pubkey import Pubkey
+>>> from solders.commitment_config import CommitmentLevel
+>>> program_id = Pubkey.default()
+>>> arbitrary_instruction_data = b"abc"
+>>> accounts = []
+>>> instruction = Instruction(program_id, arbitrary_instruction_data, accounts)
+>>> seed = bytes([1] * 32)
+>>> blockhash = Hash.default()  # replace with a real blockhash
+>>> payer = Keypair.from_seed(seed)
+>>> message = Message.new_with_blockhash([instruction], payer.pubkey(), blockhash)
+>>> tx = VersionedTransaction.populate(message, [])
+>>> account_encoding = UiAccountEncoding.Base64Zstd
+>>> accounts_config = RpcSimulateTransactionAccountsConfig([Pubkey.default()], account_encoding)
+>>> commitment = CommitmentLevel.Confirmed
+>>> config = RpcSimulateTransactionConfig(commitment=commitment, accounts=accounts_config)
+>>> SimulateVersionedTransaction(tx, config).to_json()
+'{"method":"simulateTransaction","jsonrpc":"2.0","id":0,"params":["AAEAAQKKiOPddAnxlf1S2y08ul1yymcJvx2UEhvzdIgBtA9vXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQADYWJj",{"sigVerify":false,"replaceRecentBlockhash":false,"commitment":"confirmed","encoding":"base64","accounts":{"encoding":"base64+zstd","addresses":["11111111111111111111111111111111"]},"minContextSlot":null,"innerInstructions":false}]}'
+
+
+
+
+config
+

Extra configuration.

+
+
Type:
+

Optional[RpcSimulateTransactionConfig]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+tx
+

The transaction to simulate.

+
+
Type:
+

VersionedTransaction

+
+
+
+ +
+ +
+
+class SlotUnsubscribe(subscription_id, id=None)
+

slotUnsubscribe request.

+
+
Parameters:
+
    +
  • subscription_id (int) – ID of subscription to cancel

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import SlotUnsubscribe
+>>> SlotUnsubscribe(1, 2).to_json()
+'{"method":"slotUnsubscribe","jsonrpc":"2.0","id":2,"params":[1]}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+subscription_id
+

ID of subscription to cancel

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class SlotsUpdatesUnsubscribe(subscription_id, id=None)
+

slotsUpdatesUnsubscribe request.

+
+
Parameters:
+
    +
  • subscription_id (int) – ID of subscription to cancel

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import SlotsUpdatesUnsubscribe
+>>> SlotsUpdatesUnsubscribe(1, 2).to_json()
+'{"method":"slotsUpdatesUnsubscribe","jsonrpc":"2.0","id":2,"params":[1]}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+subscription_id
+

ID of subscription to cancel

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class RootUnsubscribe(subscription_id, id=None)
+

rootUnsubscribe request.

+
+
Parameters:
+
    +
  • subscription_id (int) – ID of subscription to cancel

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import RootUnsubscribe
+>>> RootUnsubscribe(1, 2).to_json()
+'{"method":"rootUnsubscribe","jsonrpc":"2.0","id":2,"params":[1]}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+subscription_id
+

ID of subscription to cancel

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class VoteUnsubscribe(subscription_id, id=None)
+

voteUnsubscribe request.

+
+
Parameters:
+
    +
  • subscription_id (int) – ID of subscription to cancel

  • +
  • id (Optional[int]) – Request ID.

  • +
+
+
+

Example

+
>>> from solders.rpc.requests import VoteUnsubscribe
+>>> VoteUnsubscribe(1, 2).to_json()
+'{"method":"voteUnsubscribe","jsonrpc":"2.0","id":2,"params":[1]}'
+
+
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+

The ID of the RPC request.

+
+
Type:
+

int

+
+
+
+ +
+
+subscription_id
+

ID of subscription to cancel

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+batch_to_json(reqs)
+

Serialize a list of request objects into a single batch request JSON.

+
+
Parameters:
+

reqs – A list of request objects.

+
+
Returns:
+

The batch JSON string.

+
+
Return type:
+

str

+
+
+

Example

+
>>> from solders.rpc.requests import batch_to_json, GetClusterNodes, GetEpochSchedule
+>>> batch_to_json([GetClusterNodes(0), GetEpochSchedule(1)])
+'[{"method":"getClusterNodes","jsonrpc":"2.0","id":0},{"method":"getEpochSchedule","jsonrpc":"2.0","id":1}]'
+
+
+
+ +
+
+batch_from_json(raw)
+

Deserialize a batch request JSON string into a list of request objects.

+
+
Parameters:
+

raw (str) – The batch JSON string.

+
+
Returns:
+

A list of request objects.

+
+
+

Example

+
>>> from solders.rpc.requests import batch_from_json
+>>> raw = '[{"jsonrpc":"2.0","id":0,"method":"getClusterNodes"},{"jsonrpc":"2.0","id":1,"method":"getEpochSchedule"}]'
+>>> batch_from_json(raw)
+[GetClusterNodes {
+    base: RequestBase {
+        jsonrpc: TwoPointOh,
+        id: 0,
+    },
+}, GetEpochSchedule {
+    base: RequestBase {
+        jsonrpc: TwoPointOh,
+        id: 1,
+    },
+}]
+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/rpc/responses.html b/api_reference/rpc/responses.html new file mode 100644 index 00000000..83f09db2 --- /dev/null +++ b/api_reference/rpc/responses.html @@ -0,0 +1,5541 @@ + + + + + + + Responses — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Responses

+
+
+class RpcResponseContext(slot, api_version=None)
+
+
+api_version
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+slot
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetAccountInfoResp(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetAccountInfoJsonParsedResp(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetAccountInfoMaybeJsonParsedResp(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetBalanceResp(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class RpcBlockProduction(by_identity, range)
+
+
+by_identity
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+range
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class RpcBlockProductionRange(first_slot, last_slot)
+
+
+first_slot
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+last_slot
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetBlockProductionResp(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetBlockResp(value=None)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class RpcBlockCommitment(total_stake, commitment=None)
+
+
+commitment
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+total_stake
+
+ +
+ +
+
+class GetBlockCommitmentResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetBlockHeightResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetBlocksResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetBlocksWithLimitResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetBlockTimeResp(value=None)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class RpcContactInfo(pubkey, gossip=None, tpu=None, tpu_quic=None, rpc=None, pubsub=None, version=None, feature_set=None, shred_version=None, tvu=None, tpu_forwards=None, tpu_forwards_quic=None, tpu_vote=None, serve_repair=None)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetClusterNodesResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class EpochInfo(epoch, slot_index, slots_in_epoch, absolute_slot, block_height, transaction_count=None)
+

Information about the current epoch.

+
+
Parameters:
+
    +
  • epoch (int) – The current epoch.

  • +
  • slot_index (int) – The current slot, relative to the start of the current epoch.

  • +
  • slots_in_epoch (int) – The number of slots in this epoch.

  • +
  • absolute_slot (int) – The absolute current slot.

  • +
  • block_height (int) – The current block height.

  • +
  • transaction_count (Optional[int]) – Total number of transactions processed without error since genesis

  • +
+
+
+
+
+absolute_slot
+

The absolute current slot

+
+
Type:
+

int

+
+
+
+ +
+
+block_height
+

The current block height

+
+
Type:
+

int

+
+
+
+ +
+
+epoch
+

The current epoch

+
+
Type:
+

int

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+slot_index
+

The current slot, relative to the start of the current epoch

+
+
Type:
+

int

+
+
+
+ +
+
+slots_in_epoch
+

The number of slots in this epoch

+
+
Type:
+

int

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+transaction_count
+

Total number of transactions processed without error since genesis

+
+
Type:
+

Optional[int]

+
+
+
+ +
+ +
+
+class GetEpochInfoResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetEpochScheduleResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetFeeForMessageResp(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetFirstAvailableBlockResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetGenesisHashResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetHealthResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class RpcSimulateTransactionResult(err=None, logs=None, accounts=None, units_consumed=None, return_data=None, inner_instructions=None, replacement_blockhash=None)
+
+
+accounts
+
+ +
+
+err
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+logs
+
+ +
+
+return_data
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+units_consumed
+
+ +
+ +
+
+class RpcSnapshotSlotInfo(full, incremental=None)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+full
+
+ +
+
+incremental
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetHighestSnapshotSlotResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class RpcIdentity(identity)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+identity
+

The current node identity.

+
+
Type:
+

Pubkey

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetIdentityResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class RpcInflationGovernor(initial, terminal, taper, foundation, foundation_term)
+
+
+foundation
+
+ +
+
+foundation_term
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+initial
+
+ +
+
+taper
+
+ +
+
+terminal
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetInflationGovernorResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class RpcInflationRate(total, validator, foundation, epoch)
+
+
+epoch
+
+ +
+
+foundation
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+total
+
+ +
+
+validator
+
+ +
+ +
+
+class GetInflationRateResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class RpcInflationReward(epoch, effective_slot, amount, post_balance, commission=None)
+
+
+amount
+
+ +
+
+commission
+
+ +
+
+effective_slot
+
+ +
+
+epoch
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+post_balance
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetInflationRewardResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class RpcAccountBalance(address, lamports)
+
+
+address
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+lamports
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetLargestAccountsResp(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class RpcBlockhash(blockhash, last_valid_block_height)
+
+
+blockhash
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+last_valid_block_height
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetLatestBlockhashResp(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetLeaderScheduleResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetMaxRetransmitSlotResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetMaxShredInsertSlotResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetMinimumBalanceForRentExemptionResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetMultipleAccountsResp(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetMultipleAccountsJsonParsedResp(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetMultipleAccountsMaybeJsonParsedResp(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class RpcKeyedAccount(pubkey, account)
+
+
+account
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+pubkey
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class RpcKeyedAccountJsonParsed(pubkey, account)
+
+
+account
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+pubkey
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetProgramAccountsWithContextResp(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetProgramAccountsResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetProgramAccountsWithContextJsonParsedResp(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetProgramAccountsJsonParsedResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetProgramAccountsWithContextMaybeJsonParsedResp(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetProgramAccountsMaybeJsonParsedResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class RpcPerfSample(slot, num_transactions, num_slots, sample_period_secs, num_non_vote_transactions=None)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+num_non_votetransactions
+
+ +
+
+num_slots
+
+ +
+
+num_transactions
+
+ +
+
+sample_period_secs
+
+ +
+
+slot
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetRecentPerformanceSamplesResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class RpcConfirmedTransactionStatusWithSignature(signature, slot, err=None, memo=None, block_time=None, confirmation_status=None)
+
+
+block_time
+
+ +
+
+confirmation_status
+
+ +
+
+err
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+memo
+
+ +
+
+signature
+
+ +
+
+slot
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetSignaturesForAddressResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetSignatureStatusesResp(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetSlotResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetSlotLeaderResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetSlotLeadersResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class RpcSupply(total, circulating, non_circulating, non_circulating_accounts)
+
+
+circulating
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+non_circulating
+
+ +
+
+non_circulating_accounts
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+total
+
+ +
+ +
+
+class GetSupplyResp(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetTokenAccountBalanceResp(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetTokenAccountsByDelegateResp(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetTokenAccountsByDelegateJsonParsedResp(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetTokenAccountsByOwnerResp(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetTokenAccountsByOwnerJsonParsedResp(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class RpcTokenAccountBalance(address, amount)
+
+
+address
+
+ +
+
+amount
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetTokenLargestAccountsResp(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetTokenSupplyResp(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetTransactionResp(value=None)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetTransactionCountResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class GetVersionResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class RpcVersionInfo(solana_core, feature_set=None)
+
+
+feature_set
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+solana_core
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class RpcVoteAccountInfo(vote_pubkey, node_pubkey, activated_stake, commission, epoch_vote_account, epoch_credits, last_vote, root_slot)
+
+
+activated_stake
+
+ +
+
+commission
+
+ +
+
+epoch_credits
+
+ +
+
+epoch_vote_account
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+last_vote
+
+ +
+
+node_pubkey
+
+ +
+
+root_slot
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+vote_pubkey
+
+ +
+ +
+
+class RpcVoteAccountStatus(current, delinquent)
+
+
+current
+
+ +
+
+delinquent
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class GetVoteAccountsResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class IsBlockhashValidResp(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class MinimumLedgerSlotResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class RequestAirdropResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class SendTransactionResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class SimulateTransactionResp(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class ValidatorExitResp(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+
Parameters:
+

raw (str) – The RPC JSON response (can be an error response).

+
+
Returns:
+

Either the deserialized object or RPCError.

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class RpcLogsResponse(signature, err, logs)
+
+
+err
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+logs
+
+ +
+
+signature
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class SlotInfo(slot, parent, root)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+parent
+
+ +
+
+root
+
+ +
+
+slot
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class SlotTransactionStats(num_transaction_entries, num_successful_transactions, num_failed_transactions, max_transactions_per_entry)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+max_transactions_per_entry
+
+ +
+
+num_failed_transactions
+
+ +
+
+num_successful_transactions
+
+ +
+
+num_transaction_entries
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class SlotUpdateFirstShredReceived(slot, timestamp)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+slot
+
+ +
+
+timestamp
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class SlotUpdateCompleted(slot, timestamp)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+slot
+
+ +
+
+timestamp
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class SlotUpdateCreatedBank(slot, timestamp, parent)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+parent
+
+ +
+
+slot
+
+ +
+
+timestamp
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class SlotUpdateDead(slot, timestamp, err)
+
+
+err
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+slot
+
+ +
+
+timestamp
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class SlotUpdateOptimisticConfirmation(slot, timestamp)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+slot
+
+ +
+
+timestamp
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class SlotUpdateRoot(slot, timestamp)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+slot
+
+ +
+
+timestamp
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class RpcVote(vote_pubkey, slots, hash, timestamp, signature)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+hash
+
+ +
+
+signature
+
+ +
+
+slots
+
+ +
+
+timestamp
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+vote_pubkey
+
+ +
+ +
+
+class RpcSignatureResponse(err=None)
+
+
+err
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class SubscriptionResult(id, result)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+
+ +
+
+result
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class SubscriptionError(id, error)
+
+
+error
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class AccountNotification(result, subscription)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+result
+
+ +
+
+subscription
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class AccountNotificationResult(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class AccountNotificationJsonParsed(result, subscription)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+result
+
+ +
+
+subscription
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class AccountNotificationJsonParsedResult(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class BlockNotification(result, subscription)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+result
+
+ +
+
+subscription
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class BlockNotificationResult(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class LogsNotification(result, subscription)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+result
+
+ +
+
+subscription
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class LogsNotificationResult(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class ProgramNotification(result, subscription)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+result
+
+ +
+
+subscription
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class ProgramNotificationResult(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class ProgramNotificationJsonParsed(result, subscription)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+result
+
+ +
+
+subscription
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class ProgramNotificationJsonParsedResult(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class SignatureNotification(result, subscription)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+result
+
+ +
+
+subscription
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class SignatureNotificationResult(value, context)
+
+
+context
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class SlotNotification(result, subscription)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+result
+
+ +
+
+subscription
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class SlotUpdateNotification(result, subscription)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+result
+
+ +
+
+subscription
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class RootNotification(result, subscription)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+result
+
+ +
+
+subscription
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class VoteNotification(result, subscription)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+result
+
+ +
+
+subscription
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class RpcBlockUpdate(slot, block=None, err=None)
+
+
+block
+
+ +
+
+err
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+slot
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class BlockStoreError
+
+
+BlockStoreError = BlockStoreError.BlockStoreError
+
+ +
+ +
+
+class UnsubscribeResult(id, result)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+id
+
+ +
+
+result
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+batch_to_json(resps)
+

Serialize a list of response objects into a single batch response JSON.

+
+
Parameters:
+

resps – A list of response objects.

+
+
Returns:
+

The batch JSON string.

+
+
Return type:
+

str

+
+
+

Example

+
>>> from solders.rpc.responses import batch_to_json, GetBlockHeightResp, GetFirstAvailableBlockResp
+>>> batch_to_json([GetBlockHeightResp(1233), GetFirstAvailableBlockResp(1)])
+'[{"id":0,"jsonrpc":"2.0","result":1233},{"id":0,"jsonrpc":"2.0","result":1}]'
+
+
+
+ +
+
+batch_from_json(raw, parsers)
+

Deserialize a batch request JSON string into a list of request objects.

+
+
Parameters:
+
    +
  • raw (str) – The batch JSON string.

  • +
  • parsers (Sequence) – The classes to parse.

  • +
+
+
Returns:
+

A list of response objects.

+
+
+

Example

+
>>> from solders.rpc.responses import batch_from_json, GetBlockHeightResp, GetFirstAvailableBlockResp
+>>> raw = '[{ "jsonrpc": "2.0", "result": 1233, "id": 1 },{ "jsonrpc": "2.0", "result": 111, "id": 1 }]'
+>>> batch_from_json(raw, [GetBlockHeightResp, GetFirstAvailableBlockResp])
+[GetBlockHeightResp(
+    1233,
+), GetFirstAvailableBlockResp(
+    111,
+)]
+
+
+
+ +
+
+parse_websocket_message(msg)
+

Parse a message or array of messages received by a Solana websocket subscription.

+
+
Parameters:
+

msg (str) – The raw message JSON.

+
+
Returns:
+

The parsed message.

+
+
Return type:
+

WebsocketMessage

+
+
+

Example

+
>>> from solders.rpc.responses import parse_websocket_message
+>>> raw = '{ "jsonrpc": "2.0", "method": "rootNotification", "params": { "result": 4, "subscription": 0 } }'
+>>> parse_websocket_message(raw)
+[RootNotification {
+    result: 4,
+    subscription: 0,
+}]
+>>> raw_multi = '[{"jsonrpc": "2.0", "result": 0, "id": 1}, {"jsonrpc": "2.0", "result": 1, "id": 2}]'
+>>> parse_websocket_message(raw_multi)
+[SubscriptionResult {
+    jsonrpc: TwoPointOh,
+    id: 1,
+    result: 0,
+}, SubscriptionResult {
+    jsonrpc: TwoPointOh,
+    id: 2,
+    result: 1,
+}]
+
+
+
+ +
+
+parse_notification(msg)
+

Parse a notification received by a Solana websocket subscription.

+
+
Parameters:
+

msg (str) – The raw notification JSON.

+
+
Returns:
+

The parsed message.

+
+
Return type:
+

Notification

+
+
+

Example

+
>>> from solders.rpc.responses import parse_notification
+>>> raw = '{ "jsonrpc": "2.0", "method": "rootNotification", "params": { "result": 4, "subscription": 0 } }'
+>>> parse_notification(raw)
+RootNotification {
+    result: 4,
+    subscription: 0,
+}
+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/signature.html b/api_reference/signature.html new file mode 100644 index 00000000..76019cc0 --- /dev/null +++ b/api_reference/signature.html @@ -0,0 +1,303 @@ + + + + + + + Signature — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Signature

+
+
+class Signature(signature_bytes)
+

The Signature object is a wrapper around a raw bytes signature, typically +returned by sign_message() or other similar methods.

+
+
Parameters:
+

signature_bytes (bytes) – The raw signature bytes.

+
+
+
+
+LENGTH = 64
+
+ +
+
+static default()
+

Create a new default signature object.

+
+
Returns:
+

The default signature.

+
+
Return type:
+

Signature

+
+
+

Example

+
>>> from solders.signature import Signature
+>>> Signature.default()
+Signature(
+    1111111111111111111111111111111111111111111111111111111111111111,
+)
+
+
+
+ +
+
+static from_bytes(raw_bytes)
+

Construct from bytes. Equivalent to Signature.__init__ but included for the sake of consistency.

+
+
Parameters:
+

raw_bytes (bytes) – the signature bytes.

+
+
Returns:
+

a Signature object.

+
+
Return type:
+

Signature

+
+
+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+static from_string(s)
+

Retrieve a signature from a base58-encoded string.

+
+
Parameters:
+

s (str) – base58-encoded signature.

+
+
Returns:
+

The decoded signature.

+
+
Return type:
+

Signature

+
+
+

Example

+
>>> from solders.signature import Signature
+>>> from solders.keypair import Keypair
+>>> sig = Keypair().sign_message(bytes([0]))
+>>> assert Signature.from_string(str(sig)) == sig
+
+
+
+ +
+
+static new_unique()
+

Create a random siganture.

+
+
Returns:
+

The random signature.

+
+
Return type:
+

Signature

+
+
+
+ +
+
+to_bytes_array()
+

Returns this signature as a byte array.

+
+
Returns:
+

the signature as a list of 64 u8 ints.

+
+
Return type:
+

list[int]

+
+
+

Example

+
>>> from solders.signature import Signature
+>>> assert Signature.default().to_bytes_array() == [0] * 64
+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+verify(pubkey, message_bytes)
+

Check if the signature is a valid signature created by the given pubkey on the given message.

+
+
Parameters:
+
    +
  • pubkey – The pubkey that is supposed to have signed the message.

  • +
  • message (bytes) – The message in bytes.

  • +
+
+
Returns:
+

True if verfiication is successful.

+
+
Return type:
+

bool

+
+
+

Example

+
>>> from solders.keypair import Keypair
+>>> from solders.signature import Signature
+>>> kp = Keypair()
+>>> msg = b"macaroni"
+>>> sig = kp.sign_message(msg)
+>>> sig.verify(kp.pubkey(), msg)
+True
+
+
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/system_program.html b/api_reference/system_program.html new file mode 100644 index 00000000..821d64c1 --- /dev/null +++ b/api_reference/system_program.html @@ -0,0 +1,1410 @@ + + + + + + + System Program — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

System Program

+
+
+ID: Final[Pubkey] = Pubkey(     11111111111111111111111111111111, )
+

Pubkey that identifies the System program.

+
+ +
+
+transfer_many(from_pubkey, to_lamports)
+

Create new Transfer instructions to many destinations.

+
+
Parameters:
+
    +
  • from_pubkey (Pubkey) – The sender pubkey.

  • +
  • to_lamports (Sequence[tuple[int, Pubkey]]) – The lamports to transfer to each pubkey.

  • +
+
+
Returns:
+

The Transfer instructions.

+
+
Return type:
+

list[Instruction]

+
+
+
+ +
+
+create_nonce_account(from_pubkey, nonce_pubkey, authority, lamports)
+

Generate instructions to create and initialize a nonce account.

+
+
Parameters:
+
    +
  • from_pubkey (Pubkey) – The account that will transfer +lamports to the created nonce account.

  • +
  • nonce_pubkey (Pubkey) – Nonce account which will be +created and initialized.

  • +
  • authority (Pubkey) – Pubkey to set as authority of the +initialized nonce account.

  • +
  • lamports (int) – Amount of lamports to transfer to +the created account.

  • +
+
+
Returns:
+

The CreateAccount instruction and the InitializeNonceAccount instruction.

+
+
Return type:
+

tuple[Instruction, Instruction]

+
+
+
+ +
+
+create_nonce_account_with_seed(from_pubkey, nonce_pubkey, base, seed, authority, lamports)
+

Generate instructions to create a nonce account with seed.

+
+
Parameters:
+
    +
  • from_pubkey (Pubkey) – The account that will transfer +lamports to the created nonce account.

  • +
  • nonce_pubkey (Pubkey) – Nonce account which will be +created and initialized. Must be pre-calculated +with create_with_seed()

  • +
  • base (Pubkey) – Base public key to use to derive the +address of the created account. Must be the same +as the base key used to create nonce_pubkey.

  • +
  • seed (str) – Seed to use to derive the address of the created account. +Must be the same as the seed used to create nonce_pubkey.

  • +
  • authority (Pubkey) – Pubkey to set as authority of the +initialized nonce account.

  • +
  • lamports (int) – Amount of lamports to transfer to +the created account.

  • +
+
+
Returns:
+

The CreateAccountWithSeed instruction and the InitializeNonceAccount instruction.

+
+
Return type:
+

tuple[Instruction, Instruction]

+
+
+
+ +
+
+class CreateAccountParams
+

Create account system transaction params.

+
+
+from_pubkey: Pubkey
+

The account that will transfer lamports to the created account.

+
+ +
+
+to_pubkey: Pubkey
+

Pubkey of the created account.

+
+ +
+
+lamports: int
+

Amount of lamports to transfer to the created account.

+
+ +
+
+space: int
+

Amount of space in bytes to allocate to the created account.

+
+ +
+
+owner: Pubkey
+

Pubkey of the program to assign as the owner of the created account.

+
+ +
+ +
+
+create_account(params: CreateAccountParams) Instruction
+

Generate an instruction that creates a new account.

+
+
Parameters:
+

params – The CreateAccount params.

+
+
+

Example

+
>>> from solders.pubkey import Pubkey
+>>> from solders.system_program import create_account, CreateAccountParams
+>>> from_account = Pubkey.new_unique()
+>>> new_account = Pubkey.new_unique()
+>>> program_id = Pubkey.new_unique()
+>>> instruction = create_account(
+...     CreateAccountParams(
+...         from_pubkey=from_account, to_pubkey=new_account,
+...         lamports=1, space=1, owner=program_id)
+... )
+>>> type(instruction)
+<class 'solders.instruction.Instruction'>
+
+
+
+
Returns:
+

The instruction to create the account.

+
+
Return type:
+

Instruction

+
+
+
+ +
+
+decode_create_account(instruction: Instruction) CreateAccountParams
+

Decode a create account instruction and retrieve the instruction params.

+
+
Parameters:
+

instruction (Instruction) – The CreateAccount instruction.

+
+
Returns:
+

The params used to create the instruction.

+
+
Return type:
+

CreateAccountParams

+
+
+
+ +
+
+class CreateAccountWithSeedParams
+

Create account with seed system transaction params.

+
+
+from_pubkey: Pubkey
+

The account that will transfer lamports to the created account.

+
+ +
+
+to_pubkey: Pubkey
+

Pubkey of the created account. +Must be pre-calculated with create_with_seed().

+
+ +
+
+base: Pubkey
+

Base public key to use to derive the address of the created account. +Must be the same as the base key used to create to_pubkey.

+
+ +
+
+seed: str
+

Seed to use to derive the address of the created account. +Must be the same as the seed used to create to_pubkey.

+
+ +
+
+lamports: int
+

Amount of lamports to transfer to the created account.

+
+ +
+
+space: int
+

Amount of space in bytes to allocate to the created account.

+
+ +
+
+owner: Pubkey
+

Pubkey of the program to assign as the owner of the created account.

+
+ +
+ +
+
+create_account_with_seed(params: CreateAccountWithSeedParams) Instruction
+

Generate an instruction that creates a new account at an address generated with from, a seed, and program_id.

+
+
Parameters:
+

params (CreateAccountWithSeedParams) – The CreateAccountWithSeed params.

+
+
Returns:
+

The instruction to create the account.

+
+
Return type:
+

Instruction

+
+
+
+ +
+
+decode_create_account_with_seed(instruction: Instruction) CreateAccountWithSeedParams
+

Decode create account with seed instruction and retrieve the instruction params.

+
+
Parameters:
+

instruction (Instruction) – The CreateAccountWithSeed instruction.

+
+
Returns:
+

The params used to create the instruction.

+
+
Return type:
+

CreateAccountWithSeedParams

+
+
+
+ +
+
+class AssignParams
+

Assign system transaction params.

+
+
+pubkey: Pubkey
+

Pubkey of the account which will be assigned a new owner.

+
+ +
+
+owner: Pubkey
+

Pubkey of the program to assign as the owner.

+
+ +
+ +
+
+assign(params: AssignParams) Instruction
+

Generate an instruction that assigns an account to a program.

+
+
Parameters:
+

params (AssignParams) – The assign params.

+
+
Returns:
+

The generated instruction.

+
+
Return type:
+

Instruction

+
+
+

Example

+
>>> from solders.pubkey import Pubkey
+>>> from solders.system_program import assign, AssignParams
+>>> account, program_id = Pubkey.default(), Pubkey.default()
+>>> instruction = assign(
+...     AssignParams(pubkey=account, owner=program_id)
+... )
+>>> type(instruction)
+<class 'solders.instruction.Instruction'>
+
+
+
+ +
+
+decode_assign(instruction: Instruction) AssignParams
+

Decode an assign instruction and retrieve the instruction params.

+
+
Parameters:
+

instruction (Instruction) – The Assign instruction.

+
+
Returns:
+

The params used to create the instruction.

+
+
Return type:
+

AssignParams

+
+
+
+ +
+
+class AssignWithSeedParams
+

Assign account with seed system transaction params.

+
+
+address: Pubkey
+

Pubkey of the account which will be assigned a new owner.

+
+ +
+
+base: Pubkey
+

Base public key to use to derive the address of the assigned account.

+
+ +
+
+seed: str
+

Seed to use to derive the address of the assigned account.

+
+ +
+
+owner: Pubkey
+

Pubkey of the program to assign as the owner.

+
+ +
+ +
+
+assign_with_seed(params: AssignWithSeedParams) Instruction
+

Generate an instruction that assigns an account to a program.

+
+
Parameters:
+

params (AssignWithSeedParams) – The AssignWithSeed params.

+
+
Returns:
+

The generated instruction.

+
+
Return type:
+

Instruction

+
+
+
+ +
+
+decode_assign_with_seed(instruction: Instruction) AssignWithSeedParams
+

Decode an assign with seed instruction and retrieve the instruction params.

+
+
Parameters:
+

instruction (Instruction) – The AssignWithSeed instruction.

+
+
Returns:
+

The params used to create the instruction.

+
+
Return type:
+

AssignWithSeedParams

+
+
+
+ +
+
+class TransferParams
+

Transfer system transaction params.

+
+
+from_pubkey: Pubkey
+

Account that will transfer lamports.

+
+ +
+
+to_pubkey: Pubkey
+

Account that will receive transferred lamports.

+
+ +
+
+lamports: int
+

Amount of lamports to transfer.

+
+ +
+ +
+
+transfer(params: TransferParams) Instruction
+

Generate an instruction that transfers lamports from one account to another.

+
+
Parameters:
+

params – The transfer params.

+
+
+

Example

+
>>> from solders.pubkey import Pubkey
+>>> from solders.system_program import transfer, TransferParams
+>>> sender, receiver = Pubkey.default(), Pubkey.default()
+>>> instruction = transfer(
+...     TransferParams(from_pubkey=sender, to_pubkey=receiver, lamports=1000)
+... )
+>>> type(instruction)
+<class 'solders.instruction.Instruction'>
+
+
+
+
Returns:
+

The transfer instruction.

+
+
Return type:
+

Instruction

+
+
+
+ +
+
+decode_transfer(instruction: Instruction) TransferParams
+

Decode a transfer instruction and retrieve the instruction params.

+
+
Parameters:
+

instruction (Instruction) – The Transfer instruction.

+
+
Returns:
+

The params used to create the instruction.

+
+
Return type:
+

TransferParams

+
+
+
+ +
+
+class TransferWithSeedParams
+

Transfer with seed system transaction params.

+
+
+from_pubkey: Pubkey
+

Account that will transfer lamports.

+
+ +
+
+from_base: Pubkey
+

Base public key to use to derive the funding account address.

+
+ +
+
+from_seed: str
+

Seed to use to derive the funding account address.

+
+ +
+
+from_owner: Pubkey
+

Program id to use to derive the funding account address.

+
+ +
+
+to_pubkey: Pubkey
+

Account that will receive transferred lamports.

+
+ +
+
+lamports: int
+

Amount of lamports to transfer.

+
+ +
+ +
+
+transfer_with_seed(params: TransferWithSeedParams) Instruction
+

Generate an instruction that transfers lamports from one account to another.

+
+
Parameters:
+

params (TransferWithSeedParams) – The TransferWithSeed params.

+
+
Returns:
+

The TransferWithSeed instruction.

+
+
Return type:
+

Instruction

+
+
+
+ +
+
+decode_transfer_with_seed(instruction: Instruction) TransferWithSeedParams
+

Decode a transfer with seed instruction and retrieve the instruction params.

+
+
Parameters:
+

instruction (Instruction) – The TransferWithSeed instruction.

+
+
Returns:
+

The params used to create the instruction.

+
+
Return type:
+

TransferWithSeedParams

+
+
+
+ +
+
+class AllocateParams
+

Allocate account system transaction params.

+
+
+pubkey: Pubkey
+

Account to allocate.

+
+ +
+
+space: int
+

Amount of space in bytes to allocate.

+
+ +
+ +
+
+allocate(params: AllocateParams) Instruction
+

Generate an instruction that allocates space in an account without funding.

+
+
Parameters:
+

params (AllocateParams) – The allocate params.

+
+
Returns:
+

The allocate instruction.

+
+
Return type:
+

Instruction

+
+
+

Example

+
>>> from solders.pubkey import Pubkey
+>>> from solders.system_program import allocate, AllocateParams
+>>> allocator = Pubkey.default()
+>>> instruction = allocate(
+...     AllocateParams(pubkey=allocator, space=65537)
+... )
+>>> type(instruction)
+<class 'solders.instruction.Instruction'>
+
+
+
+ +
+
+decode_allocate(instruction: Instruction) AllocateParams
+

Decode an allocate instruction and retrieve the instruction params.

+
+
Parameters:
+

instruction (Instruction) – The Allocate instruction.

+
+
Returns:
+

The params used to create the instruction.

+
+
Return type:
+

AllocateParams

+
+
+
+ +
+
+class AllocateWithSeedParams
+

Allocate account with seed system transaction params.

+
+
+address: Pubkey
+

Account to allocate.

+
+ +
+
+base: Pubkey
+

Base public key to use to derive the address of the allocated account.

+
+ +
+
+seed: str
+

Seed to use to derive the address of the allocated account.

+
+ +
+
+space: int
+

Amount of space in bytes to allocate.

+
+ +
+
+owner: Pubkey
+

Pubkey of the program to assign as the owner of the allocated account.

+
+ +
+ +
+
+allocate_with_seed(params: AllocateWithSeedParams) Instruction
+

Generate an instruction that allocates space in an account without funding.

+
+
Parameters:
+

params (AllocateWithSeedParams) – The AllocateWithSeed params.

+
+
Returns:
+

The AllocateWithSeed instruction.

+
+
Return type:
+

Instruction

+
+
+
+ +
+
+decode_allocate_with_seed(instruction: Instruction) AllocateWithSeedParams
+

Decode an allocate with seed instruction and retrieve the instruction params.

+
+
Parameters:
+

instruction (Instruction) – The AllocateWithSeed instruction.

+
+
Returns:
+

The params used to create the instruction.

+
+
Return type:
+

AllocateWithSeedParams

+
+
+
+ +
+
+class InitializeNonceAccountParams
+

Initialize nonce account system instruction params.

+
+
+nonce_pubkey: Pubkey
+

Nonce account which will be initialized.

+
+ +
+
+authority: Pubkey
+

Pubkey to set as authority of the initialized nonce account.

+
+ +
+ +
+
+initialize_nonce_account(params: InitializeNonceAccountParams) Instruction
+

Generate an instruction to initialize a Nonce account.

+
+
Parameters:
+

params (InitializeNonceAccountParams) – The InitializeNonceAccount params.

+
+
Returns:
+

The InitializeNonceAccount instruction.

+
+
Return type:
+

Instruction

+
+
+
+ +
+
+decode_initialize_nonce_account(instruction: Instruction) InitializeNonceAccountParams
+

Decode initialize nonce account instruction and retrieve the instruction params.

+
+
Parameters:
+

instruction (Instruction) – The InitializeNonceAccount instruction.

+
+
Returns:
+

The params used to create the instruction.

+
+
Return type:
+

InitializeNonceAccountParams

+
+
+
+ +
+
+class AdvanceNonceAccountParams
+

Advance nonce account system instruction params.

+
+
+nonce_pubkey: Pubkey
+

Nonce account.

+
+ +
+
+authorized_pubkey: Pubkey
+

Pubkey of the nonce authority.

+
+ +
+ +
+
+advance_nonce_account(params: AdvanceNonceAccountParams) Instruction
+

Generate an instruction to advance the nonce in a Nonce account.

+
+
Parameters:
+

params (AdvanceNonceAccountParams) – The AdvanceNonceAccount params.

+
+
Returns:
+

The AdvanceNonceAccount instruction.

+
+
Return type:
+

Instruction

+
+
+
+ +
+
+decode_advance_nonce_account(instruction: Instruction) AdvanceNonceAccountParams
+

Decode an advance nonce account instruction and retrieve the instruction params.

+
+
Parameters:
+

instruction (Instruction) – The AdvanceNonceAccount instruction.

+
+
Returns:
+

The params used to create the instruction.

+
+
Return type:
+

AdvanceNonceAccountParams

+
+
+
+ +
+
+class WithdrawNonceAccountParams
+

Withdraw nonce account system transaction params.

+
+
+nonce_pubkey: Pubkey
+

Nonce account.

+
+ +
+
+authorized_pubkey: Pubkey
+

Pubkey of the nonce authority.

+
+ +
+
+to_pubkey: Pubkey
+

Pubkey of the account which will receive the withdrawn nonce account balance.

+
+ +
+
+lamports: int
+

Amount of lamports to withdraw from the nonce account.

+
+ +
+ +
+
+withdraw_nonce_account(params: WithdrawNonceAccountParams) Instruction
+

Generate an instruction that withdraws lamports from a Nonce account.

+
+
Parameters:
+

params (WithdrawNonceAccountParams) – The WithdrawNonceAccount params.

+
+
Returns:
+

The WithdrawNonceAccount instruction.

+
+
Return type:
+

Instruction

+
+
+
+ +
+
+decode_withdraw_nonce_account(instruction: Instruction) WithdrawNonceAccountParams
+

Decode a withdraw nonce account instruction and retrieve the instruction params.

+
+
Parameters:
+

instruction (Instruction) – The WithdrawNonceAccount instruction.

+
+
Returns:
+

The params used to create the instruction.

+
+
Return type:
+

WithdrawNonceAccountParams

+
+
+
+ +
+
+class AuthorizeNonceAccountParams
+

Authorize nonce account system transaction params.

+
+
+nonce_pubkey: Pubkey
+

Nonce account.

+
+ +
+
+authorized_pubkey: Pubkey
+

Pubkey of the current nonce authority.

+
+ +
+
+new_authority: Pubkey
+

Pubkey of the new nonce authority.

+
+ +
+ +
+
+authorize_nonce_account(params: AuthorizeNonceAccountParams) Instruction
+

Generate an instruction that authorizes a new Pubkey as the nonce authority.

+
+
Parameters:
+

params (AuthorizeNonceAccountParams) – The AuthorizeNonceAccount params.

+
+
Returns:
+

The AuthorizeNonceAccount instruction.

+
+
Return type:
+

Instruction

+
+
+
+ +
+
+decode_authorize_nonce_account(instruction: Instruction) AuthorizeNonceAccountParams
+

Decode authorize nonce account instruction and retrieve the instruction params.

+
+
Parameters:
+

instruction (Instruction) – The AuthorizeNonceAccount instruction.

+
+
Returns:
+

The params used to create the instruction.

+
+
Return type:
+

AuthorizeNonceAccountParams

+
+
+
+ +
+
+class CloseLookupTableParams
+

Close lookup table system transaction params.

+
+
+lookup_table_address: Pubkey
+
+ +
+
+authority_address: Pubkey
+
+ +
+
+recipient_address: Pubkey
+
+ +
+ +
+
+close_lookup_table(params: CloseLookupTableParams) Instruction
+

Returns an instruction that closes an address lookup table account.

+

The account will be deallocated and the lamports will be drained +to the recipient address.

+
+
Parameters:
+

params (CloseLookupTableParams) – The CloseLookupTable params.

+
+
Returns:
+

The CloseLookupTable instruction.

+
+
Return type:
+

Instruction

+
+
+
+ +
+
+class CreateLookupTableParams
+

Create lookup table system transaction params.

+
+
+authority_address: Pubkey
+
+ +
+
+payer_address: Pubkey
+
+ +
+
+recent_slot: int
+
+ +
+ +
+
+create_lookup_table(params: CreateLookupTableParams) Tuple[Instruction, Pubkey]
+

Constructs an instruction to create a table account.

+

Returns the instruction and the table account`s derived address.

+
+
Parameters:
+

params (CreateLookupTableParams) – The CreateLookupTable params.

+
+
Returns:
+

The CreateLookupTable instruction +and the table account`s derived address

+
+
Return type:
+

Tuple[Instruction, PubKey]

+
+
+
+ +
+
+class CreateLookupTableSignedParams
+

Create lookup table signed system transaction params.

+
+
+authority_address: Pubkey
+
+ +
+
+payer_address: Pubkey
+
+ +
+
+recent_slot: int
+
+ +
+ +
+
+create_lookup_table_signed(params: CreateLookupTableSignedParams) Tuple[Instruction, Pubkey]
+

Constructs an instruction to create a table account.

+
+

Returns the instruction and the table account`s derived address.

+
+
+
Parameters:
+

params (CreateLookupTableSignedParams) – The CreateLookupTableSigned params.

+
+
Returns:
+

The CreateLookupTableSigned instruction +and the table account’s derived address

+
+
Return type:
+

Tuple[Instruction, PubKey]

+
+
+
+ +
+
+class DeactivateLookupTableParams
+

Deactivate lookup table system transaction params.

+
+
+lookup_table_address: Pubkey
+
+ +
+
+authority_address: Pubkey
+
+ +
+ +
+
+deactivate_lookup_table(params: DeactivateLookupTableParams) Instruction
+

Constructs an instruction that deactivates an address lookup table.

+

So that it cannot be extended again and will be unusable and eligible +for closure after a short amount of time.

+
+
Parameters:
+

params (DeactivateLookupTableParams) – The DeactivateLookupTable params.

+
+
Returns:
+

The DeactivateLookupTable instruction.

+
+
Return type:
+

Instruction

+
+
+
+ +
+
+class ExtendLookupTableParams
+

Extend lookup table system transaction params.

+
+
+payer_address: Pubkey | None
+
+ +
+
+lookup_table_address: Pubkey
+
+ +
+
+authority_address: Pubkey
+
+ +
+
+new_addresses: List[Pubkey]
+
+ +
+ +
+
+extend_lookup_table(params: ExtendLookupTableParams) Instruction
+

Constructs an instruction which extends an ATL account with new addresses.

+
+
Parameters:
+

params (ExtendLookupTableParams) – the ExtendLookupTable params.

+
+
Returns:
+

The ExtendLookupTable instruction.

+
+
Return type:
+

Instruction

+
+
+
+ +
+
+class FreezeLookupTableParams
+

Freeze lookup table system transaction params.

+
+
+lookup_table_address: Pubkey
+
+ +
+
+authority_address: Pubkey
+
+ +
+ +
+
+freeze_lookup_table(params: FreezeLookupTableParams) Instruction
+

Constructs an instruction that freezes an address lookup table.

+

So that it can never be closed or extended again. +Empty lookup tables cannot be frozen.

+
+
Parameters:
+

params (FreezeLookupTableParams) – The FreezeLookupTable params.

+
+
Returns:
+

The FreezeLookupTable instruction.

+
+
Return type:
+

Instruction

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/sysvar.html b/api_reference/sysvar.html new file mode 100644 index 00000000..1d8f9c7e --- /dev/null +++ b/api_reference/sysvar.html @@ -0,0 +1,202 @@ + + + + + + + Sysvar — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Sysvar

+

Synthetic accounts that allow programs to access certain network states.

+
+
+CLOCK: Final[Pubkey] = Pubkey(     SysvarC1ock11111111111111111111111111111111, )
+

Pubkey of the synthetic account that serves the current network time.

+
+ +
+
+RECENT_BLOCKHASHES: Final[Pubkey] = Pubkey(     SysvarRecentB1ockHashes11111111111111111111, )
+

Pubkey of the synthetic account that serves recent blockhashes.

+
+ +
+
+RENT: Final[Pubkey] = Pubkey(     SysvarRent111111111111111111111111111111111, )
+

Pubkey of the synthetic account that serves the network fee resource consumption.

+
+ +
+
+REWARDS: Final[Pubkey] = Pubkey(     SysvarRewards111111111111111111111111111111, )
+

Pubkey of the synthetic account that serves the network rewards.

+
+ +
+
+STAKE_HISTORY: Final[Pubkey] = Pubkey(     SysvarStakeHistory1111111111111111111111111, )
+

Pubkey of the synthetic account that serves the stake history.

+
+ +
+
+EPOCH_SCHEDULE: Final[Pubkey] = Pubkey(     SysvarEpochSchedu1e111111111111111111111111, )
+

The EpochSchedule sysvar contains epoch scheduling constants that are set in genesis, +and enables calculating the number of slots in a given epoch, +the epoch for a given slot, etc. +(Note: the epoch schedule is distinct from the +leader schedule).

+
+ +
+
+INSTRUCTIONS: Final[Pubkey] = Pubkey(     Sysvar1nstructions1111111111111111111111111, )
+

The Instructions sysvar contains the serialized instructions in a +Message while that Message is being processed. +This allows program instructions to reference other instructions +in the same transaction. +Read more information on instruction introspection.

+
+ +
+
+SLOT_HASHES: Final[Pubkey] = Pubkey(     SysvarS1otHashes111111111111111111111111111, )
+

The SlotHashes sysvar contains the most recent hashes of the slot’s parent banks. +It is updated every slot.

+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/token/associated.html b/api_reference/token/associated.html new file mode 100644 index 00000000..79e51445 --- /dev/null +++ b/api_reference/token/associated.html @@ -0,0 +1,163 @@ + + + + + + + SPL Associated Token — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

SPL Associated Token

+
+
+get_associated_token_address(wallet_address, token_mint_address, token_program_id=None)
+

Derives the associated token account address for the given wallet address and token mint.

+
+
Parameters:
+
    +
  • wallet_address (Pubkey) – The address of the wallet that owns the token account.

  • +
  • token_mint_address (Pubkey) – The token mint.

  • +
  • token_program_id (Pubkey | None) – The token program ID. Defaults to the SPL Token Program.

  • +
+
+
Returns:
+

The associated token address

+
+
Return type:
+

Pubkey

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/token/index.html b/api_reference/token/index.html new file mode 100644 index 00000000..162f7e86 --- /dev/null +++ b/api_reference/token/index.html @@ -0,0 +1,154 @@ + + + + + + + SPL Token — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+ + +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/token/state.html b/api_reference/token/state.html new file mode 100644 index 00000000..5ff8cc3e --- /dev/null +++ b/api_reference/token/state.html @@ -0,0 +1,492 @@ + + + + + + + SPL Token State — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

SPL Token State

+
+
+class Mint(mint_authority, supply, decimals, is_initialized=False, freeze_authority=None)
+

A token mint.

+
+
Parameters:
+
    +
  • mint_authority (Optional[Pubkey]) – Optional authority used to mint new tokens. +The mint authority may only be provided during mint creation. +If no mint authority is present then the mint has a fixed supply and no +further tokens may be minted.

  • +
  • supply (int) – Total supply of tokens.

  • +
  • decimals (int) – Number of base 10 digits to the right of the decimal place.

  • +
  • is_initialized (bool) – Is True if this structure has been initialized.

  • +
  • freeze_authority (Optional[Pubkey]) – Optional authority to freeze token accounts.

  • +
+
+
+
+
+decimals
+

Number of base 10 digits to the right of the decimal place.

+
+
Type:
+

int

+
+
+
+ +
+
+static default()
+

Create a new default mint.

+
+
Returns:
+

The default mint.

+
+
Return type:
+

Mint

+
+
+
+ +
+
+freeze_authority
+

Optional authority to freeze token accounts.

+
+
Type:
+

Optional[Pubkey]

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+is_initialized
+

Is True if this structure has been initialized.

+
+
Type:
+

bool

+
+
+
+ +
+
+mint_authority
+

Optional authority used to mint new tokens.

+
+
Type:
+

Optional[Pubkey]

+
+
+
+ +
+
+supply
+

Total supply of tokens.

+
+
Type:
+

int

+
+
+
+ +
+ +
+
+class TokenAccountState
+

Token account state.

+
+
+Frozen = TokenAccountState.Frozen
+
+ +
+
+Initialized = TokenAccountState.Initialized
+
+ +
+
+Uninitialized = TokenAccountState.Uninitialized
+
+ +
+ +
+
+class TokenAccount(mint, owner, amount, delegate, state, is_native, delegated_amount, close_authority=None)
+

A user token account.

+
+
Parameters:
+
    +
  • mint (Pubkey) – The mint associated with this account

  • +
  • owner (Pubkey) – The owner of this account.

  • +
  • amount (int) – The amount of tokens this account holds.

  • +
  • delegate (Optional[Pubkey]) – If delegate is not None then +delegated_amount represents the amount authorized by the delegate.

  • +
  • state (TokenAccountState) – The account’s state.

  • +
  • is_native (Optional[int]) – If is_native is not None, +this is a native token, and the value logs the rent-exempt reserve. +An Account is required to be rent-exempt, so the value is used by +the Processor to ensure that wrapped SOL accounts do not +drop below this threshold.

  • +
  • delegated_amount (int) – The amount delegated.

  • +
  • close_authority (Optional[Pubkey]) – Optional authority to close the account.

  • +
+
+
+
+
+amount
+

The amount of tokens this account holds.

+
+
Type:
+

int

+
+
+
+ +
+
+close_authority
+

Optional authority to close the account.

+
+
Type:
+

Optional[Pubkey]

+
+
+
+ +
+
+static default()
+

Create a new default token account.

+
+
Returns:
+

The default token account.

+
+
Return type:
+

TokenAccount

+
+
+
+ +
+
+delegate
+

If not None then delegated_amount represents the amount authorized by the delegate.

+
+
Type:
+

Optional[Pubkey]

+
+
+
+ +
+
+delegated_amount
+

The amount delegated.

+
+
Type:
+

int

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+is_native
+

If not None, this is a native token.

+
+
Type:
+

Optional[int]

+
+
+
+ +
+
+mint
+

The mint associated with this account

+
+
Type:
+

Pubkey

+
+
+
+ +
+
+owner
+

The owner of this account.

+
+
Type:
+

Pubkey

+
+
+
+ +
+
+state
+

The account’s state

+
+
Type:
+

TokenAccountState

+
+
+
+ +
+ +
+
+class Multisig(m, n, is_initialized, signers)
+

A user token account.

+
+
Parameters:
+
    +
  • m (int) – The number of signers required.

  • +
  • n (int) – The number of valid signers.

  • +
  • is_initialized (bool) – Is True if this structure has been initialized.

  • +
  • signers (Sequence[Pubkey]) – Signer public keys.

  • +
+
+
+
+
+static default()
+

Create a new default multisig.

+
+
Returns:
+

The default multisig.

+
+
Return type:
+

Multisig

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+is_initialized
+

Is True if this structure has been initialized.

+
+
Type:
+

bool

+
+
+
+ +
+
+m
+

The number of signers required.

+
+
Type:
+

int

+
+
+
+ +
+
+n
+

The number of valid signers.

+
+
Type:
+

int

+
+
+
+ +
+
+signers
+

Signer public keys.

+
+
Type:
+

List[Pubkey]

+
+
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/transaction.html b/api_reference/transaction.html new file mode 100644 index 00000000..ac6a808a --- /dev/null +++ b/api_reference/transaction.html @@ -0,0 +1,914 @@ + + + + + + + Transaction — solders 0.23.0 documentation + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Transaction

+
+
+class Transaction(from_keypairs, message, recent_blockhash)
+

An atomically-commited sequence of instructions.

+

While Instructions are the basic unit of computation in Solana, +they are submitted by clients in Transactions containing one or +more instructions, and signed by one or more signers.

+

See the Rust module documentation for more details about transactions.

+

Some constructors accept an optional payer, the account responsible for +paying the cost of executing a transaction. In most cases, callers should +specify the payer explicitly in these constructors. In some cases though, +the caller is not required to specify the payer, but is still allowed to: +in the Message object, the first account is always the fee-payer, so +if the caller has knowledge that the first account of the constructed +transaction’s Message is both a signer and the expected fee-payer, then +redundantly specifying the fee-payer is not strictly required.

+

The main Transaction() constructor creates a fully-signed transaction from a Message.

+
+
Parameters:
+
    +
  • from_keypairs (Sequence[Keypair | Presigner]) – The keypairs that are to sign the transaction.

  • +
  • message (Message) – The message to sign.

  • +
  • recent_blockhash (Hash) – The id of a recent ledger entry.

  • +
+
+
+

Example

+
>>> from solders.message import Message
+>>> from solders.keypair import Keypair
+>>> from solders.instruction import Instruction
+>>> from solders.hash import Hash
+>>> from solders.transaction import Transaction
+>>> from solders.pubkey import Pubkey
+>>> program_id = Pubkey.default()
+>>> arbitrary_instruction_data = bytes([1])
+>>> accounts = []
+>>> instruction = Instruction(program_id, arbitrary_instruction_data, accounts)
+>>> payer = Keypair()
+>>> message = Message([instruction], payer.pubkey())
+>>> blockhash = Hash.default()  # replace with a real blockhash
+>>> tx = Transaction([payer], message, blockhash)
+
+
+
+
+data(instruction_index)
+

Get the data for an instruction at the given index.

+
+
Parameters:
+

instruction_index (int) – index into the instructions vector of the transaction’s message.

+
+
Returns:
+

The instruction data.

+
+
Return type:
+

bytes

+
+
+
+ +
+
+static default()
+

Return a new default transaction.

+
+
Returns:
+

The default transaction.

+
+
Return type:
+

Transaction

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize a serialized Transaction object.

+
+
Parameters:
+

data (bytes) – the serialized Transaction.

+
+
Returns:
+

the deserialized Transaction.

+
+
Return type:
+

Transaction

+
+
+

Example

+
>>> from solders.transaction import Transaction
+>>> tx = Transaction.default()
+>>> assert Transaction.from_bytes(bytes(tx)) == tx
+
+
+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+get_signing_keypair_positions(pubkeys)
+

Get the positions of the pubkeys in account_keys associated with signing keypairs.

+
+
Parameters:
+
    +
  • pubkeys (Sequence[Pubkey]) – The pubkeys to find.

  • +
  • Returns – list[Optional[int]]: The pubkey positions.

  • +
+
+
+
+ +
+
+is_signed()
+

Check if the transaction has been signed.

+
+
Returns:
+

True if the transaction has been signed.

+
+
Return type:
+

bool

+
+
+
+ +
+
+key(instruction_index, accounts_index)
+

Get the Pubkey of an account required by one of the instructions in +the transaction.

+

Returns None if instruction_index is greater than or equal to the +number of instructions in the transaction; or if accounts_index is +greater than or equal to the number of accounts in the instruction.

+
+
Parameters:
+
    +
  • instruction_index (int) – index into the instructions vector of the transaction’s message.

  • +
  • account_index (int) – index into the acounts list of the message’s compiled_instructions.

  • +
+
+
Returns:
+

The account key.

+
+
Return type:
+

Optional[Pubkey]

+
+
+
+ +
+
+message
+

The message to sign.

+
+
Type:
+

Message

+
+
+
+ +
+
+message_data()
+

Return the serialized message data to sign.

+
+
Returns:
+

The serialized message data.

+
+
Return type:
+

bytes

+
+
+
+ +
+
+static new_signed_with_payer(instructions, payer, signing_keypairs, recent_blockhash)
+

Create a fully-signed transaction from a list of Instructions.

+
+
Parameters:
+
    +
  • instructions (Sequence[Instruction]) – The instructions to include in the transaction message.

  • +
  • payer (Optional[Pubkey], optional) – The transaction fee payer.

  • +
  • signing_keypairs (Sequence[Keypair | Presigner]) – The keypairs that will sign the transaction.

  • +
  • recent_blockhash (Hash) – The id of a recent ledger entry.

  • +
+
+
Returns:
+

The signed transaction.

+
+
Return type:
+

Transaction

+
+
+

Example

+
>>> from solders.keypair import Keypair
+>>> from solders.instruction import Instruction
+>>> from solders.transaction import Transaction
+>>> from solders.pubkey import Pubkey
+>>> program_id = Pubkey.default()
+>>> arbitrary_instruction_data = bytes([1])
+>>> accounts = []
+>>> instruction = Instruction(program_id, arbitrary_instruction_data, accounts)
+>>> payer = Keypair()
+>>> blockhash = Hash.default()  # replace with a real blockhash
+>>> tx = Transaction.new_signed_with_payer([instruction], payer.pubkey(), [payer], blockhash);
+
+
+
+ +
+
+static new_unsigned(message)
+

Create an unsigned transaction from a Message.

+
+
Parameters:
+

message (Message) – The transaction’s message.

+
+
Returns:
+

The unsigned transaction.

+
+
Return type:
+

Transaction

+
+
+

Example

+
>>> from typing import List
+>>> from solders.message import Message
+>>> from solders.keypair import Keypair
+>>> from solders.pubkey import Pubkey
+>>> from solders.instruction import Instruction, AccountMeta
+>>> from solders.hash import Hash
+>>> from solders.transaction import Transaction
+>>> program_id = Pubkey.default()
+>>> blockhash = Hash.default()  # replace with a real blockhash
+>>> arbitrary_instruction_data = bytes([1])
+>>> accounts: List[AccountMeta] = []
+>>> instruction = Instruction(program_id, arbitrary_instruction_data, accounts)
+>>> payer = Keypair()
+>>> message = Message.new_with_blockhash([instruction], payer.pubkey(), blockhash)
+>>> tx = Transaction.new_unsigned(message)
+>>> tx.sign([payer], tx.message.recent_blockhash)
+
+
+
+ +
+
+static new_with_compiled_instructions(from_keypairs, keys, recent_blockhash, program_ids, instructions)
+

Create a fully-signed transaction from pre-compiled instructions.

+
+
Parameters:
+
    +
  • from_keypairs (Sequence[Keypair | Presigner]) – The keys used to sign the transaction.

  • +
  • keys (Sequence[Pubkey]) – The keys for the transaction. These are the program state +instances or lamport recipient keys.

  • +
  • recent_blockhash (Hash) – The PoH hash.

  • +
  • program_ids (Sequence[Pubkey]) – The keys that identify programs used in the instruction vector.

  • +
  • instructions (Sequence[Instruction]) – Instructions that will be executed atomically.

  • +
+
+
Returns:
+

The signed transaction.

+
+
Return type:
+

Transaction

+
+
+
+ +
+
+static new_with_payer(instructions, payer=None)
+

Create an unsigned transaction from a list of Instructions.

+
+
Parameters:
+
    +
  • instructions (Sequence[Instruction]) – The instructions to include in the transaction message.

  • +
  • payer (Optional[Pubkey], optional) – The transaction fee payer. Defaults to None.

  • +
+
+
Returns:
+

The unsigned transaction.

+
+
Return type:
+

Transaction

+
+
+

Example

+
>>> from solders.keypair import Keypair
+>>> from solders.instruction import Instruction
+>>> from solders.transaction import Transaction
+>>> from solders.pubkey import Pubkey
+>>> program_id = Pubkey.default()
+>>> arbitrary_instruction_data = bytes([1])
+>>> accounts = []
+>>> instruction = Instruction(program_id, arbitrary_instruction_data, accounts)
+>>> payer = Keypair()
+>>> tx = Transaction.new_with_payer([instruction], payer.pubkey())
+
+
+
+ +
+
+partial_sign(keypairs, recent_blockhash)
+

Sign the transaction with a subset of required keys, returning any errors.

+

Unlike Transaction.sign(), this method does not require all +keypairs to be provided, allowing a transaction to be signed in multiple +steps.

+

It is permitted to sign a transaction with the same keypair multiple +times.

+

If recent_blockhash is different than recorded in the transaction message’s +recent_blockhash field, then the message’s recent_blockhash will be updated +to the provided recent_blockhash, and any prior signatures will be cleared.

+

Errors:

+

Signing will fail if

+
    +
  • The transaction’s Message is malformed such that the number of +required signatures recorded in its header +(num_required_signatures) is greater than the length of its +account keys (account_keys).

  • +
  • Any of the provided signers in keypairs is not a required signer of +the message.

  • +
  • Any of the signers is a Presigner, and its provided signature is +incorrect.

  • +
+
+
Parameters:
+
    +
  • keypairs (Sequence[Keypair | Presigner]) – The signers for the transaction.

  • +
  • recent_blockhash (Hash) – The id of a recent ledger entry.

  • +
+
+
+
+ +
+
+static populate(message, signatures)
+

Create a fully-signed transaction from a message and its signatures.

+
+
Parameters:
+
    +
  • message (Message) – The transaction message.

  • +
  • signatures (Sequence[Signature]) – The message’s signatures.

  • +
+
+
Returns:
+

The signed transaction.

+
+
Return type:
+

Message

+
+
+

Example

+
>>> from solders.keypair import Keypair
+>>> from solders.instruction import Instruction
+>>> from solders.transaction import Transaction
+>>> from solders.pubkey import Pubkey
+>>> program_id = Pubkey.default()
+>>> arbitrary_instruction_data = bytes([1])
+>>> accounts = []
+>>> instruction = Instruction(program_id, arbitrary_instruction_data, accounts)
+>>> payer = Keypair()
+>>> blockhash = Hash.default()  # replace with a real blockhash
+>>> tx = Transaction.new_signed_with_payer([instruction], payer.pubkey(), [payer], blockhash);
+>>> assert tx == Transaction.populate(tx.message, tx.signatures)
+
+
+
+ +
+
+replace_signatures(signers)
+

Replace all the signatures and pubkeys.

+
+
Parameters:
+

signers (Sequence[Tuple[Pubkey, Signature]]) – The replacement pubkeys and signatures.

+
+
+
+ +
+
+sanitize()
+

Sanity checks the Transaction properties.

+
+ +
+
+sign(keypairs, recent_blockhash)
+

Sign the transaction, returning any errors.

+

This method fully signs a transaction with all required signers, which +must be present in the keypairs list. To sign with only some of the +required signers, use Transaction.partial_sign().

+

If recent_blockhash is different than recorded in the transaction message’s +recent_blockhash] field, then the message’s recent_blockhash will be updated +to the provided recent_blockhash, and any prior signatures will be cleared.

+

Errors:

+

Signing will fail if some required signers are not provided in +keypairs; or, if the transaction has previously been partially signed, +some of the remaining required signers are not provided in keypairs. +In other words, the transaction must be fully signed as a result of +calling this function.

+

Signing will fail for any of the reasons described in the documentation +for Transaction.partial_sign().

+
+
Parameters:
+
    +
  • keypairs (Sequence[Keypair | Presigner]) – The signers for the transaction.

  • +
  • recent_blockhash (Hash) – The id of a recent ledger entry.

  • +
+
+
+
+ +
+
+signatures
+

A set of signatures of a serialized Message, +signed by the first keys of the message’s account_keys, +where the number of signatures is equal to num_required_signatures of the Message’s +MessageHeader.

+
+
Type:
+

list[Signature]

+
+
+
+ +
+
+signer_key(instruction_index, accounts_index)
+

Get the Pubkey of a signing account required by one of the +instructions in the transaction.

+

The transaction does not need to be signed for this function to return a +signing account’s pubkey.

+

Returns None if the indexed account is not required to sign the +transaction. Returns None if the [signatures] field does not contain +enough elements to hold a signature for the indexed account (this should +only be possible if Transaction has been manually constructed).

+

Returns None if instruction_index is greater than or equal to the +number of instructions in the transaction; or if accounts_index is +greater than or equal to the number of accounts in the instruction.

+
+
Parameters:
+
    +
  • instruction_index (int) – index into the instructions vector of the transaction’s message.

  • +
  • account_index (int) – index into the acounts list of the message’s compiled_instructions.

  • +
+
+
Returns:
+

The account key.

+
+
Return type:
+

Optional[Pubkey]

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+uses_durable_nonce()
+

See https://docs.rs/solana-sdk/latest/solana_sdk/transaction/fn.uses_durable_nonce.html

+
+ +
+
+verify()
+

Verifies that all signers have signed the message.

+
+
Raises:
+

TransactionError – if the check fails.

+
+
+
+ +
+
+verify_and_hash_message()
+

Verify the transaction and hash its message.

+
+
Returns:
+

The blake3 hash of the message.

+
+
Return type:
+

Hash

+
+
Raises:
+

TransactionError – if the check fails.

+
+
+
+ +
+
+verify_with_results()
+

Verifies that all signers have signed the message.

+
+
Returns:
+

a list with the length of required signatures, where each element is either True if that signer has signed, or False if not.

+
+
Return type:
+

list[bool]

+
+
+
+ +
+ +
+
+class VersionedTransaction(message, keypairs)
+

An atomic transaction

+

The __init__ method signs a versioned message to +create a signed transaction.

+
+
Parameters:
+
+
+
+
+
+static default()
+

Return a new default transaction.

+
+
Returns:
+

The default transaction.

+
+
Return type:
+

VersionedTransaction

+
+
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+static from_legacy(tx)
+

Convert a legacy transaction to a VersionedTransaction.

+
+
Returns:
+

The versioned tx.

+
+
Return type:
+

VersionedTransaction

+
+
+
+ +
+
+into_legacy_transaction()
+

Returns a legacy transaction if the transaction message is legacy.

+
+
Returns:
+

The legacy transaction.

+
+
Return type:
+

Optional[Transaction]

+
+
+
+ +
+
+message
+

The transaction message.

+
+
Type:
+

Message | MessageV0

+
+
+
+ +
+
+static populate(message, signatures)
+

Create a fully-signed transaction from a message and its signatures.

+
+
Parameters:
+
    +
  • message (Message | MessageV0) – The transaction message.

  • +
  • signatures (Sequence[Signature]) – The message’s signatures.

  • +
+
+
Returns:
+

The signed transaction.

+
+
Return type:
+

Transaction

+
+
+

Example

+
>>> from solders.pubkey import Pubkey
+>>> from solders.instruction import Instruction
+>>> from solders.message import MessageV0
+>>> from solders.hash import Hash
+>>> from solders.keypair import Keypair
+>>> from solders.transaction import VersionedTransaction
+>>> payer = Keypair()
+>>> program_id = Pubkey.default()
+>>> instructions = [Instruction(program_id, bytes([]), [])]
+>>> recent_blockhash = Hash.new_unique()
+>>> message = MessageV0.try_compile(payer.pubkey(), instructions, [], recent_blockhash)
+>>> tx = VersionedTransaction(message, [payer])
+>>> assert VersionedTransaction.populate(message, tx.signatures) == tx
+
+
+
+ +
+
+sanitize()
+

Sanity checks the Transaction properties.

+
+ +
+
+signatures
+

The transaction signatures.

+
+
Type:
+

List[Signature]

+
+
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+uses_durable_nonce()
+

Returns true if transaction begins with a valid advance nonce instruction.

+
+
Returns:
+

bool

+
+
+
+ +
+
+verify_and_hash_message()
+

Verify the transaction and hash its message

+
+ +
+
+verify_with_results()
+

Verify the transaction and return a list of verification results

+
+ +
+
+version()
+

Returns the version of the transaction.

+
+
Returns:
+

Transaction version.

+
+
Return type:
+

Legacy | int

+
+
+
+ +
+ +
+
+class Legacy
+

Transaction version type that serializes to the string “legacy”

+
+
+Legacy = Legacy.Legacy
+
+ +
+ +
+
+exception SanitizeError
+

Raised when an error is encountered during transaction sanitization.

+
+ +
+
+exception TransactionError
+

Umbrella error for the Transaction object.

+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api_reference/transaction_status.html b/api_reference/transaction_status.html new file mode 100644 index 00000000..8bb0b8f6 --- /dev/null +++ b/api_reference/transaction_status.html @@ -0,0 +1,2204 @@ + + + + + + + Transaction Status — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Transaction Status

+
+
+class TransactionDetails
+

Levels of transaction detail to return in RPC requests.

+
+
+Accounts = TransactionDetails.Accounts
+
+ +
+
+Full = TransactionDetails.Full
+
+ +
+
+None_ = TransactionDetails.None_
+
+ +
+
+Signatures = TransactionDetails.Signatures
+
+ +
+ +
+
+class UiTransactionEncoding
+

Encoding options for transaction data.

+
+
+Base58 = UiTransactionEncoding.Base58
+
+ +
+
+Base64 = UiTransactionEncoding.Base64
+
+ +
+
+Binary = UiTransactionEncoding.Binary
+
+ +
+
+Json = UiTransactionEncoding.Json
+
+ +
+
+JsonParsed = UiTransactionEncoding.JsonParsed
+
+ +
+ +
+
+class TransactionBinaryEncoding
+
+
+Base58 = TransactionBinaryEncoding.Base58
+
+ +
+
+Base64 = TransactionBinaryEncoding.Base64
+
+ +
+ +
+
+class UiCompiledInstruction(program_id_index, accounts, data, stack_height=None)
+
+
+accounts
+
+ +
+
+data
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+program_id_index
+
+ +
+
+stack_height
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class UiAddressTableLookup(account_key, writable_indexes, readonly_indexes)
+
+
+account_key
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+readonly_indexes
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+writable_indexes
+
+ +
+ +
+
+class UiRawMessage(header, account_keys, recent_blockhash, instructions, address_table_lookups=None)
+

A duplicate representation of a Message, in raw format, for pretty JSON serialization

+
+
+account_keys
+
+ +
+
+address_table_lookups
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+header
+
+ +
+
+instructions
+
+ +
+
+recent_blockhash
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class ParsedAccountSource
+
+
+LookupTable = ParsedAccountSource.LookupTable
+
+ +
+
+Transaction = ParsedAccountSource.Transaction
+
+ +
+ +
+
+class ParsedAccount(pubkey, writable, signer, source=None)
+

A duplicate representation of a Message, in raw format, for pretty JSON serialization

+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+pubkey
+
+ +
+
+signer
+
+ +
+
+source
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+writable
+
+ +
+ +
+
+class ParsedInstruction(program, program_id, parsed, stack_height=None)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+parsed
+
+ +
+
+program
+
+ +
+
+program_id
+
+ +
+
+stack_height
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class UiPartiallyDecodedInstruction(program_id, accounts, data, stack_height=None)
+
+
+accounts
+
+ +
+
+data
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+program_id
+
+ +
+
+stack_height
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class UiParsedMessage(account_keys, recent_blockhash, instructions, address_table_lookups=None)
+

A duplicate representation of a Message, in raw format, for pretty JSON serialization

+
+
+account_keys
+
+ +
+
+address_table_lookups
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+instructions
+
+ +
+
+recent_blockhash
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class UiTransaction(signatures, message)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+message
+
+ +
+
+signatures
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class UiInnerInstructions(index, instructions)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+index
+
+ +
+
+instructions
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class UiLoadedAddresses(writable, readonly)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+readonly
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+writable
+
+ +
+ +
+
+class UiAccountsList(signatures, account_keys)
+
+
+account_keys
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+signatures
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class UiTransactionTokenBalance(account_index, mint, ui_token_amount, owner=None, program_id=None)
+
+
+account_index
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+mint
+
+ +
+
+owner
+
+ +
+
+program_id
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+ui_token_amount
+
+ +
+ +
+
+class RewardType
+
+
+Fee = RewardType.Fee
+
+ +
+
+Rent = RewardType.Rent
+
+ +
+
+Staking = RewardType.Staking
+
+ +
+
+Voting = RewardType.Voting
+
+ +
+ +
+
+class TransactionReturnData(program_id, data)
+
+
+data
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+program_id
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class UiTransactionStatusMeta(err, fee, pre_balances, post_balances, inner_instructions=None, log_messages=None, pre_token_balances=None, post_token_balances=None, rewards=None, loaded_addresses=None, return_data=None, compute_units_consumed=None)
+

A duplicate representation of TransactionStatusMeta with err field

+
+
+compute_units_consumed
+
+ +
+
+err
+
+ +
+
+fee
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+inner_instructions
+
+ +
+
+loaded_addresses
+
+ +
+
+log_messages
+
+ +
+
+post_balances
+
+ +
+
+post_token_balances
+
+ +
+
+pre_balances
+
+ +
+
+pre_token_balances
+
+ +
+
+return_data
+
+ +
+
+rewards
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class EncodedTransactionWithStatusMeta(transaction, meta=None, version=None)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+meta
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+transaction
+
+ +
+
+version
+
+ +
+ +
+
+class InstructionErrorCustom(code)
+
+
+code
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class InstructionErrorBorshIO(value)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+value
+
+ +
+ +
+
+class InstructionErrorFieldless
+
+
+AccountAlreadyInitialized = InstructionErrorFieldless.AccountAlreadyInitialized
+
+ +
+
+AccountBorrowFailed = InstructionErrorFieldless.AccountBorrowFailed
+
+ +
+
+AccountBorrowOutstanding = InstructionErrorFieldless.AccountBorrowOutstanding
+
+ +
+
+AccountDataSizeChanged = InstructionErrorFieldless.AccountDataSizeChanged
+
+ +
+
+AccountDataTooSmall = InstructionErrorFieldless.AccountDataTooSmall
+
+ +
+
+AccountNotExecutable = InstructionErrorFieldless.AccountNotExecutable
+
+ +
+
+AccountNotRentExempt = InstructionErrorFieldless.AccountNotRentExempt
+
+ +
+
+ArithmeticOverflow = InstructionErrorFieldless.ArithmeticOverflow
+
+ +
+
+BuiltinProgramsMustConsumeComputeUnits = InstructionErrorFieldless.BuiltinProgramsMustConsumeComputeUnits
+
+ +
+
+CallDepth = InstructionErrorFieldless.CallDepth
+
+ +
+
+ComputationalBudgetExceeded = InstructionErrorFieldless.ComputationalBudgetExceeded
+
+ +
+
+DuplicateAccountIndex = InstructionErrorFieldless.DuplicateAccountIndex
+
+ +
+
+DuplicateAccountOutOfSync = InstructionErrorFieldless.DuplicateAccountOutOfSync
+
+ +
+
+ExecutableAccountNotRentExempt = InstructionErrorFieldless.ExecutableAccountNotRentExempt
+
+ +
+
+ExecutableDataModified = InstructionErrorFieldless.ExecutableDataModified
+
+ +
+
+ExecutableLamportChange = InstructionErrorFieldless.ExecutableLamportChange
+
+ +
+
+ExecutableModified = InstructionErrorFieldless.ExecutableModified
+
+ +
+
+ExternalAccountDataModified = InstructionErrorFieldless.ExternalAccountDataModified
+
+ +
+
+ExternalAccountLamportSpend = InstructionErrorFieldless.ExternalAccountLamportSpend
+
+ +
+
+GenericError = InstructionErrorFieldless.GenericError
+
+ +
+
+IllegalOwner = InstructionErrorFieldless.IllegalOwner
+
+ +
+
+Immutable = InstructionErrorFieldless.Immutable
+
+ +
+
+IncorrectAuthority = InstructionErrorFieldless.IncorrectAuthority
+
+ +
+
+IncorrectProgramId = InstructionErrorFieldless.IncorrectProgramId
+
+ +
+
+InsufficientFunds = InstructionErrorFieldless.InsufficientFunds
+
+ +
+
+InvalidAccountData = InstructionErrorFieldless.InvalidAccountData
+
+ +
+
+InvalidAccountOwner = InstructionErrorFieldless.InvalidAccountOwner
+
+ +
+
+InvalidArgument = InstructionErrorFieldless.InvalidArgument
+
+ +
+
+InvalidError = InstructionErrorFieldless.InvalidError
+
+ +
+
+InvalidInstructionData = InstructionErrorFieldless.InvalidInstructionData
+
+ +
+
+InvalidRealloc = InstructionErrorFieldless.InvalidRealloc
+
+ +
+
+InvalidSeeds = InstructionErrorFieldless.InvalidSeeds
+
+ +
+
+MaxAccountsDataAllocationsExceeded = InstructionErrorFieldless.MaxAccountsDataAllocationsExceeded
+
+ +
+
+MaxAccountsExceeded = InstructionErrorFieldless.MaxAccountsExceeded
+
+ +
+
+MaxInstructionTraceLengthExceeded = InstructionErrorFieldless.MaxInstructionTraceLengthExceeded
+
+ +
+
+MaxSeedLengthExceeded = InstructionErrorFieldless.MaxSeedLengthExceeded
+
+ +
+
+MissingAccount = InstructionErrorFieldless.MissingAccount
+
+ +
+
+MissingRequiredSignature = InstructionErrorFieldless.MissingRequiredSignature
+
+ +
+
+ModifiedProgramId = InstructionErrorFieldless.ModifiedProgramId
+
+ +
+
+NotEnoughAccountKeys = InstructionErrorFieldless.NotEnoughAccountKeys
+
+ +
+
+PrivilegeEscalation = InstructionErrorFieldless.PrivilegeEscalation
+
+ +
+
+ProgramEnvironmentSetupFailure = InstructionErrorFieldless.ProgramEnvironmentSetupFailure
+
+ +
+
+ProgramFailedToCompile = InstructionErrorFieldless.ProgramFailedToCompile
+
+ +
+
+ProgramFailedToComplete = InstructionErrorFieldless.ProgramFailedToComplete
+
+ +
+
+ReadonlyDataModified = InstructionErrorFieldless.ReadonlyDataModified
+
+ +
+
+ReadonlyLamportChange = InstructionErrorFieldless.ReadonlyLamportChange
+
+ +
+
+ReentrancyNotAllowed = InstructionErrorFieldless.ReentrancyNotAllowed
+
+ +
+
+RentEpochModified = InstructionErrorFieldless.RentEpochModified
+
+ +
+
+UnbalancedInstruction = InstructionErrorFieldless.UnbalancedInstruction
+
+ +
+
+UninitializedAccount = InstructionErrorFieldless.UninitializedAccount
+
+ +
+
+UnsupportedProgramId = InstructionErrorFieldless.UnsupportedProgramId
+
+ +
+
+UnsupportedSysvar = InstructionErrorFieldless.UnsupportedSysvar
+
+ +
+ +
+
+class TransactionErrorInstructionError(index, err)
+
+
+err
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+index
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class TransactionErrorDuplicateInstruction(index)
+
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+index
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class TransactionErrorInsufficientFundsForRent(account_index)
+
+
+account_index
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class TransactionErrorFieldless
+
+
+AccountBorrowOutstanding = TransactionErrorFieldless.AccountBorrowOutstanding
+
+ +
+
+AccountInUse = TransactionErrorFieldless.AccountInUse
+
+ +
+
+AccountLoadedTwice = TransactionErrorFieldless.AccountLoadedTwice
+
+ +
+
+AccountNotFound = TransactionErrorFieldless.AccountNotFound
+
+ +
+
+AddressLookupTableNotFound = TransactionErrorFieldless.AddressLookupTableNotFound
+
+ +
+
+AlreadyProcessed = TransactionErrorFieldless.AlreadyProcessed
+
+ +
+
+BlockhashNotFound = TransactionErrorFieldless.BlockhashNotFound
+
+ +
+
+CallChainTooDeep = TransactionErrorFieldless.CallChainTooDeep
+
+ +
+
+ClusterMaintenance = TransactionErrorFieldless.ClusterMaintenance
+
+ +
+
+InsufficientFundsForFee = TransactionErrorFieldless.InsufficientFundsForFee
+
+ +
+
+InvalidAccountForFee = TransactionErrorFieldless.InvalidAccountForFee
+
+ +
+
+InvalidAccountIndex = TransactionErrorFieldless.InvalidAccountIndex
+
+ +
+
+InvalidAddressLookupTableData = TransactionErrorFieldless.InvalidAddressLookupTableData
+
+ +
+
+InvalidAddressLookupTableIndex = TransactionErrorFieldless.InvalidAddressLookupTableIndex
+
+ +
+
+InvalidAddressLookupTableOwner = TransactionErrorFieldless.InvalidAddressLookupTableOwner
+
+ +
+
+InvalidLoadedAccountsDataSizeLimit = TransactionErrorFieldless.InvalidLoadedAccountsDataSizeLimit
+
+ +
+
+InvalidProgramForExecution = TransactionErrorFieldless.InvalidProgramForExecution
+
+ +
+
+InvalidRentPayingAccount = TransactionErrorFieldless.InvalidRentPayingAccount
+
+ +
+
+InvalidWritableAccount = TransactionErrorFieldless.InvalidWritableAccount
+
+ +
+
+MaxLoadedAccountsDataSizeExceeded = TransactionErrorFieldless.MaxLoadedAccountsDataSizeExceeded
+
+ +
+
+MissingSignatureForFee = TransactionErrorFieldless.MissingSignatureForFee
+
+ +
+
+ProgramAccountNotFound = TransactionErrorFieldless.ProgramAccountNotFound
+
+ +
+
+ProgramCacheHitMaxLimit = TransactionErrorFieldless.ProgramCacheHitMaxLimit
+
+ +
+
+ResanitizationNeeded = TransactionErrorFieldless.ResanitizationNeeded
+
+ +
+
+SanitizeFailure = TransactionErrorFieldless.SanitizeFailure
+
+ +
+
+SignatureFailure = TransactionErrorFieldless.SignatureFailure
+
+ +
+
+TooManyAccountLocks = TransactionErrorFieldless.TooManyAccountLocks
+
+ +
+
+UnbalancedTransaction = TransactionErrorFieldless.UnbalancedTransaction
+
+ +
+
+UnsupportedVersion = TransactionErrorFieldless.UnsupportedVersion
+
+ +
+
+WouldExceedAccountDataBlockLimit = TransactionErrorFieldless.WouldExceedAccountDataBlockLimit
+
+ +
+
+WouldExceedAccountDataTotalLimit = TransactionErrorFieldless.WouldExceedAccountDataTotalLimit
+
+ +
+
+WouldExceedMaxAccountCostLimit = TransactionErrorFieldless.WouldExceedMaxAccountCostLimit
+
+ +
+
+WouldExceedMaxBlockCostLimit = TransactionErrorFieldless.WouldExceedMaxBlockCostLimit
+
+ +
+
+WouldExceedMaxVoteCostLimit = TransactionErrorFieldless.WouldExceedMaxVoteCostLimit
+
+ +
+ +
+
+class Reward(pubkey, lamports, post_balance, reward_type=None, commission=None)
+
+
+commission
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+lamports
+
+ +
+
+post_balance
+
+ +
+
+pubkey
+
+ +
+
+reward_type
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class TransactionConfirmationStatus
+
+
+Confirmed = TransactionConfirmationStatus.Confirmed
+
+ +
+
+Finalized = TransactionConfirmationStatus.Finalized
+
+ +
+
+Processed = TransactionConfirmationStatus.Processed
+
+ +
+ +
+
+class TransactionStatus(slot, confirmations=None, status=None, err=None, confirmation_status=None)
+
+
+confirmation_status
+
+ +
+
+confirmations
+
+ +
+
+err
+
+ +
+
+find_confirmation_status()
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+satisfies_commitment(commitment_config)
+
+ +
+
+slot
+
+ +
+
+status
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+ +
+
+class EncodedConfirmedTransactionWithStatusMeta(slot, transaction, block_time=None)
+
+
+block_time
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+slot
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+transaction
+
+ +
+ +
+
+class UiConfirmedBlock(previous_blockhash, blockhash, parent_slot, transactions=None, signatures=None, rewards=None, block_time=None, block_height=None, num_reward_partitions=None)
+
+
+block_height
+
+ +
+
+block_time
+
+ +
+
+blockhash
+
+ +
+
+static from_bytes(data)
+

Deserialize from bytes.

+
+
Parameters:
+

data (bytes) – the serialized object.

+
+
+

Returns: the deserialized object.

+
+ +
+
+static from_json(raw)
+

Build from a JSON string.

+
+ +
+
+parent_slot
+
+ +
+
+previous_blockhash
+
+ +
+
+rewards
+
+ +
+
+signatures
+
+ +
+
+to_json()
+

Convert to a JSON string.

+
+ +
+
+transactions
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/genindex.html b/genindex.html new file mode 100644 index 00000000..38398534 --- /dev/null +++ b/genindex.html @@ -0,0 +1,5430 @@ + + + + + + Index — solders 0.23.0 documentation + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ + +

Index

+ +
+ A + | B + | C + | D + | E + | F + | G + | H + | I + | J + | K + | L + | M + | N + | O + | P + | R + | S + | T + | U + | V + | W + +
+

A

+ + + +
+ +

B

+ + + +
+ +

C

+ + + +
+ +

D

+ + + +
+ +

E

+ + + +
+ +

F

+ + + +
+ +

G

+ + + +
+ +

H

+ + + +
+ +

I

+ + + +
+ +

J

+ + + +
+ +

K

+ + + +
+ +

L

+ + + +
+ +

M

+ + + +
+ +

N

+ + + +
+ +

O

+ + +
+ +

P

+ + + +
+ +

R

+ + + +
+ +

S

+ + + +
+ +

T

+ + + +
+ +

U

+ + + +
+ +

V

+ + + +
+ +

W

+ + + +
+ + + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 00000000..aa941966 --- /dev/null +++ b/index.html @@ -0,0 +1,192 @@ + + + + + + + Solders — solders 0.23.0 documentation + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+ +
+
+

PyPI version +License: MIT

+
+

Solders

+

solders is a high-performance Python toolkit for Solana, written in Rust. It provides robust solutions to the following problems:

+
    +
  • Core SDK stuff: keypairs, pubkeys, signing and serializing transactions - that sort of thing.

  • +
  • RPC stuff: building requests and parsing responses (no networking stuff - if you want help with that, +solana-py is your friend).

  • +
  • Integration testing stuff: the solders.bankrun module is an alternative to solana-test-validator that’s much more convenient and much faster. It’s based on solana-program-test if you know that is.

  • +
+
+

What about solana-py?

+

solders and solana-py are good friends. solana-py uses solders under the hood extensively in its +core API and RPC API. The main differences are:

+
    +
  • solders doesn’t have functions to actually interact with the RPC server (though solana-py does use the RPC code from solders).

  • +
  • solders doesn’t provide SPL Token and SPL Memo clients.

  • +
  • solana-py may not have support for all the RPC requests and responses provided by solders.

  • +
  • solana-py doesn’t have anything like the bankrun testing kit.

  • +
+

Since solana-py uses solders under the hood and they don’t duplicate each other’s features, you should just use whichever library you need.

+
+
+

Installation

+
pip install solders
+
+
+

Note: Requires Python >= 3.7.

+
+
+

Example Usage

+
>>> from solders.message import Message
+>>> from solders.keypair import Keypair
+>>> from solders.instruction import Instruction
+>>> from solders.hash import Hash
+>>> from solders.transaction import Transaction
+>>> from solders.pubkey import Pubkey
+>>> program_id = Pubkey.default()
+>>> arbitrary_instruction_data = bytes([1])
+>>> accounts = []
+>>> instruction = Instruction(program_id, arbitrary_instruction_data, accounts)
+>>> payer = Keypair()
+>>> message = Message([instruction], payer.pubkey())
+>>> blockhash = Hash.default()  # replace with a real blockhash
+>>> tx = Transaction([payer], message, blockhash)
+
+
+
+
+
+

Development

+
+

Setup

+
    +
  1. Install poetry

  2. +
  3. Install dev dependencies:

  4. +
+
poetry install
+
+
+
    +
  1. Activate the poetry shell:

  2. +
+
poetry shell
+
+
+
+
+

Testing

+
    +
  1. Run maturin develop to compile the Rust code.

  2. +
  3. Run make fmt, make lint, and make test.

  4. +
+
+
+
+ + + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/objects.inv b/objects.inv new file mode 100644 index 00000000..f994bbe9 Binary files /dev/null and b/objects.inv differ diff --git a/py-modindex.html b/py-modindex.html new file mode 100644 index 00000000..4c151589 --- /dev/null +++ b/py-modindex.html @@ -0,0 +1,255 @@ + + + + + + Python Module Index — solders 0.23.0 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + +
  • +
  • +
+
+
+
+
+ + +

Python Module Index

+ +
+ s +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 
+ s
+ solders +
    + solders.account +
    + solders.account_decoder +
    + solders.address_lookup_table_account +
    + solders.bankrun +
    + solders.commitment_config +
    + solders.compute_budget +
    + solders.epoch_schedule +
    + solders.errors +
    + solders.hash +
    + solders.instruction +
    + solders.keypair +
    + solders.message +
    + solders.null_signer +
    + solders.presigner +
    + solders.pubkey +
    + solders.rpc.config +
    + solders.rpc.errors +
    + solders.rpc.filter +
    + solders.rpc.requests +
    + solders.rpc.responses +
    + solders.signature +
    + solders.system_program +
    + solders.sysvar +
    + solders.token.associated +
    + solders.token.state +
    + solders.transaction +
    + solders.transaction_status +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/search.html b/search.html new file mode 100644 index 00000000..86fbb350 --- /dev/null +++ b/search.html @@ -0,0 +1,120 @@ + + + + + + Search — solders 0.23.0 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + +
  • +
  • +
+
+
+
+
+ + + + +
+ +
+ +
+
+ +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/searchindex.js b/searchindex.js new file mode 100644 index 00000000..87422d7d --- /dev/null +++ b/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({"docnames": ["api_reference/account", "api_reference/account_decoder", "api_reference/address_lookup_table_account", "api_reference/bankrun", "api_reference/commitment_config", "api_reference/compute_budget", "api_reference/epoch_schedule", "api_reference/errors", "api_reference/hash", "api_reference/index", "api_reference/instruction", "api_reference/keypair", "api_reference/message", "api_reference/null_signer", "api_reference/presigner", "api_reference/pubkey", "api_reference/rpc/config", "api_reference/rpc/errors", "api_reference/rpc/filter", "api_reference/rpc/index", "api_reference/rpc/requests", "api_reference/rpc/responses", "api_reference/signature", "api_reference/system_program", "api_reference/sysvar", "api_reference/token/associated", "api_reference/token/index", "api_reference/token/state", "api_reference/transaction", "api_reference/transaction_status", "index", "tutorials/bankrun", "tutorials/index", "tutorials/keypairs", "tutorials/pubkeys", "tutorials/rpc", "tutorials/transactions"], "filenames": ["api_reference/account.rst", "api_reference/account_decoder.rst", "api_reference/address_lookup_table_account.rst", "api_reference/bankrun.rst", "api_reference/commitment_config.rst", "api_reference/compute_budget.rst", "api_reference/epoch_schedule.rst", "api_reference/errors.rst", "api_reference/hash.rst", "api_reference/index.rst", "api_reference/instruction.rst", "api_reference/keypair.rst", "api_reference/message.rst", "api_reference/null_signer.rst", "api_reference/presigner.rst", "api_reference/pubkey.rst", "api_reference/rpc/config.rst", "api_reference/rpc/errors.rst", "api_reference/rpc/filter.rst", "api_reference/rpc/index.rst", "api_reference/rpc/requests.rst", "api_reference/rpc/responses.rst", "api_reference/signature.rst", "api_reference/system_program.rst", "api_reference/sysvar.rst", "api_reference/token/associated.rst", "api_reference/token/index.rst", "api_reference/token/state.rst", "api_reference/transaction.rst", "api_reference/transaction_status.rst", "index.rst", "tutorials/bankrun.rst", "tutorials/index.rst", "tutorials/keypairs.rst", "tutorials/pubkeys.rst", "tutorials/rpc.rst", "tutorials/transactions.rst"], "titles": ["Account", "Account Decoder", "Address Lookup Table Account", "Bankrun", "Commitment Config", "Compute Budget", "Epoch Schedule", "Errors", "Hash", "API Reference", "Instruction", "Keypair", "Message", "Null Signer", "Presigner", "Pubkey", "Config", "Errors", "Filter", "RPC", "Requests", "Responses", "Signature", "System Program", "Sysvar", "SPL Associated Token", "SPL Token", "SPL Token State", "Transaction", "Transaction Status", "Solders", "Bankrun", "Tutorials", "Keypairs", "Pubkeys", "RPC helpers", "Transactions"], "terms": {"class": [0, 1, 2, 3, 4, 6, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 27, 28, 29, 33, 34, 36], "lamport": [0, 3, 5, 10, 20, 21, 23, 28, 29, 31, 36], "data": [0, 1, 2, 3, 6, 8, 10, 12, 13, 14, 16, 17, 18, 20, 21, 27, 28, 29, 31, 33], "owner": [0, 20, 23, 27, 29, 31, 33], "execut": [0, 3, 5, 10, 12, 28, 31], "fals": [0, 11, 12, 16, 20, 27, 28, 31, 36], "rent_epoch": 0, "ellipsi": [0, 2], "an": [0, 3, 6, 7, 8, 10, 11, 12, 15, 16, 20, 21, 23, 27, 28, 30, 31, 32], "i": [0, 3, 5, 7, 8, 10, 12, 13, 14, 15, 16, 22, 24, 27, 28, 30, 32, 33, 34, 36], "store": [0, 3, 12], "chain": [0, 12], "paramet": [0, 1, 2, 3, 4, 6, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 25, 27, 28, 29, 31], "int": [0, 1, 3, 6, 10, 11, 12, 16, 18, 20, 21, 22, 23, 27, 28], "byte": [0, 1, 2, 3, 5, 6, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 27, 28, 29, 30, 31, 32, 34, 36], "held": [0, 10], "thi": [0, 1, 3, 5, 10, 11, 12, 14, 15, 16, 21, 22, 24, 27, 28, 31, 33, 36], "pubkei": [0, 3, 9, 10, 11, 12, 13, 14, 16, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 36], "The": [0, 2, 3, 5, 6, 8, 10, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 27, 28, 30, 31, 33, 34, 35], "program": [0, 1, 3, 5, 9, 10, 12, 15, 16, 18, 20, 24, 25, 28, 29, 30, 32, 34, 36], "own": [0, 10, 16, 20, 25, 31, 36], "If": [0, 3, 12, 16, 27, 28, 31, 33], "load": [0, 12, 31], "bool": [0, 6, 10, 11, 12, 15, 16, 22, 27, 28], "whether": [0, 6, 11, 12, 16, 31, 33], "": [0, 3, 4, 8, 10, 11, 12, 13, 14, 15, 22, 23, 24, 27, 28, 30, 31, 36], "contain": [0, 3, 12, 16, 24, 28, 31, 36], "now": [0, 31], "read": [0, 10, 12, 24], "onli": [0, 1, 10, 12, 15, 16, 27, 28], "default": [0, 3, 4, 6, 8, 12, 13, 14, 15, 16, 18, 20, 22, 23, 25, 27, 28, 30, 31, 35, 36], "epoch_info": 0, "epoch": [0, 3, 9, 16, 20, 21, 24, 31], "which": [0, 3, 6, 10, 12, 15, 16, 20, 23, 28, 31, 36], "next": [0, 36], "ow": 0, "rent": [0, 3, 9, 24, 27, 29], "0": [0, 2, 11, 12, 14, 20, 21, 22, 31, 35], "type": [0, 3, 6, 8, 10, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 25, 27, 28, 35], "static": [0, 1, 2, 3, 4, 6, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 27, 28, 29, 31, 34], "creat": [0, 3, 4, 6, 8, 10, 11, 12, 13, 14, 15, 16, 22, 23, 27, 28, 31, 33, 36], "new": [0, 3, 4, 5, 6, 11, 12, 13, 14, 15, 16, 22, 23, 27, 28, 32], "return": [0, 1, 2, 3, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 25, 27, 28, 29], "from_byt": [0, 1, 2, 3, 6, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 27, 28, 29, 31, 33, 36], "deseri": [0, 1, 2, 3, 6, 10, 12, 13, 16, 17, 18, 20, 21, 27, 28, 29, 36], "from": [0, 1, 2, 3, 4, 6, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 27, 28, 29, 30, 31, 32, 34, 35, 36], "serial": [0, 1, 2, 3, 6, 7, 10, 12, 13, 16, 17, 18, 20, 21, 24, 27, 28, 29, 30, 36], "object": [0, 1, 2, 3, 4, 6, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 27, 28, 29, 31, 33, 35], "from_json": [0, 1, 2, 3, 6, 8, 10, 11, 12, 13, 15, 16, 17, 18, 20, 21, 22, 28, 29, 35], "raw": [0, 1, 2, 3, 6, 8, 10, 11, 12, 13, 15, 16, 17, 18, 20, 21, 22, 28, 29, 32, 35], "build": [0, 1, 2, 3, 6, 8, 10, 11, 12, 13, 15, 16, 17, 18, 20, 21, 22, 28, 29, 30, 31, 32], "json": [0, 1, 2, 3, 6, 7, 8, 10, 11, 12, 13, 15, 16, 17, 18, 20, 21, 22, 28, 29, 35], "string": [0, 1, 2, 3, 4, 6, 8, 10, 11, 12, 13, 15, 16, 17, 18, 20, 21, 22, 28, 29, 31, 35], "to_json": [0, 1, 2, 3, 6, 8, 10, 11, 12, 13, 15, 16, 17, 18, 20, 21, 22, 28, 29, 35], "convert": [0, 1, 2, 3, 6, 8, 10, 11, 12, 13, 15, 16, 17, 18, 20, 21, 22, 28, 29, 32, 35], "accountjson": [0, 9], "where": [0, 12, 28, 31, 33], "pars": [0, 1, 21, 29, 30, 32], "solder": [0, 8, 10, 11, 12, 13, 14, 15, 20, 21, 22, 23, 28, 31, 33, 34, 35, 36], "account_decod": [0, 20], "parsedaccount": [0, 1, 9, 29], "uidatasliceconfig": [1, 9, 16, 20], "offset": [1, 6, 18, 20], "length": [1, 6, 8, 11, 12, 15, 20, 22, 28], "configur": [1, 6, 16, 20], "limit": [1, 3, 5, 16, 20, 31], "skip": [1, 16], "mani": [1, 3, 20, 23, 31], "begin": [1, 6, 18, 28, 33], "uiaccountencod": [1, 9, 16, 20], "encod": [1, 8, 10, 11, 16, 18, 20, 22, 29], "option": [1, 3, 4, 12, 16, 20, 21, 27, 28, 29], "base58": [1, 11, 15, 20, 22, 29, 33], "base64": [1, 20, 29], "base64zstd": [1, 20], "binari": [1, 18, 29], "jsonpars": [1, 29], "space": [1, 23], "uitokenamount": [1, 9], "ui_amount": 1, "decim": [1, 27], "amount": [1, 21, 23, 27, 31], "ui_amount_str": 1, "addresslookuptableaccount": [2, 9, 12], "kei": [2, 10, 11, 12, 15, 23, 27, 28, 32, 33, 36], "definit": 2, "us": [2, 3, 4, 8, 10, 12, 13, 15, 16, 23, 27, 28, 30, 32, 33, 34, 35, 36], "messagev0": [2, 9, 12, 20, 28, 35, 36], "addresslookupt": [2, 9], "meta": [2, 3, 29, 31], "get_active_addresses_len": 2, "current_slot": 2, "slot_hash": [2, 9, 24], "index": [2, 10, 12, 28, 29], "lookuptablemeta": [2, 9], "deactivation_slot": 2, "last_extended_slot": 2, "last_extended_slot_start_index": 2, "author": [2, 12, 15, 23, 27, 31], "none": [2, 3, 12, 16, 17, 20, 21, 23, 25, 27, 28, 29, 31], "pad": 2, "is_act": 2, "statu": [2, 3, 9, 16], "lookuptablestatusfieldless": [2, 9], "activ": [2, 3, 30], "deactiv": [2, 23], "lookuptablestatusdeactiv": [2, 9], "remaining_block": 2, "remaining_slot": 2, "slothash": [2, 9, 24], "derive_lookup_table_address": [2, 9], "authority_address": [2, 23], "recent_block_slot": 2, "except": [3, 7, 8, 15, 28], "banksclienterror": [3, 9], "rais": [3, 7, 8, 14, 15, 28, 31], "when": [3, 7, 8, 10, 12, 15, 28, 32], "banksclient": [3, 9, 31], "encount": [3, 7, 8, 28], "error": [3, 8, 9, 19, 21, 28], "A": [3, 6, 8, 10, 11, 12, 13, 14, 15, 20, 21, 27, 28, 29, 31], "client": [3, 10, 28, 30, 31], "ledger": [3, 12, 16, 28], "state": [3, 4, 9, 16, 20, 24, 26, 28, 31], "perspect": 3, "arbitrari": [3, 32], "valid": [3, 10, 12, 14, 15, 16, 21, 22, 27, 28, 30, 32, 34], "send": [3, 16, 20, 32], "transact": [3, 5, 7, 9, 10, 12, 13, 16, 20, 21, 23, 24, 30, 31, 32], "queri": [3, 4, 16, 20], "account": [3, 9, 10, 12, 15, 16, 18, 20, 21, 23, 24, 25, 27, 28, 29, 30, 32, 36], "among": 3, "other": [3, 15, 22, 24, 28, 30, 32], "thing": [3, 30, 31], "start": [3, 6, 9, 16, 20, 21, 31], "initi": [3, 21, 23, 27, 31], "get_account": [3, 31], "address": [3, 9, 12, 15, 16, 20, 21, 23, 25, 32], "commit": [3, 9, 12, 16, 20, 21, 28, 35], "given": [3, 6, 8, 12, 15, 16, 22, 24, 25, 28, 33], "slot": [3, 6, 16, 17, 20, 21, 24, 29, 31], "correspond": [3, 15], "level": [3, 16, 29], "found": [3, 16, 31], "look": 3, "up": [3, 31], "commitmentlevel": [3, 4, 9, 16, 20, 35], "exist": [3, 31], "get_bal": [3, 31], "balanc": [3, 10, 23], "get_block_height": 3, "get": [3, 6, 11, 14, 28, 31, 33], "current": [3, 16, 21, 23, 24, 31], "block": [3, 12, 20, 21], "height": [3, 21], "get_clock": [3, 31], "cluster": 3, "clock": [3, 9, 24, 31], "get_fee_for_messag": 3, "messag": [3, 9, 10, 11, 13, 14, 17, 20, 21, 22, 24, 28, 29, 30, 31, 32, 35, 36], "fee": [3, 5, 10, 12, 20, 24, 28, 29], "check": [3, 4, 12, 15, 16, 20, 22, 28, 32, 33], "get_latest_blockhash": [3, 36], "latest": [3, 12, 28, 36], "blockhash": [3, 8, 12, 16, 20, 21, 24, 28, 29, 30, 31, 36], "last": [3, 12, 16, 36], "tupl": [3, 15, 23, 28], "hash": [3, 9, 12, 15, 16, 20, 21, 24, 28, 30, 36], "get_rent": 3, "get_slot": 3, "ha": [3, 10, 12, 14, 15, 27, 28, 31, 32, 36], "reach": 3, "get_transaction_statu": 3, "signatur": [3, 9, 10, 11, 12, 13, 14, 16, 20, 21, 28, 29, 33, 36], "match": [3, 10, 12, 18, 31], "first": [3, 12, 16, 28, 31, 33], "mai": [3, 10, 12, 15, 27, 30], "becaus": [3, 10, 15, 31, 36], "wa": [3, 10, 12, 31, 33], "expir": [3, 16], "pai": [3, 5, 10, 12, 28], "had": 3, "insuffici": 3, "fund": [3, 23, 31], "note": [3, 10, 16, 24, 30, 31, 34], "server": [3, 30, 31], "rare": 3, "full": [3, 21, 29], "histori": [3, 24], "method": [3, 12, 16, 20, 21, 22, 28, 31, 34, 35, 36], "been": [3, 14, 27, 28, 31], "discard": 3, "transactionstatu": [3, 9, 29], "get_transaction_status": 3, "same": [3, 10, 12, 15, 23, 24, 28], "multipl": [3, 5, 12, 28, 35], "sequenc": [3, 12, 15, 16, 20, 21, 23, 27, 28], "status": 3, "list": [3, 10, 11, 12, 16, 20, 21, 22, 23, 27, 28, 35], "process_transact": [3, 31], "process": [3, 4, 10, 12, 20, 21, 24, 29, 31, 35], "metadata": [3, 10], "ani": [3, 10, 12, 16, 28, 31], "versionedtransact": [3, 9, 20, 28, 31, 36], "result": [3, 12, 15, 16, 17, 20, 21, 28, 35], "bankstransactionresultwithmeta": [3, 9], "send_transact": [3, 36], "immedi": 3, "simulate_transact": [3, 31], "simul": [3, 16, 20], "programtestcontext": [3, 9], "call": [3, 5, 10, 11, 12, 15, 28, 31, 33, 35], "recent": [3, 12, 16, 24, 28], "payer": [3, 10, 12, 20, 28, 30, 31, 36], "keypair": [3, 9, 12, 14, 20, 22, 28, 30, 31, 32, 34, 36], "banks_client": [3, 31], "test": [3, 8, 15, 32, 34], "increment_vote_account_credit": 3, "vote_account_address": 3, "number_of_credit": 3, "manual": [3, 28], "increment": [3, 21], "vote": [3, 16, 29], "credit": 3, "specifi": [3, 10, 12, 16, 18, 28], "addess": 3, "how": [3, 20, 31], "last_blockhash": [3, 31], "regist": 3, "set_account": [3, 31], "overwrit": [3, 31], "subvert": 3, "normal": 3, "runtim": [3, 10, 12, 15], "make": [3, 30, 31], "easier": [3, 31], "set": [3, 5, 12, 16, 23, 24, 28, 31], "artifici": 3, "situat": 3, "would": [3, 31], "difficult": 3, "replic": 3, "individu": [3, 12], "bewar": 3, "can": [3, 12, 15, 16, 21, 23, 31, 33, 35, 36], "reachabl": 3, "write": [3, 10, 12, 32], "set_clock": [3, 31], "sysvar": [3, 9, 31], "set_rent": 3, "warp_to_slot": [3, 31], "warp_slot": 3, "forc": 3, "work": [3, 31], "bank": [3, 4, 16, 20, 24, 31], "ahead": 3, "warp": 3, "one": [3, 10, 12, 23, 28, 31, 35, 36], "bankstransactionmeta": [3, 9], "info": [3, 16], "fail": [3, 10, 28, 31], "transactionerrortyp": 3, "log_messag": [3, 29, 31], "compute_units_consum": [3, 29, 31], "return_data": [3, 21, 29], "number": [3, 6, 12, 16, 20, 21, 24, 27, 28], "comput": [3, 9, 12, 28, 31], "unit": [3, 5, 16, 28, 31], "consum": [3, 5], "log": [3, 20, 21, 27, 31], "written": [3, 10, 30], "dure": [3, 7, 10, 27, 28], "str": [3, 8, 11, 15, 18, 20, 21, 22, 23, 35], "present": [3, 27, 28, 31], "transactionreturndata": [3, 9, 29], "compute_max_unit": [3, 31], "transaction_account_lock_limit": [3, 31], "spin": [3, 31], "banksserv": [3, 31], "deploi": [3, 32], "add": [3, 31], "instruct": [3, 9, 12, 20, 23, 24, 28, 29, 30, 31, 36], "program_nam": 3, "program_id": [3, 10, 12, 15, 16, 20, 23, 28, 29, 30, 31, 34], "indic": [3, 10, 12], "environ": [3, 31], "see": [3, 12, 28, 31], "main": [3, 28, 30], "doc": [3, 12, 28], "more": [3, 10, 12, 24, 28, 30, 31], "explan": 3, "account_object": 3, "what": [3, 31, 36], "overrid": 3, "lock": [3, 12, 31], "stuff": [3, 30], "you": [3, 12, 30, 31, 33, 36], "ll": [3, 31], "need": [3, 12, 28, 30, 31, 33, 36], "interact": [3, 10, 11, 30], "start_anchor": [3, 9, 31], "path": [3, 11, 31], "extra_program": 3, "anchor": [3, 32], "workspac": [3, 31], "all": [3, 5, 10, 12, 15, 16, 20, 28, 30, 36], "pathlib": [3, 31], "root": [3, 21, 31], "project": [3, 31], "extra": [3, 15, 20, 31], "alongsid": 3, "commitmentconfig": [4, 9], "wrapper": [4, 22, 33], "confirm": [4, 20, 29], "instanc": [4, 16, 28, 31], "final": [4, 16, 20, 23, 24, 29], "from_str": [4, 8, 15, 20, 22, 31, 33, 34], "is_at_least_confirm": 4, "least": 4, "is_confirm": 4, "is_fin": 4, "rpc": [4, 9, 16, 20, 21, 29, 30, 31, 32], "request": [4, 5, 9, 12, 14, 16, 19, 21, 29, 30, 32], "request_heap_fram": [5, 9], "bytes_": [5, 18, 20], "specif": [5, 12, 15, 16, 31, 33], "wide": 5, "heap": 5, "region": 5, "size": 5, "valu": [5, 10, 12, 17, 21, 27, 29, 35], "must": [5, 10, 12, 15, 16, 23, 28, 31], "1024": 5, "appli": [5, 20], "each": [5, 6, 12, 15, 23, 28, 30], "includ": [5, 8, 10, 12, 15, 16, 22, 28, 31], "cpi": 5, "set_compute_unit_limit": [5, 9], "allow": [5, 10, 12, 24, 28, 33], "set_compute_unit_pric": [5, 9], "micro_lamport": 5, "price": 5, "micro": 5, "higher": 5, "priorit": 5, "epochschedul": [6, 9, 24], "slots_per_epoch": 6, "maximum": [6, 16, 20], "custom": 6, "leader_schedule_slot_offset": 6, "warmup": 6, "first_normal_epoch": 6, "basic": [6, 28], "log2": 6, "minimum_slots_per_epoch": 6, "first_normal_slot": 6, "2": [6, 12, 20, 21, 35], "pow": 6, "1": [6, 10, 11, 12, 14, 15, 16, 20, 21, 23, 28, 30, 31, 35], "get_epoch": 6, "get_epoch_and_slot_index": 6, "get_first_slot_in_epoch": 6, "get_last_slot_in_epoch": 6, "get_leader_schedule_epoch": 6, "should": [6, 10, 12, 28, 30, 32, 36], "save": 6, "off": [6, 15, 34], "inform": [6, 16, 21, 24], "about": [6, 21, 28, 31], "staker": 6, "get_slots_in_epoch": 6, "befor": [6, 12, 16, 20], "calcul": [6, 15, 20, 23, 24], "leader": [6, 16, 20, 24], "short": [6, 23], "grow": 6, "without_warmup": 6, "bincodeerror": [7, 9], "rust": [7, 28, 30], "bincod": [7, 10], "librari": [7, 30], "de": 7, "signererror": [7, 9, 14], "sign": [7, 11, 12, 14, 15, 20, 22, 23, 28, 30, 32], "cborerror": [7, 9], "cbor": 7, "serdejsonerror": [7, 9], "hash_byt": 8, "sha": 8, "256": 8, "most": [8, 10, 12, 16, 24, 28, 31], "commonli": 8, "32": [8, 11, 14, 15, 20, 33], "exampl": [8, 10, 11, 12, 14, 15, 20, 21, 22, 23, 28, 32, 36], "import": [8, 10, 11, 12, 14, 15, 20, 21, 22, 23, 28, 30, 31, 33, 34, 35, 36], "11111111111111111111111111111111": [8, 15, 20, 23], "raw_byt": [8, 11, 22], "construct": [8, 10, 12, 13, 14, 15, 22, 23, 28, 36], "equival": [8, 15, 22], "__init__": [8, 15, 22, 28], "sake": [8, 15, 16, 22], "consist": [8, 15, 16, 22, 33], "base": [8, 15, 20, 23, 27, 30], "58": 8, "4uqevj5tqviqh7ywwgstvkeg1zmhx6uasjtwcjziofm": 8, "val": 8, "sha256": 8, "b": [8, 11, 14, 15, 20, 22, 31, 33, 34, 36], "foo": 8, "3ymapqcucjxdwprbjfr5mjcpthqfg8pux1txqrem35jj": 8, "new_uniqu": [8, 10, 12, 15, 22, 23, 28, 31, 36], "uniqu": [8, 15], "benchmark": [8, 15], "parsehasherror": [8, 9], "modul": [9, 19, 26, 28, 30, 31, 35], "decod": [9, 22, 23], "lookup": [9, 12, 23], "tabl": [9, 12, 23], "bankrun": [9, 30, 32], "config": [9, 19, 20], "budget": 9, "schedul": [9, 10, 16, 24], "accountmeta": [9, 10, 12, 20, 28, 31, 36], "compiledinstruct": [9, 10, 12], "messagehead": [9, 12, 28], "messageaddresstablelookup": [9, 12], "to_bytes_vers": [9, 12, 36], "from_bytes_vers": [9, 12], "null": [9, 20, 36], "signer": [9, 10, 12, 14, 15, 27, 28, 29, 36], "nullsign": [9, 13, 36], "presign": [9, 28], "filter": [9, 16, 19, 20], "respons": [9, 12, 16, 19, 28, 30, 32], "system": [9, 31, 36], "id": [9, 10, 12, 15, 16, 20, 21, 23, 25, 28, 31, 35], "transfer_mani": [9, 23], "create_nonce_account": [9, 23], "create_nonce_account_with_se": [9, 23], "createaccountparam": [9, 23], "create_account": [9, 23], "decode_create_account": [9, 23], "createaccountwithseedparam": [9, 23], "create_account_with_se": [9, 23], "decode_create_account_with_se": [9, 23], "assignparam": [9, 23], "assign": [9, 14, 23], "decode_assign": [9, 23], "assignwithseedparam": [9, 23], "assign_with_se": [9, 23], "decode_assign_with_se": [9, 23], "transferparam": [9, 23, 36], "transfer": [9, 23, 31, 36], "decode_transf": [9, 23], "transferwithseedparam": [9, 23], "transfer_with_se": [9, 23], "decode_transfer_with_se": [9, 23], "allocateparam": [9, 23], "alloc": [9, 23], "decode_alloc": [9, 23], "allocatewithseedparam": [9, 23], "allocate_with_se": [9, 23], "decode_allocate_with_se": [9, 23], "initializenonceaccountparam": [9, 23], "initialize_nonce_account": [9, 23], "decode_initialize_nonce_account": [9, 23], "advancenonceaccountparam": [9, 23], "advance_nonce_account": [9, 23], "decode_advance_nonce_account": [9, 23], "withdrawnonceaccountparam": [9, 23], "withdraw_nonce_account": [9, 23], "decode_withdraw_nonce_account": [9, 23], "authorizenonceaccountparam": [9, 23], "authorize_nonce_account": [9, 23], "decode_authorize_nonce_account": [9, 23], "closelookuptableparam": [9, 23], "close_lookup_t": [9, 23], "createlookuptableparam": [9, 23], "create_lookup_t": [9, 23], "createlookuptablesignedparam": [9, 23], "create_lookup_table_sign": [9, 23], "deactivatelookuptableparam": [9, 23], "deactivate_lookup_t": [9, 23], "extendlookuptableparam": [9, 23], "extend_lookup_t": [9, 23], "freezelookuptableparam": [9, 23], "freeze_lookup_t": [9, 23], "recent_blockhash": [9, 12, 16, 24, 28, 29, 36], "reward": [9, 16, 20, 24, 29], "stake_histori": [9, 24], "epoch_schedul": [9, 24], "spl": [9, 30, 31], "token": [9, 16, 20, 30, 31], "associ": [9, 15, 26, 27, 28, 31], "transactiondetail": [9, 16, 20, 29], "uitransactionencod": [9, 16, 20, 29], "transactionbinaryencod": [9, 29], "uicompiledinstruct": [9, 29], "uiaddresstablelookup": [9, 29], "uirawmessag": [9, 29], "parsedaccountsourc": [9, 29], "parsedinstruct": [9, 29], "uipartiallydecodedinstruct": [9, 29], "uiparsedmessag": [9, 29], "uitransact": [9, 29], "uiinnerinstruct": [9, 29], "uiloadedaddress": [9, 29], "uiaccountslist": [9, 29], "uitransactiontokenbal": [9, 29], "rewardtyp": [9, 29], "uitransactionstatusmeta": [9, 29], "encodedtransactionwithstatusmeta": [9, 29], "instructionerrorcustom": [9, 29], "instructionerrorborshio": [9, 29], "instructionerrorfieldless": [9, 29], "transactionerrorinstructionerror": [9, 29], "transactionerrorduplicateinstruct": [9, 29], "transactionerrorinsufficientfundsforr": [9, 29], "transactionerrorfieldless": [9, 29], "transactionconfirmationstatu": [9, 29], "encodedconfirmedtransactionwithstatusmeta": [9, 29], "uiconfirmedblock": [9, 29], "legaci": [9, 12, 28, 36], "sanitizeerror": [9, 28], "transactionerror": [9, 28, 31], "is_sign": [10, 12, 28, 31], "is_writ": [10, 12, 31], "describ": [10, 12, 28], "singl": [10, 12, 20, 21, 35], "suppli": [10, 27], "mutat": 10, "either": [10, 20, 21, 28], "its": [10, 14, 15, 16, 28, 30], "writabl": [10, 12, 29], "solana": [10, 12, 15, 16, 21, 28, 32, 36], "parallel": [10, 12], "around": [10, 22, 31, 33], "ar": [10, 12, 15, 24, 28, 30, 31, 33, 34, 36], "care": [10, 15, 31], "taken": 10, "actual": [10, 30, 34, 36], "public": [10, 12, 15, 23, 27, 33, 34], "true": [10, 12, 15, 16, 20, 22, 27, 28, 31, 36], "requir": [10, 11, 12, 13, 15, 27, 28, 30], "from_pubkei": [10, 12, 23, 31, 36], "to_pubkei": [10, 12, 23, 31, 36], "instruction_data": [10, 12], "acc": 10, "direct": 10, "invoc": [10, 15], "modifi": 10, "addit": [10, 12, 15], "serv": [10, 24], "input": 10, "One": [10, 36], "submit": [10, 28], "also": [10, 31], "cross": [10, 15], "receiv": [10, 16, 20, 21, 23, 31, 36], "argument": [10, 16], "order": [10, 12, 31], "while": [10, 12, 24, 28, 31, 35], "agnost": 10, "format": [10, 12, 29, 33], "built": 10, "support": [10, 12, 30, 32, 35], "via": [10, 12, 36], "borsh": 10, "whose": [10, 13], "caus": 10, "subtract": 10, "ad": [10, 34], "long": 10, "mutabl": 10, "still": [10, 12, 28, 31], "These": [10, 28, 36], "affect": 10, "otherwis": [10, 12, 31], "ignor": 10, "coalesc": 10, "along": [10, 12, 15], "permiss": [10, 12], "some": [10, 12, 16, 28, 31], "separ": [10, 15], "field": [10, 12, 28, 29], "part": 10, "directli": [10, 35], "refer": [10, 12, 24, 30], "case": [10, 12, 28, 31], "thei": [10, 12, 15, 28, 30], "opaqu": 10, "pass": [10, 12, 15], "interpret": 10, "assert": [10, 11, 12, 14, 22, 28, 31, 33, 34, 35, 36], "program_id_index": [10, 12, 29], "compact": 10, "compon": 10, "multi": 10, "core": [10, 30], "It": [10, 15, 24, 28, 30, 35], "user": [10, 11, 27, 34], "arrai": [10, 11, 16, 21, 22, 33, 34], "vanilla": 11, "ed25519": [11, 15, 34], "pair": 11, "random": [11, 22], "64": [11, 22, 33], "from_base58_str": [11, 33], "recov": 11, "oject": 11, "x01": 11, "x8a": 11, "x88": 11, "xe3": 11, "xddt": 11, "t": [11, 12, 30, 31, 35, 36], "xf1": 11, "x95": 11, "xfdr": 11, "xdb": 11, "xba": 11, "r": [11, 12, 28], "xcag": 11, "xbf": 11, "x1d": [11, 14], "x94": 11, "x12": 11, "x1b": 11, "xf3t": 11, "xb4": 11, "x0fo": 11, "base58_str": 11, "2axdgyse4f2sz7tvmmzyhvufcojmxudvdhbcmiuso6iucxagjuckeqf21awznugxmwd4m9vgxuc3qiehxjqhact": 11, "kp": [11, 14, 22], "from_se": [11, 14, 20, 23, 33], "seed": [11, 15, 20, 23, 32, 34], "gener": [11, 15, 16, 23, 31, 32], "seed_byt": [11, 14], "from_seed_and_derivation_path": 11, "dpath": 11, "deriv": [11, 15, 23, 25, 34], "account_index": [11, 28, 29], "derivation_path": 11, "f": [11, 33, 34], "m": [11, 27], "44": 11, "501": 11, "from_seed_phrase_and_passphras": 11, "seed_phras": 11, "passphras": 11, "phrase": [11, 32], "secret": [11, 32], "pybip39": 11, "mnemon": [11, 32], "42": 11, "expected_keypair": 11, "is_interact": 11, "impelment": 11, "alwai": [11, 12, 13, 28, 34], "pubkey_byt": [11, 14, 15], "j": [11, 14], "xbc": [11, 14], "xce": [11, 14], "xb6": [11, 14], "xa4": [11, 14], "xa3": [11, 14], "xa8": [11, 14], "xd0": [11, 14], "o": [11, 14], "rse2": [11, 14], "x15w": [11, 14], "xe2c": [11, 14], "xa6": [11, 14], "xc0h": [11, 14], "xa1": [11, 14], "x8by": [11, 14], "xda": [11, 14], "sign_messag": [11, 13, 14, 22, 33, 36], "mesag": 11, "produc": [11, 13], "over": [11, 33], "provid": [11, 16, 18, 27, 28, 30], "msg": [11, 12, 21, 22, 31, 36], "hello": 11, "sig": [11, 14, 22, 36], "hex": [11, 15], "e1430c6ebd0d53573b5c803452174f8991ef5955e0906a09e8fdc7310459e9c82a402526748c3431fe7f0e5faafbf7e703234789734063ee42be17af16438d08": 11, "to_bytes_arrai": [11, 22], "u8": [11, 12, 22], "constructor": [12, 28], "accept": [12, 28], "cost": [12, 28], "In": [12, 28, 31], "caller": [12, 15, 28], "explicitli": [12, 28], "though": [12, 28, 30, 31], "so": [12, 23, 27, 28, 31], "knowledg": [12, 28], "both": [12, 28, 34, 36], "expect": [12, 14, 28], "redundantli": [12, 28], "strictli": [12, 28], "arbitrary_instruction_data": [12, 20, 28, 30], "replac": [12, 16, 20, 28, 30, 36], "real": [12, 20, 28, 30, 31, 36], "tx": [12, 20, 28, 30, 31, 36], "account_kei": [12, 28, 29, 36], "compile_instruct": 12, "ix": [12, 31, 36], "self": 12, "compil": [12, 28, 30], "has_dupl": 12, "duplic": [12, 29, 30], "blake3": [12, 28], "hash_raw_messag": 12, "message_byt": [12, 22], "header": [12, 28, 29], "identifi": [12, 23, 28], "atom": [12, 28], "succe": 12, "is_key_called_as_program": 12, "key_index": 12, "http": [12, 28], "sdk": [12, 28, 30], "solana_sdk": [12, 28], "struct": 12, "html": [12, 28], "is_upgradeable_loader_pres": 12, "maybe_execut": 12, "new_with_blockhash": [12, 20, 28, 31], "new_unsign": [12, 28], "new_with_compiled_instruct": [12, 28], "num_required_signatur": [12, 28], "num_readonly_signed_account": 12, "num_readonly_unsigned_account": 12, "consid": [12, 16], "those": [12, 31], "unsign": [12, 20, 28], "entri": [12, 16, 28], "new_with_nonc": 12, "nonce_account_pubkei": 12, "nonce_authority_pubkei": 12, "nonc": [12, 15, 23, 28], "advanc": [12, 23, 28], "close": [12, 23, 27], "durabl": 12, "extend": [12, 23], "time": [12, 16, 23, 24, 28, 32, 36], "between": [12, 15, 16], "submiss": 12, "blockchain": 12, "nonce_account": 12, "later": 12, "instruction_index": [12, 28], "particular": [12, 18], "posit": [12, 28], "program_index": 12, "program_posit": 12, "signer_kei": [12, 28], "organ": 12, "everi": [12, 24], "have": [12, 15, 22, 28, 30, 31, 33, 34, 36], "wherea": 12, "access": [12, 24, 31], "share": 12, "flat": 12, "them": 12, "poh": [12, 28], "sequenti": [12, 15], "3": [12, 30], "address_table_lookup": [12, 29], "v0": 12, "succinct": 12, "do": [12, 15, 16, 27, 31, 34, 36], "4": [12, 15, 21], "5": [12, 20, 31], "6": 12, "is_maybe_writ": 12, "we": [12, 31, 35, 36], "demot": 12, "dynam": [12, 31], "is_non_loader_kei": 12, "invok": 12, "sanit": [12, 28], "try_compil": [12, 28, 36], "address_lookup_table_account": [12, 36], "signabl": 12, "rang": [12, 16, 20, 21], "7": [12, 30], "ix_account": 12, "lookup_acc0": 12, "lookup_acc1": 12, "lookup_acc": 12, "writable_index": [12, 29], "readonly_index": [12, 29], "readonli": [12, 29], "repres": [12, 14, 27, 36], "version": [12, 16, 21, 28, 29, 36], "lead": 12, "want": [12, 30, 31, 36], "without": [12, 21, 23, 31], "versionedmessag": [12, 20], "implement": 13, "placehold": 13, "absente": 13, "simpli": 13, "extern": [14, 31], "perform": [14, 15, 30], "verif": [14, 28, 33], "against": 14, "upon": 14, "affirm": 14, "relationship": 14, "verifi": [14, 15, 16, 22, 28, 32], "invalid": [14, 15], "4vj9ju1bjje96fwsjkvhsmmfadcg4gpzqff4p3bklki": 15, "0101010101010101010101010101010101010101010101010101010101010101": 15, "create_program_address": 15, "pubkeyerror": 15, "bpfloader1111111111111111111111111111111111": 15, "3gf2kme9kic6fnvbmfg9i267ampvk37fewcip4egbfct": 15, "create_with_se": [15, 23], "anoth": [15, 23, 36], "default_public_kei": 15, "limber": 15, "chicken": 15, "45": [15, 33], "9h1hylcw5dznbvap8c5egq9z6phyjsh5mny83ipqqruq": 15, "find_program_address": [15, 34], "find": [15, 28, 34, 36], "bump": [15, 34], "pda": [15, 32], "form": 15, "ensur": [15, 27], "curv": [15, 34], "thu": [15, 34], "privat": [15, 32, 33], "invoke_sign": 15, "function": [15, 28, 30, 31, 33, 35], "second": 15, "element": [15, 28], "applic": 15, "carefulli": 15, "select": 15, "per": 15, "common": 15, "lie": [15, 34], "combin": [15, 35], "For": [15, 16, 31], "reason": [15, 28], "point": 15, "warn": 15, "wai": 15, "potenti": 15, "collis": 15, "mean": [15, 31], "abcdef": 15, "abc": [15, 20], "def": [15, 31], "ab": 15, "cd": 15, "ef": 15, "sinc": [15, 21, 30, 31], "chanc": 15, "local": 15, "develop": 15, "take": [15, 31, 34], "choos": 15, "collid": 15, "scheme": 15, "suscept": 15, "remedi": 15, "insert": 15, "e": [15, 34], "g": [15, 34], "transform": 15, "program_address": 15, "exwkucz3yju9tdvk39oga4twovsui75zdhh6yt7acpgq": 15, "255": 15, "retriev": [15, 22, 23], "obtain": 15, "is_on_curv": [15, 34], "randomli": 15, "rpcsignaturestatusconfig": [16, 19, 20], "search_transaction_histori": [16, 20], "getsignaturestatus": [16, 19, 20], "node": [16, 21, 31], "search": 16, "cach": 16, "rpcsendtransactionconfig": [16, 19, 20], "skip_preflight": 16, "preflight_commit": [16, 20], "max_retri": 16, "min_context_slot": [16, 20], "sendtransact": [16, 20], "preflight": 16, "retri": 16, "until": [16, 20, 31, 34], "minimum": 16, "evalu": 16, "rpcsimulatetransactionaccountsconfig": [16, 19, 20], "simulatetransact": [16, 20], "rpcsimulatetransactionconfig": [16, 19, 20], "sig_verifi": 16, "replace_recent_blockhash": 16, "inner_instruct": [16, 21, 29], "conflict": 16, "rpcrequestairdropconfig": [16, 19, 20], "requestairdrop": [16, 19, 20], "rpcleaderscheduleconfig": [16, 19, 20], "ident": [16, 20, 21, 35], "getleaderschedul": [16, 19, 20], "rpcblockproductionconfigrang": [16, 19, 20], "first_slot": [16, 20, 21], "last_slot": [16, 20, 21], "rpcblockproductionconfig": [16, 19, 20], "getblockproduct": [16, 19, 20], "rpcgetvoteaccountsconfig": [16, 19, 20], "vote_pubkei": [16, 21], "keep_unstaked_delinqu": [16, 20], "delinquent_slot_dist": 16, "getvoteaccount": [16, 19, 20], "out": 16, "delinqu": [16, 21], "stake": [16, 20, 24, 29], "behind": 16, "tip": 16, "fall": 16, "ecosystem": 16, "product": 16, "recommend": [16, 31], "rpclargestaccountsfilt": [16, 19, 20], "getlargestaccount": [16, 19, 20], "circul": [16, 20, 21], "noncircul": 16, "rpcsupplyconfig": [16, 19, 20], "exclude_non_circulating_accounts_list": [16, 20], "getsuppli": [16, 19, 20], "exclud": 16, "non": 16, "rpcepochconfig": [16, 19, 20], "honor": 16, "rpcaccountinfoconfig": [16, 19, 20], "data_slic": [16, 20], "getaccountinfo": [16, 19, 20], "optiona": 16, "rpcprogramaccountsconfig": [16, 19, 20], "account_config": 16, "with_context": 16, "sort_result": 16, "getprogramaccount": [16, 19, 20], "memcmp": [16, 18, 19, 20], "variou": 16, "meet": 16, "criteria": [16, 20], "wrap": [16, 27], "rpcrespons": 16, "rpctransactionlogsfilt": [16, 19, 20], "fieldless": 16, "logssubscrib": [16, 19, 20], "allwithvot": 16, "rpctransactionlogsfilterment": [16, 19, 20], "mention": [16, 20], "subscrib": 16, "rpctransactionlogsconfig": [16, 19, 20], "rpctokenaccountsfiltermint": [16, 19, 20], "mint": [16, 20, 25, 26, 27, 29, 31], "gettokenaccountsbi": 16, "rpctokenaccountsfilterprogramid": [16, 19, 20], "programid": [16, 20], "rpcsignaturesubscribeconfig": [16, 19, 20], "enable_received_notif": [16, 20], "signaturesubscrib": [16, 19, 20], "enabl": [16, 24, 33], "notif": [16, 21], "rpcblocksubscribefilt": [16, 19, 20], "blocksubscrib": [16, 19, 20], "rpcblocksubscribefilterment": [16, 19, 20], "rpcblocksubscribeconfig": [16, 19, 20], "transaction_detail": [16, 20], "show_reward": 16, "max_supported_transaction_vers": [16, 20], "detail": [16, 28, 29], "popul": [16, 20, 28], "max": [16, 31], "rpcsignaturesforaddressconfig": [16, 19, 20], "getsignaturesforaddress": [16, 19, 20], "backward": 16, "000": 16, "rpcblockconfig": [16, 19, 20], "getblock": [16, 19, 20], "rewards_onli": 16, "show": 16, "rewards_with_commit": 16, "rpctransactionconfig": [16, 19, 20], "gettransact": [16, 19, 20], "rpccontextconfig": [16, 19, 20], "context": [16, 21, 31], "rpccustomerrorfieldless": [17, 19], "nosnapshot": 17, "transactionhistorynotavail": 17, "transactionsignaturelenmismatch": 17, "transactionsignatureverificationfailur": 17, "blockcleanedup": [17, 19], "first_available_block": 17, "sendtransactionpreflightfailur": [17, 19], "blocknotavail": [17, 19], "blockcleanedupmessag": [17, 19], "sendtransactionpreflightfailuremessag": [17, 19], "blocknotavailablemessag": [17, 19], "nodeunhealthi": [17, 19], "num_slots_behind": 17, "nodeunhealthymessag": [17, 19], "transactionprecompileverificationfailur": [17, 19], "slotskip": [17, 19], "longtermstorageslotskip": [17, 19], "keyexcludedfromsecondaryindex": [17, 19], "index_kei": 17, "transactionprecompileverificationfailuremessag": [17, 19], "slotskippedmessag": [17, 19], "longtermstorageslotskippedmessag": [17, 19], "keyexcludedfromsecondaryindexmessag": [17, 19], "scanerror": [17, 19], "blockstatusnotavailableyet": [17, 19], "scanerrormessag": [17, 19], "blockstatusnotavailableyetmessag": [17, 19], "mincontextslotnotreach": [17, 19], "context_slot": 17, "mincontextslotnotreachedmessag": [17, 19], "unsupportedtransactionvers": [17, 19], "unsupportedtransactionversionmessag": [17, 19], "parseerrormessag": [17, 19], "invalidrequestmessag": [17, 19], "methodnotfoundmessag": [17, 19], "invalidparamsmessag": [17, 19], "internalerrormessag": [17, 19], "compar": 18, "seri": 18, "sequnc": 18, "rpcfiltertypefieldless": [18, 19], "tokenaccountst": [18, 26, 27, 31], "getbal": [19, 20], "getblockheight": [19, 20], "getblockcommit": [19, 20], "getblockswithlimit": [19, 20], "getblocktim": [19, 20], "getclusternod": [19, 20, 35], "getepochinfo": [19, 20], "getepochschedul": [19, 20, 35], "getfeeformessag": [19, 20, 35], "getfirstavailableblock": [19, 20], "getgenesishash": [19, 20], "gethealth": [19, 20], "gethighestsnapshotslot": [19, 20], "getident": [19, 20], "getinflationgovernor": [19, 20], "getinflationr": [19, 20], "getinflationreward": [19, 20], "getlatestblockhash": [19, 20], "getmaxretransmitslot": [19, 20], "getmaxshredinsertslot": [19, 20], "getminimumbalanceforrentexempt": [19, 20], "getmultipleaccount": [19, 20], "getrecentperformancesampl": [19, 20], "getslot": [19, 20], "getslotlead": [19, 20], "getstakeactiv": [19, 20], "gettokenaccountbal": [19, 20], "gettokenaccountsbydeleg": [19, 20], "gettokenaccountsbyown": [19, 20], "gettokenlargestaccount": [19, 20], "gettokensuppli": [19, 20], "gettransactioncount": [19, 20], "getvers": [19, 20], "isblockhashvalid": [19, 20], "minimumledgerslot": [19, 20], "sendlegacytransact": [19, 20], "sendrawtransact": [19, 20], "sendversionedtransact": [19, 20], "validatorexit": [19, 20], "accountsubscrib": [19, 20], "programsubscrib": [19, 20], "slotsubscrib": [19, 20], "slotsupdatessubscrib": [19, 20], "rootsubscrib": [19, 20], "votesubscrib": [19, 20], "accountunsubscrib": [19, 20], "blockunsubscrib": [19, 20], "logsunsubscrib": [19, 20], "programunsubscrib": [19, 20], "signatureunsubscrib": [19, 20], "simulatelegacytransact": [19, 20], "simulateversionedtransact": [19, 20], "slotunsubscrib": [19, 20], "slotsupdatesunsubscrib": [19, 20], "rootunsubscrib": [19, 20], "voteunsubscrib": [19, 20], "batch_to_json": [19, 20, 21, 35], "batch_from_json": [19, 20, 21, 35], "rpcresponsecontext": [19, 21], "getaccountinforesp": [19, 21], "getaccountinfojsonparsedresp": [19, 21], "getaccountinfomaybejsonparsedresp": [19, 21], "getbalanceresp": [19, 21], "rpcblockproduct": [19, 21], "rpcblockproductionrang": [19, 21], "getblockproductionresp": [19, 21], "getblockresp": [19, 21], "rpcblockcommit": [19, 21], "getblockcommitmentresp": [19, 21], "getblockheightresp": [19, 21, 35], "getblocksresp": [19, 21], "getblockswithlimitresp": [19, 21], "getblocktimeresp": [19, 21], "rpccontactinfo": [19, 21], "getclusternodesresp": [19, 21], "epochinfo": [19, 21], "getepochinforesp": [19, 21], "getepochscheduleresp": [19, 21], "getfeeformessageresp": [19, 21], "getfirstavailableblockresp": [19, 21, 35], "getgenesishashresp": [19, 21], "gethealthresp": [19, 21], "rpcsimulatetransactionresult": [19, 21], "rpcsnapshotslotinfo": [19, 21], "gethighestsnapshotslotresp": [19, 21], "rpcident": [19, 21, 35], "getidentityresp": [19, 21, 35], "rpcinflationgovernor": [19, 21], "getinflationgovernorresp": [19, 21], "rpcinflationr": [19, 21], "getinflationrateresp": [19, 21], "rpcinflationreward": [19, 21], "getinflationrewardresp": [19, 21], "rpcaccountbal": [19, 21], "getlargestaccountsresp": [19, 21], "rpcblockhash": [19, 21], "getlatestblockhashresp": [19, 21], "getleaderscheduleresp": [19, 21], "getmaxretransmitslotresp": [19, 21], "getmaxshredinsertslotresp": [19, 21], "getminimumbalanceforrentexemptionresp": [19, 21], "getmultipleaccountsresp": [19, 21], "getmultipleaccountsjsonparsedresp": [19, 21], "getmultipleaccountsmaybejsonparsedresp": [19, 21], "rpckeyedaccount": [19, 21], "rpckeyedaccountjsonpars": [19, 21], "getprogramaccountswithcontextresp": [19, 21], "getprogramaccountsresp": [19, 21], "getprogramaccountswithcontextjsonparsedresp": [19, 21], "getprogramaccountsjsonparsedresp": [19, 21], "getprogramaccountswithcontextmaybejsonparsedresp": [19, 21], "getprogramaccountsmaybejsonparsedresp": [19, 21], "rpcperfsampl": [19, 21], "getrecentperformancesamplesresp": [19, 21], "rpcconfirmedtransactionstatuswithsignatur": [19, 21], "getsignaturesforaddressresp": [19, 21], "getsignaturestatusesresp": [19, 21], "getslotresp": [19, 21], "getslotleaderresp": [19, 21], "getslotleadersresp": [19, 21], "rpcsuppli": [19, 21], "getsupplyresp": [19, 21], "gettokenaccountbalanceresp": [19, 21], "gettokenaccountsbydelegateresp": [19, 21], "gettokenaccountsbydelegatejsonparsedresp": [19, 21], "gettokenaccountsbyownerresp": [19, 21], "gettokenaccountsbyownerjsonparsedresp": [19, 21], "rpctokenaccountbal": [19, 21], "gettokenlargestaccountsresp": [19, 21], "gettokensupplyresp": [19, 21], "gettransactionresp": [19, 21], "gettransactioncountresp": [19, 21], "getversionresp": [19, 21], "rpcversioninfo": [19, 21], "rpcvoteaccountinfo": [19, 21], "rpcvoteaccountstatu": [19, 21], "getvoteaccountsresp": [19, 21], "isblockhashvalidresp": [19, 21], "minimumledgerslotresp": [19, 21], "requestairdropresp": [19, 21], "sendtransactionresp": [19, 21], "simulatetransactionresp": [19, 21], "validatorexitresp": [19, 21], "rpclogsrespons": [19, 21], "slotinfo": [19, 21], "slottransactionstat": [19, 21], "slotupdatefirstshredreceiv": [19, 21], "slotupdatecomplet": [19, 21], "slotupdatecreatedbank": [19, 21], "slotupdatedead": [19, 21], "slotupdateoptimisticconfirm": [19, 21], "slotupdateroot": [19, 21], "rpcvote": [19, 21], "rpcsignaturerespons": [19, 21], "subscriptionresult": [19, 21], "subscriptionerror": [19, 21], "accountnotif": [19, 21], "accountnotificationresult": [19, 21], "accountnotificationjsonpars": [19, 21], "accountnotificationjsonparsedresult": [19, 21], "blocknotif": [19, 21], "blocknotificationresult": [19, 21], "logsnotif": [19, 21], "logsnotificationresult": [19, 21], "programnotif": [19, 21], "programnotificationresult": [19, 21], "programnotificationjsonpars": [19, 21], "programnotificationjsonparsedresult": [19, 21], "signaturenotif": [19, 21], "signaturenotificationresult": [19, 21], "slotnotif": [19, 21], "slotupdatenotif": [19, 21], "rootnotif": [19, 21], "votenotif": [19, 21], "rpcblockupd": [19, 21], "blockstoreerror": [19, 21], "unsubscriberesult": [19, 21], "parse_websocket_messag": [19, 21], "parse_notif": [19, 21], "jsonrpc": [20, 21, 35], "param": [20, 21, 23, 35], "dataslic": 20, "mincontextslot": 20, "transaction_statu": 20, "none_": [20, 29], "123": 20, "maxsupportedtransactionvers": 20, "slot_rang": 20, "10": [20, 27, 31, 33], "15": [20, 33], "firstslot": 20, "lastslot": 20, "end": 20, "commitment_config": [20, 29, 35], "gaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa": [20, 35], "1234": 20, "filter_": 20, "acccount": 20, "50": [20, 31], "8": 20, "zstd": 20, "acc_info_config": 20, "datas": 20, "49": 20, "51": 20, "withcontext": 20, "sortresult": 20, "sampl": 20, "720": 20, "1111111111111111111111111111111111111111111111111111111111111111": [20, 22], "searchtransactionhistori": 20, "100": [20, 31], "excludenoncirculatingaccountslist": 20, "deleg": [20, 27, 31], "program_filt": 20, "tokenkegqfezyinwajbnbgkpfxcwubvf9ss623vq5da": 20, "req": 20, "rpctokenaccountsfilterwrapp": 20, "mint_filt": 20, "votepubkei": 20, "keepunstakeddelinqu": 20, "delinquentslotdist": 20, "airdrop": 20, "1000": [20, 23], "recentblockhash": 20, "aavkkdb3ulpido": 20, "ucbnocm": 20, "1dy8zac4vhxtxiccv8zpblupuozpprjwrilzjaokggacvsd1xlakstdvepfovgwbaaeciojj3xqj8zx9utstplpdcspncb8dlbib83siabqpb1waaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqeaa2fiyw": 20, "skippreflight": 20, "preflightcommit": 20, "maxretri": 20, "watch": 20, "showreward": 20, "mentionsaccountorprogram": 20, "being": [20, 24, 31], "union": 20, "enablereceivednotif": 20, "subscription_id": 20, "subscript": [20, 21], "cancel": 20, "possibli": 20, "account_encod": 20, "accounts_config": 20, "sigverifi": 20, "replacerecentblockhash": 20, "innerinstruct": 20, "aaeaaqkkiopddanxlf1s2y08ul1yymcjvx2uehvzdigbta9vxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaqadywjj": 20, "batch": [20, 21, 32], "requestbas": 20, "twopointoh": [20, 21], "api_vers": 21, "rpcerror": 21, "by_ident": 21, "total_stak": 21, "gossip": 21, "tpu": 21, "tpu_quic": 21, "pubsub": 21, "feature_set": 21, "shred_vers": 21, "tvu": 21, "tpu_forward": 21, "tpu_forwards_qu": 21, "tpu_vot": 21, "serve_repair": 21, "slot_index": 21, "slots_in_epoch": 21, "absolute_slot": 21, "block_height": [21, 29], "transaction_count": 21, "rel": 21, "absolut": 21, "total": [21, 27], "genesi": [21, 24], "err": [21, 29], "units_consum": 21, "replacement_blockhash": 21, "termin": 21, "taper": 21, "foundat": 21, "foundation_term": 21, "effective_slot": 21, "post_bal": [21, 29], "commiss": [21, 29], "last_valid_block_height": 21, "num_transact": 21, "num_slot": 21, "sample_period_sec": 21, "num_non_vote_transact": 21, "num_non_votetransact": 21, "memo": [21, 30, 31], "block_tim": [21, 29], "confirmation_statu": [21, 29], "non_circul": 21, "non_circulating_account": 21, "solana_cor": 21, "node_pubkei": 21, "activated_stak": 21, "epoch_vote_account": 21, "epoch_credit": 21, "last_vot": 21, "root_slot": 21, "parent": [21, 24], "num_transaction_entri": 21, "num_successful_transact": 21, "num_failed_transact": 21, "max_transactions_per_entri": 21, "timestamp": 21, "resp": 21, "1233": [21, 35], "parser": 21, "111": [21, 35], "websocket": 21, "websocketmessag": 21, "raw_multi": 21, "signature_byt": 22, "typic": 22, "similar": 22, "sigantur": 22, "suppos": [22, 36], "verfiic": 22, "success": 22, "macaroni": 22, "to_lamport": 23, "destin": 23, "sender": [23, 36], "nonce_pubkei": 23, "createaccount": 23, "initializenonceaccount": 23, "pre": [23, 28], "createaccountwithse": 23, "system_program": [23, 31, 36], "from_account": 23, "new_account": 23, "assignwithse": 23, "from_bas": 23, "from_own": 23, "transferwithse": 23, "65537": 23, "allocatewithse": 23, "authorized_pubkei": 23, "advancenonceaccount": 23, "withdraw": 23, "withdrawn": 23, "withdrawnonceaccount": 23, "new_author": 23, "authorizenonceaccount": 23, "lookup_table_address": 23, "recipient_address": 23, "dealloc": 23, "drain": 23, "recipi": [23, 28, 33], "closelookupt": 23, "payer_address": 23, "recent_slot": 23, "createlookupt": 23, "createlookuptablesign": 23, "cannot": 23, "again": 23, "unus": [23, 31], "elig": 23, "closur": 23, "after": [23, 31], "deactivatelookupt": 23, "new_address": 23, "atl": 23, "extendlookupt": 23, "freez": [23, 27], "never": 23, "empti": 23, "frozen": [23, 27], "freezelookupt": 23, "synthet": 24, "certain": [24, 31], "network": [24, 30], "sysvarc1ock11111111111111111111111111111111": 24, "sysvarrecentb1ockhashes11111111111111111111": 24, "sysvarrent111111111111111111111111111111111": 24, "resourc": [24, 31], "consumpt": 24, "sysvarrewards111111111111111111111111111111": 24, "sysvarstakehistory1111111111111111111111111": 24, "sysvarepochschedu1e111111111111111111111111": 24, "constant": 24, "etc": 24, "distinct": 24, "sysvar1nstructions1111111111111111111111111": 24, "introspect": 24, "sysvars1othashes111111111111111111111111111": 24, "updat": [24, 28], "get_associated_token_address": [25, 26, 31], "wallet_address": 25, "token_mint_address": 25, "token_program_id": [25, 31], "wallet": [25, 36], "tokenaccount": [26, 27, 31], "multisig": [26, 27], "mint_author": 27, "is_initi": 27, "freeze_author": 27, "creation": 27, "fix": 27, "further": 27, "digit": 27, "right": 27, "place": 27, "structur": 27, "uniniti": 27, "is_n": [27, 31], "delegated_amount": [27, 31], "close_author": [27, 31], "hold": [27, 28], "nativ": 27, "exempt": 27, "reserv": 27, "processor": 27, "sol": [27, 31, 32], "drop": 27, "below": 27, "threshold": 27, "n": 27, "from_keypair": 28, "document": 28, "fulli": 28, "vector": 28, "get_signing_keypair_posit": 28, "accounts_index": 28, "greater": [28, 31], "than": [28, 31], "equal": 28, "acount": 28, "compiled_instruct": 28, "message_data": 28, "new_signed_with_pay": 28, "signing_keypair": 28, "new_with_pay": 28, "partial_sign": 28, "subset": 28, "unlik": 28, "doe": [28, 30, 31, 35], "step": 28, "permit": 28, "differ": [28, 30], "record": 28, "prior": 28, "clear": 28, "malform": 28, "incorrect": 28, "replace_signatur": 28, "saniti": 28, "properti": 28, "To": [28, 33], "previous": 28, "partial": [28, 32], "remain": 28, "word": 28, "enough": 28, "possibl": [28, 31], "uses_durable_nonc": 28, "fn": 28, "verify_and_hash_messag": 28, "verify_with_result": 28, "from_legaci": 28, "into_legacy_transact": 28, "umbrella": 28, "stack_height": 29, "represent": 29, "pretti": 29, "lookupt": 29, "sourc": 29, "ui_token_amount": 29, "pre_bal": 29, "pre_token_bal": 29, "post_token_bal": 29, "loaded_address": 29, "transactionstatusmeta": 29, "code": [29, 30, 31], "accountalreadyiniti": 29, "accountborrowfail": 29, "accountborrowoutstand": 29, "accountdatasizechang": 29, "accountdatatoosmal": 29, "accountnotexecut": 29, "accountnotrentexempt": 29, "arithmeticoverflow": 29, "builtinprogramsmustconsumecomputeunit": 29, "calldepth": 29, "computationalbudgetexceed": 29, "duplicateaccountindex": 29, "duplicateaccountoutofsync": 29, "executableaccountnotrentexempt": 29, "executabledatamodifi": 29, "executablelamportchang": 29, "executablemodifi": 29, "externalaccountdatamodifi": 29, "externalaccountlamportspend": 29, "genericerror": 29, "illegalown": 29, "immut": 29, "incorrectauthor": 29, "incorrectprogramid": 29, "insufficientfund": 29, "invalidaccountdata": 29, "invalidaccountown": 29, "invalidargu": 29, "invaliderror": 29, "invalidinstructiondata": 29, "invalidrealloc": 29, "invalidse": 29, "maxaccountsdataallocationsexceed": 29, "maxaccountsexceed": 29, "maxinstructiontracelengthexceed": 29, "maxseedlengthexceed": 29, "missingaccount": 29, "missingrequiredsignatur": 29, "modifiedprogramid": 29, "notenoughaccountkei": 29, "privilegeescal": 29, "programenvironmentsetupfailur": 29, "programfailedtocompil": 29, "programfailedtocomplet": 29, "readonlydatamodifi": 29, "readonlylamportchang": 29, "reentrancynotallow": 29, "rentepochmodifi": 29, "unbalancedinstruct": 29, "uninitializedaccount": 29, "unsupportedprogramid": 29, "unsupportedsysvar": 29, "accountinus": 29, "accountloadedtwic": 29, "accountnotfound": 29, "addresslookuptablenotfound": 29, "alreadyprocess": 29, "blockhashnotfound": 29, "callchaintoodeep": 29, "clustermainten": 29, "insufficientfundsforfe": 29, "invalidaccountforfe": 29, "invalidaccountindex": 29, "invalidaddresslookuptabledata": 29, "invalidaddresslookuptableindex": 29, "invalidaddresslookuptableown": 29, "invalidloadedaccountsdatasizelimit": 29, "invalidprogramforexecut": 29, "invalidrentpayingaccount": 29, "invalidwritableaccount": 29, "maxloadedaccountsdatasizeexceed": 29, "missingsignatureforfe": 29, "programaccountnotfound": 29, "programcachehitmaxlimit": 29, "resanitizationneed": 29, "sanitizefailur": 29, "signaturefailur": 29, "toomanyaccountlock": 29, "unbalancedtransact": 29, "unsupportedvers": 29, "wouldexceedaccountdatablocklimit": 29, "wouldexceedaccountdatatotallimit": 29, "wouldexceedmaxaccountcostlimit": 29, "wouldexceedmaxblockcostlimit": 29, "wouldexceedmaxvotecostlimit": 29, "reward_typ": 29, "find_confirmation_statu": 29, "satisfies_commit": 29, "previous_blockhash": 29, "parent_slot": 29, "num_reward_partit": 29, "high": 30, "python": 30, "toolkit": 30, "robust": 30, "solut": [30, 31, 36], "follow": [30, 31], "problem": 30, "sort": 30, "help": [30, 35], "your": [30, 31, 33], "friend": 30, "integr": [30, 32], "altern": 30, "much": [30, 31], "conveni": [30, 31], "faster": [30, 31], "know": 30, "good": 30, "under": [30, 31], "hood": [30, 31], "extens": [30, 31], "api": 30, "doesn": [30, 31, 35, 36], "anyth": 30, "like": [30, 31], "kit": 30, "don": [30, 31], "featur": [30, 32], "just": [30, 31, 33], "whichev": 30, "pip": 30, "poetri": 30, "dev": 30, "depend": [30, 31], "shell": 30, "run": [30, 31], "maturin": 30, "fmt": 30, "lint": 30, "tutori": 30, "offer": 31, "quick": [31, 33], "power": 31, "yet": 31, "lightweight": 31, "peopl": 31, "often": [31, 33], "magnitud": 31, "far": 31, "worri": 31, "port": 31, "hog": 31, "machin": 31, "jump": [31, 33], "back": 31, "forth": 31, "ve": 31, "familiar": 31, "unfamiliar": 31, "talk": [31, 35], "thought": 31, "bore": 31, "name": 31, "he": [31, 36], "chose": 31, "instead": 31, "re": 31, "alic": [31, 36], "bob": [31, 36], "our": 31, "pytest": 31, "asyncio": 31, "instal": 31, "async": 31, "mark": 31, "test_transf": 31, "await": 31, "transfer_lamport": 31, "1_000_000": [31, 36], "balance_aft": 31, "here": [31, 35, 36], "bunch": 31, "haven": 31, "mess": 31, "bit": 31, "fussi": 31, "done": 31, "firstli": 31, "file": 31, "directori": 31, "fixtur": 31, "defin": 31, "bpf_out_dir": 31, "sbf_out_dir": 31, "variabl": 31, "awar": 31, "cargo": 31, "sbf": 31, "target": 31, "filenam": 31, "simpl": 31, "monorepo": 31, "test_log": 31, "logging111111111111111111111111111111111111": 31, "11": 31, "12": 31, "13": 31, "14": 31, "spl_example_log": 31, "let": [31, 36], "sim": 31, "sim_r": 31, "10_000": 31, "precis": 31, "chang": 31, "assumpt": 31, "give": [31, 34, 36], "folder": 31, "toml": 31, "automat": 31, "test_anchor": 31, "ctx": 31, "fg6pafpogxkysidmpwtk6w2bez7fefcykg476zpfsln": 31, "executable_account": 31, "reli": 31, "becom": 31, "avail": 31, "With": 31, "panic": 31, "unix_timestamp": 31, "januari": 31, "1st": 31, "1970": 31, "test_set_clock": 31, "solders_clock_exampl": 31, "anymor": 31, "turn": 31, "current_clock": 31, "epoch_start_timestamp": 31, "leader_schedule_epoch": 31, "ixs2": 31, "foobar": 31, "dedup": 31, "msg2": 31, "tx2": 31, "goe": 31, "through": 31, "futur": 31, "regardless": 31, "even": [31, 35], "usdc": 31, "fake": 31, "test_infinite_usdc_mint": 31, "usdc_mint": 31, "epjfwdd5aufqssqem2qn1xzybapc8g4weggkzwytdt1v": 31, "ata": 31, "usdc_to_own": 31, "1_000_000_000_000": 31, "token_acc": 31, "1_000_000_000": 31, "raw_account": 31, "raw_account_data": 31, "less": 31, "someth": 31, "life": 31, "behaviour": 31, "rather": 31, "wherev": 31, "window": 31, "musllinux": 31, "i686": 31, "everywher": 31, "restor": 32, "helper": 32, "repsons": 32, "minim": 32, "travel": 32, "platform": 32, "latter": 33, "fly": 33, "alreadi": 33, "secret_kei": 33, "174": 33, "47": 33, "154": 33, "16": 33, "202": 33, "193": 33, "206": 33, "113": 33, "199": 33, "190": 33, "53": 33, "133": 33, "169": 33, "175": 33, "31": 33, "56": 33, "222": 33, "138": 33, "189": 33, "224": 33, "216": 33, "117": 33, "173": 33, "149": 33, "73": 33, "251": 33, "237": 33, "246": 33, "185": 33, "186": 33, "82": 33, "177": 33, "240": 33, "148": 33, "69": 33, "241": 33, "227": 33, "167": 33, "80": 33, "141": 33, "89": 33, "121": 33, "35": 33, "172": 33, "247": 33, "68": 33, "226": 33, "218": 33, "48": 33, "63": 33, "176": 33, "109": 33, "168": 33, "238": 33, "135": 33, "print": [33, 34], "24pnhtantomhhoy3ftramhafcrj4uhqhzeeowrkdbr5p": 33, "invers": 33, "oper": 33, "b58_string": 33, "5maiicavjcmn9hs1o3eznqdehrwxo7pxiayez7kequviukauritmd8dresdrnjn8zd9mtmvhrvbjeg5vhyvgrahg": 33, "5pvyoaeurqhnmvu7dmfmhvcdnmteyxwfewc136gyhtkg": 33, "come": 33, "public_kei": 33, "mnemo": 33, "english": 33, "to_se": 33, "pill": 33, "tomorrow": 33, "foster": 33, "walnut": 33, "borrow": 33, "virtual": 33, "kick": 33, "shift": 33, "mutual": 33, "shoe": 33, "scatter": 33, "primari": 33, "sure": 33, "brown": 33, "fox": 33, "lazi": 33, "dog": 33, "5ondl3swdjjf1g9dzjiz4ynhxgszjaepukxvyejchzri": 34, "li": 34, "suitabl": 34, "off_curve_address": 34, "4bjxykfvg37zembbsaczjeqdptnx91kppxfjxrqrz48": 34, "Not": 34, "therefor": 34, "tri": 34, "g1dcnuqtsghehwdlcamryag8hf51echrlnuqkggkyasj": 34, "253": 34, "afejen5hhktkeqy2yfyphdqwq7dc7zbwu2ajmb3h8bru": 34, "go": 35, "strongli": 35, "2r1f4iwqvcb8m1dbajqufpebkqhy9hcvu4wuw2djbppn": 35, "isinst": 35, "two": 36, "kind": 36, "focu": 36, "choic": 36, "demonstr": 36, "fetch": 36, "py": 36, "pretend": 36, "hi": 36, "did": 36, "ap": 36, "got": 36, "stolen": 36, "her": 36, "dummi": 36, "she": 36, "who": 36, "null_sign": 36, "keypair0": 36, "keypair1": 36, "partially_sign": 36, "deserialized_messag": 36, "keypair1_sig_index": 36, "enumer": 36, "fully_sign": 36}, "objects": {"solders": [[0, 0, 0, "-", "account"], [1, 0, 0, "-", "account_decoder"], [2, 0, 0, "-", "address_lookup_table_account"], [3, 0, 0, "-", "bankrun"], [4, 0, 0, "-", "commitment_config"], [5, 0, 0, "-", "compute_budget"], [6, 0, 0, "-", "epoch_schedule"], [7, 0, 0, "-", "errors"], [8, 0, 0, "-", "hash"], [10, 0, 0, "-", "instruction"], [11, 0, 0, "-", "keypair"], [12, 0, 0, "-", "message"], [13, 0, 0, "-", "null_signer"], [14, 0, 0, "-", "presigner"], [15, 0, 0, "-", "pubkey"], [22, 0, 0, "-", "signature"], [23, 0, 0, "-", "system_program"], [24, 0, 0, "-", "sysvar"], [28, 0, 0, "-", "transaction"], [29, 0, 0, "-", "transaction_status"]], "solders.account": [[0, 1, 1, "", "Account"], [0, 1, 1, "", "AccountJSON"]], "solders.account.Account": [[0, 2, 1, "", "data"], [0, 3, 1, "", "default"], [0, 2, 1, "", "executable"], [0, 3, 1, "", "from_bytes"], [0, 3, 1, "", "from_json"], [0, 2, 1, "", "lamports"], [0, 2, 1, "", "owner"], [0, 2, 1, "", "rent_epoch"], [0, 3, 1, "", "to_json"]], "solders.account.AccountJSON": [[0, 2, 1, "", "data"], [0, 2, 1, "", "executable"], [0, 3, 1, "", "from_bytes"], [0, 3, 1, "", "from_json"], [0, 2, 1, "", "lamports"], [0, 2, 1, "", "owner"], [0, 2, 1, "", "rent_epoch"], [0, 3, 1, "", "to_json"]], "solders.account_decoder": [[1, 1, 1, "", "ParsedAccount"], [1, 1, 1, "", "UiAccountEncoding"], [1, 1, 1, "", "UiDataSliceConfig"], [1, 1, 1, "", "UiTokenAmount"]], "solders.account_decoder.ParsedAccount": [[1, 3, 1, "", "from_bytes"], [1, 3, 1, "", "from_json"], [1, 2, 1, "", "parsed"], [1, 2, 1, "", "program"], [1, 2, 1, "", "space"], [1, 3, 1, "", "to_json"]], "solders.account_decoder.UiAccountEncoding": [[1, 2, 1, "", "Base58"], [1, 2, 1, "", "Base64"], [1, 2, 1, "", "Base64Zstd"], [1, 2, 1, "", "Binary"], [1, 2, 1, "", "JsonParsed"]], "solders.account_decoder.UiDataSliceConfig": [[1, 2, 1, "", "length"], [1, 2, 1, "", "offset"]], "solders.account_decoder.UiTokenAmount": [[1, 2, 1, "", "amount"], [1, 2, 1, "", "decimals"], [1, 3, 1, "", "from_bytes"], [1, 3, 1, "", "from_json"], [1, 3, 1, "", "to_json"], [1, 2, 1, "", "ui_amount"], [1, 2, 1, "", "ui_amount_string"]], "solders.address_lookup_table_account": [[2, 1, 1, "", "AddressLookupTable"], [2, 1, 1, "", "AddressLookupTableAccount"], [2, 1, 1, "", "LookupTableMeta"], [2, 1, 1, "", "LookupTableStatusDeactivating"], [2, 1, 1, "", "LookupTableStatusFieldless"], [2, 1, 1, "", "SlotHashes"], [2, 4, 1, "", "derive_lookup_table_address"]], "solders.address_lookup_table_account.AddressLookupTable": [[2, 2, 1, "", "addresses"], [2, 3, 1, "", "deserialize"], [2, 3, 1, "", "from_bytes"], [2, 3, 1, "", "from_json"], [2, 3, 1, "", "get_active_addresses_len"], [2, 3, 1, "", "lookup"], [2, 2, 1, "", "meta"], [2, 3, 1, "", "to_json"]], "solders.address_lookup_table_account.AddressLookupTableAccount": [[2, 2, 1, "", "addresses"], [2, 3, 1, "", "from_bytes"], [2, 3, 1, "", "from_json"], [2, 2, 1, "", "key"], [2, 3, 1, "", "to_json"]], "solders.address_lookup_table_account.LookupTableMeta": [[2, 2, 1, "", "authority"], [2, 2, 1, "", "deactivation_slot"], [2, 3, 1, "", "from_bytes"], [2, 3, 1, "", "from_json"], [2, 3, 1, "", "is_active"], [2, 2, 1, "", "last_extended_slot"], [2, 2, 1, "", "last_extended_slot_start_index"], [2, 2, 1, "", "padding"], [2, 3, 1, "", "status"], [2, 3, 1, "", "to_json"]], "solders.address_lookup_table_account.LookupTableStatusDeactivating": [[2, 3, 1, "", "from_bytes"], [2, 3, 1, "", "from_json"], [2, 2, 1, "", "remaining_slots"], [2, 3, 1, "", "to_json"]], "solders.address_lookup_table_account.LookupTableStatusFieldless": [[2, 2, 1, "", "Activated"], [2, 2, 1, "", "Deactivated"]], "solders.address_lookup_table_account.SlotHashes": [[2, 3, 1, "", "from_bytes"], [2, 3, 1, "", "from_json"], [2, 2, 1, "", "slot_hashes"], [2, 3, 1, "", "to_json"]], "solders.bankrun": [[3, 1, 1, "", "BanksClient"], [3, 5, 1, "", "BanksClientError"], [3, 1, 1, "", "BanksTransactionMeta"], [3, 1, 1, "", "BanksTransactionResultWithMeta"], [3, 1, 1, "", "ProgramTestContext"], [3, 4, 1, "", "start"], [3, 4, 1, "", "start_anchor"]], "solders.bankrun.BanksClient": [[3, 3, 1, "", "get_account"], [3, 3, 1, "", "get_balance"], [3, 3, 1, "", "get_block_height"], [3, 3, 1, "", "get_clock"], [3, 3, 1, "", "get_fee_for_message"], [3, 3, 1, "", "get_latest_blockhash"], [3, 3, 1, "", "get_rent"], [3, 3, 1, "", "get_slot"], [3, 3, 1, "", "get_transaction_status"], [3, 3, 1, "", "get_transaction_statuses"], [3, 3, 1, "", "process_transaction"], [3, 3, 1, "", "send_transaction"], [3, 3, 1, "", "simulate_transaction"]], "solders.bankrun.BanksTransactionMeta": [[3, 2, 1, "", "compute_units_consumed"], [3, 3, 1, "", "from_bytes"], [3, 3, 1, "", "from_json"], [3, 2, 1, "", "log_messages"], [3, 2, 1, "", "return_data"], [3, 3, 1, "", "to_json"]], "solders.bankrun.BanksTransactionResultWithMeta": [[3, 3, 1, "", "from_bytes"], [3, 3, 1, "", "from_json"], [3, 2, 1, "", "meta"], [3, 2, 1, "", "result"], [3, 3, 1, "", "to_json"]], "solders.bankrun.ProgramTestContext": [[3, 2, 1, "", "banks_client"], [3, 3, 1, "", "increment_vote_account_credits"], [3, 2, 1, "", "last_blockhash"], [3, 2, 1, "", "payer"], [3, 3, 1, "", "set_account"], [3, 3, 1, "", "set_clock"], [3, 3, 1, "", "set_rent"], [3, 3, 1, "", "warp_to_slot"]], "solders.commitment_config": [[4, 1, 1, "", "CommitmentConfig"], [4, 1, 1, "", "CommitmentLevel"]], "solders.commitment_config.CommitmentConfig": [[4, 2, 1, "", "commitment"], [4, 3, 1, "", "confirmed"], [4, 3, 1, "", "default"], [4, 3, 1, "", "finalized"], [4, 3, 1, "", "from_string"], [4, 3, 1, "", "is_at_least_confirmed"], [4, 3, 1, "", "is_confirmed"], [4, 3, 1, "", "is_finalized"], [4, 3, 1, "", "processed"]], "solders.commitment_config.CommitmentLevel": [[4, 2, 1, "", "Confirmed"], [4, 2, 1, "", "Finalized"], [4, 2, 1, "", "Processed"], [4, 3, 1, "", "default"], [4, 3, 1, "", "from_string"]], "solders.compute_budget": [[5, 4, 1, "", "request_heap_frame"], [5, 4, 1, "", "set_compute_unit_limit"], [5, 4, 1, "", "set_compute_unit_price"]], "solders.epoch_schedule": [[6, 1, 1, "", "EpochSchedule"]], "solders.epoch_schedule.EpochSchedule": [[6, 3, 1, "", "custom"], [6, 3, 1, "", "default"], [6, 2, 1, "", "first_normal_epoch"], [6, 2, 1, "", "first_normal_slot"], [6, 3, 1, "", "from_bytes"], [6, 3, 1, "", "from_json"], [6, 3, 1, "", "get_epoch"], [6, 3, 1, "", "get_epoch_and_slot_index"], [6, 3, 1, "", "get_first_slot_in_epoch"], [6, 3, 1, "", "get_last_slot_in_epoch"], [6, 3, 1, "", "get_leader_schedule_epoch"], [6, 3, 1, "", "get_slots_in_epoch"], [6, 2, 1, "", "leader_schedule_slot_offset"], [6, 2, 1, "", "slots_per_epoch"], [6, 3, 1, "", "to_json"], [6, 2, 1, "", "warmup"], [6, 3, 1, "", "without_warmup"]], "solders.errors": [[7, 5, 1, "", "BincodeError"], [7, 5, 1, "", "CborError"], [7, 5, 1, "", "SerdeJSONError"], [7, 5, 1, "", "SignerError"]], "solders.hash": [[8, 1, 1, "", "Hash"], [8, 5, 1, "", "ParseHashError"]], "solders.hash.Hash": [[8, 2, 1, "", "LENGTH"], [8, 3, 1, "", "default"], [8, 3, 1, "", "from_bytes"], [8, 3, 1, "", "from_json"], [8, 3, 1, "", "from_string"], [8, 3, 1, "", "hash"], [8, 3, 1, "", "new_unique"], [8, 3, 1, "", "to_json"]], "solders.instruction": [[10, 1, 1, "", "AccountMeta"], [10, 1, 1, "", "CompiledInstruction"], [10, 1, 1, "", "Instruction"]], "solders.instruction.AccountMeta": [[10, 3, 1, "", "from_bytes"], [10, 3, 1, "", "from_json"], [10, 2, 1, "", "is_signer"], [10, 2, 1, "", "is_writable"], [10, 2, 1, "", "pubkey"], [10, 3, 1, "", "to_json"]], "solders.instruction.CompiledInstruction": [[10, 2, 1, "", "accounts"], [10, 2, 1, "", "data"], [10, 3, 1, "", "from_bytes"], [10, 3, 1, "", "from_json"], [10, 3, 1, "", "program_id"], [10, 2, 1, "", "program_id_index"], [10, 3, 1, "", "to_json"]], "solders.instruction.Instruction": [[10, 2, 1, "", "accounts"], [10, 2, 1, "", "data"], [10, 3, 1, "", "from_bytes"], [10, 3, 1, "", "from_json"], [10, 2, 1, "", "program_id"], [10, 3, 1, "", "to_json"]], "solders.keypair": [[11, 1, 1, "", "Keypair"]], "solders.keypair.Keypair": [[11, 2, 1, "", "LENGTH"], [11, 3, 1, "", "from_base58_string"], [11, 3, 1, "", "from_bytes"], [11, 3, 1, "", "from_json"], [11, 3, 1, "", "from_seed"], [11, 3, 1, "", "from_seed_and_derivation_path"], [11, 3, 1, "", "from_seed_phrase_and_passphrase"], [11, 3, 1, "", "is_interactive"], [11, 3, 1, "", "pubkey"], [11, 3, 1, "", "secret"], [11, 3, 1, "", "sign_message"], [11, 3, 1, "", "to_bytes_array"], [11, 3, 1, "", "to_json"]], "solders.message": [[12, 1, 1, "", "Message"], [12, 1, 1, "", "MessageAddressTableLookup"], [12, 1, 1, "", "MessageHeader"], [12, 1, 1, "", "MessageV0"], [12, 4, 1, "", "from_bytes_versioned"], [12, 4, 1, "", "to_bytes_versioned"]], "solders.message.Message": [[12, 2, 1, "", "account_keys"], [12, 3, 1, "", "compile_instruction"], [12, 3, 1, "", "default"], [12, 3, 1, "", "from_bytes"], [12, 3, 1, "", "from_json"], [12, 3, 1, "", "has_duplicates"], [12, 3, 1, "", "hash"], [12, 3, 1, "", "hash_raw_message"], [12, 2, 1, "", "header"], [12, 2, 1, "", "instructions"], [12, 3, 1, "", "is_key_called_as_program"], [12, 3, 1, "", "is_signer"], [12, 3, 1, "", "is_upgradeable_loader_present"], [12, 3, 1, "", "maybe_executable"], [12, 3, 1, "", "new_with_blockhash"], [12, 3, 1, "", "new_with_compiled_instructions"], [12, 3, 1, "", "new_with_nonce"], [12, 3, 1, "", "program_id"], [12, 3, 1, "", "program_ids"], [12, 3, 1, "", "program_index"], [12, 3, 1, "", "program_position"], [12, 2, 1, "", "recent_blockhash"], [12, 3, 1, "", "signer_keys"], [12, 3, 1, "", "to_json"]], "solders.message.MessageAddressTableLookup": [[12, 2, 1, "", "account_key"], [12, 3, 1, "", "from_bytes"], [12, 3, 1, "", "from_json"], [12, 2, 1, "", "readonly_indexes"], [12, 3, 1, "", "to_json"], [12, 2, 1, "", "writable_indexes"]], "solders.message.MessageHeader": [[12, 2, 1, "", "LENGTH"], [12, 3, 1, "", "default"], [12, 3, 1, "", "from_bytes"], [12, 3, 1, "", "from_json"], [12, 2, 1, "", "num_readonly_signed_accounts"], [12, 2, 1, "", "num_readonly_unsigned_accounts"], [12, 2, 1, "", "num_required_signatures"], [12, 3, 1, "", "to_json"]], "solders.message.MessageV0": [[12, 2, 1, "", "account_keys"], [12, 2, 1, "", "address_table_lookups"], [12, 3, 1, "", "default"], [12, 3, 1, "", "from_bytes"], [12, 3, 1, "", "from_json"], [12, 3, 1, "", "hash"], [12, 3, 1, "", "hash_raw_message"], [12, 2, 1, "", "header"], [12, 2, 1, "", "instructions"], [12, 3, 1, "", "is_key_called_as_program"], [12, 3, 1, "", "is_maybe_writable"], [12, 3, 1, "", "is_non_loader_key"], [12, 3, 1, "", "is_signer"], [12, 2, 1, "", "recent_blockhash"], [12, 3, 1, "", "sanitize"], [12, 3, 1, "", "to_json"], [12, 3, 1, "", "try_compile"]], "solders.null_signer": [[13, 1, 1, "", "NullSigner"]], "solders.null_signer.NullSigner": [[13, 3, 1, "", "default"], [13, 3, 1, "", "from_bytes"], [13, 3, 1, "", "from_json"], [13, 3, 1, "", "pubkey"], [13, 3, 1, "", "sign_message"], [13, 3, 1, "", "to_json"]], "solders.presigner": [[14, 1, 1, "", "Presigner"]], "solders.presigner.Presigner": [[14, 3, 1, "", "default"], [14, 3, 1, "", "pubkey"], [14, 3, 1, "", "sign_message"]], "solders.pubkey": [[15, 1, 1, "", "Pubkey"]], "solders.pubkey.Pubkey": [[15, 2, 1, "", "LENGTH"], [15, 3, 1, "", "create_program_address"], [15, 3, 1, "", "create_with_seed"], [15, 3, 1, "", "default"], [15, 3, 1, "", "find_program_address"], [15, 3, 1, "", "from_bytes"], [15, 3, 1, "", "from_json"], [15, 3, 1, "", "from_string"], [15, 3, 1, "", "is_on_curve"], [15, 3, 1, "", "new_unique"], [15, 3, 1, "", "to_json"]], "solders.rpc": [[16, 0, 0, "-", "config"], [17, 0, 0, "-", "errors"], [18, 0, 0, "-", "filter"], [20, 0, 0, "-", "requests"], [21, 0, 0, "-", "responses"]], "solders.rpc.config": [[16, 1, 1, "", "RpcAccountInfoConfig"], [16, 1, 1, "", "RpcBlockConfig"], [16, 1, 1, "", "RpcBlockProductionConfig"], [16, 1, 1, "", "RpcBlockProductionConfigRange"], [16, 1, 1, "", "RpcBlockSubscribeConfig"], [16, 1, 1, "", "RpcBlockSubscribeFilter"], [16, 1, 1, "", "RpcBlockSubscribeFilterMentions"], [16, 1, 1, "", "RpcContextConfig"], [16, 1, 1, "", "RpcEpochConfig"], [16, 1, 1, "", "RpcGetVoteAccountsConfig"], [16, 1, 1, "", "RpcLargestAccountsFilter"], [16, 1, 1, "", "RpcLeaderScheduleConfig"], [16, 1, 1, "", "RpcProgramAccountsConfig"], [16, 1, 1, "", "RpcRequestAirdropConfig"], [16, 1, 1, "", "RpcSendTransactionConfig"], [16, 1, 1, "", "RpcSignatureStatusConfig"], [16, 1, 1, "", "RpcSignatureSubscribeConfig"], [16, 1, 1, "", "RpcSignaturesForAddressConfig"], [16, 1, 1, "", "RpcSimulateTransactionAccountsConfig"], [16, 1, 1, "", "RpcSimulateTransactionConfig"], [16, 1, 1, "", "RpcSupplyConfig"], [16, 1, 1, "", "RpcTokenAccountsFilterMint"], [16, 1, 1, "", "RpcTokenAccountsFilterProgramId"], [16, 1, 1, "", "RpcTransactionConfig"], [16, 1, 1, "", "RpcTransactionLogsConfig"], [16, 1, 1, "", "RpcTransactionLogsFilter"], [16, 1, 1, "", "RpcTransactionLogsFilterMentions"]], "solders.rpc.config.RpcAccountInfoConfig": [[16, 2, 1, "", "commitment"], [16, 2, 1, "", "data_slice"], [16, 3, 1, "", "default"], [16, 2, 1, "", "encoding"], [16, 3, 1, "", "from_bytes"], [16, 3, 1, "", "from_json"], [16, 2, 1, "", "min_context_slot"], [16, 3, 1, "", "to_json"]], "solders.rpc.config.RpcBlockConfig": [[16, 2, 1, "", "commitment"], [16, 3, 1, "", "default"], [16, 2, 1, "", "encoding"], [16, 3, 1, "", "from_bytes"], [16, 3, 1, "", "from_json"], [16, 2, 1, "", "max_supported_transaction_version"], [16, 2, 1, "", "rewards"], [16, 3, 1, "", "rewards_only"], [16, 3, 1, "", "rewards_with_commitment"], [16, 3, 1, "", "to_json"], [16, 2, 1, "", "transaction_details"]], "solders.rpc.config.RpcBlockProductionConfig": [[16, 2, 1, "", "commitment"], [16, 3, 1, "", "default"], [16, 3, 1, "", "from_bytes"], [16, 3, 1, "", "from_json"], [16, 2, 1, "", "identity"], [16, 2, 1, "", "range"], [16, 3, 1, "", "to_json"]], "solders.rpc.config.RpcBlockProductionConfigRange": [[16, 2, 1, "", "first_slot"], [16, 3, 1, "", "from_bytes"], [16, 3, 1, "", "from_json"], [16, 2, 1, "", "last_slot"], [16, 3, 1, "", "to_json"]], "solders.rpc.config.RpcBlockSubscribeConfig": [[16, 2, 1, "", "commitment"], [16, 3, 1, "", "default"], [16, 2, 1, "", "encoding"], [16, 3, 1, "", "from_bytes"], [16, 3, 1, "", "from_json"], [16, 2, 1, "", "max_supported_transaction_version"], [16, 2, 1, "", "show_rewards"], [16, 3, 1, "", "to_json"], [16, 2, 1, "", "transaction_details"]], "solders.rpc.config.RpcBlockSubscribeFilter": [[16, 2, 1, "", "All"]], "solders.rpc.config.RpcBlockSubscribeFilterMentions": [[16, 2, 1, "", "pubkey"]], "solders.rpc.config.RpcContextConfig": [[16, 2, 1, "", "commitment"], [16, 3, 1, "", "default"], [16, 3, 1, "", "from_bytes"], [16, 3, 1, "", "from_json"], [16, 2, 1, "", "min_context_slot"], [16, 3, 1, "", "to_json"]], "solders.rpc.config.RpcEpochConfig": [[16, 2, 1, "", "commitment"], [16, 3, 1, "", "default"], [16, 2, 1, "", "epoch"], [16, 3, 1, "", "from_bytes"], [16, 3, 1, "", "from_json"], [16, 2, 1, "", "min_context_slot"], [16, 3, 1, "", "to_json"]], "solders.rpc.config.RpcGetVoteAccountsConfig": [[16, 2, 1, "", "commitment"], [16, 3, 1, "", "default"], [16, 2, 1, "", "delinquent_slot_distance"], [16, 3, 1, "", "from_bytes"], [16, 3, 1, "", "from_json"], [16, 2, 1, "", "keep_unstaked_delinquents"], [16, 3, 1, "", "to_json"], [16, 2, 1, "", "vote_pubkey"]], "solders.rpc.config.RpcLargestAccountsFilter": [[16, 2, 1, "", "Circulating"], [16, 2, 1, "", "NonCirculating"]], "solders.rpc.config.RpcLeaderScheduleConfig": [[16, 2, 1, "", "commitment"], [16, 3, 1, "", "from_bytes"], [16, 3, 1, "", "from_json"], [16, 2, 1, "", "identity"], [16, 3, 1, "", "to_json"]], "solders.rpc.config.RpcProgramAccountsConfig": [[16, 2, 1, "", "account_config"], [16, 3, 1, "", "default"], [16, 2, 1, "", "filters"], [16, 3, 1, "", "from_bytes"], [16, 3, 1, "", "from_json"], [16, 3, 1, "", "to_json"], [16, 2, 1, "", "with_context"]], "solders.rpc.config.RpcRequestAirdropConfig": [[16, 2, 1, "", "commitment"], [16, 3, 1, "", "default"], [16, 3, 1, "", "from_bytes"], [16, 3, 1, "", "from_json"], [16, 2, 1, "", "recent_blockhash"], [16, 3, 1, "", "to_json"]], "solders.rpc.config.RpcSendTransactionConfig": [[16, 3, 1, "", "default"], [16, 2, 1, "", "encoding"], [16, 3, 1, "", "from_bytes"], [16, 3, 1, "", "from_json"], [16, 2, 1, "", "max_retries"], [16, 2, 1, "", "min_context_slot"], [16, 2, 1, "", "preflight_commitment"], [16, 2, 1, "", "skip_preflight"], [16, 3, 1, "", "to_json"]], "solders.rpc.config.RpcSignatureStatusConfig": [[16, 3, 1, "", "from_bytes"], [16, 3, 1, "", "from_json"], [16, 2, 1, "", "search_transaction_history"], [16, 3, 1, "", "to_json"]], "solders.rpc.config.RpcSignatureSubscribeConfig": [[16, 2, 1, "", "commitment"], [16, 3, 1, "", "default"], [16, 2, 1, "", "enable_received_notification"], [16, 3, 1, "", "from_bytes"], [16, 3, 1, "", "from_json"], [16, 3, 1, "", "to_json"]], "solders.rpc.config.RpcSignaturesForAddressConfig": [[16, 2, 1, "", "before"], [16, 2, 1, "", "commitment"], [16, 3, 1, "", "default"], [16, 3, 1, "", "from_bytes"], [16, 3, 1, "", "from_json"], [16, 2, 1, "", "limit"], [16, 2, 1, "", "min_context_slot"], [16, 3, 1, "", "to_json"], [16, 2, 1, "", "until"]], "solders.rpc.config.RpcSimulateTransactionAccountsConfig": [[16, 2, 1, "", "addresses"], [16, 3, 1, "", "default"], [16, 2, 1, "", "encoding"], [16, 3, 1, "", "from_bytes"], [16, 3, 1, "", "from_json"], [16, 3, 1, "", "to_json"]], "solders.rpc.config.RpcSimulateTransactionConfig": [[16, 2, 1, "", "accounts"], [16, 2, 1, "", "commitment"], [16, 3, 1, "", "default"], [16, 2, 1, "", "encoding"], [16, 3, 1, "", "from_bytes"], [16, 3, 1, "", "from_json"], [16, 2, 1, "", "inner_instructions"], [16, 2, 1, "", "min_context_slot"], [16, 2, 1, "", "replace_recent_blockhash"], [16, 2, 1, "", "sig_verify"], [16, 3, 1, "", "to_json"]], "solders.rpc.config.RpcSupplyConfig": [[16, 2, 1, "", "commitment"], [16, 3, 1, "", "default"], [16, 2, 1, "", "exclude_non_circulating_accounts_list"], [16, 3, 1, "", "from_bytes"], [16, 3, 1, "", "from_json"], [16, 3, 1, "", "to_json"]], "solders.rpc.config.RpcTokenAccountsFilterMint": [[16, 2, 1, "", "mint"]], "solders.rpc.config.RpcTokenAccountsFilterProgramId": [[16, 2, 1, "", "program_id"]], "solders.rpc.config.RpcTransactionConfig": [[16, 2, 1, "", "commitment"], [16, 3, 1, "", "default"], [16, 2, 1, "", "encoding"], [16, 3, 1, "", "from_bytes"], [16, 3, 1, "", "from_json"], [16, 2, 1, "", "max_supported_transaction_version"], [16, 3, 1, "", "to_json"]], "solders.rpc.config.RpcTransactionLogsConfig": [[16, 2, 1, "", "commitment"], [16, 3, 1, "", "from_bytes"], [16, 3, 1, "", "from_json"], [16, 3, 1, "", "to_json"]], "solders.rpc.config.RpcTransactionLogsFilter": [[16, 2, 1, "", "All"], [16, 2, 1, "", "AllWithVotes"]], "solders.rpc.config.RpcTransactionLogsFilterMentions": [[16, 2, 1, "", "pubkey"]], "solders.rpc.errors": [[17, 1, 1, "", "BlockCleanedUp"], [17, 1, 1, "", "BlockCleanedUpMessage"], [17, 1, 1, "", "BlockNotAvailable"], [17, 1, 1, "", "BlockNotAvailableMessage"], [17, 1, 1, "", "BlockStatusNotAvailableYet"], [17, 1, 1, "", "BlockStatusNotAvailableYetMessage"], [17, 1, 1, "", "InternalErrorMessage"], [17, 1, 1, "", "InvalidParamsMessage"], [17, 1, 1, "", "InvalidRequestMessage"], [17, 1, 1, "", "KeyExcludedFromSecondaryIndex"], [17, 1, 1, "", "KeyExcludedFromSecondaryIndexMessage"], [17, 1, 1, "", "LongTermStorageSlotSkipped"], [17, 1, 1, "", "LongTermStorageSlotSkippedMessage"], [17, 1, 1, "", "MethodNotFoundMessage"], [17, 1, 1, "", "MinContextSlotNotReached"], [17, 1, 1, "", "MinContextSlotNotReachedMessage"], [17, 1, 1, "", "NodeUnhealthy"], [17, 1, 1, "", "NodeUnhealthyMessage"], [17, 1, 1, "", "ParseErrorMessage"], [17, 1, 1, "", "RpcCustomErrorFieldless"], [17, 1, 1, "", "ScanError"], [17, 1, 1, "", "ScanErrorMessage"], [17, 1, 1, "", "SendTransactionPreflightFailure"], [17, 1, 1, "", "SendTransactionPreflightFailureMessage"], [17, 1, 1, "", "SlotSkipped"], [17, 1, 1, "", "SlotSkippedMessage"], [17, 1, 1, "", "TransactionPrecompileVerificationFailure"], [17, 1, 1, "", "TransactionPrecompileVerificationFailureMessage"], [17, 1, 1, "", "UnsupportedTransactionVersion"], [17, 1, 1, "", "UnsupportedTransactionVersionMessage"]], "solders.rpc.errors.BlockCleanedUp": [[17, 2, 1, "", "first_available_block"], [17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 2, 1, "", "slot"], [17, 3, 1, "", "to_json"]], "solders.rpc.errors.BlockCleanedUpMessage": [[17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 2, 1, "", "message"], [17, 3, 1, "", "to_json"]], "solders.rpc.errors.BlockNotAvailable": [[17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 2, 1, "", "slot"], [17, 3, 1, "", "to_json"]], "solders.rpc.errors.BlockNotAvailableMessage": [[17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 2, 1, "", "message"], [17, 3, 1, "", "to_json"]], "solders.rpc.errors.BlockStatusNotAvailableYet": [[17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 2, 1, "", "slot"], [17, 3, 1, "", "to_json"]], "solders.rpc.errors.BlockStatusNotAvailableYetMessage": [[17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 2, 1, "", "message"], [17, 3, 1, "", "to_json"]], "solders.rpc.errors.InternalErrorMessage": [[17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 2, 1, "", "message"], [17, 3, 1, "", "to_json"]], "solders.rpc.errors.InvalidParamsMessage": [[17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 2, 1, "", "message"], [17, 3, 1, "", "to_json"]], "solders.rpc.errors.InvalidRequestMessage": [[17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 2, 1, "", "message"], [17, 3, 1, "", "to_json"]], "solders.rpc.errors.KeyExcludedFromSecondaryIndex": [[17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 2, 1, "", "index_key"], [17, 3, 1, "", "to_json"]], "solders.rpc.errors.KeyExcludedFromSecondaryIndexMessage": [[17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 2, 1, "", "message"], [17, 3, 1, "", "to_json"]], "solders.rpc.errors.LongTermStorageSlotSkipped": [[17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 2, 1, "", "slot"], [17, 3, 1, "", "to_json"]], "solders.rpc.errors.LongTermStorageSlotSkippedMessage": [[17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 2, 1, "", "message"], [17, 3, 1, "", "to_json"]], "solders.rpc.errors.MethodNotFoundMessage": [[17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 2, 1, "", "message"], [17, 3, 1, "", "to_json"]], "solders.rpc.errors.MinContextSlotNotReached": [[17, 2, 1, "", "context_slot"], [17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 3, 1, "", "to_json"]], "solders.rpc.errors.MinContextSlotNotReachedMessage": [[17, 2, 1, "", "data"], [17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 2, 1, "", "message"], [17, 3, 1, "", "to_json"]], "solders.rpc.errors.NodeUnhealthy": [[17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 2, 1, "", "num_slots_behind"], [17, 3, 1, "", "to_json"]], "solders.rpc.errors.NodeUnhealthyMessage": [[17, 2, 1, "", "data"], [17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 2, 1, "", "message"], [17, 3, 1, "", "to_json"]], "solders.rpc.errors.ParseErrorMessage": [[17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 2, 1, "", "message"], [17, 3, 1, "", "to_json"]], "solders.rpc.errors.RpcCustomErrorFieldless": [[17, 2, 1, "", "NoSnapshot"], [17, 2, 1, "", "TransactionHistoryNotAvailable"], [17, 2, 1, "", "TransactionSignatureLenMismatch"], [17, 2, 1, "", "TransactionSignatureVerificationFailure"]], "solders.rpc.errors.ScanError": [[17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 2, 1, "", "message"], [17, 3, 1, "", "to_json"]], "solders.rpc.errors.ScanErrorMessage": [[17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 2, 1, "", "message"], [17, 3, 1, "", "to_json"]], "solders.rpc.errors.SendTransactionPreflightFailure": [[17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 2, 1, "", "message"], [17, 2, 1, "", "result"], [17, 3, 1, "", "to_json"]], "solders.rpc.errors.SendTransactionPreflightFailureMessage": [[17, 2, 1, "", "data"], [17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 2, 1, "", "message"], [17, 3, 1, "", "to_json"]], "solders.rpc.errors.SlotSkipped": [[17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 2, 1, "", "slot"], [17, 3, 1, "", "to_json"]], "solders.rpc.errors.SlotSkippedMessage": [[17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 2, 1, "", "message"], [17, 3, 1, "", "to_json"]], "solders.rpc.errors.TransactionPrecompileVerificationFailure": [[17, 2, 1, "", "error"], [17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 3, 1, "", "to_json"]], "solders.rpc.errors.TransactionPrecompileVerificationFailureMessage": [[17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 2, 1, "", "message"], [17, 3, 1, "", "to_json"]], "solders.rpc.errors.UnsupportedTransactionVersion": [[17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 3, 1, "", "to_json"], [17, 2, 1, "", "value"]], "solders.rpc.errors.UnsupportedTransactionVersionMessage": [[17, 3, 1, "", "from_bytes"], [17, 3, 1, "", "from_json"], [17, 2, 1, "", "message"], [17, 3, 1, "", "to_json"]], "solders.rpc.filter": [[18, 1, 1, "", "Memcmp"], [18, 1, 1, "", "RpcFilterTypeFieldless"]], "solders.rpc.filter.Memcmp": [[18, 3, 1, "", "from_bytes"], [18, 3, 1, "", "from_json"], [18, 2, 1, "", "offset"], [18, 3, 1, "", "to_json"]], "solders.rpc.filter.RpcFilterTypeFieldless": [[18, 2, 1, "", "TokenAccountState"]], "solders.rpc.requests": [[20, 1, 1, "", "AccountSubscribe"], [20, 1, 1, "", "AccountUnsubscribe"], [20, 1, 1, "", "BlockSubscribe"], [20, 1, 1, "", "BlockUnsubscribe"], [20, 1, 1, "", "GetAccountInfo"], [20, 1, 1, "", "GetBalance"], [20, 1, 1, "", "GetBlock"], [20, 1, 1, "", "GetBlockCommitment"], [20, 1, 1, "", "GetBlockHeight"], [20, 1, 1, "", "GetBlockProduction"], [20, 1, 1, "", "GetBlockTime"], [20, 1, 1, "", "GetBlocks"], [20, 1, 1, "", "GetBlocksWithLimit"], [20, 1, 1, "", "GetClusterNodes"], [20, 1, 1, "", "GetEpochInfo"], [20, 1, 1, "", "GetEpochSchedule"], [20, 1, 1, "", "GetFeeForMessage"], [20, 1, 1, "", "GetFirstAvailableBlock"], [20, 1, 1, "", "GetGenesisHash"], [20, 1, 1, "", "GetHealth"], [20, 1, 1, "", "GetHighestSnapshotSlot"], [20, 1, 1, "", "GetIdentity"], [20, 1, 1, "", "GetInflationGovernor"], [20, 1, 1, "", "GetInflationRate"], [20, 1, 1, "", "GetInflationReward"], [20, 1, 1, "", "GetLargestAccounts"], [20, 1, 1, "", "GetLatestBlockhash"], [20, 1, 1, "", "GetLeaderSchedule"], [20, 1, 1, "", "GetMaxRetransmitSlot"], [20, 1, 1, "", "GetMaxShredInsertSlot"], [20, 1, 1, "", "GetMinimumBalanceForRentExemption"], [20, 1, 1, "", "GetMultipleAccounts"], [20, 1, 1, "", "GetProgramAccounts"], [20, 1, 1, "", "GetRecentPerformanceSamples"], [20, 1, 1, "", "GetSignatureStatuses"], [20, 1, 1, "", "GetSignaturesForAddress"], [20, 1, 1, "", "GetSlot"], [20, 1, 1, "", "GetSlotLeader"], [20, 1, 1, "", "GetSlotLeaders"], [20, 1, 1, "", "GetStakeActivation"], [20, 1, 1, "", "GetSupply"], [20, 1, 1, "", "GetTokenAccountBalance"], [20, 1, 1, "", "GetTokenAccountsByDelegate"], [20, 1, 1, "", "GetTokenAccountsByOwner"], [20, 1, 1, "", "GetTokenLargestAccounts"], [20, 1, 1, "", "GetTokenSupply"], [20, 1, 1, "", "GetTransaction"], [20, 1, 1, "", "GetTransactionCount"], [20, 1, 1, "", "GetVersion"], [20, 1, 1, "", "GetVoteAccounts"], [20, 1, 1, "", "IsBlockhashValid"], [20, 1, 1, "", "LogsSubscribe"], [20, 1, 1, "", "LogsUnsubscribe"], [20, 1, 1, "", "MinimumLedgerSlot"], [20, 1, 1, "", "ProgramSubscribe"], [20, 1, 1, "", "ProgramUnsubscribe"], [20, 1, 1, "", "RequestAirdrop"], [20, 1, 1, "", "RootSubscribe"], [20, 1, 1, "", "RootUnsubscribe"], [20, 1, 1, "", "SendLegacyTransaction"], [20, 1, 1, "", "SendRawTransaction"], [20, 1, 1, "", "SendVersionedTransaction"], [20, 1, 1, "", "SignatureSubscribe"], [20, 1, 1, "", "SignatureUnsubscribe"], [20, 1, 1, "", "SimulateLegacyTransaction"], [20, 1, 1, "", "SimulateVersionedTransaction"], [20, 1, 1, "", "SlotSubscribe"], [20, 1, 1, "", "SlotUnsubscribe"], [20, 1, 1, "", "SlotsUpdatesSubscribe"], [20, 1, 1, "", "SlotsUpdatesUnsubscribe"], [20, 1, 1, "", "ValidatorExit"], [20, 1, 1, "", "VoteSubscribe"], [20, 1, 1, "", "VoteUnsubscribe"], [20, 4, 1, "", "batch_from_json"], [20, 4, 1, "", "batch_to_json"]], "solders.rpc.requests.AccountSubscribe": [[20, 2, 1, "", "account"], [20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.AccountUnsubscribe": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "subscription_id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.BlockSubscribe": [[20, 2, 1, "", "config"], [20, 2, 1, "", "filter_"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.BlockUnsubscribe": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "subscription_id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetAccountInfo": [[20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "pubkey"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetBalance": [[20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "pubkey"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetBlock": [[20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "slot"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetBlockCommitment": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "slot"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetBlockHeight": [[20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetBlockProduction": [[20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetBlockTime": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "slot"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetBlocks": [[20, 2, 1, "", "commitment"], [20, 2, 1, "", "end"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "start"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetBlocksWithLimit": [[20, 2, 1, "", "commitment"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "limit"], [20, 2, 1, "", "start"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetClusterNodes": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetEpochInfo": [[20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetEpochSchedule": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetFeeForMessage": [[20, 2, 1, "", "commitment"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "message"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetFirstAvailableBlock": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetGenesisHash": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetHealth": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetHighestSnapshotSlot": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetIdentity": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetInflationGovernor": [[20, 2, 1, "", "commitment"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetInflationRate": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetInflationReward": [[20, 2, 1, "", "addresses"], [20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetLargestAccounts": [[20, 2, 1, "", "commitment"], [20, 2, 1, "", "filter_"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetLatestBlockhash": [[20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetLeaderSchedule": [[20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "slot"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetMaxRetransmitSlot": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetMaxShredInsertSlot": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetMinimumBalanceForRentExemption": [[20, 2, 1, "", "commitment"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "length"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetMultipleAccounts": [[20, 2, 1, "", "accounts"], [20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetProgramAccounts": [[20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "program"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetRecentPerformanceSamples": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "limit"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetSignatureStatuses": [[20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "signatures"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetSignaturesForAddress": [[20, 2, 1, "", "address"], [20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetSlot": [[20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetSlotLeader": [[20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetSlotLeaders": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "limit"], [20, 2, 1, "", "start"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetStakeActivation": [[20, 2, 1, "", "account"], [20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetSupply": [[20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetTokenAccountBalance": [[20, 2, 1, "", "account"], [20, 2, 1, "", "commitment"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetTokenAccountsByDelegate": [[20, 2, 1, "", "account"], [20, 2, 1, "", "config"], [20, 2, 1, "", "filter_"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetTokenAccountsByOwner": [[20, 2, 1, "", "account"], [20, 2, 1, "", "config"], [20, 2, 1, "", "filter_"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetTokenLargestAccounts": [[20, 2, 1, "", "commitment"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "mint"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetTokenSupply": [[20, 2, 1, "", "commitment"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "mint"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetTransaction": [[20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "signature"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetTransactionCount": [[20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetVersion": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.GetVoteAccounts": [[20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.IsBlockhashValid": [[20, 2, 1, "", "blockhash"], [20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.LogsSubscribe": [[20, 2, 1, "", "config"], [20, 2, 1, "", "filter_"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.LogsUnsubscribe": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "subscription_id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.MinimumLedgerSlot": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.ProgramSubscribe": [[20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "program"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.ProgramUnsubscribe": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "subscription_id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.RequestAirdrop": [[20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "lamports"], [20, 2, 1, "", "pubkey"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.RootSubscribe": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.RootUnsubscribe": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "subscription_id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.SendLegacyTransaction": [[20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"], [20, 2, 1, "", "tx"]], "solders.rpc.requests.SendRawTransaction": [[20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"], [20, 2, 1, "", "tx"]], "solders.rpc.requests.SendVersionedTransaction": [[20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"], [20, 2, 1, "", "tx"]], "solders.rpc.requests.SignatureSubscribe": [[20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "signature"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.SignatureUnsubscribe": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "subscription_id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.SimulateLegacyTransaction": [[20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"], [20, 2, 1, "", "tx"]], "solders.rpc.requests.SimulateVersionedTransaction": [[20, 2, 1, "", "config"], [20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"], [20, 2, 1, "", "tx"]], "solders.rpc.requests.SlotSubscribe": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.SlotUnsubscribe": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "subscription_id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.SlotsUpdatesSubscribe": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.SlotsUpdatesUnsubscribe": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "subscription_id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.ValidatorExit": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.VoteSubscribe": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 3, 1, "", "to_json"]], "solders.rpc.requests.VoteUnsubscribe": [[20, 3, 1, "", "from_bytes"], [20, 3, 1, "", "from_json"], [20, 2, 1, "", "id"], [20, 2, 1, "", "subscription_id"], [20, 3, 1, "", "to_json"]], "solders.rpc.responses": [[21, 1, 1, "", "AccountNotification"], [21, 1, 1, "", "AccountNotificationJsonParsed"], [21, 1, 1, "", "AccountNotificationJsonParsedResult"], [21, 1, 1, "", "AccountNotificationResult"], [21, 1, 1, "", "BlockNotification"], [21, 1, 1, "", "BlockNotificationResult"], [21, 1, 1, "", "BlockStoreError"], [21, 1, 1, "", "EpochInfo"], [21, 1, 1, "", "GetAccountInfoJsonParsedResp"], [21, 1, 1, "", "GetAccountInfoMaybeJsonParsedResp"], [21, 1, 1, "", "GetAccountInfoResp"], [21, 1, 1, "", "GetBalanceResp"], [21, 1, 1, "", "GetBlockCommitmentResp"], [21, 1, 1, "", "GetBlockHeightResp"], [21, 1, 1, "", "GetBlockProductionResp"], [21, 1, 1, "", "GetBlockResp"], [21, 1, 1, "", "GetBlockTimeResp"], [21, 1, 1, "", "GetBlocksResp"], [21, 1, 1, "", "GetBlocksWithLimitResp"], [21, 1, 1, "", "GetClusterNodesResp"], [21, 1, 1, "", "GetEpochInfoResp"], [21, 1, 1, "", "GetEpochScheduleResp"], [21, 1, 1, "", "GetFeeForMessageResp"], [21, 1, 1, "", "GetFirstAvailableBlockResp"], [21, 1, 1, "", "GetGenesisHashResp"], [21, 1, 1, "", "GetHealthResp"], [21, 1, 1, "", "GetHighestSnapshotSlotResp"], [21, 1, 1, "", "GetIdentityResp"], [21, 1, 1, "", "GetInflationGovernorResp"], [21, 1, 1, "", "GetInflationRateResp"], [21, 1, 1, "", "GetInflationRewardResp"], [21, 1, 1, "", "GetLargestAccountsResp"], [21, 1, 1, "", "GetLatestBlockhashResp"], [21, 1, 1, "", "GetLeaderScheduleResp"], [21, 1, 1, "", "GetMaxRetransmitSlotResp"], [21, 1, 1, "", "GetMaxShredInsertSlotResp"], [21, 1, 1, "", "GetMinimumBalanceForRentExemptionResp"], [21, 1, 1, "", "GetMultipleAccountsJsonParsedResp"], [21, 1, 1, "", "GetMultipleAccountsMaybeJsonParsedResp"], [21, 1, 1, "", "GetMultipleAccountsResp"], [21, 1, 1, "", "GetProgramAccountsJsonParsedResp"], [21, 1, 1, "", "GetProgramAccountsMaybeJsonParsedResp"], [21, 1, 1, "", "GetProgramAccountsResp"], [21, 1, 1, "", "GetProgramAccountsWithContextJsonParsedResp"], [21, 1, 1, "", "GetProgramAccountsWithContextMaybeJsonParsedResp"], [21, 1, 1, "", "GetProgramAccountsWithContextResp"], [21, 1, 1, "", "GetRecentPerformanceSamplesResp"], [21, 1, 1, "", "GetSignatureStatusesResp"], [21, 1, 1, "", "GetSignaturesForAddressResp"], [21, 1, 1, "", "GetSlotLeaderResp"], [21, 1, 1, "", "GetSlotLeadersResp"], [21, 1, 1, "", "GetSlotResp"], [21, 1, 1, "", "GetSupplyResp"], [21, 1, 1, "", "GetTokenAccountBalanceResp"], [21, 1, 1, "", "GetTokenAccountsByDelegateJsonParsedResp"], [21, 1, 1, "", "GetTokenAccountsByDelegateResp"], [21, 1, 1, "", "GetTokenAccountsByOwnerJsonParsedResp"], [21, 1, 1, "", "GetTokenAccountsByOwnerResp"], [21, 1, 1, "", "GetTokenLargestAccountsResp"], [21, 1, 1, "", "GetTokenSupplyResp"], [21, 1, 1, "", "GetTransactionCountResp"], [21, 1, 1, "", "GetTransactionResp"], [21, 1, 1, "", "GetVersionResp"], [21, 1, 1, "", "GetVoteAccountsResp"], [21, 1, 1, "", "IsBlockhashValidResp"], [21, 1, 1, "", "LogsNotification"], [21, 1, 1, "", "LogsNotificationResult"], [21, 1, 1, "", "MinimumLedgerSlotResp"], [21, 1, 1, "", "ProgramNotification"], [21, 1, 1, "", "ProgramNotificationJsonParsed"], [21, 1, 1, "", "ProgramNotificationJsonParsedResult"], [21, 1, 1, "", "ProgramNotificationResult"], [21, 1, 1, "", "RequestAirdropResp"], [21, 1, 1, "", "RootNotification"], [21, 1, 1, "", "RpcAccountBalance"], [21, 1, 1, "", "RpcBlockCommitment"], [21, 1, 1, "", "RpcBlockProduction"], [21, 1, 1, "", "RpcBlockProductionRange"], [21, 1, 1, "", "RpcBlockUpdate"], [21, 1, 1, "", "RpcBlockhash"], [21, 1, 1, "", "RpcConfirmedTransactionStatusWithSignature"], [21, 1, 1, "", "RpcContactInfo"], [21, 1, 1, "", "RpcIdentity"], [21, 1, 1, "", "RpcInflationGovernor"], [21, 1, 1, "", "RpcInflationRate"], [21, 1, 1, "", "RpcInflationReward"], [21, 1, 1, "", "RpcKeyedAccount"], [21, 1, 1, "", "RpcKeyedAccountJsonParsed"], [21, 1, 1, "", "RpcLogsResponse"], [21, 1, 1, "", "RpcPerfSample"], [21, 1, 1, "", "RpcResponseContext"], [21, 1, 1, "", "RpcSignatureResponse"], [21, 1, 1, "", "RpcSimulateTransactionResult"], [21, 1, 1, "", "RpcSnapshotSlotInfo"], [21, 1, 1, "", "RpcSupply"], [21, 1, 1, "", "RpcTokenAccountBalance"], [21, 1, 1, "", "RpcVersionInfo"], [21, 1, 1, "", "RpcVote"], [21, 1, 1, "", "RpcVoteAccountInfo"], [21, 1, 1, "", "RpcVoteAccountStatus"], [21, 1, 1, "", "SendTransactionResp"], [21, 1, 1, "", "SignatureNotification"], [21, 1, 1, "", "SignatureNotificationResult"], [21, 1, 1, "", "SimulateTransactionResp"], [21, 1, 1, "", "SlotInfo"], [21, 1, 1, "", "SlotNotification"], [21, 1, 1, "", "SlotTransactionStats"], [21, 1, 1, "", "SlotUpdateCompleted"], [21, 1, 1, "", "SlotUpdateCreatedBank"], [21, 1, 1, "", "SlotUpdateDead"], [21, 1, 1, "", "SlotUpdateFirstShredReceived"], [21, 1, 1, "", "SlotUpdateNotification"], [21, 1, 1, "", "SlotUpdateOptimisticConfirmation"], [21, 1, 1, "", "SlotUpdateRoot"], [21, 1, 1, "", "SubscriptionError"], [21, 1, 1, "", "SubscriptionResult"], [21, 1, 1, "", "UnsubscribeResult"], [21, 1, 1, "", "ValidatorExitResp"], [21, 1, 1, "", "VoteNotification"], [21, 4, 1, "", "batch_from_json"], [21, 4, 1, "", "batch_to_json"], [21, 4, 1, "", "parse_notification"], [21, 4, 1, "", "parse_websocket_message"]], "solders.rpc.responses.AccountNotification": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "result"], [21, 2, 1, "", "subscription"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.AccountNotificationJsonParsed": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "result"], [21, 2, 1, "", "subscription"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.AccountNotificationJsonParsedResult": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.AccountNotificationResult": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.BlockNotification": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "result"], [21, 2, 1, "", "subscription"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.BlockNotificationResult": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.BlockStoreError": [[21, 2, 1, "", "BlockStoreError"]], "solders.rpc.responses.EpochInfo": [[21, 2, 1, "", "absolute_slot"], [21, 2, 1, "", "block_height"], [21, 2, 1, "", "epoch"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "slot_index"], [21, 2, 1, "", "slots_in_epoch"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "transaction_count"]], "solders.rpc.responses.GetAccountInfoJsonParsedResp": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetAccountInfoMaybeJsonParsedResp": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetAccountInfoResp": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetBalanceResp": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetBlockCommitmentResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetBlockHeightResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetBlockProductionResp": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetBlockResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetBlockTimeResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetBlocksResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetBlocksWithLimitResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetClusterNodesResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetEpochInfoResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetEpochScheduleResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetFeeForMessageResp": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetFirstAvailableBlockResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetGenesisHashResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetHealthResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetHighestSnapshotSlotResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetIdentityResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetInflationGovernorResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetInflationRateResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetInflationRewardResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetLargestAccountsResp": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetLatestBlockhashResp": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetLeaderScheduleResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetMaxRetransmitSlotResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetMaxShredInsertSlotResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetMinimumBalanceForRentExemptionResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetMultipleAccountsJsonParsedResp": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetMultipleAccountsMaybeJsonParsedResp": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetMultipleAccountsResp": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetProgramAccountsJsonParsedResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetProgramAccountsMaybeJsonParsedResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetProgramAccountsResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetProgramAccountsWithContextJsonParsedResp": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetProgramAccountsWithContextMaybeJsonParsedResp": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetProgramAccountsWithContextResp": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetRecentPerformanceSamplesResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetSignatureStatusesResp": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetSignaturesForAddressResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetSlotLeaderResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetSlotLeadersResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetSlotResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetSupplyResp": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetTokenAccountBalanceResp": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetTokenAccountsByDelegateJsonParsedResp": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetTokenAccountsByDelegateResp": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetTokenAccountsByOwnerJsonParsedResp": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetTokenAccountsByOwnerResp": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetTokenLargestAccountsResp": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetTokenSupplyResp": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetTransactionCountResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetTransactionResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetVersionResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.GetVoteAccountsResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.IsBlockhashValidResp": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.LogsNotification": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "result"], [21, 2, 1, "", "subscription"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.LogsNotificationResult": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.MinimumLedgerSlotResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.ProgramNotification": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "result"], [21, 2, 1, "", "subscription"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.ProgramNotificationJsonParsed": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "result"], [21, 2, 1, "", "subscription"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.ProgramNotificationJsonParsedResult": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.ProgramNotificationResult": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.RequestAirdropResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.RootNotification": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "result"], [21, 2, 1, "", "subscription"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.RpcAccountBalance": [[21, 2, 1, "", "address"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "lamports"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.RpcBlockCommitment": [[21, 2, 1, "", "commitment"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "total_stake"]], "solders.rpc.responses.RpcBlockProduction": [[21, 2, 1, "", "by_identity"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "range"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.RpcBlockProductionRange": [[21, 2, 1, "", "first_slot"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "last_slot"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.RpcBlockUpdate": [[21, 2, 1, "", "block"], [21, 2, 1, "", "err"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "slot"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.RpcBlockhash": [[21, 2, 1, "", "blockhash"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "last_valid_block_height"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.RpcConfirmedTransactionStatusWithSignature": [[21, 2, 1, "", "block_time"], [21, 2, 1, "", "confirmation_status"], [21, 2, 1, "", "err"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "memo"], [21, 2, 1, "", "signature"], [21, 2, 1, "", "slot"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.RpcContactInfo": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.RpcIdentity": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "identity"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.RpcInflationGovernor": [[21, 2, 1, "", "foundation"], [21, 2, 1, "", "foundation_term"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "initial"], [21, 2, 1, "", "taper"], [21, 2, 1, "", "terminal"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.RpcInflationRate": [[21, 2, 1, "", "epoch"], [21, 2, 1, "", "foundation"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "total"], [21, 2, 1, "", "validator"]], "solders.rpc.responses.RpcInflationReward": [[21, 2, 1, "", "amount"], [21, 2, 1, "", "commission"], [21, 2, 1, "", "effective_slot"], [21, 2, 1, "", "epoch"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "post_balance"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.RpcKeyedAccount": [[21, 2, 1, "", "account"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "pubkey"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.RpcKeyedAccountJsonParsed": [[21, 2, 1, "", "account"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "pubkey"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.RpcLogsResponse": [[21, 2, 1, "", "err"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "logs"], [21, 2, 1, "", "signature"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.RpcPerfSample": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "num_non_votetransactions"], [21, 2, 1, "", "num_slots"], [21, 2, 1, "", "num_transactions"], [21, 2, 1, "", "sample_period_secs"], [21, 2, 1, "", "slot"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.RpcResponseContext": [[21, 2, 1, "", "api_version"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "slot"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.RpcSignatureResponse": [[21, 2, 1, "", "err"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.RpcSimulateTransactionResult": [[21, 2, 1, "", "accounts"], [21, 2, 1, "", "err"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "logs"], [21, 2, 1, "", "return_data"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "units_consumed"]], "solders.rpc.responses.RpcSnapshotSlotInfo": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "full"], [21, 2, 1, "", "incremental"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.RpcSupply": [[21, 2, 1, "", "circulating"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "non_circulating"], [21, 2, 1, "", "non_circulating_accounts"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "total"]], "solders.rpc.responses.RpcTokenAccountBalance": [[21, 2, 1, "", "address"], [21, 2, 1, "", "amount"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.RpcVersionInfo": [[21, 2, 1, "", "feature_set"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "solana_core"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.RpcVote": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "hash"], [21, 2, 1, "", "signature"], [21, 2, 1, "", "slots"], [21, 2, 1, "", "timestamp"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "vote_pubkey"]], "solders.rpc.responses.RpcVoteAccountInfo": [[21, 2, 1, "", "activated_stake"], [21, 2, 1, "", "commission"], [21, 2, 1, "", "epoch_credits"], [21, 2, 1, "", "epoch_vote_account"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "last_vote"], [21, 2, 1, "", "node_pubkey"], [21, 2, 1, "", "root_slot"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "vote_pubkey"]], "solders.rpc.responses.RpcVoteAccountStatus": [[21, 2, 1, "", "current"], [21, 2, 1, "", "delinquent"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.SendTransactionResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.SignatureNotification": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "result"], [21, 2, 1, "", "subscription"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.SignatureNotificationResult": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.SimulateTransactionResp": [[21, 2, 1, "", "context"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.SlotInfo": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "parent"], [21, 2, 1, "", "root"], [21, 2, 1, "", "slot"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.SlotNotification": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "result"], [21, 2, 1, "", "subscription"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.SlotTransactionStats": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "max_transactions_per_entry"], [21, 2, 1, "", "num_failed_transactions"], [21, 2, 1, "", "num_successful_transactions"], [21, 2, 1, "", "num_transaction_entries"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.SlotUpdateCompleted": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "slot"], [21, 2, 1, "", "timestamp"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.SlotUpdateCreatedBank": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "parent"], [21, 2, 1, "", "slot"], [21, 2, 1, "", "timestamp"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.SlotUpdateDead": [[21, 2, 1, "", "err"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "slot"], [21, 2, 1, "", "timestamp"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.SlotUpdateFirstShredReceived": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "slot"], [21, 2, 1, "", "timestamp"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.SlotUpdateNotification": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "result"], [21, 2, 1, "", "subscription"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.SlotUpdateOptimisticConfirmation": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "slot"], [21, 2, 1, "", "timestamp"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.SlotUpdateRoot": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "slot"], [21, 2, 1, "", "timestamp"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.SubscriptionError": [[21, 2, 1, "", "error"], [21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "id"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.SubscriptionResult": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "id"], [21, 2, 1, "", "result"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.UnsubscribeResult": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "id"], [21, 2, 1, "", "result"], [21, 3, 1, "", "to_json"]], "solders.rpc.responses.ValidatorExitResp": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 3, 1, "", "to_json"], [21, 2, 1, "", "value"]], "solders.rpc.responses.VoteNotification": [[21, 3, 1, "", "from_bytes"], [21, 3, 1, "", "from_json"], [21, 2, 1, "", "result"], [21, 2, 1, "", "subscription"], [21, 3, 1, "", "to_json"]], "solders.signature": [[22, 1, 1, "", "Signature"]], "solders.signature.Signature": [[22, 2, 1, "", "LENGTH"], [22, 3, 1, "", "default"], [22, 3, 1, "", "from_bytes"], [22, 3, 1, "", "from_json"], [22, 3, 1, "", "from_string"], [22, 3, 1, "", "new_unique"], [22, 3, 1, "", "to_bytes_array"], [22, 3, 1, "", "to_json"], [22, 3, 1, "", "verify"]], "solders.system_program": [[23, 1, 1, "", "AdvanceNonceAccountParams"], [23, 1, 1, "", "AllocateParams"], [23, 1, 1, "", "AllocateWithSeedParams"], [23, 1, 1, "", "AssignParams"], [23, 1, 1, "", "AssignWithSeedParams"], [23, 1, 1, "", "AuthorizeNonceAccountParams"], [23, 1, 1, "", "CloseLookupTableParams"], [23, 1, 1, "", "CreateAccountParams"], [23, 1, 1, "", "CreateAccountWithSeedParams"], [23, 1, 1, "", "CreateLookupTableParams"], [23, 1, 1, "", "CreateLookupTableSignedParams"], [23, 1, 1, "", "DeactivateLookupTableParams"], [23, 1, 1, "", "ExtendLookupTableParams"], [23, 1, 1, "", "FreezeLookupTableParams"], [23, 6, 1, "", "ID"], [23, 1, 1, "", "InitializeNonceAccountParams"], [23, 1, 1, "", "TransferParams"], [23, 1, 1, "", "TransferWithSeedParams"], [23, 1, 1, "", "WithdrawNonceAccountParams"], [23, 4, 1, "", "advance_nonce_account"], [23, 4, 1, "", "allocate"], [23, 4, 1, "", "allocate_with_seed"], [23, 4, 1, "", "assign"], [23, 4, 1, "", "assign_with_seed"], [23, 4, 1, "", "authorize_nonce_account"], [23, 4, 1, "", "close_lookup_table"], [23, 4, 1, "", "create_account"], [23, 4, 1, "", "create_account_with_seed"], [23, 4, 1, "", "create_lookup_table"], [23, 4, 1, "", "create_lookup_table_signed"], [23, 4, 1, "", "create_nonce_account"], [23, 4, 1, "", "create_nonce_account_with_seed"], [23, 4, 1, "", "deactivate_lookup_table"], [23, 4, 1, "", "decode_advance_nonce_account"], [23, 4, 1, "", "decode_allocate"], [23, 4, 1, "", "decode_allocate_with_seed"], [23, 4, 1, "", "decode_assign"], [23, 4, 1, "", "decode_assign_with_seed"], [23, 4, 1, "", "decode_authorize_nonce_account"], [23, 4, 1, "", "decode_create_account"], [23, 4, 1, "", "decode_create_account_with_seed"], [23, 4, 1, "", "decode_initialize_nonce_account"], [23, 4, 1, "", "decode_transfer"], [23, 4, 1, "", "decode_transfer_with_seed"], [23, 4, 1, "", "decode_withdraw_nonce_account"], [23, 4, 1, "", "extend_lookup_table"], [23, 4, 1, "", "freeze_lookup_table"], [23, 4, 1, "", "initialize_nonce_account"], [23, 4, 1, "", "transfer"], [23, 4, 1, "", "transfer_many"], [23, 4, 1, "", "transfer_with_seed"], [23, 4, 1, "", "withdraw_nonce_account"]], "solders.system_program.AdvanceNonceAccountParams": [[23, 2, 1, "", "authorized_pubkey"], [23, 2, 1, "", "nonce_pubkey"]], "solders.system_program.AllocateParams": [[23, 2, 1, "", "pubkey"], [23, 2, 1, "", "space"]], "solders.system_program.AllocateWithSeedParams": [[23, 2, 1, "", "address"], [23, 2, 1, "", "base"], [23, 2, 1, "", "owner"], [23, 2, 1, "", "seed"], [23, 2, 1, "", "space"]], "solders.system_program.AssignParams": [[23, 2, 1, "", "owner"], [23, 2, 1, "", "pubkey"]], "solders.system_program.AssignWithSeedParams": [[23, 2, 1, "", "address"], [23, 2, 1, "", "base"], [23, 2, 1, "", "owner"], [23, 2, 1, "", "seed"]], "solders.system_program.AuthorizeNonceAccountParams": [[23, 2, 1, "", "authorized_pubkey"], [23, 2, 1, "", "new_authority"], [23, 2, 1, "", "nonce_pubkey"]], "solders.system_program.CloseLookupTableParams": [[23, 2, 1, "", "authority_address"], [23, 2, 1, "", "lookup_table_address"], [23, 2, 1, "", "recipient_address"]], "solders.system_program.CreateAccountParams": [[23, 2, 1, "", "from_pubkey"], [23, 2, 1, "", "lamports"], [23, 2, 1, "", "owner"], [23, 2, 1, "", "space"], [23, 2, 1, "", "to_pubkey"]], "solders.system_program.CreateAccountWithSeedParams": [[23, 2, 1, "", "base"], [23, 2, 1, "", "from_pubkey"], [23, 2, 1, "", "lamports"], [23, 2, 1, "", "owner"], [23, 2, 1, "", "seed"], [23, 2, 1, "", "space"], [23, 2, 1, "", "to_pubkey"]], "solders.system_program.CreateLookupTableParams": [[23, 2, 1, "", "authority_address"], [23, 2, 1, "", "payer_address"], [23, 2, 1, "", "recent_slot"]], "solders.system_program.CreateLookupTableSignedParams": [[23, 2, 1, "", "authority_address"], [23, 2, 1, "", "payer_address"], [23, 2, 1, "", "recent_slot"]], "solders.system_program.DeactivateLookupTableParams": [[23, 2, 1, "", "authority_address"], [23, 2, 1, "", "lookup_table_address"]], "solders.system_program.ExtendLookupTableParams": [[23, 2, 1, "", "authority_address"], [23, 2, 1, "", "lookup_table_address"], [23, 2, 1, "", "new_addresses"], [23, 2, 1, "", "payer_address"]], "solders.system_program.FreezeLookupTableParams": [[23, 2, 1, "", "authority_address"], [23, 2, 1, "", "lookup_table_address"]], "solders.system_program.InitializeNonceAccountParams": [[23, 2, 1, "", "authority"], [23, 2, 1, "", "nonce_pubkey"]], "solders.system_program.TransferParams": [[23, 2, 1, "", "from_pubkey"], [23, 2, 1, "", "lamports"], [23, 2, 1, "", "to_pubkey"]], "solders.system_program.TransferWithSeedParams": [[23, 2, 1, "", "from_base"], [23, 2, 1, "", "from_owner"], [23, 2, 1, "", "from_pubkey"], [23, 2, 1, "", "from_seed"], [23, 2, 1, "", "lamports"], [23, 2, 1, "", "to_pubkey"]], "solders.system_program.WithdrawNonceAccountParams": [[23, 2, 1, "", "authorized_pubkey"], [23, 2, 1, "", "lamports"], [23, 2, 1, "", "nonce_pubkey"], [23, 2, 1, "", "to_pubkey"]], "solders.sysvar": [[24, 6, 1, "", "CLOCK"], [24, 6, 1, "", "EPOCH_SCHEDULE"], [24, 6, 1, "", "INSTRUCTIONS"], [24, 6, 1, "", "RECENT_BLOCKHASHES"], [24, 6, 1, "", "RENT"], [24, 6, 1, "", "REWARDS"], [24, 6, 1, "", "SLOT_HASHES"], [24, 6, 1, "", "STAKE_HISTORY"]], "solders.token": [[25, 0, 0, "-", "associated"], [27, 0, 0, "-", "state"]], "solders.token.associated": [[25, 4, 1, "", "get_associated_token_address"]], "solders.token.state": [[27, 1, 1, "", "Mint"], [27, 1, 1, "", "Multisig"], [27, 1, 1, "", "TokenAccount"], [27, 1, 1, "", "TokenAccountState"]], "solders.token.state.Mint": [[27, 2, 1, "", "decimals"], [27, 3, 1, "", "default"], [27, 2, 1, "", "freeze_authority"], [27, 3, 1, "", "from_bytes"], [27, 2, 1, "", "is_initialized"], [27, 2, 1, "", "mint_authority"], [27, 2, 1, "", "supply"]], "solders.token.state.Multisig": [[27, 3, 1, "", "default"], [27, 3, 1, "", "from_bytes"], [27, 2, 1, "", "is_initialized"], [27, 2, 1, "", "m"], [27, 2, 1, "", "n"], [27, 2, 1, "", "signers"]], "solders.token.state.TokenAccount": [[27, 2, 1, "", "amount"], [27, 2, 1, "", "close_authority"], [27, 3, 1, "", "default"], [27, 2, 1, "", "delegate"], [27, 2, 1, "", "delegated_amount"], [27, 3, 1, "", "from_bytes"], [27, 2, 1, "", "is_native"], [27, 2, 1, "", "mint"], [27, 2, 1, "", "owner"], [27, 2, 1, "", "state"]], "solders.token.state.TokenAccountState": [[27, 2, 1, "", "Frozen"], [27, 2, 1, "", "Initialized"], [27, 2, 1, "", "Uninitialized"]], "solders.transaction": [[28, 1, 1, "", "Legacy"], [28, 5, 1, "", "SanitizeError"], [28, 1, 1, "", "Transaction"], [28, 5, 1, "", "TransactionError"], [28, 1, 1, "", "VersionedTransaction"]], "solders.transaction.Legacy": [[28, 2, 1, "", "Legacy"]], "solders.transaction.Transaction": [[28, 3, 1, "", "data"], [28, 3, 1, "", "default"], [28, 3, 1, "", "from_bytes"], [28, 3, 1, "", "from_json"], [28, 3, 1, "", "get_signing_keypair_positions"], [28, 3, 1, "", "is_signed"], [28, 3, 1, "", "key"], [28, 2, 1, "", "message"], [28, 3, 1, "", "message_data"], [28, 3, 1, "", "new_signed_with_payer"], [28, 3, 1, "", "new_unsigned"], [28, 3, 1, "", "new_with_compiled_instructions"], [28, 3, 1, "", "new_with_payer"], [28, 3, 1, "", "partial_sign"], [28, 3, 1, "", "populate"], [28, 3, 1, "", "replace_signatures"], [28, 3, 1, "", "sanitize"], [28, 3, 1, "", "sign"], [28, 2, 1, "", "signatures"], [28, 3, 1, "", "signer_key"], [28, 3, 1, "", "to_json"], [28, 3, 1, "", "uses_durable_nonce"], [28, 3, 1, "", "verify"], [28, 3, 1, "", "verify_and_hash_message"], [28, 3, 1, "", "verify_with_results"]], "solders.transaction.VersionedTransaction": [[28, 3, 1, "", "default"], [28, 3, 1, "", "from_bytes"], [28, 3, 1, "", "from_json"], [28, 3, 1, "", "from_legacy"], [28, 3, 1, "", "into_legacy_transaction"], [28, 2, 1, "", "message"], [28, 3, 1, "", "populate"], [28, 3, 1, "", "sanitize"], [28, 2, 1, "", "signatures"], [28, 3, 1, "", "to_json"], [28, 3, 1, "", "uses_durable_nonce"], [28, 3, 1, "", "verify_and_hash_message"], [28, 3, 1, "", "verify_with_results"], [28, 3, 1, "", "version"]], "solders.transaction_status": [[29, 1, 1, "", "EncodedConfirmedTransactionWithStatusMeta"], [29, 1, 1, "", "EncodedTransactionWithStatusMeta"], [29, 1, 1, "", "InstructionErrorBorshIO"], [29, 1, 1, "", "InstructionErrorCustom"], [29, 1, 1, "", "InstructionErrorFieldless"], [29, 1, 1, "", "ParsedAccount"], [29, 1, 1, "", "ParsedAccountSource"], [29, 1, 1, "", "ParsedInstruction"], [29, 1, 1, "", "Reward"], [29, 1, 1, "", "RewardType"], [29, 1, 1, "", "TransactionBinaryEncoding"], [29, 1, 1, "", "TransactionConfirmationStatus"], [29, 1, 1, "", "TransactionDetails"], [29, 1, 1, "", "TransactionErrorDuplicateInstruction"], [29, 1, 1, "", "TransactionErrorFieldless"], [29, 1, 1, "", "TransactionErrorInstructionError"], [29, 1, 1, "", "TransactionErrorInsufficientFundsForRent"], [29, 1, 1, "", "TransactionReturnData"], [29, 1, 1, "", "TransactionStatus"], [29, 1, 1, "", "UiAccountsList"], [29, 1, 1, "", "UiAddressTableLookup"], [29, 1, 1, "", "UiCompiledInstruction"], [29, 1, 1, "", "UiConfirmedBlock"], [29, 1, 1, "", "UiInnerInstructions"], [29, 1, 1, "", "UiLoadedAddresses"], [29, 1, 1, "", "UiParsedMessage"], [29, 1, 1, "", "UiPartiallyDecodedInstruction"], [29, 1, 1, "", "UiRawMessage"], [29, 1, 1, "", "UiTransaction"], [29, 1, 1, "", "UiTransactionEncoding"], [29, 1, 1, "", "UiTransactionStatusMeta"], [29, 1, 1, "", "UiTransactionTokenBalance"]], "solders.transaction_status.EncodedConfirmedTransactionWithStatusMeta": [[29, 2, 1, "", "block_time"], [29, 3, 1, "", "from_bytes"], [29, 3, 1, "", "from_json"], [29, 2, 1, "", "slot"], [29, 3, 1, "", "to_json"], [29, 2, 1, "", "transaction"]], "solders.transaction_status.EncodedTransactionWithStatusMeta": [[29, 3, 1, "", "from_bytes"], [29, 3, 1, "", "from_json"], [29, 2, 1, "", "meta"], [29, 3, 1, "", "to_json"], [29, 2, 1, "", "transaction"], [29, 2, 1, "", "version"]], "solders.transaction_status.InstructionErrorBorshIO": [[29, 3, 1, "", "from_bytes"], [29, 3, 1, "", "from_json"], [29, 3, 1, "", "to_json"], [29, 2, 1, "", "value"]], "solders.transaction_status.InstructionErrorCustom": [[29, 2, 1, "", "code"], [29, 3, 1, "", "from_bytes"], [29, 3, 1, "", "from_json"], [29, 3, 1, "", "to_json"]], "solders.transaction_status.InstructionErrorFieldless": [[29, 2, 1, "", "AccountAlreadyInitialized"], [29, 2, 1, "", "AccountBorrowFailed"], [29, 2, 1, "", "AccountBorrowOutstanding"], [29, 2, 1, "", "AccountDataSizeChanged"], [29, 2, 1, "", "AccountDataTooSmall"], [29, 2, 1, "", "AccountNotExecutable"], [29, 2, 1, "", "AccountNotRentExempt"], [29, 2, 1, "", "ArithmeticOverflow"], [29, 2, 1, "", "BuiltinProgramsMustConsumeComputeUnits"], [29, 2, 1, "", "CallDepth"], [29, 2, 1, "", "ComputationalBudgetExceeded"], [29, 2, 1, "", "DuplicateAccountIndex"], [29, 2, 1, "", "DuplicateAccountOutOfSync"], [29, 2, 1, "", "ExecutableAccountNotRentExempt"], [29, 2, 1, "", "ExecutableDataModified"], [29, 2, 1, "", "ExecutableLamportChange"], [29, 2, 1, "", "ExecutableModified"], [29, 2, 1, "", "ExternalAccountDataModified"], [29, 2, 1, "", "ExternalAccountLamportSpend"], [29, 2, 1, "", "GenericError"], [29, 2, 1, "", "IllegalOwner"], [29, 2, 1, "", "Immutable"], [29, 2, 1, "", "IncorrectAuthority"], [29, 2, 1, "", "IncorrectProgramId"], [29, 2, 1, "", "InsufficientFunds"], [29, 2, 1, "", "InvalidAccountData"], [29, 2, 1, "", "InvalidAccountOwner"], [29, 2, 1, "", "InvalidArgument"], [29, 2, 1, "", "InvalidError"], [29, 2, 1, "", "InvalidInstructionData"], [29, 2, 1, "", "InvalidRealloc"], [29, 2, 1, "", "InvalidSeeds"], [29, 2, 1, "", "MaxAccountsDataAllocationsExceeded"], [29, 2, 1, "", "MaxAccountsExceeded"], [29, 2, 1, "", "MaxInstructionTraceLengthExceeded"], [29, 2, 1, "", "MaxSeedLengthExceeded"], [29, 2, 1, "", "MissingAccount"], [29, 2, 1, "", "MissingRequiredSignature"], [29, 2, 1, "", "ModifiedProgramId"], [29, 2, 1, "", "NotEnoughAccountKeys"], [29, 2, 1, "", "PrivilegeEscalation"], [29, 2, 1, "", "ProgramEnvironmentSetupFailure"], [29, 2, 1, "", "ProgramFailedToCompile"], [29, 2, 1, "", "ProgramFailedToComplete"], [29, 2, 1, "", "ReadonlyDataModified"], [29, 2, 1, "", "ReadonlyLamportChange"], [29, 2, 1, "", "ReentrancyNotAllowed"], [29, 2, 1, "", "RentEpochModified"], [29, 2, 1, "", "UnbalancedInstruction"], [29, 2, 1, "", "UninitializedAccount"], [29, 2, 1, "", "UnsupportedProgramId"], [29, 2, 1, "", "UnsupportedSysvar"]], "solders.transaction_status.ParsedAccount": [[29, 3, 1, "", "from_bytes"], [29, 3, 1, "", "from_json"], [29, 2, 1, "", "pubkey"], [29, 2, 1, "", "signer"], [29, 2, 1, "", "source"], [29, 3, 1, "", "to_json"], [29, 2, 1, "", "writable"]], "solders.transaction_status.ParsedAccountSource": [[29, 2, 1, "", "LookupTable"], [29, 2, 1, "", "Transaction"]], "solders.transaction_status.ParsedInstruction": [[29, 3, 1, "", "from_bytes"], [29, 3, 1, "", "from_json"], [29, 2, 1, "", "parsed"], [29, 2, 1, "", "program"], [29, 2, 1, "", "program_id"], [29, 2, 1, "", "stack_height"], [29, 3, 1, "", "to_json"]], "solders.transaction_status.Reward": [[29, 2, 1, "", "commission"], [29, 3, 1, "", "from_bytes"], [29, 3, 1, "", "from_json"], [29, 2, 1, "", "lamports"], [29, 2, 1, "", "post_balance"], [29, 2, 1, "", "pubkey"], [29, 2, 1, "", "reward_type"], [29, 3, 1, "", "to_json"]], "solders.transaction_status.RewardType": [[29, 2, 1, "", "Fee"], [29, 2, 1, "", "Rent"], [29, 2, 1, "", "Staking"], [29, 2, 1, "", "Voting"]], "solders.transaction_status.TransactionBinaryEncoding": [[29, 2, 1, "", "Base58"], [29, 2, 1, "", "Base64"]], "solders.transaction_status.TransactionConfirmationStatus": [[29, 2, 1, "", "Confirmed"], [29, 2, 1, "", "Finalized"], [29, 2, 1, "", "Processed"]], "solders.transaction_status.TransactionDetails": [[29, 2, 1, "", "Accounts"], [29, 2, 1, "", "Full"], [29, 2, 1, "", "None_"], [29, 2, 1, "", "Signatures"]], "solders.transaction_status.TransactionErrorDuplicateInstruction": [[29, 3, 1, "", "from_bytes"], [29, 3, 1, "", "from_json"], [29, 2, 1, "", "index"], [29, 3, 1, "", "to_json"]], "solders.transaction_status.TransactionErrorFieldless": [[29, 2, 1, "", "AccountBorrowOutstanding"], [29, 2, 1, "", "AccountInUse"], [29, 2, 1, "", "AccountLoadedTwice"], [29, 2, 1, "", "AccountNotFound"], [29, 2, 1, "", "AddressLookupTableNotFound"], [29, 2, 1, "", "AlreadyProcessed"], [29, 2, 1, "", "BlockhashNotFound"], [29, 2, 1, "", "CallChainTooDeep"], [29, 2, 1, "", "ClusterMaintenance"], [29, 2, 1, "", "InsufficientFundsForFee"], [29, 2, 1, "", "InvalidAccountForFee"], [29, 2, 1, "", "InvalidAccountIndex"], [29, 2, 1, "", "InvalidAddressLookupTableData"], [29, 2, 1, "", "InvalidAddressLookupTableIndex"], [29, 2, 1, "", "InvalidAddressLookupTableOwner"], [29, 2, 1, "", "InvalidLoadedAccountsDataSizeLimit"], [29, 2, 1, "", "InvalidProgramForExecution"], [29, 2, 1, "", "InvalidRentPayingAccount"], [29, 2, 1, "", "InvalidWritableAccount"], [29, 2, 1, "", "MaxLoadedAccountsDataSizeExceeded"], [29, 2, 1, "", "MissingSignatureForFee"], [29, 2, 1, "", "ProgramAccountNotFound"], [29, 2, 1, "", "ProgramCacheHitMaxLimit"], [29, 2, 1, "", "ResanitizationNeeded"], [29, 2, 1, "", "SanitizeFailure"], [29, 2, 1, "", "SignatureFailure"], [29, 2, 1, "", "TooManyAccountLocks"], [29, 2, 1, "", "UnbalancedTransaction"], [29, 2, 1, "", "UnsupportedVersion"], [29, 2, 1, "", "WouldExceedAccountDataBlockLimit"], [29, 2, 1, "", "WouldExceedAccountDataTotalLimit"], [29, 2, 1, "", "WouldExceedMaxAccountCostLimit"], [29, 2, 1, "", "WouldExceedMaxBlockCostLimit"], [29, 2, 1, "", "WouldExceedMaxVoteCostLimit"]], "solders.transaction_status.TransactionErrorInstructionError": [[29, 2, 1, "", "err"], [29, 3, 1, "", "from_bytes"], [29, 3, 1, "", "from_json"], [29, 2, 1, "", "index"], [29, 3, 1, "", "to_json"]], "solders.transaction_status.TransactionErrorInsufficientFundsForRent": [[29, 2, 1, "", "account_index"], [29, 3, 1, "", "from_bytes"], [29, 3, 1, "", "from_json"], [29, 3, 1, "", "to_json"]], "solders.transaction_status.TransactionReturnData": [[29, 2, 1, "", "data"], [29, 3, 1, "", "from_bytes"], [29, 3, 1, "", "from_json"], [29, 2, 1, "", "program_id"], [29, 3, 1, "", "to_json"]], "solders.transaction_status.TransactionStatus": [[29, 2, 1, "", "confirmation_status"], [29, 2, 1, "", "confirmations"], [29, 2, 1, "", "err"], [29, 3, 1, "", "find_confirmation_status"], [29, 3, 1, "", "from_bytes"], [29, 3, 1, "", "from_json"], [29, 3, 1, "", "satisfies_commitment"], [29, 2, 1, "", "slot"], [29, 2, 1, "", "status"], [29, 3, 1, "", "to_json"]], "solders.transaction_status.UiAccountsList": [[29, 2, 1, "", "account_keys"], [29, 3, 1, "", "from_bytes"], [29, 3, 1, "", "from_json"], [29, 2, 1, "", "signatures"], [29, 3, 1, "", "to_json"]], "solders.transaction_status.UiAddressTableLookup": [[29, 2, 1, "", "account_key"], [29, 3, 1, "", "from_bytes"], [29, 3, 1, "", "from_json"], [29, 2, 1, "", "readonly_indexes"], [29, 3, 1, "", "to_json"], [29, 2, 1, "", "writable_indexes"]], "solders.transaction_status.UiCompiledInstruction": [[29, 2, 1, "", "accounts"], [29, 2, 1, "", "data"], [29, 3, 1, "", "from_bytes"], [29, 3, 1, "", "from_json"], [29, 2, 1, "", "program_id_index"], [29, 2, 1, "", "stack_height"], [29, 3, 1, "", "to_json"]], "solders.transaction_status.UiConfirmedBlock": [[29, 2, 1, "", "block_height"], [29, 2, 1, "", "block_time"], [29, 2, 1, "", "blockhash"], [29, 3, 1, "", "from_bytes"], [29, 3, 1, "", "from_json"], [29, 2, 1, "", "parent_slot"], [29, 2, 1, "", "previous_blockhash"], [29, 2, 1, "", "rewards"], [29, 2, 1, "", "signatures"], [29, 3, 1, "", "to_json"], [29, 2, 1, "", "transactions"]], "solders.transaction_status.UiInnerInstructions": [[29, 3, 1, "", "from_bytes"], [29, 3, 1, "", "from_json"], [29, 2, 1, "", "index"], [29, 2, 1, "", "instructions"], [29, 3, 1, "", "to_json"]], "solders.transaction_status.UiLoadedAddresses": [[29, 3, 1, "", "from_bytes"], [29, 3, 1, "", "from_json"], [29, 2, 1, "", "readonly"], [29, 3, 1, "", "to_json"], [29, 2, 1, "", "writable"]], "solders.transaction_status.UiParsedMessage": [[29, 2, 1, "", "account_keys"], [29, 2, 1, "", "address_table_lookups"], [29, 3, 1, "", "from_bytes"], [29, 3, 1, "", "from_json"], [29, 2, 1, "", "instructions"], [29, 2, 1, "", "recent_blockhash"], [29, 3, 1, "", "to_json"]], "solders.transaction_status.UiPartiallyDecodedInstruction": [[29, 2, 1, "", "accounts"], [29, 2, 1, "", "data"], [29, 3, 1, "", "from_bytes"], [29, 3, 1, "", "from_json"], [29, 2, 1, "", "program_id"], [29, 2, 1, "", "stack_height"], [29, 3, 1, "", "to_json"]], "solders.transaction_status.UiRawMessage": [[29, 2, 1, "", "account_keys"], [29, 2, 1, "", "address_table_lookups"], [29, 3, 1, "", "from_bytes"], [29, 3, 1, "", "from_json"], [29, 2, 1, "", "header"], [29, 2, 1, "", "instructions"], [29, 2, 1, "", "recent_blockhash"], [29, 3, 1, "", "to_json"]], "solders.transaction_status.UiTransaction": [[29, 3, 1, "", "from_bytes"], [29, 3, 1, "", "from_json"], [29, 2, 1, "", "message"], [29, 2, 1, "", "signatures"], [29, 3, 1, "", "to_json"]], "solders.transaction_status.UiTransactionEncoding": [[29, 2, 1, "", "Base58"], [29, 2, 1, "", "Base64"], [29, 2, 1, "", "Binary"], [29, 2, 1, "", "Json"], [29, 2, 1, "", "JsonParsed"]], "solders.transaction_status.UiTransactionStatusMeta": [[29, 2, 1, "", "compute_units_consumed"], [29, 2, 1, "", "err"], [29, 2, 1, "", "fee"], [29, 3, 1, "", "from_bytes"], [29, 3, 1, "", "from_json"], [29, 2, 1, "", "inner_instructions"], [29, 2, 1, "", "loaded_addresses"], [29, 2, 1, "", "log_messages"], [29, 2, 1, "", "post_balances"], [29, 2, 1, "", "post_token_balances"], [29, 2, 1, "", "pre_balances"], [29, 2, 1, "", "pre_token_balances"], [29, 2, 1, "", "return_data"], [29, 2, 1, "", "rewards"], [29, 3, 1, "", "to_json"]], "solders.transaction_status.UiTransactionTokenBalance": [[29, 2, 1, "", "account_index"], [29, 3, 1, "", "from_bytes"], [29, 3, 1, "", "from_json"], [29, 2, 1, "", "mint"], [29, 2, 1, "", "owner"], [29, 2, 1, "", "program_id"], [29, 3, 1, "", "to_json"], [29, 2, 1, "", "ui_token_amount"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:method", "4": "py:function", "5": "py:exception", "6": "py:data"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "method", "Python method"], "4": ["py", "function", "Python function"], "5": ["py", "exception", "Python exception"], "6": ["py", "data", "Python data"]}, "titleterms": {"account": [0, 1, 2, 31], "decod": 1, "address": [2, 34], "lookup": 2, "tabl": 2, "bankrun": [3, 31], "commit": 4, "config": [4, 16], "comput": 5, "budget": 5, "epoch": 6, "schedul": 6, "error": [7, 17], "hash": 8, "api": 9, "refer": 9, "instruct": 10, "keypair": [11, 33], "messag": [12, 33], "null": 13, "signer": 13, "presign": 14, "pubkei": [15, 34], "filter": 18, "rpc": [19, 35], "request": [20, 35], "respons": [21, 35], "signatur": 22, "system": 23, "program": [23, 31], "sysvar": 24, "spl": [25, 26, 27], "associ": 25, "token": [25, 26, 27], "state": 27, "transact": [28, 29, 36], "statu": 29, "solder": 30, "what": 30, "about": 30, "solana": [30, 31], "py": 30, "instal": 30, "exampl": [30, 31], "usag": 30, "develop": 30, "setup": 30, "test": [30, 31], "minim": 31, "deploi": 31, "anchor": 31, "integr": 31, "time": 31, "travel": 31, "write": 31, "arbitrari": 31, "other": 31, "featur": 31, "when": 31, "should": 31, "i": 31, "us": 31, "valid": 31, "support": 31, "platform": 31, "tutori": 32, "gener": [33, 34], "new": 33, "convert": 33, "raw": 33, "byte": 33, "restor": 33, "from": 33, "secret": 33, "verifi": 33, "mnemon": 33, "seed": 33, "phrase": 33, "sign": [33, 36], "check": 34, "an": [34, 35], "ha": 34, "privat": 34, "kei": 34, "pda": 34, "helper": 35, "build": 35, "batch": 35, "pars": 35, "repsons": 35, "send": 36, "sol": 36, "partial": 36}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"Account": [[0, "module-solders.account"]], "Account Decoder": [[1, "module-solders.account_decoder"]], "Address Lookup Table Account": [[2, "module-solders.address_lookup_table_account"]], "Bankrun": [[3, "module-solders.bankrun"], [31, "bankrun"]], "Commitment Config": [[4, "module-solders.commitment_config"]], "Compute Budget": [[5, "module-solders.compute_budget"]], "Epoch Schedule": [[6, "module-solders.epoch_schedule"]], "Errors": [[7, "module-solders.errors"], [17, "module-solders.rpc.errors"]], "Hash": [[8, "module-solders.hash"]], "API Reference": [[9, "api-reference"]], "Instruction": [[10, "module-solders.instruction"]], "Keypair": [[11, "module-solders.keypair"]], "Message": [[12, "module-solders.message"]], "Null Signer": [[13, "module-solders.null_signer"]], "Presigner": [[14, "module-solders.presigner"]], "Pubkey": [[15, "module-solders.pubkey"]], "Config": [[16, "module-solders.rpc.config"]], "Filter": [[18, "module-solders.rpc.filter"]], "RPC": [[19, "rpc"]], "Requests": [[20, "module-solders.rpc.requests"]], "Responses": [[21, "module-solders.rpc.responses"]], "Signature": [[22, "module-solders.signature"]], "System Program": [[23, "module-solders.system_program"]], "Sysvar": [[24, "module-solders.sysvar"]], "SPL Associated Token": [[25, "module-solders.token.associated"]], "SPL Token": [[26, "spl-token"]], "SPL Token State": [[27, "module-solders.token.state"]], "Transaction": [[28, "module-solders.transaction"]], "Transaction Status": [[29, "module-solders.transaction_status"]], "Solders": [[30, "solders"]], "What about solana-py?": [[30, "what-about-solana-py"]], "Installation": [[30, "installation"]], "Example Usage": [[30, "example-usage"]], "Development": [[30, "development"]], "Setup": [[30, "setup"]], "Testing": [[30, "testing"]], "Minimal example": [[31, "minimal-example"]], "Deploying programs": [[31, "deploying-programs"]], "Anchor integration": [[31, "anchor-integration"]], "Time travel": [[31, "time-travel"]], "Writing arbitrary accounts": [[31, "writing-arbitrary-accounts"]], "Other features": [[31, "other-features"]], "When should I use solana-test-validator?": [[31, "when-should-i-use-solana-test-validator"]], "Supported platforms": [[31, "supported-platforms"]], "Tutorials": [[32, "tutorials"]], "Keypairs": [[33, "keypairs"]], "Generating a new keypair": [[33, "generating-a-new-keypair"]], "Converting a keypair to raw bytes": [[33, "converting-a-keypair-to-raw-bytes"]], "Restoring a keypair from a secret": [[33, "restoring-a-keypair-from-a-secret"]], "Verifying a keypair": [[33, "verifying-a-keypair"]], "Restoring a keypair from a mnemonic (seed phrase)": [[33, "restoring-a-keypair-from-a-mnemonic-seed-phrase"]], "Signing and verifying messages": [[33, "signing-and-verifying-messages"]], "Pubkeys": [[34, "pubkeys"]], "Checking if an address has a private key": [[34, "checking-if-an-address-has-a-private-key"]], "Generating PDAs": [[34, "generating-pdas"]], "RPC helpers": [[35, "rpc-helpers"]], "Building an RPC request": [[35, "building-an-rpc-request"]], "Building a batch RPC request": [[35, "building-a-batch-rpc-request"]], "Parsing an RPC response": [[35, "parsing-an-rpc-response"]], "Parsing an RPC batch repsonse": [[35, "parsing-an-rpc-batch-repsonse"]], "Transactions": [[36, "transactions"]], "Sending SOL": [[36, "sending-sol"]], "Partial signing": [[36, "partial-signing"]]}, "indexentries": {"account (class in solders.account)": [[0, "solders.account.Account"]], "accountjson (class in solders.account)": [[0, "solders.account.AccountJSON"]], "data (account attribute)": [[0, "solders.account.Account.data"]], "data (accountjson attribute)": [[0, "solders.account.AccountJSON.data"]], "default() (account static method)": [[0, "solders.account.Account.default"]], "executable (account attribute)": [[0, "solders.account.Account.executable"]], "executable (accountjson attribute)": [[0, "solders.account.AccountJSON.executable"]], "from_bytes() (account static method)": [[0, "solders.account.Account.from_bytes"]], "from_bytes() (accountjson static method)": [[0, "solders.account.AccountJSON.from_bytes"]], "from_json() (account static method)": [[0, "solders.account.Account.from_json"]], "from_json() (accountjson static method)": [[0, "solders.account.AccountJSON.from_json"]], "lamports (account attribute)": [[0, "solders.account.Account.lamports"]], "lamports (accountjson attribute)": [[0, "solders.account.AccountJSON.lamports"]], "module": [[0, "module-solders.account"], [1, "module-solders.account_decoder"], [2, "module-solders.address_lookup_table_account"], [3, "module-solders.bankrun"], [4, "module-solders.commitment_config"], [5, "module-solders.compute_budget"], [6, "module-solders.epoch_schedule"], [7, "module-solders.errors"], [8, "module-solders.hash"], [10, "module-solders.instruction"], [11, "module-solders.keypair"], [12, "module-solders.message"], [13, "module-solders.null_signer"], [14, "module-solders.presigner"], [15, "module-solders.pubkey"], [16, "module-solders.rpc.config"], [17, "module-solders.rpc.errors"], [18, "module-solders.rpc.filter"], [20, "module-solders.rpc.requests"], [21, "module-solders.rpc.responses"], [22, "module-solders.signature"], [23, "module-solders.system_program"], [24, "module-solders.sysvar"], [25, "module-solders.token.associated"], [27, "module-solders.token.state"], [28, "module-solders.transaction"], [29, "module-solders.transaction_status"]], "owner (account attribute)": [[0, "solders.account.Account.owner"]], "owner (accountjson attribute)": [[0, "solders.account.AccountJSON.owner"]], "rent_epoch (account attribute)": [[0, "solders.account.Account.rent_epoch"]], "rent_epoch (accountjson attribute)": [[0, "solders.account.AccountJSON.rent_epoch"]], "solders.account": [[0, "module-solders.account"]], "to_json() (account method)": [[0, "solders.account.Account.to_json"]], "to_json() (accountjson method)": [[0, "solders.account.AccountJSON.to_json"]], "base58 (uiaccountencoding attribute)": [[1, "solders.account_decoder.UiAccountEncoding.Base58"]], "base64 (uiaccountencoding attribute)": [[1, "solders.account_decoder.UiAccountEncoding.Base64"]], "base64zstd (uiaccountencoding attribute)": [[1, "solders.account_decoder.UiAccountEncoding.Base64Zstd"]], "binary (uiaccountencoding attribute)": [[1, "solders.account_decoder.UiAccountEncoding.Binary"]], "jsonparsed (uiaccountencoding attribute)": [[1, "solders.account_decoder.UiAccountEncoding.JsonParsed"]], "parsedaccount (class in solders.account_decoder)": [[1, "solders.account_decoder.ParsedAccount"]], "uiaccountencoding (class in solders.account_decoder)": [[1, "solders.account_decoder.UiAccountEncoding"]], "uidatasliceconfig (class in solders.account_decoder)": [[1, "solders.account_decoder.UiDataSliceConfig"]], "uitokenamount (class in solders.account_decoder)": [[1, "solders.account_decoder.UiTokenAmount"]], "amount (uitokenamount attribute)": [[1, "solders.account_decoder.UiTokenAmount.amount"]], "decimals (uitokenamount attribute)": [[1, "solders.account_decoder.UiTokenAmount.decimals"]], "from_bytes() (parsedaccount static method)": [[1, "solders.account_decoder.ParsedAccount.from_bytes"], [29, "solders.transaction_status.ParsedAccount.from_bytes"]], "from_bytes() (uitokenamount static method)": [[1, "solders.account_decoder.UiTokenAmount.from_bytes"]], "from_json() (parsedaccount static method)": [[1, "solders.account_decoder.ParsedAccount.from_json"], [29, "solders.transaction_status.ParsedAccount.from_json"]], "from_json() (uitokenamount static method)": [[1, "solders.account_decoder.UiTokenAmount.from_json"]], "length (uidatasliceconfig attribute)": [[1, "solders.account_decoder.UiDataSliceConfig.length"]], "offset (uidatasliceconfig attribute)": [[1, "solders.account_decoder.UiDataSliceConfig.offset"]], "parsed (parsedaccount attribute)": [[1, "solders.account_decoder.ParsedAccount.parsed"]], "program (parsedaccount attribute)": [[1, "solders.account_decoder.ParsedAccount.program"]], "solders.account_decoder": [[1, "module-solders.account_decoder"]], "space (parsedaccount attribute)": [[1, "solders.account_decoder.ParsedAccount.space"]], "to_json() (parsedaccount method)": [[1, "solders.account_decoder.ParsedAccount.to_json"], [29, "solders.transaction_status.ParsedAccount.to_json"]], "to_json() (uitokenamount method)": [[1, "solders.account_decoder.UiTokenAmount.to_json"]], "ui_amount (uitokenamount attribute)": [[1, "solders.account_decoder.UiTokenAmount.ui_amount"]], "ui_amount_string (uitokenamount attribute)": [[1, "solders.account_decoder.UiTokenAmount.ui_amount_string"]], "activated (lookuptablestatusfieldless attribute)": [[2, "solders.address_lookup_table_account.LookupTableStatusFieldless.Activated"]], "addresslookuptable (class in solders.address_lookup_table_account)": [[2, "solders.address_lookup_table_account.AddressLookupTable"]], "addresslookuptableaccount (class in solders.address_lookup_table_account)": [[2, "solders.address_lookup_table_account.AddressLookupTableAccount"]], "deactivated (lookuptablestatusfieldless attribute)": [[2, "solders.address_lookup_table_account.LookupTableStatusFieldless.Deactivated"]], "lookuptablemeta (class in solders.address_lookup_table_account)": [[2, "solders.address_lookup_table_account.LookupTableMeta"]], "lookuptablestatusdeactivating (class in solders.address_lookup_table_account)": [[2, "solders.address_lookup_table_account.LookupTableStatusDeactivating"]], "lookuptablestatusfieldless (class in solders.address_lookup_table_account)": [[2, "solders.address_lookup_table_account.LookupTableStatusFieldless"]], "slothashes (class in solders.address_lookup_table_account)": [[2, "solders.address_lookup_table_account.SlotHashes"]], "addresses (addresslookuptable attribute)": [[2, "solders.address_lookup_table_account.AddressLookupTable.addresses"]], "addresses (addresslookuptableaccount attribute)": [[2, "solders.address_lookup_table_account.AddressLookupTableAccount.addresses"]], "authority (lookuptablemeta attribute)": [[2, "solders.address_lookup_table_account.LookupTableMeta.authority"]], "deactivation_slot (lookuptablemeta attribute)": [[2, "solders.address_lookup_table_account.LookupTableMeta.deactivation_slot"]], "derive_lookup_table_address() (in module solders.address_lookup_table_account)": [[2, "solders.address_lookup_table_account.derive_lookup_table_address"]], "deserialize() (addresslookuptable static method)": [[2, "solders.address_lookup_table_account.AddressLookupTable.deserialize"]], "from_bytes() (addresslookuptable static method)": [[2, "solders.address_lookup_table_account.AddressLookupTable.from_bytes"]], "from_bytes() (addresslookuptableaccount static method)": [[2, "solders.address_lookup_table_account.AddressLookupTableAccount.from_bytes"]], "from_bytes() (lookuptablemeta static method)": [[2, "solders.address_lookup_table_account.LookupTableMeta.from_bytes"]], "from_bytes() (lookuptablestatusdeactivating static method)": [[2, "solders.address_lookup_table_account.LookupTableStatusDeactivating.from_bytes"]], "from_bytes() (slothashes static method)": [[2, "solders.address_lookup_table_account.SlotHashes.from_bytes"]], "from_json() (addresslookuptable static method)": [[2, "solders.address_lookup_table_account.AddressLookupTable.from_json"]], "from_json() (addresslookuptableaccount static method)": [[2, "solders.address_lookup_table_account.AddressLookupTableAccount.from_json"]], "from_json() (lookuptablemeta static method)": [[2, "solders.address_lookup_table_account.LookupTableMeta.from_json"]], "from_json() (lookuptablestatusdeactivating static method)": [[2, "solders.address_lookup_table_account.LookupTableStatusDeactivating.from_json"]], "from_json() (slothashes static method)": [[2, "solders.address_lookup_table_account.SlotHashes.from_json"]], "get_active_addresses_len() (addresslookuptable method)": [[2, "solders.address_lookup_table_account.AddressLookupTable.get_active_addresses_len"]], "is_active() (lookuptablemeta method)": [[2, "solders.address_lookup_table_account.LookupTableMeta.is_active"]], "key (addresslookuptableaccount attribute)": [[2, "solders.address_lookup_table_account.AddressLookupTableAccount.key"]], "last_extended_slot (lookuptablemeta attribute)": [[2, "solders.address_lookup_table_account.LookupTableMeta.last_extended_slot"]], "last_extended_slot_start_index (lookuptablemeta attribute)": [[2, "solders.address_lookup_table_account.LookupTableMeta.last_extended_slot_start_index"]], "lookup() (addresslookuptable method)": [[2, "solders.address_lookup_table_account.AddressLookupTable.lookup"]], "meta (addresslookuptable attribute)": [[2, "solders.address_lookup_table_account.AddressLookupTable.meta"]], "padding (lookuptablemeta attribute)": [[2, "solders.address_lookup_table_account.LookupTableMeta.padding"]], "remaining_slots (lookuptablestatusdeactivating attribute)": [[2, "solders.address_lookup_table_account.LookupTableStatusDeactivating.remaining_slots"]], "slot_hashes (slothashes attribute)": [[2, "solders.address_lookup_table_account.SlotHashes.slot_hashes"]], "solders.address_lookup_table_account": [[2, "module-solders.address_lookup_table_account"]], "status() (lookuptablemeta method)": [[2, "solders.address_lookup_table_account.LookupTableMeta.status"]], "to_json() (addresslookuptable method)": [[2, "solders.address_lookup_table_account.AddressLookupTable.to_json"]], "to_json() (addresslookuptableaccount method)": [[2, "solders.address_lookup_table_account.AddressLookupTableAccount.to_json"]], "to_json() (lookuptablemeta method)": [[2, "solders.address_lookup_table_account.LookupTableMeta.to_json"]], "to_json() (lookuptablestatusdeactivating method)": [[2, "solders.address_lookup_table_account.LookupTableStatusDeactivating.to_json"]], "to_json() (slothashes method)": [[2, "solders.address_lookup_table_account.SlotHashes.to_json"]], "banksclient (class in solders.bankrun)": [[3, "solders.bankrun.BanksClient"]], "banksclienterror": [[3, "solders.bankrun.BanksClientError"]], "bankstransactionmeta (class in solders.bankrun)": [[3, "solders.bankrun.BanksTransactionMeta"]], "bankstransactionresultwithmeta (class in solders.bankrun)": [[3, "solders.bankrun.BanksTransactionResultWithMeta"]], "programtestcontext (class in solders.bankrun)": [[3, "solders.bankrun.ProgramTestContext"]], "banks_client (programtestcontext attribute)": [[3, "solders.bankrun.ProgramTestContext.banks_client"]], "compute_units_consumed (bankstransactionmeta attribute)": [[3, "solders.bankrun.BanksTransactionMeta.compute_units_consumed"]], "from_bytes() (bankstransactionmeta static method)": [[3, "solders.bankrun.BanksTransactionMeta.from_bytes"]], "from_bytes() (bankstransactionresultwithmeta static method)": [[3, "solders.bankrun.BanksTransactionResultWithMeta.from_bytes"]], "from_json() (bankstransactionmeta static method)": [[3, "solders.bankrun.BanksTransactionMeta.from_json"]], "from_json() (bankstransactionresultwithmeta static method)": [[3, "solders.bankrun.BanksTransactionResultWithMeta.from_json"]], "get_account() (banksclient method)": [[3, "solders.bankrun.BanksClient.get_account"]], "get_balance() (banksclient method)": [[3, "solders.bankrun.BanksClient.get_balance"]], "get_block_height() (banksclient method)": [[3, "solders.bankrun.BanksClient.get_block_height"]], "get_clock() (banksclient method)": [[3, "solders.bankrun.BanksClient.get_clock"]], "get_fee_for_message() (banksclient method)": [[3, "solders.bankrun.BanksClient.get_fee_for_message"]], "get_latest_blockhash() (banksclient method)": [[3, "solders.bankrun.BanksClient.get_latest_blockhash"]], "get_rent() (banksclient method)": [[3, "solders.bankrun.BanksClient.get_rent"]], "get_slot() (banksclient method)": [[3, "solders.bankrun.BanksClient.get_slot"]], "get_transaction_status() (banksclient method)": [[3, "solders.bankrun.BanksClient.get_transaction_status"]], "get_transaction_statuses() (banksclient method)": [[3, "solders.bankrun.BanksClient.get_transaction_statuses"]], "increment_vote_account_credits() (programtestcontext method)": [[3, "solders.bankrun.ProgramTestContext.increment_vote_account_credits"]], "last_blockhash (programtestcontext attribute)": [[3, "solders.bankrun.ProgramTestContext.last_blockhash"]], "log_messages (bankstransactionmeta attribute)": [[3, "solders.bankrun.BanksTransactionMeta.log_messages"]], "meta (bankstransactionresultwithmeta attribute)": [[3, "solders.bankrun.BanksTransactionResultWithMeta.meta"]], "payer (programtestcontext attribute)": [[3, "solders.bankrun.ProgramTestContext.payer"]], "process_transaction() (banksclient method)": [[3, "solders.bankrun.BanksClient.process_transaction"]], "result (bankstransactionresultwithmeta attribute)": [[3, "solders.bankrun.BanksTransactionResultWithMeta.result"]], "return_data (bankstransactionmeta attribute)": [[3, "solders.bankrun.BanksTransactionMeta.return_data"]], "send_transaction() (banksclient method)": [[3, "solders.bankrun.BanksClient.send_transaction"]], "set_account() (programtestcontext method)": [[3, "solders.bankrun.ProgramTestContext.set_account"]], "set_clock() (programtestcontext method)": [[3, "solders.bankrun.ProgramTestContext.set_clock"]], "set_rent() (programtestcontext method)": [[3, "solders.bankrun.ProgramTestContext.set_rent"]], "simulate_transaction() (banksclient method)": [[3, "solders.bankrun.BanksClient.simulate_transaction"]], "solders.bankrun": [[3, "module-solders.bankrun"]], "start() (in module solders.bankrun)": [[3, "solders.bankrun.start"]], "start_anchor() (in module solders.bankrun)": [[3, "solders.bankrun.start_anchor"]], "to_json() (bankstransactionmeta method)": [[3, "solders.bankrun.BanksTransactionMeta.to_json"]], "to_json() (bankstransactionresultwithmeta method)": [[3, "solders.bankrun.BanksTransactionResultWithMeta.to_json"]], "warp_to_slot() (programtestcontext method)": [[3, "solders.bankrun.ProgramTestContext.warp_to_slot"]], "commitmentconfig (class in solders.commitment_config)": [[4, "solders.commitment_config.CommitmentConfig"]], "commitmentlevel (class in solders.commitment_config)": [[4, "solders.commitment_config.CommitmentLevel"]], "confirmed (commitmentlevel attribute)": [[4, "solders.commitment_config.CommitmentLevel.Confirmed"]], "finalized (commitmentlevel attribute)": [[4, "solders.commitment_config.CommitmentLevel.Finalized"]], "processed (commitmentlevel attribute)": [[4, "solders.commitment_config.CommitmentLevel.Processed"]], "commitment (commitmentconfig attribute)": [[4, "solders.commitment_config.CommitmentConfig.commitment"]], "confirmed() (commitmentconfig static method)": [[4, "solders.commitment_config.CommitmentConfig.confirmed"]], "default() (commitmentconfig static method)": [[4, "solders.commitment_config.CommitmentConfig.default"]], "default() (commitmentlevel static method)": [[4, "solders.commitment_config.CommitmentLevel.default"]], "finalized() (commitmentconfig static method)": [[4, "solders.commitment_config.CommitmentConfig.finalized"]], "from_string() (commitmentconfig static method)": [[4, "solders.commitment_config.CommitmentConfig.from_string"]], "from_string() (commitmentlevel static method)": [[4, "solders.commitment_config.CommitmentLevel.from_string"]], "is_at_least_confirmed() (commitmentconfig method)": [[4, "solders.commitment_config.CommitmentConfig.is_at_least_confirmed"]], "is_confirmed() (commitmentconfig method)": [[4, "solders.commitment_config.CommitmentConfig.is_confirmed"]], "is_finalized() (commitmentconfig method)": [[4, "solders.commitment_config.CommitmentConfig.is_finalized"]], "processed() (commitmentconfig static method)": [[4, "solders.commitment_config.CommitmentConfig.processed"]], "solders.commitment_config": [[4, "module-solders.commitment_config"]], "request_heap_frame() (in module solders.compute_budget)": [[5, "solders.compute_budget.request_heap_frame"]], "set_compute_unit_limit() (in module solders.compute_budget)": [[5, "solders.compute_budget.set_compute_unit_limit"]], "set_compute_unit_price() (in module solders.compute_budget)": [[5, "solders.compute_budget.set_compute_unit_price"]], "solders.compute_budget": [[5, "module-solders.compute_budget"]], "epochschedule (class in solders.epoch_schedule)": [[6, "solders.epoch_schedule.EpochSchedule"]], "custom() (epochschedule static method)": [[6, "solders.epoch_schedule.EpochSchedule.custom"]], "default() (epochschedule static method)": [[6, "solders.epoch_schedule.EpochSchedule.default"]], "first_normal_epoch (epochschedule attribute)": [[6, "solders.epoch_schedule.EpochSchedule.first_normal_epoch"]], "first_normal_slot (epochschedule attribute)": [[6, "solders.epoch_schedule.EpochSchedule.first_normal_slot"]], "from_bytes() (epochschedule static method)": [[6, "solders.epoch_schedule.EpochSchedule.from_bytes"]], "from_json() (epochschedule static method)": [[6, "solders.epoch_schedule.EpochSchedule.from_json"]], "get_epoch() (epochschedule method)": [[6, "solders.epoch_schedule.EpochSchedule.get_epoch"]], "get_epoch_and_slot_index() (epochschedule method)": [[6, "solders.epoch_schedule.EpochSchedule.get_epoch_and_slot_index"]], "get_first_slot_in_epoch() (epochschedule method)": [[6, "solders.epoch_schedule.EpochSchedule.get_first_slot_in_epoch"]], "get_last_slot_in_epoch() (epochschedule method)": [[6, "solders.epoch_schedule.EpochSchedule.get_last_slot_in_epoch"]], "get_leader_schedule_epoch() (epochschedule method)": [[6, "solders.epoch_schedule.EpochSchedule.get_leader_schedule_epoch"]], "get_slots_in_epoch() (epochschedule method)": [[6, "solders.epoch_schedule.EpochSchedule.get_slots_in_epoch"]], "leader_schedule_slot_offset (epochschedule attribute)": [[6, "solders.epoch_schedule.EpochSchedule.leader_schedule_slot_offset"]], "slots_per_epoch (epochschedule attribute)": [[6, "solders.epoch_schedule.EpochSchedule.slots_per_epoch"]], "solders.epoch_schedule": [[6, "module-solders.epoch_schedule"]], "to_json() (epochschedule method)": [[6, "solders.epoch_schedule.EpochSchedule.to_json"]], "warmup (epochschedule attribute)": [[6, "solders.epoch_schedule.EpochSchedule.warmup"]], "without_warmup() (epochschedule static method)": [[6, "solders.epoch_schedule.EpochSchedule.without_warmup"]], "bincodeerror": [[7, "solders.errors.BincodeError"]], "cborerror": [[7, "solders.errors.CborError"]], "serdejsonerror": [[7, "solders.errors.SerdeJSONError"]], "signererror": [[7, "solders.errors.SignerError"]], "solders.errors": [[7, "module-solders.errors"]], "hash (class in solders.hash)": [[8, "solders.hash.Hash"]], "length (hash attribute)": [[8, "solders.hash.Hash.LENGTH"]], "parsehasherror": [[8, "solders.hash.ParseHashError"]], "default() (hash static method)": [[8, "solders.hash.Hash.default"]], "from_bytes() (hash static method)": [[8, "solders.hash.Hash.from_bytes"]], "from_json() (hash static method)": [[8, "solders.hash.Hash.from_json"]], "from_string() (hash static method)": [[8, "solders.hash.Hash.from_string"]], "hash() (hash static method)": [[8, "solders.hash.Hash.hash"]], "new_unique() (hash static method)": [[8, "solders.hash.Hash.new_unique"]], "solders.hash": [[8, "module-solders.hash"]], "to_json() (hash method)": [[8, "solders.hash.Hash.to_json"]], "accountmeta (class in solders.instruction)": [[10, "solders.instruction.AccountMeta"]], "compiledinstruction (class in solders.instruction)": [[10, "solders.instruction.CompiledInstruction"]], "instruction (class in solders.instruction)": [[10, "solders.instruction.Instruction"]], "accounts (compiledinstruction attribute)": [[10, "solders.instruction.CompiledInstruction.accounts"]], "accounts (instruction attribute)": [[10, "solders.instruction.Instruction.accounts"]], "data (compiledinstruction attribute)": [[10, "solders.instruction.CompiledInstruction.data"]], "data (instruction attribute)": [[10, "solders.instruction.Instruction.data"]], "from_bytes() (accountmeta static method)": [[10, "solders.instruction.AccountMeta.from_bytes"]], "from_bytes() (compiledinstruction static method)": [[10, "solders.instruction.CompiledInstruction.from_bytes"]], "from_bytes() (instruction static method)": [[10, "solders.instruction.Instruction.from_bytes"]], "from_json() (accountmeta static method)": [[10, "solders.instruction.AccountMeta.from_json"]], "from_json() (compiledinstruction static method)": [[10, "solders.instruction.CompiledInstruction.from_json"]], "from_json() (instruction static method)": [[10, "solders.instruction.Instruction.from_json"]], "is_signer (accountmeta attribute)": [[10, "solders.instruction.AccountMeta.is_signer"]], "is_writable (accountmeta attribute)": [[10, "solders.instruction.AccountMeta.is_writable"]], "program_id (instruction attribute)": [[10, "solders.instruction.Instruction.program_id"]], "program_id() (compiledinstruction method)": [[10, "solders.instruction.CompiledInstruction.program_id"]], "program_id_index (compiledinstruction attribute)": [[10, "solders.instruction.CompiledInstruction.program_id_index"]], "pubkey (accountmeta attribute)": [[10, "solders.instruction.AccountMeta.pubkey"]], "solders.instruction": [[10, "module-solders.instruction"]], "to_json() (accountmeta method)": [[10, "solders.instruction.AccountMeta.to_json"]], "to_json() (compiledinstruction method)": [[10, "solders.instruction.CompiledInstruction.to_json"]], "to_json() (instruction method)": [[10, "solders.instruction.Instruction.to_json"]], "keypair (class in solders.keypair)": [[11, "solders.keypair.Keypair"]], "length (keypair attribute)": [[11, "solders.keypair.Keypair.LENGTH"]], "from_base58_string() (keypair static method)": [[11, "solders.keypair.Keypair.from_base58_string"]], "from_bytes() (keypair static method)": [[11, "solders.keypair.Keypair.from_bytes"]], "from_json() (keypair static method)": [[11, "solders.keypair.Keypair.from_json"]], "from_seed() (keypair static method)": [[11, "solders.keypair.Keypair.from_seed"]], "from_seed_and_derivation_path() (keypair static method)": [[11, "solders.keypair.Keypair.from_seed_and_derivation_path"]], "from_seed_phrase_and_passphrase() (keypair static method)": [[11, "solders.keypair.Keypair.from_seed_phrase_and_passphrase"]], "is_interactive() (keypair method)": [[11, "solders.keypair.Keypair.is_interactive"]], "pubkey() (keypair method)": [[11, "solders.keypair.Keypair.pubkey"]], "secret() (keypair method)": [[11, "solders.keypair.Keypair.secret"]], "sign_message() (keypair method)": [[11, "solders.keypair.Keypair.sign_message"]], "solders.keypair": [[11, "module-solders.keypair"]], "to_bytes_array() (keypair method)": [[11, "solders.keypair.Keypair.to_bytes_array"]], "to_json() (keypair method)": [[11, "solders.keypair.Keypair.to_json"]], "length (messageheader attribute)": [[12, "solders.message.MessageHeader.LENGTH"]], "message (class in solders.message)": [[12, "solders.message.Message"]], "messageaddresstablelookup (class in solders.message)": [[12, "solders.message.MessageAddressTableLookup"]], "messageheader (class in solders.message)": [[12, "solders.message.MessageHeader"]], "messagev0 (class in solders.message)": [[12, "solders.message.MessageV0"]], "account_key (messageaddresstablelookup attribute)": [[12, "solders.message.MessageAddressTableLookup.account_key"]], "account_keys (message attribute)": [[12, "solders.message.Message.account_keys"]], "account_keys (messagev0 attribute)": [[12, "solders.message.MessageV0.account_keys"]], "address_table_lookups (messagev0 attribute)": [[12, "solders.message.MessageV0.address_table_lookups"]], "compile_instruction() (message method)": [[12, "solders.message.Message.compile_instruction"]], "default() (message static method)": [[12, "solders.message.Message.default"]], "default() (messageheader static method)": [[12, "solders.message.MessageHeader.default"]], "default() (messagev0 static method)": [[12, "solders.message.MessageV0.default"]], "from_bytes() (message static method)": [[12, "solders.message.Message.from_bytes"]], "from_bytes() (messageaddresstablelookup static method)": [[12, "solders.message.MessageAddressTableLookup.from_bytes"]], "from_bytes() (messageheader static method)": [[12, "solders.message.MessageHeader.from_bytes"]], "from_bytes() (messagev0 static method)": [[12, "solders.message.MessageV0.from_bytes"]], "from_bytes_versioned() (in module solders.message)": [[12, "solders.message.from_bytes_versioned"]], "from_json() (message static method)": [[12, "solders.message.Message.from_json"]], "from_json() (messageaddresstablelookup static method)": [[12, "solders.message.MessageAddressTableLookup.from_json"]], "from_json() (messageheader static method)": [[12, "solders.message.MessageHeader.from_json"]], "from_json() (messagev0 static method)": [[12, "solders.message.MessageV0.from_json"]], "has_duplicates() (message method)": [[12, "solders.message.Message.has_duplicates"]], "hash() (message method)": [[12, "solders.message.Message.hash"]], "hash() (messagev0 method)": [[12, "solders.message.MessageV0.hash"]], "hash_raw_message() (message static method)": [[12, "solders.message.Message.hash_raw_message"]], "hash_raw_message() (messagev0 static method)": [[12, "solders.message.MessageV0.hash_raw_message"]], "header (message attribute)": [[12, "solders.message.Message.header"]], "header (messagev0 attribute)": [[12, "solders.message.MessageV0.header"]], "instructions (message attribute)": [[12, "solders.message.Message.instructions"]], "instructions (messagev0 attribute)": [[12, "solders.message.MessageV0.instructions"]], "is_key_called_as_program() (message method)": [[12, "solders.message.Message.is_key_called_as_program"]], "is_key_called_as_program() (messagev0 method)": [[12, "solders.message.MessageV0.is_key_called_as_program"]], "is_maybe_writable() (messagev0 method)": [[12, "solders.message.MessageV0.is_maybe_writable"]], "is_non_loader_key() (messagev0 method)": [[12, "solders.message.MessageV0.is_non_loader_key"]], "is_signer() (message method)": [[12, "solders.message.Message.is_signer"]], "is_signer() (messagev0 method)": [[12, "solders.message.MessageV0.is_signer"]], "is_upgradeable_loader_present() (message method)": [[12, "solders.message.Message.is_upgradeable_loader_present"]], "maybe_executable() (message method)": [[12, "solders.message.Message.maybe_executable"]], "new_with_blockhash() (message static method)": [[12, "solders.message.Message.new_with_blockhash"]], "new_with_compiled_instructions() (message static method)": [[12, "solders.message.Message.new_with_compiled_instructions"]], "new_with_nonce() (message static method)": [[12, "solders.message.Message.new_with_nonce"]], "num_readonly_signed_accounts (messageheader attribute)": [[12, "solders.message.MessageHeader.num_readonly_signed_accounts"]], "num_readonly_unsigned_accounts (messageheader attribute)": [[12, "solders.message.MessageHeader.num_readonly_unsigned_accounts"]], "num_required_signatures (messageheader attribute)": [[12, "solders.message.MessageHeader.num_required_signatures"]], "program_id() (message method)": [[12, "solders.message.Message.program_id"]], "program_ids() (message method)": [[12, "solders.message.Message.program_ids"]], "program_index() (message method)": [[12, "solders.message.Message.program_index"]], "program_position() (message method)": [[12, "solders.message.Message.program_position"]], "readonly_indexes (messageaddresstablelookup attribute)": [[12, "solders.message.MessageAddressTableLookup.readonly_indexes"]], "recent_blockhash (message attribute)": [[12, "solders.message.Message.recent_blockhash"]], "recent_blockhash (messagev0 attribute)": [[12, "solders.message.MessageV0.recent_blockhash"]], "sanitize() (messagev0 method)": [[12, "solders.message.MessageV0.sanitize"]], "signer_keys() (message method)": [[12, "solders.message.Message.signer_keys"]], "solders.message": [[12, "module-solders.message"]], "to_bytes_versioned() (in module solders.message)": [[12, "solders.message.to_bytes_versioned"]], "to_json() (message method)": [[12, "solders.message.Message.to_json"]], "to_json() (messageaddresstablelookup method)": [[12, "solders.message.MessageAddressTableLookup.to_json"]], "to_json() (messageheader method)": [[12, "solders.message.MessageHeader.to_json"]], "to_json() (messagev0 method)": [[12, "solders.message.MessageV0.to_json"]], "try_compile() (messagev0 static method)": [[12, "solders.message.MessageV0.try_compile"]], "writable_indexes (messageaddresstablelookup attribute)": [[12, "solders.message.MessageAddressTableLookup.writable_indexes"]], "nullsigner (class in solders.null_signer)": [[13, "solders.null_signer.NullSigner"]], "default() (nullsigner static method)": [[13, "solders.null_signer.NullSigner.default"]], "from_bytes() (nullsigner static method)": [[13, "solders.null_signer.NullSigner.from_bytes"]], "from_json() (nullsigner static method)": [[13, "solders.null_signer.NullSigner.from_json"]], "pubkey() (nullsigner method)": [[13, "solders.null_signer.NullSigner.pubkey"]], "sign_message() (nullsigner method)": [[13, "solders.null_signer.NullSigner.sign_message"]], "solders.null_signer": [[13, "module-solders.null_signer"]], "to_json() (nullsigner method)": [[13, "solders.null_signer.NullSigner.to_json"]], "presigner (class in solders.presigner)": [[14, "solders.presigner.Presigner"]], "default() (presigner static method)": [[14, "solders.presigner.Presigner.default"]], "pubkey() (presigner method)": [[14, "solders.presigner.Presigner.pubkey"]], "sign_message() (presigner method)": [[14, "solders.presigner.Presigner.sign_message"]], "solders.presigner": [[14, "module-solders.presigner"]], "length (pubkey attribute)": [[15, "solders.pubkey.Pubkey.LENGTH"]], "pubkey (class in solders.pubkey)": [[15, "solders.pubkey.Pubkey"]], "create_program_address() (pubkey static method)": [[15, "solders.pubkey.Pubkey.create_program_address"]], "create_with_seed() (pubkey static method)": [[15, "solders.pubkey.Pubkey.create_with_seed"]], "default() (pubkey static method)": [[15, "solders.pubkey.Pubkey.default"]], "find_program_address() (pubkey static method)": [[15, "solders.pubkey.Pubkey.find_program_address"]], "from_bytes() (pubkey static method)": [[15, "solders.pubkey.Pubkey.from_bytes"]], "from_json() (pubkey static method)": [[15, "solders.pubkey.Pubkey.from_json"]], "from_string() (pubkey static method)": [[15, "solders.pubkey.Pubkey.from_string"]], "is_on_curve() (pubkey method)": [[15, "solders.pubkey.Pubkey.is_on_curve"]], "new_unique() (pubkey static method)": [[15, "solders.pubkey.Pubkey.new_unique"]], "solders.pubkey": [[15, "module-solders.pubkey"]], "to_json() (pubkey method)": [[15, "solders.pubkey.Pubkey.to_json"]], "all (rpcblocksubscribefilter attribute)": [[16, "solders.rpc.config.RpcBlockSubscribeFilter.All"]], "all (rpctransactionlogsfilter attribute)": [[16, "solders.rpc.config.RpcTransactionLogsFilter.All"]], "allwithvotes (rpctransactionlogsfilter attribute)": [[16, "solders.rpc.config.RpcTransactionLogsFilter.AllWithVotes"]], "circulating (rpclargestaccountsfilter attribute)": [[16, "solders.rpc.config.RpcLargestAccountsFilter.Circulating"]], "noncirculating (rpclargestaccountsfilter attribute)": [[16, "solders.rpc.config.RpcLargestAccountsFilter.NonCirculating"]], "rpcaccountinfoconfig (class in solders.rpc.config)": [[16, "solders.rpc.config.RpcAccountInfoConfig"]], "rpcblockconfig (class in solders.rpc.config)": [[16, "solders.rpc.config.RpcBlockConfig"]], "rpcblockproductionconfig (class in solders.rpc.config)": [[16, "solders.rpc.config.RpcBlockProductionConfig"]], "rpcblockproductionconfigrange (class in solders.rpc.config)": [[16, "solders.rpc.config.RpcBlockProductionConfigRange"]], "rpcblocksubscribeconfig (class in solders.rpc.config)": [[16, "solders.rpc.config.RpcBlockSubscribeConfig"]], "rpcblocksubscribefilter (class in solders.rpc.config)": [[16, "solders.rpc.config.RpcBlockSubscribeFilter"]], "rpcblocksubscribefiltermentions (class in solders.rpc.config)": [[16, "solders.rpc.config.RpcBlockSubscribeFilterMentions"]], "rpccontextconfig (class in solders.rpc.config)": [[16, "solders.rpc.config.RpcContextConfig"]], "rpcepochconfig (class in solders.rpc.config)": [[16, "solders.rpc.config.RpcEpochConfig"]], "rpcgetvoteaccountsconfig (class in solders.rpc.config)": [[16, "solders.rpc.config.RpcGetVoteAccountsConfig"]], "rpclargestaccountsfilter (class in solders.rpc.config)": [[16, "solders.rpc.config.RpcLargestAccountsFilter"]], "rpcleaderscheduleconfig (class in solders.rpc.config)": [[16, "solders.rpc.config.RpcLeaderScheduleConfig"]], "rpcprogramaccountsconfig (class in solders.rpc.config)": [[16, "solders.rpc.config.RpcProgramAccountsConfig"]], "rpcrequestairdropconfig (class in solders.rpc.config)": [[16, "solders.rpc.config.RpcRequestAirdropConfig"]], "rpcsendtransactionconfig (class in solders.rpc.config)": [[16, "solders.rpc.config.RpcSendTransactionConfig"]], "rpcsignaturestatusconfig (class in solders.rpc.config)": [[16, "solders.rpc.config.RpcSignatureStatusConfig"]], "rpcsignaturesubscribeconfig (class in solders.rpc.config)": [[16, "solders.rpc.config.RpcSignatureSubscribeConfig"]], "rpcsignaturesforaddressconfig (class in solders.rpc.config)": [[16, "solders.rpc.config.RpcSignaturesForAddressConfig"]], "rpcsimulatetransactionaccountsconfig (class in solders.rpc.config)": [[16, "solders.rpc.config.RpcSimulateTransactionAccountsConfig"]], "rpcsimulatetransactionconfig (class in solders.rpc.config)": [[16, "solders.rpc.config.RpcSimulateTransactionConfig"]], "rpcsupplyconfig (class in solders.rpc.config)": [[16, "solders.rpc.config.RpcSupplyConfig"]], "rpctokenaccountsfiltermint (class in solders.rpc.config)": [[16, "solders.rpc.config.RpcTokenAccountsFilterMint"]], "rpctokenaccountsfilterprogramid (class in solders.rpc.config)": [[16, "solders.rpc.config.RpcTokenAccountsFilterProgramId"]], "rpctransactionconfig (class in solders.rpc.config)": [[16, "solders.rpc.config.RpcTransactionConfig"]], "rpctransactionlogsconfig (class in solders.rpc.config)": [[16, "solders.rpc.config.RpcTransactionLogsConfig"]], "rpctransactionlogsfilter (class in solders.rpc.config)": [[16, "solders.rpc.config.RpcTransactionLogsFilter"]], "rpctransactionlogsfiltermentions (class in solders.rpc.config)": [[16, "solders.rpc.config.RpcTransactionLogsFilterMentions"]], "account_config (rpcprogramaccountsconfig attribute)": [[16, "solders.rpc.config.RpcProgramAccountsConfig.account_config"]], "accounts (rpcsimulatetransactionconfig attribute)": [[16, "solders.rpc.config.RpcSimulateTransactionConfig.accounts"]], "addresses (rpcsimulatetransactionaccountsconfig attribute)": [[16, "solders.rpc.config.RpcSimulateTransactionAccountsConfig.addresses"]], "before (rpcsignaturesforaddressconfig attribute)": [[16, "solders.rpc.config.RpcSignaturesForAddressConfig.before"]], "commitment (rpcaccountinfoconfig attribute)": [[16, "solders.rpc.config.RpcAccountInfoConfig.commitment"]], "commitment (rpcblockconfig attribute)": [[16, "solders.rpc.config.RpcBlockConfig.commitment"]], "commitment (rpcblockproductionconfig attribute)": [[16, "solders.rpc.config.RpcBlockProductionConfig.commitment"]], "commitment (rpcblocksubscribeconfig attribute)": [[16, "solders.rpc.config.RpcBlockSubscribeConfig.commitment"]], "commitment (rpccontextconfig attribute)": [[16, "solders.rpc.config.RpcContextConfig.commitment"]], "commitment (rpcepochconfig attribute)": [[16, "solders.rpc.config.RpcEpochConfig.commitment"]], "commitment (rpcgetvoteaccountsconfig attribute)": [[16, "solders.rpc.config.RpcGetVoteAccountsConfig.commitment"]], "commitment (rpcleaderscheduleconfig attribute)": [[16, "solders.rpc.config.RpcLeaderScheduleConfig.commitment"]], "commitment (rpcrequestairdropconfig attribute)": [[16, "solders.rpc.config.RpcRequestAirdropConfig.commitment"]], "commitment (rpcsignaturesubscribeconfig attribute)": [[16, "solders.rpc.config.RpcSignatureSubscribeConfig.commitment"]], "commitment (rpcsignaturesforaddressconfig attribute)": [[16, "solders.rpc.config.RpcSignaturesForAddressConfig.commitment"]], "commitment (rpcsimulatetransactionconfig attribute)": [[16, "solders.rpc.config.RpcSimulateTransactionConfig.commitment"]], "commitment (rpcsupplyconfig attribute)": [[16, "solders.rpc.config.RpcSupplyConfig.commitment"]], "commitment (rpctransactionconfig attribute)": [[16, "solders.rpc.config.RpcTransactionConfig.commitment"]], "commitment (rpctransactionlogsconfig attribute)": [[16, "solders.rpc.config.RpcTransactionLogsConfig.commitment"]], "data_slice (rpcaccountinfoconfig attribute)": [[16, "solders.rpc.config.RpcAccountInfoConfig.data_slice"]], "default() (rpcaccountinfoconfig static method)": [[16, "solders.rpc.config.RpcAccountInfoConfig.default"]], "default() (rpcblockconfig static method)": [[16, "solders.rpc.config.RpcBlockConfig.default"]], "default() (rpcblockproductionconfig static method)": [[16, "solders.rpc.config.RpcBlockProductionConfig.default"]], "default() (rpcblocksubscribeconfig static method)": [[16, "solders.rpc.config.RpcBlockSubscribeConfig.default"]], "default() (rpccontextconfig static method)": [[16, "solders.rpc.config.RpcContextConfig.default"]], "default() (rpcepochconfig static method)": [[16, "solders.rpc.config.RpcEpochConfig.default"]], "default() (rpcgetvoteaccountsconfig static method)": [[16, "solders.rpc.config.RpcGetVoteAccountsConfig.default"]], "default() (rpcprogramaccountsconfig static method)": [[16, "solders.rpc.config.RpcProgramAccountsConfig.default"]], "default() (rpcrequestairdropconfig static method)": [[16, "solders.rpc.config.RpcRequestAirdropConfig.default"]], "default() (rpcsendtransactionconfig static method)": [[16, "solders.rpc.config.RpcSendTransactionConfig.default"]], "default() (rpcsignaturesubscribeconfig static method)": [[16, "solders.rpc.config.RpcSignatureSubscribeConfig.default"]], "default() (rpcsignaturesforaddressconfig static method)": [[16, "solders.rpc.config.RpcSignaturesForAddressConfig.default"]], "default() (rpcsimulatetransactionaccountsconfig static method)": [[16, "solders.rpc.config.RpcSimulateTransactionAccountsConfig.default"]], "default() (rpcsimulatetransactionconfig static method)": [[16, "solders.rpc.config.RpcSimulateTransactionConfig.default"]], "default() (rpcsupplyconfig static method)": [[16, "solders.rpc.config.RpcSupplyConfig.default"]], "default() (rpctransactionconfig static method)": [[16, "solders.rpc.config.RpcTransactionConfig.default"]], "delinquent_slot_distance (rpcgetvoteaccountsconfig attribute)": [[16, "solders.rpc.config.RpcGetVoteAccountsConfig.delinquent_slot_distance"]], "enable_received_notification (rpcsignaturesubscribeconfig attribute)": [[16, "solders.rpc.config.RpcSignatureSubscribeConfig.enable_received_notification"]], "encoding (rpcaccountinfoconfig attribute)": [[16, "solders.rpc.config.RpcAccountInfoConfig.encoding"]], "encoding (rpcblockconfig attribute)": [[16, "solders.rpc.config.RpcBlockConfig.encoding"]], "encoding (rpcblocksubscribeconfig attribute)": [[16, "solders.rpc.config.RpcBlockSubscribeConfig.encoding"]], "encoding (rpcsendtransactionconfig attribute)": [[16, "solders.rpc.config.RpcSendTransactionConfig.encoding"]], "encoding (rpcsimulatetransactionaccountsconfig attribute)": [[16, "solders.rpc.config.RpcSimulateTransactionAccountsConfig.encoding"]], "encoding (rpcsimulatetransactionconfig attribute)": [[16, "solders.rpc.config.RpcSimulateTransactionConfig.encoding"]], "encoding (rpctransactionconfig attribute)": [[16, "solders.rpc.config.RpcTransactionConfig.encoding"]], "epoch (rpcepochconfig attribute)": [[16, "solders.rpc.config.RpcEpochConfig.epoch"]], "exclude_non_circulating_accounts_list (rpcsupplyconfig attribute)": [[16, "solders.rpc.config.RpcSupplyConfig.exclude_non_circulating_accounts_list"]], "filters (rpcprogramaccountsconfig attribute)": [[16, "solders.rpc.config.RpcProgramAccountsConfig.filters"]], "first_slot (rpcblockproductionconfigrange attribute)": [[16, "solders.rpc.config.RpcBlockProductionConfigRange.first_slot"]], "from_bytes() (rpcaccountinfoconfig static method)": [[16, "solders.rpc.config.RpcAccountInfoConfig.from_bytes"]], "from_bytes() (rpcblockconfig static method)": [[16, "solders.rpc.config.RpcBlockConfig.from_bytes"]], "from_bytes() (rpcblockproductionconfig static method)": [[16, "solders.rpc.config.RpcBlockProductionConfig.from_bytes"]], "from_bytes() (rpcblockproductionconfigrange static method)": [[16, "solders.rpc.config.RpcBlockProductionConfigRange.from_bytes"]], "from_bytes() (rpcblocksubscribeconfig static method)": [[16, "solders.rpc.config.RpcBlockSubscribeConfig.from_bytes"]], "from_bytes() (rpccontextconfig static method)": [[16, "solders.rpc.config.RpcContextConfig.from_bytes"]], "from_bytes() (rpcepochconfig static method)": [[16, "solders.rpc.config.RpcEpochConfig.from_bytes"]], "from_bytes() (rpcgetvoteaccountsconfig static method)": [[16, "solders.rpc.config.RpcGetVoteAccountsConfig.from_bytes"]], "from_bytes() (rpcleaderscheduleconfig static method)": [[16, "solders.rpc.config.RpcLeaderScheduleConfig.from_bytes"]], "from_bytes() (rpcprogramaccountsconfig static method)": [[16, "solders.rpc.config.RpcProgramAccountsConfig.from_bytes"]], "from_bytes() (rpcrequestairdropconfig static method)": [[16, "solders.rpc.config.RpcRequestAirdropConfig.from_bytes"]], "from_bytes() (rpcsendtransactionconfig static method)": [[16, "solders.rpc.config.RpcSendTransactionConfig.from_bytes"]], "from_bytes() (rpcsignaturestatusconfig static method)": [[16, "solders.rpc.config.RpcSignatureStatusConfig.from_bytes"]], "from_bytes() (rpcsignaturesubscribeconfig static method)": [[16, "solders.rpc.config.RpcSignatureSubscribeConfig.from_bytes"]], "from_bytes() (rpcsignaturesforaddressconfig static method)": [[16, "solders.rpc.config.RpcSignaturesForAddressConfig.from_bytes"]], "from_bytes() (rpcsimulatetransactionaccountsconfig static method)": [[16, "solders.rpc.config.RpcSimulateTransactionAccountsConfig.from_bytes"]], "from_bytes() (rpcsimulatetransactionconfig static method)": [[16, "solders.rpc.config.RpcSimulateTransactionConfig.from_bytes"]], "from_bytes() (rpcsupplyconfig static method)": [[16, "solders.rpc.config.RpcSupplyConfig.from_bytes"]], "from_bytes() (rpctransactionconfig static method)": [[16, "solders.rpc.config.RpcTransactionConfig.from_bytes"]], "from_bytes() (rpctransactionlogsconfig static method)": [[16, "solders.rpc.config.RpcTransactionLogsConfig.from_bytes"]], "from_json() (rpcaccountinfoconfig static method)": [[16, "solders.rpc.config.RpcAccountInfoConfig.from_json"]], "from_json() (rpcblockconfig static method)": [[16, "solders.rpc.config.RpcBlockConfig.from_json"]], "from_json() (rpcblockproductionconfig static method)": [[16, "solders.rpc.config.RpcBlockProductionConfig.from_json"]], "from_json() (rpcblockproductionconfigrange static method)": [[16, "solders.rpc.config.RpcBlockProductionConfigRange.from_json"]], "from_json() (rpcblocksubscribeconfig static method)": [[16, "solders.rpc.config.RpcBlockSubscribeConfig.from_json"]], "from_json() (rpccontextconfig static method)": [[16, "solders.rpc.config.RpcContextConfig.from_json"]], "from_json() (rpcepochconfig static method)": [[16, "solders.rpc.config.RpcEpochConfig.from_json"]], "from_json() (rpcgetvoteaccountsconfig static method)": [[16, "solders.rpc.config.RpcGetVoteAccountsConfig.from_json"]], "from_json() (rpcleaderscheduleconfig static method)": [[16, "solders.rpc.config.RpcLeaderScheduleConfig.from_json"]], "from_json() (rpcprogramaccountsconfig static method)": [[16, "solders.rpc.config.RpcProgramAccountsConfig.from_json"]], "from_json() (rpcrequestairdropconfig static method)": [[16, "solders.rpc.config.RpcRequestAirdropConfig.from_json"]], "from_json() (rpcsendtransactionconfig static method)": [[16, "solders.rpc.config.RpcSendTransactionConfig.from_json"]], "from_json() (rpcsignaturestatusconfig static method)": [[16, "solders.rpc.config.RpcSignatureStatusConfig.from_json"]], "from_json() (rpcsignaturesubscribeconfig static method)": [[16, "solders.rpc.config.RpcSignatureSubscribeConfig.from_json"]], "from_json() (rpcsignaturesforaddressconfig static method)": [[16, "solders.rpc.config.RpcSignaturesForAddressConfig.from_json"]], "from_json() (rpcsimulatetransactionaccountsconfig static method)": [[16, "solders.rpc.config.RpcSimulateTransactionAccountsConfig.from_json"]], "from_json() (rpcsimulatetransactionconfig static method)": [[16, "solders.rpc.config.RpcSimulateTransactionConfig.from_json"]], "from_json() (rpcsupplyconfig static method)": [[16, "solders.rpc.config.RpcSupplyConfig.from_json"]], "from_json() (rpctransactionconfig static method)": [[16, "solders.rpc.config.RpcTransactionConfig.from_json"]], "from_json() (rpctransactionlogsconfig static method)": [[16, "solders.rpc.config.RpcTransactionLogsConfig.from_json"]], "identity (rpcblockproductionconfig attribute)": [[16, "solders.rpc.config.RpcBlockProductionConfig.identity"]], "identity (rpcleaderscheduleconfig attribute)": [[16, "solders.rpc.config.RpcLeaderScheduleConfig.identity"]], "inner_instructions (rpcsimulatetransactionconfig attribute)": [[16, "solders.rpc.config.RpcSimulateTransactionConfig.inner_instructions"]], "keep_unstaked_delinquents (rpcgetvoteaccountsconfig attribute)": [[16, "solders.rpc.config.RpcGetVoteAccountsConfig.keep_unstaked_delinquents"]], "last_slot (rpcblockproductionconfigrange attribute)": [[16, "solders.rpc.config.RpcBlockProductionConfigRange.last_slot"]], "limit (rpcsignaturesforaddressconfig attribute)": [[16, "solders.rpc.config.RpcSignaturesForAddressConfig.limit"]], "max_retries (rpcsendtransactionconfig attribute)": [[16, "solders.rpc.config.RpcSendTransactionConfig.max_retries"]], "max_supported_transaction_version (rpcblockconfig attribute)": [[16, "solders.rpc.config.RpcBlockConfig.max_supported_transaction_version"]], "max_supported_transaction_version (rpcblocksubscribeconfig attribute)": [[16, "solders.rpc.config.RpcBlockSubscribeConfig.max_supported_transaction_version"]], "max_supported_transaction_version (rpctransactionconfig attribute)": [[16, "solders.rpc.config.RpcTransactionConfig.max_supported_transaction_version"]], "min_context_slot (rpcaccountinfoconfig attribute)": [[16, "solders.rpc.config.RpcAccountInfoConfig.min_context_slot"]], "min_context_slot (rpccontextconfig attribute)": [[16, "solders.rpc.config.RpcContextConfig.min_context_slot"]], "min_context_slot (rpcepochconfig attribute)": [[16, "solders.rpc.config.RpcEpochConfig.min_context_slot"]], "min_context_slot (rpcsendtransactionconfig attribute)": [[16, "solders.rpc.config.RpcSendTransactionConfig.min_context_slot"]], "min_context_slot (rpcsignaturesforaddressconfig attribute)": [[16, "solders.rpc.config.RpcSignaturesForAddressConfig.min_context_slot"]], "min_context_slot (rpcsimulatetransactionconfig attribute)": [[16, "solders.rpc.config.RpcSimulateTransactionConfig.min_context_slot"]], "mint (rpctokenaccountsfiltermint attribute)": [[16, "solders.rpc.config.RpcTokenAccountsFilterMint.mint"]], "preflight_commitment (rpcsendtransactionconfig attribute)": [[16, "solders.rpc.config.RpcSendTransactionConfig.preflight_commitment"]], "program_id (rpctokenaccountsfilterprogramid attribute)": [[16, "solders.rpc.config.RpcTokenAccountsFilterProgramId.program_id"]], "pubkey (rpcblocksubscribefiltermentions attribute)": [[16, "solders.rpc.config.RpcBlockSubscribeFilterMentions.pubkey"]], "pubkey (rpctransactionlogsfiltermentions attribute)": [[16, "solders.rpc.config.RpcTransactionLogsFilterMentions.pubkey"]], "range (rpcblockproductionconfig attribute)": [[16, "solders.rpc.config.RpcBlockProductionConfig.range"]], "recent_blockhash (rpcrequestairdropconfig attribute)": [[16, "solders.rpc.config.RpcRequestAirdropConfig.recent_blockhash"]], "replace_recent_blockhash (rpcsimulatetransactionconfig attribute)": [[16, "solders.rpc.config.RpcSimulateTransactionConfig.replace_recent_blockhash"]], "rewards (rpcblockconfig attribute)": [[16, "solders.rpc.config.RpcBlockConfig.rewards"]], "rewards_only() (rpcblockconfig static method)": [[16, "solders.rpc.config.RpcBlockConfig.rewards_only"]], "rewards_with_commitment() (rpcblockconfig static method)": [[16, "solders.rpc.config.RpcBlockConfig.rewards_with_commitment"]], "search_transaction_history (rpcsignaturestatusconfig attribute)": [[16, "solders.rpc.config.RpcSignatureStatusConfig.search_transaction_history"]], "show_rewards (rpcblocksubscribeconfig attribute)": [[16, "solders.rpc.config.RpcBlockSubscribeConfig.show_rewards"]], "sig_verify (rpcsimulatetransactionconfig attribute)": [[16, "solders.rpc.config.RpcSimulateTransactionConfig.sig_verify"]], "skip_preflight (rpcsendtransactionconfig attribute)": [[16, "solders.rpc.config.RpcSendTransactionConfig.skip_preflight"]], "solders.rpc.config": [[16, "module-solders.rpc.config"]], "to_json() (rpcaccountinfoconfig method)": [[16, "solders.rpc.config.RpcAccountInfoConfig.to_json"]], "to_json() (rpcblockconfig method)": [[16, "solders.rpc.config.RpcBlockConfig.to_json"]], "to_json() (rpcblockproductionconfig method)": [[16, "solders.rpc.config.RpcBlockProductionConfig.to_json"]], "to_json() (rpcblockproductionconfigrange method)": [[16, "solders.rpc.config.RpcBlockProductionConfigRange.to_json"]], "to_json() (rpcblocksubscribeconfig method)": [[16, "solders.rpc.config.RpcBlockSubscribeConfig.to_json"]], "to_json() (rpccontextconfig method)": [[16, "solders.rpc.config.RpcContextConfig.to_json"]], "to_json() (rpcepochconfig method)": [[16, "solders.rpc.config.RpcEpochConfig.to_json"]], "to_json() (rpcgetvoteaccountsconfig method)": [[16, "solders.rpc.config.RpcGetVoteAccountsConfig.to_json"]], "to_json() (rpcleaderscheduleconfig method)": [[16, "solders.rpc.config.RpcLeaderScheduleConfig.to_json"]], "to_json() (rpcprogramaccountsconfig method)": [[16, "solders.rpc.config.RpcProgramAccountsConfig.to_json"]], "to_json() (rpcrequestairdropconfig method)": [[16, "solders.rpc.config.RpcRequestAirdropConfig.to_json"]], "to_json() (rpcsendtransactionconfig method)": [[16, "solders.rpc.config.RpcSendTransactionConfig.to_json"]], "to_json() (rpcsignaturestatusconfig method)": [[16, "solders.rpc.config.RpcSignatureStatusConfig.to_json"]], "to_json() (rpcsignaturesubscribeconfig method)": [[16, "solders.rpc.config.RpcSignatureSubscribeConfig.to_json"]], "to_json() (rpcsignaturesforaddressconfig method)": [[16, "solders.rpc.config.RpcSignaturesForAddressConfig.to_json"]], "to_json() (rpcsimulatetransactionaccountsconfig method)": [[16, "solders.rpc.config.RpcSimulateTransactionAccountsConfig.to_json"]], "to_json() (rpcsimulatetransactionconfig method)": [[16, "solders.rpc.config.RpcSimulateTransactionConfig.to_json"]], "to_json() (rpcsupplyconfig method)": [[16, "solders.rpc.config.RpcSupplyConfig.to_json"]], "to_json() (rpctransactionconfig method)": [[16, "solders.rpc.config.RpcTransactionConfig.to_json"]], "to_json() (rpctransactionlogsconfig method)": [[16, "solders.rpc.config.RpcTransactionLogsConfig.to_json"]], "transaction_details (rpcblockconfig attribute)": [[16, "solders.rpc.config.RpcBlockConfig.transaction_details"]], "transaction_details (rpcblocksubscribeconfig attribute)": [[16, "solders.rpc.config.RpcBlockSubscribeConfig.transaction_details"]], "until (rpcsignaturesforaddressconfig attribute)": [[16, "solders.rpc.config.RpcSignaturesForAddressConfig.until"]], "vote_pubkey (rpcgetvoteaccountsconfig attribute)": [[16, "solders.rpc.config.RpcGetVoteAccountsConfig.vote_pubkey"]], "with_context (rpcprogramaccountsconfig attribute)": [[16, "solders.rpc.config.RpcProgramAccountsConfig.with_context"]], "blockcleanedup (class in solders.rpc.errors)": [[17, "solders.rpc.errors.BlockCleanedUp"]], "blockcleanedupmessage (class in solders.rpc.errors)": [[17, "solders.rpc.errors.BlockCleanedUpMessage"]], "blocknotavailable (class in solders.rpc.errors)": [[17, "solders.rpc.errors.BlockNotAvailable"]], "blocknotavailablemessage (class in solders.rpc.errors)": [[17, "solders.rpc.errors.BlockNotAvailableMessage"]], "blockstatusnotavailableyet (class in solders.rpc.errors)": [[17, "solders.rpc.errors.BlockStatusNotAvailableYet"]], "blockstatusnotavailableyetmessage (class in solders.rpc.errors)": [[17, "solders.rpc.errors.BlockStatusNotAvailableYetMessage"]], "internalerrormessage (class in solders.rpc.errors)": [[17, "solders.rpc.errors.InternalErrorMessage"]], "invalidparamsmessage (class in solders.rpc.errors)": [[17, "solders.rpc.errors.InvalidParamsMessage"]], "invalidrequestmessage (class in solders.rpc.errors)": [[17, "solders.rpc.errors.InvalidRequestMessage"]], "keyexcludedfromsecondaryindex (class in solders.rpc.errors)": [[17, "solders.rpc.errors.KeyExcludedFromSecondaryIndex"]], "keyexcludedfromsecondaryindexmessage (class in solders.rpc.errors)": [[17, "solders.rpc.errors.KeyExcludedFromSecondaryIndexMessage"]], "longtermstorageslotskipped (class in solders.rpc.errors)": [[17, "solders.rpc.errors.LongTermStorageSlotSkipped"]], "longtermstorageslotskippedmessage (class in solders.rpc.errors)": [[17, "solders.rpc.errors.LongTermStorageSlotSkippedMessage"]], "methodnotfoundmessage (class in solders.rpc.errors)": [[17, "solders.rpc.errors.MethodNotFoundMessage"]], "mincontextslotnotreached (class in solders.rpc.errors)": [[17, "solders.rpc.errors.MinContextSlotNotReached"]], "mincontextslotnotreachedmessage (class in solders.rpc.errors)": [[17, "solders.rpc.errors.MinContextSlotNotReachedMessage"]], "nosnapshot (rpccustomerrorfieldless attribute)": [[17, "solders.rpc.errors.RpcCustomErrorFieldless.NoSnapshot"]], "nodeunhealthy (class in solders.rpc.errors)": [[17, "solders.rpc.errors.NodeUnhealthy"]], "nodeunhealthymessage (class in solders.rpc.errors)": [[17, "solders.rpc.errors.NodeUnhealthyMessage"]], "parseerrormessage (class in solders.rpc.errors)": [[17, "solders.rpc.errors.ParseErrorMessage"]], "rpccustomerrorfieldless (class in solders.rpc.errors)": [[17, "solders.rpc.errors.RpcCustomErrorFieldless"]], "scanerror (class in solders.rpc.errors)": [[17, "solders.rpc.errors.ScanError"]], "scanerrormessage (class in solders.rpc.errors)": [[17, "solders.rpc.errors.ScanErrorMessage"]], "sendtransactionpreflightfailure (class in solders.rpc.errors)": [[17, "solders.rpc.errors.SendTransactionPreflightFailure"]], "sendtransactionpreflightfailuremessage (class in solders.rpc.errors)": [[17, "solders.rpc.errors.SendTransactionPreflightFailureMessage"]], "slotskipped (class in solders.rpc.errors)": [[17, "solders.rpc.errors.SlotSkipped"]], "slotskippedmessage (class in solders.rpc.errors)": [[17, "solders.rpc.errors.SlotSkippedMessage"]], "transactionhistorynotavailable (rpccustomerrorfieldless attribute)": [[17, "solders.rpc.errors.RpcCustomErrorFieldless.TransactionHistoryNotAvailable"]], "transactionprecompileverificationfailure (class in solders.rpc.errors)": [[17, "solders.rpc.errors.TransactionPrecompileVerificationFailure"]], "transactionprecompileverificationfailuremessage (class in solders.rpc.errors)": [[17, "solders.rpc.errors.TransactionPrecompileVerificationFailureMessage"]], "transactionsignaturelenmismatch (rpccustomerrorfieldless attribute)": [[17, "solders.rpc.errors.RpcCustomErrorFieldless.TransactionSignatureLenMismatch"]], "transactionsignatureverificationfailure (rpccustomerrorfieldless attribute)": [[17, "solders.rpc.errors.RpcCustomErrorFieldless.TransactionSignatureVerificationFailure"]], "unsupportedtransactionversion (class in solders.rpc.errors)": [[17, "solders.rpc.errors.UnsupportedTransactionVersion"]], "unsupportedtransactionversionmessage (class in solders.rpc.errors)": [[17, "solders.rpc.errors.UnsupportedTransactionVersionMessage"]], "context_slot (mincontextslotnotreached attribute)": [[17, "solders.rpc.errors.MinContextSlotNotReached.context_slot"]], "data (mincontextslotnotreachedmessage attribute)": [[17, "solders.rpc.errors.MinContextSlotNotReachedMessage.data"]], "data (nodeunhealthymessage attribute)": [[17, "solders.rpc.errors.NodeUnhealthyMessage.data"]], "data (sendtransactionpreflightfailuremessage attribute)": [[17, "solders.rpc.errors.SendTransactionPreflightFailureMessage.data"]], "error (transactionprecompileverificationfailure attribute)": [[17, "solders.rpc.errors.TransactionPrecompileVerificationFailure.error"]], "first_available_block (blockcleanedup attribute)": [[17, "solders.rpc.errors.BlockCleanedUp.first_available_block"]], "from_bytes() (blockcleanedup static method)": [[17, "solders.rpc.errors.BlockCleanedUp.from_bytes"]], "from_bytes() (blockcleanedupmessage static method)": [[17, "solders.rpc.errors.BlockCleanedUpMessage.from_bytes"]], "from_bytes() (blocknotavailable static method)": [[17, "solders.rpc.errors.BlockNotAvailable.from_bytes"]], "from_bytes() (blocknotavailablemessage static method)": [[17, "solders.rpc.errors.BlockNotAvailableMessage.from_bytes"]], "from_bytes() (blockstatusnotavailableyet static method)": [[17, "solders.rpc.errors.BlockStatusNotAvailableYet.from_bytes"]], "from_bytes() (blockstatusnotavailableyetmessage static method)": [[17, "solders.rpc.errors.BlockStatusNotAvailableYetMessage.from_bytes"]], "from_bytes() (internalerrormessage static method)": [[17, "solders.rpc.errors.InternalErrorMessage.from_bytes"]], "from_bytes() (invalidparamsmessage static method)": [[17, "solders.rpc.errors.InvalidParamsMessage.from_bytes"]], "from_bytes() (invalidrequestmessage static method)": [[17, "solders.rpc.errors.InvalidRequestMessage.from_bytes"]], "from_bytes() (keyexcludedfromsecondaryindex static method)": [[17, "solders.rpc.errors.KeyExcludedFromSecondaryIndex.from_bytes"]], "from_bytes() (keyexcludedfromsecondaryindexmessage static method)": [[17, "solders.rpc.errors.KeyExcludedFromSecondaryIndexMessage.from_bytes"]], "from_bytes() (longtermstorageslotskipped static method)": [[17, "solders.rpc.errors.LongTermStorageSlotSkipped.from_bytes"]], "from_bytes() (longtermstorageslotskippedmessage static method)": [[17, "solders.rpc.errors.LongTermStorageSlotSkippedMessage.from_bytes"]], "from_bytes() (methodnotfoundmessage static method)": [[17, "solders.rpc.errors.MethodNotFoundMessage.from_bytes"]], "from_bytes() (mincontextslotnotreached static method)": [[17, "solders.rpc.errors.MinContextSlotNotReached.from_bytes"]], "from_bytes() (mincontextslotnotreachedmessage static method)": [[17, "solders.rpc.errors.MinContextSlotNotReachedMessage.from_bytes"]], "from_bytes() (nodeunhealthy static method)": [[17, "solders.rpc.errors.NodeUnhealthy.from_bytes"]], "from_bytes() (nodeunhealthymessage static method)": [[17, "solders.rpc.errors.NodeUnhealthyMessage.from_bytes"]], "from_bytes() (parseerrormessage static method)": [[17, "solders.rpc.errors.ParseErrorMessage.from_bytes"]], "from_bytes() (scanerror static method)": [[17, "solders.rpc.errors.ScanError.from_bytes"]], "from_bytes() (scanerrormessage static method)": [[17, "solders.rpc.errors.ScanErrorMessage.from_bytes"]], "from_bytes() (sendtransactionpreflightfailure static method)": [[17, "solders.rpc.errors.SendTransactionPreflightFailure.from_bytes"]], "from_bytes() (sendtransactionpreflightfailuremessage static method)": [[17, "solders.rpc.errors.SendTransactionPreflightFailureMessage.from_bytes"]], "from_bytes() (slotskipped static method)": [[17, "solders.rpc.errors.SlotSkipped.from_bytes"]], "from_bytes() (slotskippedmessage static method)": [[17, "solders.rpc.errors.SlotSkippedMessage.from_bytes"]], "from_bytes() (transactionprecompileverificationfailure static method)": [[17, "solders.rpc.errors.TransactionPrecompileVerificationFailure.from_bytes"]], "from_bytes() (transactionprecompileverificationfailuremessage static method)": [[17, "solders.rpc.errors.TransactionPrecompileVerificationFailureMessage.from_bytes"]], "from_bytes() (unsupportedtransactionversion static method)": [[17, "solders.rpc.errors.UnsupportedTransactionVersion.from_bytes"]], "from_bytes() (unsupportedtransactionversionmessage static method)": [[17, "solders.rpc.errors.UnsupportedTransactionVersionMessage.from_bytes"]], "from_json() (blockcleanedup static method)": [[17, "solders.rpc.errors.BlockCleanedUp.from_json"]], "from_json() (blockcleanedupmessage static method)": [[17, "solders.rpc.errors.BlockCleanedUpMessage.from_json"]], "from_json() (blocknotavailable static method)": [[17, "solders.rpc.errors.BlockNotAvailable.from_json"]], "from_json() (blocknotavailablemessage static method)": [[17, "solders.rpc.errors.BlockNotAvailableMessage.from_json"]], "from_json() (blockstatusnotavailableyet static method)": [[17, "solders.rpc.errors.BlockStatusNotAvailableYet.from_json"]], "from_json() (blockstatusnotavailableyetmessage static method)": [[17, "solders.rpc.errors.BlockStatusNotAvailableYetMessage.from_json"]], "from_json() (internalerrormessage static method)": [[17, "solders.rpc.errors.InternalErrorMessage.from_json"]], "from_json() (invalidparamsmessage static method)": [[17, "solders.rpc.errors.InvalidParamsMessage.from_json"]], "from_json() (invalidrequestmessage static method)": [[17, "solders.rpc.errors.InvalidRequestMessage.from_json"]], "from_json() (keyexcludedfromsecondaryindex static method)": [[17, "solders.rpc.errors.KeyExcludedFromSecondaryIndex.from_json"]], "from_json() (keyexcludedfromsecondaryindexmessage static method)": [[17, "solders.rpc.errors.KeyExcludedFromSecondaryIndexMessage.from_json"]], "from_json() (longtermstorageslotskipped static method)": [[17, "solders.rpc.errors.LongTermStorageSlotSkipped.from_json"]], "from_json() (longtermstorageslotskippedmessage static method)": [[17, "solders.rpc.errors.LongTermStorageSlotSkippedMessage.from_json"]], "from_json() (methodnotfoundmessage static method)": [[17, "solders.rpc.errors.MethodNotFoundMessage.from_json"]], "from_json() (mincontextslotnotreached static method)": [[17, "solders.rpc.errors.MinContextSlotNotReached.from_json"]], "from_json() (mincontextslotnotreachedmessage static method)": [[17, "solders.rpc.errors.MinContextSlotNotReachedMessage.from_json"]], "from_json() (nodeunhealthy static method)": [[17, "solders.rpc.errors.NodeUnhealthy.from_json"]], "from_json() (nodeunhealthymessage static method)": [[17, "solders.rpc.errors.NodeUnhealthyMessage.from_json"]], "from_json() (parseerrormessage static method)": [[17, "solders.rpc.errors.ParseErrorMessage.from_json"]], "from_json() (scanerror static method)": [[17, "solders.rpc.errors.ScanError.from_json"]], "from_json() (scanerrormessage static method)": [[17, "solders.rpc.errors.ScanErrorMessage.from_json"]], "from_json() (sendtransactionpreflightfailure static method)": [[17, "solders.rpc.errors.SendTransactionPreflightFailure.from_json"]], "from_json() (sendtransactionpreflightfailuremessage static method)": [[17, "solders.rpc.errors.SendTransactionPreflightFailureMessage.from_json"]], "from_json() (slotskipped static method)": [[17, "solders.rpc.errors.SlotSkipped.from_json"]], "from_json() (slotskippedmessage static method)": [[17, "solders.rpc.errors.SlotSkippedMessage.from_json"]], "from_json() (transactionprecompileverificationfailure static method)": [[17, "solders.rpc.errors.TransactionPrecompileVerificationFailure.from_json"]], "from_json() (transactionprecompileverificationfailuremessage static method)": [[17, "solders.rpc.errors.TransactionPrecompileVerificationFailureMessage.from_json"]], "from_json() (unsupportedtransactionversion static method)": [[17, "solders.rpc.errors.UnsupportedTransactionVersion.from_json"]], "from_json() (unsupportedtransactionversionmessage static method)": [[17, "solders.rpc.errors.UnsupportedTransactionVersionMessage.from_json"]], "index_key (keyexcludedfromsecondaryindex attribute)": [[17, "solders.rpc.errors.KeyExcludedFromSecondaryIndex.index_key"]], "message (blockcleanedupmessage attribute)": [[17, "solders.rpc.errors.BlockCleanedUpMessage.message"]], "message (blocknotavailablemessage attribute)": [[17, "solders.rpc.errors.BlockNotAvailableMessage.message"]], "message (blockstatusnotavailableyetmessage attribute)": [[17, "solders.rpc.errors.BlockStatusNotAvailableYetMessage.message"]], "message (internalerrormessage attribute)": [[17, "solders.rpc.errors.InternalErrorMessage.message"]], "message (invalidparamsmessage attribute)": [[17, "solders.rpc.errors.InvalidParamsMessage.message"]], "message (invalidrequestmessage attribute)": [[17, "solders.rpc.errors.InvalidRequestMessage.message"]], "message (keyexcludedfromsecondaryindexmessage attribute)": [[17, "solders.rpc.errors.KeyExcludedFromSecondaryIndexMessage.message"]], "message (longtermstorageslotskippedmessage attribute)": [[17, "solders.rpc.errors.LongTermStorageSlotSkippedMessage.message"]], "message (methodnotfoundmessage attribute)": [[17, "solders.rpc.errors.MethodNotFoundMessage.message"]], "message (mincontextslotnotreachedmessage attribute)": [[17, "solders.rpc.errors.MinContextSlotNotReachedMessage.message"]], "message (nodeunhealthymessage attribute)": [[17, "solders.rpc.errors.NodeUnhealthyMessage.message"]], "message (parseerrormessage attribute)": [[17, "solders.rpc.errors.ParseErrorMessage.message"]], "message (scanerror attribute)": [[17, "solders.rpc.errors.ScanError.message"]], "message (scanerrormessage attribute)": [[17, "solders.rpc.errors.ScanErrorMessage.message"]], "message (sendtransactionpreflightfailure attribute)": [[17, "solders.rpc.errors.SendTransactionPreflightFailure.message"]], "message (sendtransactionpreflightfailuremessage attribute)": [[17, "solders.rpc.errors.SendTransactionPreflightFailureMessage.message"]], "message (slotskippedmessage attribute)": [[17, "solders.rpc.errors.SlotSkippedMessage.message"]], "message (transactionprecompileverificationfailuremessage attribute)": [[17, "solders.rpc.errors.TransactionPrecompileVerificationFailureMessage.message"]], "message (unsupportedtransactionversionmessage attribute)": [[17, "solders.rpc.errors.UnsupportedTransactionVersionMessage.message"]], "num_slots_behind (nodeunhealthy attribute)": [[17, "solders.rpc.errors.NodeUnhealthy.num_slots_behind"]], "result (sendtransactionpreflightfailure attribute)": [[17, "solders.rpc.errors.SendTransactionPreflightFailure.result"]], "slot (blockcleanedup attribute)": [[17, "solders.rpc.errors.BlockCleanedUp.slot"]], "slot (blocknotavailable attribute)": [[17, "solders.rpc.errors.BlockNotAvailable.slot"]], "slot (blockstatusnotavailableyet attribute)": [[17, "solders.rpc.errors.BlockStatusNotAvailableYet.slot"]], "slot (longtermstorageslotskipped attribute)": [[17, "solders.rpc.errors.LongTermStorageSlotSkipped.slot"]], "slot (slotskipped attribute)": [[17, "solders.rpc.errors.SlotSkipped.slot"]], "solders.rpc.errors": [[17, "module-solders.rpc.errors"]], "to_json() (blockcleanedup method)": [[17, "solders.rpc.errors.BlockCleanedUp.to_json"]], "to_json() (blockcleanedupmessage method)": [[17, "solders.rpc.errors.BlockCleanedUpMessage.to_json"]], "to_json() (blocknotavailable method)": [[17, "solders.rpc.errors.BlockNotAvailable.to_json"]], "to_json() (blocknotavailablemessage method)": [[17, "solders.rpc.errors.BlockNotAvailableMessage.to_json"]], "to_json() (blockstatusnotavailableyet method)": [[17, "solders.rpc.errors.BlockStatusNotAvailableYet.to_json"]], "to_json() (blockstatusnotavailableyetmessage method)": [[17, "solders.rpc.errors.BlockStatusNotAvailableYetMessage.to_json"]], "to_json() (internalerrormessage method)": [[17, "solders.rpc.errors.InternalErrorMessage.to_json"]], "to_json() (invalidparamsmessage method)": [[17, "solders.rpc.errors.InvalidParamsMessage.to_json"]], "to_json() (invalidrequestmessage method)": [[17, "solders.rpc.errors.InvalidRequestMessage.to_json"]], "to_json() (keyexcludedfromsecondaryindex method)": [[17, "solders.rpc.errors.KeyExcludedFromSecondaryIndex.to_json"]], "to_json() (keyexcludedfromsecondaryindexmessage method)": [[17, "solders.rpc.errors.KeyExcludedFromSecondaryIndexMessage.to_json"]], "to_json() (longtermstorageslotskipped method)": [[17, "solders.rpc.errors.LongTermStorageSlotSkipped.to_json"]], "to_json() (longtermstorageslotskippedmessage method)": [[17, "solders.rpc.errors.LongTermStorageSlotSkippedMessage.to_json"]], "to_json() (methodnotfoundmessage method)": [[17, "solders.rpc.errors.MethodNotFoundMessage.to_json"]], "to_json() (mincontextslotnotreached method)": [[17, "solders.rpc.errors.MinContextSlotNotReached.to_json"]], "to_json() (mincontextslotnotreachedmessage method)": [[17, "solders.rpc.errors.MinContextSlotNotReachedMessage.to_json"]], "to_json() (nodeunhealthy method)": [[17, "solders.rpc.errors.NodeUnhealthy.to_json"]], "to_json() (nodeunhealthymessage method)": [[17, "solders.rpc.errors.NodeUnhealthyMessage.to_json"]], "to_json() (parseerrormessage method)": [[17, "solders.rpc.errors.ParseErrorMessage.to_json"]], "to_json() (scanerror method)": [[17, "solders.rpc.errors.ScanError.to_json"]], "to_json() (scanerrormessage method)": [[17, "solders.rpc.errors.ScanErrorMessage.to_json"]], "to_json() (sendtransactionpreflightfailure method)": [[17, "solders.rpc.errors.SendTransactionPreflightFailure.to_json"]], "to_json() (sendtransactionpreflightfailuremessage method)": [[17, "solders.rpc.errors.SendTransactionPreflightFailureMessage.to_json"]], "to_json() (slotskipped method)": [[17, "solders.rpc.errors.SlotSkipped.to_json"]], "to_json() (slotskippedmessage method)": [[17, "solders.rpc.errors.SlotSkippedMessage.to_json"]], "to_json() (transactionprecompileverificationfailure method)": [[17, "solders.rpc.errors.TransactionPrecompileVerificationFailure.to_json"]], "to_json() (transactionprecompileverificationfailuremessage method)": [[17, "solders.rpc.errors.TransactionPrecompileVerificationFailureMessage.to_json"]], "to_json() (unsupportedtransactionversion method)": [[17, "solders.rpc.errors.UnsupportedTransactionVersion.to_json"]], "to_json() (unsupportedtransactionversionmessage method)": [[17, "solders.rpc.errors.UnsupportedTransactionVersionMessage.to_json"]], "value (unsupportedtransactionversion attribute)": [[17, "solders.rpc.errors.UnsupportedTransactionVersion.value"]], "memcmp (class in solders.rpc.filter)": [[18, "solders.rpc.filter.Memcmp"]], "rpcfiltertypefieldless (class in solders.rpc.filter)": [[18, "solders.rpc.filter.RpcFilterTypeFieldless"]], "tokenaccountstate (rpcfiltertypefieldless attribute)": [[18, "solders.rpc.filter.RpcFilterTypeFieldless.TokenAccountState"]], "from_bytes() (memcmp static method)": [[18, "solders.rpc.filter.Memcmp.from_bytes"]], "from_json() (memcmp static method)": [[18, "solders.rpc.filter.Memcmp.from_json"]], "offset (memcmp attribute)": [[18, "solders.rpc.filter.Memcmp.offset"]], "solders.rpc.filter": [[18, "module-solders.rpc.filter"]], "to_json() (memcmp method)": [[18, "solders.rpc.filter.Memcmp.to_json"]], "accountsubscribe (class in solders.rpc.requests)": [[20, "solders.rpc.requests.AccountSubscribe"]], "accountunsubscribe (class in solders.rpc.requests)": [[20, "solders.rpc.requests.AccountUnsubscribe"]], "blocksubscribe (class in solders.rpc.requests)": [[20, "solders.rpc.requests.BlockSubscribe"]], "blockunsubscribe (class in solders.rpc.requests)": [[20, "solders.rpc.requests.BlockUnsubscribe"]], "getaccountinfo (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetAccountInfo"]], "getbalance (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetBalance"]], "getblock (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetBlock"]], "getblockcommitment (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetBlockCommitment"]], "getblockheight (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetBlockHeight"]], "getblockproduction (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetBlockProduction"]], "getblocktime (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetBlockTime"]], "getblocks (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetBlocks"]], "getblockswithlimit (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetBlocksWithLimit"]], "getclusternodes (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetClusterNodes"]], "getepochinfo (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetEpochInfo"]], "getepochschedule (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetEpochSchedule"]], "getfeeformessage (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetFeeForMessage"]], "getfirstavailableblock (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetFirstAvailableBlock"]], "getgenesishash (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetGenesisHash"]], "gethealth (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetHealth"]], "gethighestsnapshotslot (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetHighestSnapshotSlot"]], "getidentity (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetIdentity"]], "getinflationgovernor (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetInflationGovernor"]], "getinflationrate (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetInflationRate"]], "getinflationreward (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetInflationReward"]], "getlargestaccounts (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetLargestAccounts"]], "getlatestblockhash (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetLatestBlockhash"]], "getleaderschedule (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetLeaderSchedule"]], "getmaxretransmitslot (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetMaxRetransmitSlot"]], "getmaxshredinsertslot (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetMaxShredInsertSlot"]], "getminimumbalanceforrentexemption (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetMinimumBalanceForRentExemption"]], "getmultipleaccounts (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetMultipleAccounts"]], "getprogramaccounts (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetProgramAccounts"]], "getrecentperformancesamples (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetRecentPerformanceSamples"]], "getsignaturestatuses (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetSignatureStatuses"]], "getsignaturesforaddress (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetSignaturesForAddress"]], "getslot (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetSlot"]], "getslotleader (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetSlotLeader"]], "getslotleaders (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetSlotLeaders"]], "getstakeactivation (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetStakeActivation"]], "getsupply (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetSupply"]], "gettokenaccountbalance (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetTokenAccountBalance"]], "gettokenaccountsbydelegate (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetTokenAccountsByDelegate"]], "gettokenaccountsbyowner (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetTokenAccountsByOwner"]], "gettokenlargestaccounts (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetTokenLargestAccounts"]], "gettokensupply (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetTokenSupply"]], "gettransaction (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetTransaction"]], "gettransactioncount (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetTransactionCount"]], "getversion (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetVersion"]], "getvoteaccounts (class in solders.rpc.requests)": [[20, "solders.rpc.requests.GetVoteAccounts"]], "isblockhashvalid (class in solders.rpc.requests)": [[20, "solders.rpc.requests.IsBlockhashValid"]], "logssubscribe (class in solders.rpc.requests)": [[20, "solders.rpc.requests.LogsSubscribe"]], "logsunsubscribe (class in solders.rpc.requests)": [[20, "solders.rpc.requests.LogsUnsubscribe"]], "minimumledgerslot (class in solders.rpc.requests)": [[20, "solders.rpc.requests.MinimumLedgerSlot"]], "programsubscribe (class in solders.rpc.requests)": [[20, "solders.rpc.requests.ProgramSubscribe"]], "programunsubscribe (class in solders.rpc.requests)": [[20, "solders.rpc.requests.ProgramUnsubscribe"]], "requestairdrop (class in solders.rpc.requests)": [[20, "solders.rpc.requests.RequestAirdrop"]], "rootsubscribe (class in solders.rpc.requests)": [[20, "solders.rpc.requests.RootSubscribe"]], "rootunsubscribe (class in solders.rpc.requests)": [[20, "solders.rpc.requests.RootUnsubscribe"]], "sendlegacytransaction (class in solders.rpc.requests)": [[20, "solders.rpc.requests.SendLegacyTransaction"]], "sendrawtransaction (class in solders.rpc.requests)": [[20, "solders.rpc.requests.SendRawTransaction"]], "sendversionedtransaction (class in solders.rpc.requests)": [[20, "solders.rpc.requests.SendVersionedTransaction"]], "signaturesubscribe (class in solders.rpc.requests)": [[20, "solders.rpc.requests.SignatureSubscribe"]], "signatureunsubscribe (class in solders.rpc.requests)": [[20, "solders.rpc.requests.SignatureUnsubscribe"]], "simulatelegacytransaction (class in solders.rpc.requests)": [[20, "solders.rpc.requests.SimulateLegacyTransaction"]], "simulateversionedtransaction (class in solders.rpc.requests)": [[20, "solders.rpc.requests.SimulateVersionedTransaction"]], "slotsubscribe (class in solders.rpc.requests)": [[20, "solders.rpc.requests.SlotSubscribe"]], "slotunsubscribe (class in solders.rpc.requests)": [[20, "solders.rpc.requests.SlotUnsubscribe"]], "slotsupdatessubscribe (class in solders.rpc.requests)": [[20, "solders.rpc.requests.SlotsUpdatesSubscribe"]], "slotsupdatesunsubscribe (class in solders.rpc.requests)": [[20, "solders.rpc.requests.SlotsUpdatesUnsubscribe"]], "validatorexit (class in solders.rpc.requests)": [[20, "solders.rpc.requests.ValidatorExit"]], "votesubscribe (class in solders.rpc.requests)": [[20, "solders.rpc.requests.VoteSubscribe"]], "voteunsubscribe (class in solders.rpc.requests)": [[20, "solders.rpc.requests.VoteUnsubscribe"]], "account (accountsubscribe attribute)": [[20, "solders.rpc.requests.AccountSubscribe.account"]], "account (getstakeactivation attribute)": [[20, "solders.rpc.requests.GetStakeActivation.account"]], "account (gettokenaccountbalance attribute)": [[20, "solders.rpc.requests.GetTokenAccountBalance.account"]], "account (gettokenaccountsbydelegate attribute)": [[20, "solders.rpc.requests.GetTokenAccountsByDelegate.account"]], "account (gettokenaccountsbyowner attribute)": [[20, "solders.rpc.requests.GetTokenAccountsByOwner.account"]], "accounts (getmultipleaccounts attribute)": [[20, "solders.rpc.requests.GetMultipleAccounts.accounts"]], "address (getsignaturesforaddress attribute)": [[20, "solders.rpc.requests.GetSignaturesForAddress.address"]], "addresses (getinflationreward attribute)": [[20, "solders.rpc.requests.GetInflationReward.addresses"]], "batch_from_json() (in module solders.rpc.requests)": [[20, "solders.rpc.requests.batch_from_json"]], "batch_to_json() (in module solders.rpc.requests)": [[20, "solders.rpc.requests.batch_to_json"]], "blockhash (isblockhashvalid attribute)": [[20, "solders.rpc.requests.IsBlockhashValid.blockhash"]], "commitment (getblocks attribute)": [[20, "solders.rpc.requests.GetBlocks.commitment"]], "commitment (getblockswithlimit attribute)": [[20, "solders.rpc.requests.GetBlocksWithLimit.commitment"]], "commitment (getfeeformessage attribute)": [[20, "solders.rpc.requests.GetFeeForMessage.commitment"]], "commitment (getinflationgovernor attribute)": [[20, "solders.rpc.requests.GetInflationGovernor.commitment"]], "commitment (getlargestaccounts attribute)": [[20, "solders.rpc.requests.GetLargestAccounts.commitment"]], "commitment (getminimumbalanceforrentexemption attribute)": [[20, "solders.rpc.requests.GetMinimumBalanceForRentExemption.commitment"]], "commitment (gettokenaccountbalance attribute)": [[20, "solders.rpc.requests.GetTokenAccountBalance.commitment"]], "commitment (gettokenlargestaccounts attribute)": [[20, "solders.rpc.requests.GetTokenLargestAccounts.commitment"]], "commitment (gettokensupply attribute)": [[20, "solders.rpc.requests.GetTokenSupply.commitment"]], "config (accountsubscribe attribute)": [[20, "solders.rpc.requests.AccountSubscribe.config"]], "config (blocksubscribe attribute)": [[20, "solders.rpc.requests.BlockSubscribe.config"]], "config (getaccountinfo attribute)": [[20, "solders.rpc.requests.GetAccountInfo.config"]], "config (getbalance attribute)": [[20, "solders.rpc.requests.GetBalance.config"]], "config (getblock attribute)": [[20, "solders.rpc.requests.GetBlock.config"]], "config (getblockheight attribute)": [[20, "solders.rpc.requests.GetBlockHeight.config"]], "config (getblockproduction attribute)": [[20, "solders.rpc.requests.GetBlockProduction.config"]], "config (getepochinfo attribute)": [[20, "solders.rpc.requests.GetEpochInfo.config"]], "config (getinflationreward attribute)": [[20, "solders.rpc.requests.GetInflationReward.config"]], "config (getlatestblockhash attribute)": [[20, "solders.rpc.requests.GetLatestBlockhash.config"]], "config (getleaderschedule attribute)": [[20, "solders.rpc.requests.GetLeaderSchedule.config"]], "config (getmultipleaccounts attribute)": [[20, "solders.rpc.requests.GetMultipleAccounts.config"]], "config (getprogramaccounts attribute)": [[20, "solders.rpc.requests.GetProgramAccounts.config"]], "config (getsignaturestatuses attribute)": [[20, "solders.rpc.requests.GetSignatureStatuses.config"]], "config (getsignaturesforaddress attribute)": [[20, "solders.rpc.requests.GetSignaturesForAddress.config"]], "config (getslot attribute)": [[20, "solders.rpc.requests.GetSlot.config"]], "config (getslotleader attribute)": [[20, "solders.rpc.requests.GetSlotLeader.config"]], "config (getstakeactivation attribute)": [[20, "solders.rpc.requests.GetStakeActivation.config"]], "config (getsupply attribute)": [[20, "solders.rpc.requests.GetSupply.config"]], "config (gettokenaccountsbydelegate attribute)": [[20, "solders.rpc.requests.GetTokenAccountsByDelegate.config"]], "config (gettokenaccountsbyowner attribute)": [[20, "solders.rpc.requests.GetTokenAccountsByOwner.config"]], "config (gettransaction attribute)": [[20, "solders.rpc.requests.GetTransaction.config"]], "config (gettransactioncount attribute)": [[20, "solders.rpc.requests.GetTransactionCount.config"]], "config (getvoteaccounts attribute)": [[20, "solders.rpc.requests.GetVoteAccounts.config"]], "config (isblockhashvalid attribute)": [[20, "solders.rpc.requests.IsBlockhashValid.config"]], "config (logssubscribe attribute)": [[20, "solders.rpc.requests.LogsSubscribe.config"]], "config (programsubscribe attribute)": [[20, "solders.rpc.requests.ProgramSubscribe.config"]], "config (requestairdrop attribute)": [[20, "solders.rpc.requests.RequestAirdrop.config"]], "config (sendlegacytransaction attribute)": [[20, "solders.rpc.requests.SendLegacyTransaction.config"]], "config (sendrawtransaction attribute)": [[20, "solders.rpc.requests.SendRawTransaction.config"]], "config (sendversionedtransaction attribute)": [[20, "solders.rpc.requests.SendVersionedTransaction.config"]], "config (signaturesubscribe attribute)": [[20, "solders.rpc.requests.SignatureSubscribe.config"]], "config (simulatelegacytransaction attribute)": [[20, "solders.rpc.requests.SimulateLegacyTransaction.config"]], "config (simulateversionedtransaction attribute)": [[20, "solders.rpc.requests.SimulateVersionedTransaction.config"]], "end (getblocks attribute)": [[20, "solders.rpc.requests.GetBlocks.end"]], "filter_ (blocksubscribe attribute)": [[20, "solders.rpc.requests.BlockSubscribe.filter_"]], "filter_ (getlargestaccounts attribute)": [[20, "solders.rpc.requests.GetLargestAccounts.filter_"]], "filter_ (gettokenaccountsbydelegate attribute)": [[20, "solders.rpc.requests.GetTokenAccountsByDelegate.filter_"]], "filter_ (gettokenaccountsbyowner attribute)": [[20, "solders.rpc.requests.GetTokenAccountsByOwner.filter_"]], "filter_ (logssubscribe attribute)": [[20, "solders.rpc.requests.LogsSubscribe.filter_"]], "from_bytes() (accountsubscribe static method)": [[20, "solders.rpc.requests.AccountSubscribe.from_bytes"]], "from_bytes() (accountunsubscribe static method)": [[20, "solders.rpc.requests.AccountUnsubscribe.from_bytes"]], "from_bytes() (blocksubscribe static method)": [[20, "solders.rpc.requests.BlockSubscribe.from_bytes"]], "from_bytes() (blockunsubscribe static method)": [[20, "solders.rpc.requests.BlockUnsubscribe.from_bytes"]], "from_bytes() (getaccountinfo static method)": [[20, "solders.rpc.requests.GetAccountInfo.from_bytes"]], "from_bytes() (getbalance static method)": [[20, "solders.rpc.requests.GetBalance.from_bytes"]], "from_bytes() (getblock static method)": [[20, "solders.rpc.requests.GetBlock.from_bytes"]], "from_bytes() (getblockcommitment static method)": [[20, "solders.rpc.requests.GetBlockCommitment.from_bytes"]], "from_bytes() (getblockheight static method)": [[20, "solders.rpc.requests.GetBlockHeight.from_bytes"]], "from_bytes() (getblockproduction static method)": [[20, "solders.rpc.requests.GetBlockProduction.from_bytes"]], "from_bytes() (getblocktime static method)": [[20, "solders.rpc.requests.GetBlockTime.from_bytes"]], "from_bytes() (getblocks static method)": [[20, "solders.rpc.requests.GetBlocks.from_bytes"]], "from_bytes() (getblockswithlimit static method)": [[20, "solders.rpc.requests.GetBlocksWithLimit.from_bytes"]], "from_bytes() (getclusternodes static method)": [[20, "solders.rpc.requests.GetClusterNodes.from_bytes"]], "from_bytes() (getepochinfo static method)": [[20, "solders.rpc.requests.GetEpochInfo.from_bytes"]], "from_bytes() (getepochschedule static method)": [[20, "solders.rpc.requests.GetEpochSchedule.from_bytes"]], "from_bytes() (getfeeformessage static method)": [[20, "solders.rpc.requests.GetFeeForMessage.from_bytes"]], "from_bytes() (getfirstavailableblock static method)": [[20, "solders.rpc.requests.GetFirstAvailableBlock.from_bytes"]], "from_bytes() (getgenesishash static method)": [[20, "solders.rpc.requests.GetGenesisHash.from_bytes"]], "from_bytes() (gethealth static method)": [[20, "solders.rpc.requests.GetHealth.from_bytes"]], "from_bytes() (gethighestsnapshotslot static method)": [[20, "solders.rpc.requests.GetHighestSnapshotSlot.from_bytes"]], "from_bytes() (getidentity static method)": [[20, "solders.rpc.requests.GetIdentity.from_bytes"]], "from_bytes() (getinflationgovernor static method)": [[20, "solders.rpc.requests.GetInflationGovernor.from_bytes"]], "from_bytes() (getinflationrate static method)": [[20, "solders.rpc.requests.GetInflationRate.from_bytes"]], "from_bytes() (getinflationreward static method)": [[20, "solders.rpc.requests.GetInflationReward.from_bytes"]], "from_bytes() (getlargestaccounts static method)": [[20, "solders.rpc.requests.GetLargestAccounts.from_bytes"]], "from_bytes() (getlatestblockhash static method)": [[20, "solders.rpc.requests.GetLatestBlockhash.from_bytes"]], "from_bytes() (getleaderschedule static method)": [[20, "solders.rpc.requests.GetLeaderSchedule.from_bytes"]], "from_bytes() (getmaxretransmitslot static method)": [[20, "solders.rpc.requests.GetMaxRetransmitSlot.from_bytes"]], "from_bytes() (getmaxshredinsertslot static method)": [[20, "solders.rpc.requests.GetMaxShredInsertSlot.from_bytes"]], "from_bytes() (getminimumbalanceforrentexemption static method)": [[20, "solders.rpc.requests.GetMinimumBalanceForRentExemption.from_bytes"]], "from_bytes() (getmultipleaccounts static method)": [[20, "solders.rpc.requests.GetMultipleAccounts.from_bytes"]], "from_bytes() (getprogramaccounts static method)": [[20, "solders.rpc.requests.GetProgramAccounts.from_bytes"]], "from_bytes() (getrecentperformancesamples static method)": [[20, "solders.rpc.requests.GetRecentPerformanceSamples.from_bytes"]], "from_bytes() (getsignaturestatuses static method)": [[20, "solders.rpc.requests.GetSignatureStatuses.from_bytes"]], "from_bytes() (getsignaturesforaddress static method)": [[20, "solders.rpc.requests.GetSignaturesForAddress.from_bytes"]], "from_bytes() (getslot static method)": [[20, "solders.rpc.requests.GetSlot.from_bytes"]], "from_bytes() (getslotleader static method)": [[20, "solders.rpc.requests.GetSlotLeader.from_bytes"]], "from_bytes() (getslotleaders static method)": [[20, "solders.rpc.requests.GetSlotLeaders.from_bytes"]], "from_bytes() (getstakeactivation static method)": [[20, "solders.rpc.requests.GetStakeActivation.from_bytes"]], "from_bytes() (getsupply static method)": [[20, "solders.rpc.requests.GetSupply.from_bytes"]], "from_bytes() (gettokenaccountbalance static method)": [[20, "solders.rpc.requests.GetTokenAccountBalance.from_bytes"]], "from_bytes() (gettokenaccountsbydelegate static method)": [[20, "solders.rpc.requests.GetTokenAccountsByDelegate.from_bytes"]], "from_bytes() (gettokenaccountsbyowner static method)": [[20, "solders.rpc.requests.GetTokenAccountsByOwner.from_bytes"]], "from_bytes() (gettokenlargestaccounts static method)": [[20, "solders.rpc.requests.GetTokenLargestAccounts.from_bytes"]], "from_bytes() (gettokensupply static method)": [[20, "solders.rpc.requests.GetTokenSupply.from_bytes"]], "from_bytes() (gettransaction static method)": [[20, "solders.rpc.requests.GetTransaction.from_bytes"]], "from_bytes() (gettransactioncount static method)": [[20, "solders.rpc.requests.GetTransactionCount.from_bytes"]], "from_bytes() (getversion static method)": [[20, "solders.rpc.requests.GetVersion.from_bytes"]], "from_bytes() (getvoteaccounts static method)": [[20, "solders.rpc.requests.GetVoteAccounts.from_bytes"]], "from_bytes() (isblockhashvalid static method)": [[20, "solders.rpc.requests.IsBlockhashValid.from_bytes"]], "from_bytes() (logssubscribe static method)": [[20, "solders.rpc.requests.LogsSubscribe.from_bytes"]], "from_bytes() (logsunsubscribe static method)": [[20, "solders.rpc.requests.LogsUnsubscribe.from_bytes"]], "from_bytes() (minimumledgerslot static method)": [[20, "solders.rpc.requests.MinimumLedgerSlot.from_bytes"]], "from_bytes() (programsubscribe static method)": [[20, "solders.rpc.requests.ProgramSubscribe.from_bytes"]], "from_bytes() (programunsubscribe static method)": [[20, "solders.rpc.requests.ProgramUnsubscribe.from_bytes"]], "from_bytes() (requestairdrop static method)": [[20, "solders.rpc.requests.RequestAirdrop.from_bytes"]], "from_bytes() (rootsubscribe static method)": [[20, "solders.rpc.requests.RootSubscribe.from_bytes"]], "from_bytes() (rootunsubscribe static method)": [[20, "solders.rpc.requests.RootUnsubscribe.from_bytes"]], "from_bytes() (sendlegacytransaction static method)": [[20, "solders.rpc.requests.SendLegacyTransaction.from_bytes"]], "from_bytes() (sendrawtransaction static method)": [[20, "solders.rpc.requests.SendRawTransaction.from_bytes"]], "from_bytes() (sendversionedtransaction static method)": [[20, "solders.rpc.requests.SendVersionedTransaction.from_bytes"]], "from_bytes() (signaturesubscribe static method)": [[20, "solders.rpc.requests.SignatureSubscribe.from_bytes"]], "from_bytes() (signatureunsubscribe static method)": [[20, "solders.rpc.requests.SignatureUnsubscribe.from_bytes"]], "from_bytes() (simulatelegacytransaction static method)": [[20, "solders.rpc.requests.SimulateLegacyTransaction.from_bytes"]], "from_bytes() (simulateversionedtransaction static method)": [[20, "solders.rpc.requests.SimulateVersionedTransaction.from_bytes"]], "from_bytes() (slotsubscribe static method)": [[20, "solders.rpc.requests.SlotSubscribe.from_bytes"]], "from_bytes() (slotunsubscribe static method)": [[20, "solders.rpc.requests.SlotUnsubscribe.from_bytes"]], "from_bytes() (slotsupdatessubscribe static method)": [[20, "solders.rpc.requests.SlotsUpdatesSubscribe.from_bytes"]], "from_bytes() (slotsupdatesunsubscribe static method)": [[20, "solders.rpc.requests.SlotsUpdatesUnsubscribe.from_bytes"]], "from_bytes() (validatorexit static method)": [[20, "solders.rpc.requests.ValidatorExit.from_bytes"]], "from_bytes() (votesubscribe static method)": [[20, "solders.rpc.requests.VoteSubscribe.from_bytes"]], "from_bytes() (voteunsubscribe static method)": [[20, "solders.rpc.requests.VoteUnsubscribe.from_bytes"]], "from_json() (accountsubscribe static method)": [[20, "solders.rpc.requests.AccountSubscribe.from_json"]], "from_json() (accountunsubscribe static method)": [[20, "solders.rpc.requests.AccountUnsubscribe.from_json"]], "from_json() (blocksubscribe static method)": [[20, "solders.rpc.requests.BlockSubscribe.from_json"]], "from_json() (blockunsubscribe static method)": [[20, "solders.rpc.requests.BlockUnsubscribe.from_json"]], "from_json() (getaccountinfo static method)": [[20, "solders.rpc.requests.GetAccountInfo.from_json"]], "from_json() (getbalance static method)": [[20, "solders.rpc.requests.GetBalance.from_json"]], "from_json() (getblock static method)": [[20, "solders.rpc.requests.GetBlock.from_json"]], "from_json() (getblockcommitment static method)": [[20, "solders.rpc.requests.GetBlockCommitment.from_json"]], "from_json() (getblockheight static method)": [[20, "solders.rpc.requests.GetBlockHeight.from_json"]], "from_json() (getblockproduction static method)": [[20, "solders.rpc.requests.GetBlockProduction.from_json"]], "from_json() (getblocktime static method)": [[20, "solders.rpc.requests.GetBlockTime.from_json"]], "from_json() (getblocks static method)": [[20, "solders.rpc.requests.GetBlocks.from_json"]], "from_json() (getblockswithlimit static method)": [[20, "solders.rpc.requests.GetBlocksWithLimit.from_json"]], "from_json() (getclusternodes static method)": [[20, "solders.rpc.requests.GetClusterNodes.from_json"]], "from_json() (getepochinfo static method)": [[20, "solders.rpc.requests.GetEpochInfo.from_json"]], "from_json() (getepochschedule static method)": [[20, "solders.rpc.requests.GetEpochSchedule.from_json"]], "from_json() (getfeeformessage static method)": [[20, "solders.rpc.requests.GetFeeForMessage.from_json"]], "from_json() (getfirstavailableblock static method)": [[20, "solders.rpc.requests.GetFirstAvailableBlock.from_json"]], "from_json() (getgenesishash static method)": [[20, "solders.rpc.requests.GetGenesisHash.from_json"]], "from_json() (gethealth static method)": [[20, "solders.rpc.requests.GetHealth.from_json"]], "from_json() (gethighestsnapshotslot static method)": [[20, "solders.rpc.requests.GetHighestSnapshotSlot.from_json"]], "from_json() (getidentity static method)": [[20, "solders.rpc.requests.GetIdentity.from_json"]], "from_json() (getinflationgovernor static method)": [[20, "solders.rpc.requests.GetInflationGovernor.from_json"]], "from_json() (getinflationrate static method)": [[20, "solders.rpc.requests.GetInflationRate.from_json"]], "from_json() (getinflationreward static method)": [[20, "solders.rpc.requests.GetInflationReward.from_json"]], "from_json() (getlargestaccounts static method)": [[20, "solders.rpc.requests.GetLargestAccounts.from_json"]], "from_json() (getlatestblockhash static method)": [[20, "solders.rpc.requests.GetLatestBlockhash.from_json"]], "from_json() (getleaderschedule static method)": [[20, "solders.rpc.requests.GetLeaderSchedule.from_json"]], "from_json() (getmaxretransmitslot static method)": [[20, "solders.rpc.requests.GetMaxRetransmitSlot.from_json"]], "from_json() (getmaxshredinsertslot static method)": [[20, "solders.rpc.requests.GetMaxShredInsertSlot.from_json"]], "from_json() (getminimumbalanceforrentexemption static method)": [[20, "solders.rpc.requests.GetMinimumBalanceForRentExemption.from_json"]], "from_json() (getmultipleaccounts static method)": [[20, "solders.rpc.requests.GetMultipleAccounts.from_json"]], "from_json() (getprogramaccounts static method)": [[20, "solders.rpc.requests.GetProgramAccounts.from_json"]], "from_json() (getrecentperformancesamples static method)": [[20, "solders.rpc.requests.GetRecentPerformanceSamples.from_json"]], "from_json() (getsignaturestatuses static method)": [[20, "solders.rpc.requests.GetSignatureStatuses.from_json"]], "from_json() (getsignaturesforaddress static method)": [[20, "solders.rpc.requests.GetSignaturesForAddress.from_json"]], "from_json() (getslot static method)": [[20, "solders.rpc.requests.GetSlot.from_json"]], "from_json() (getslotleader static method)": [[20, "solders.rpc.requests.GetSlotLeader.from_json"]], "from_json() (getslotleaders static method)": [[20, "solders.rpc.requests.GetSlotLeaders.from_json"]], "from_json() (getstakeactivation static method)": [[20, "solders.rpc.requests.GetStakeActivation.from_json"]], "from_json() (getsupply static method)": [[20, "solders.rpc.requests.GetSupply.from_json"]], "from_json() (gettokenaccountbalance static method)": [[20, "solders.rpc.requests.GetTokenAccountBalance.from_json"]], "from_json() (gettokenaccountsbydelegate static method)": [[20, "solders.rpc.requests.GetTokenAccountsByDelegate.from_json"]], "from_json() (gettokenaccountsbyowner static method)": [[20, "solders.rpc.requests.GetTokenAccountsByOwner.from_json"]], "from_json() (gettokenlargestaccounts static method)": [[20, "solders.rpc.requests.GetTokenLargestAccounts.from_json"]], "from_json() (gettokensupply static method)": [[20, "solders.rpc.requests.GetTokenSupply.from_json"]], "from_json() (gettransaction static method)": [[20, "solders.rpc.requests.GetTransaction.from_json"]], "from_json() (gettransactioncount static method)": [[20, "solders.rpc.requests.GetTransactionCount.from_json"]], "from_json() (getversion static method)": [[20, "solders.rpc.requests.GetVersion.from_json"]], "from_json() (getvoteaccounts static method)": [[20, "solders.rpc.requests.GetVoteAccounts.from_json"]], "from_json() (isblockhashvalid static method)": [[20, "solders.rpc.requests.IsBlockhashValid.from_json"]], "from_json() (logssubscribe static method)": [[20, "solders.rpc.requests.LogsSubscribe.from_json"]], "from_json() (logsunsubscribe static method)": [[20, "solders.rpc.requests.LogsUnsubscribe.from_json"]], "from_json() (minimumledgerslot static method)": [[20, "solders.rpc.requests.MinimumLedgerSlot.from_json"]], "from_json() (programsubscribe static method)": [[20, "solders.rpc.requests.ProgramSubscribe.from_json"]], "from_json() (programunsubscribe static method)": [[20, "solders.rpc.requests.ProgramUnsubscribe.from_json"]], "from_json() (requestairdrop static method)": [[20, "solders.rpc.requests.RequestAirdrop.from_json"]], "from_json() (rootsubscribe static method)": [[20, "solders.rpc.requests.RootSubscribe.from_json"]], "from_json() (rootunsubscribe static method)": [[20, "solders.rpc.requests.RootUnsubscribe.from_json"]], "from_json() (sendlegacytransaction static method)": [[20, "solders.rpc.requests.SendLegacyTransaction.from_json"]], "from_json() (sendrawtransaction static method)": [[20, "solders.rpc.requests.SendRawTransaction.from_json"]], "from_json() (sendversionedtransaction static method)": [[20, "solders.rpc.requests.SendVersionedTransaction.from_json"]], "from_json() (signaturesubscribe static method)": [[20, "solders.rpc.requests.SignatureSubscribe.from_json"]], "from_json() (signatureunsubscribe static method)": [[20, "solders.rpc.requests.SignatureUnsubscribe.from_json"]], "from_json() (simulatelegacytransaction static method)": [[20, "solders.rpc.requests.SimulateLegacyTransaction.from_json"]], "from_json() (simulateversionedtransaction static method)": [[20, "solders.rpc.requests.SimulateVersionedTransaction.from_json"]], "from_json() (slotsubscribe static method)": [[20, "solders.rpc.requests.SlotSubscribe.from_json"]], "from_json() (slotunsubscribe static method)": [[20, "solders.rpc.requests.SlotUnsubscribe.from_json"]], "from_json() (slotsupdatessubscribe static method)": [[20, "solders.rpc.requests.SlotsUpdatesSubscribe.from_json"]], "from_json() (slotsupdatesunsubscribe static method)": [[20, "solders.rpc.requests.SlotsUpdatesUnsubscribe.from_json"]], "from_json() (validatorexit static method)": [[20, "solders.rpc.requests.ValidatorExit.from_json"]], "from_json() (votesubscribe static method)": [[20, "solders.rpc.requests.VoteSubscribe.from_json"]], "from_json() (voteunsubscribe static method)": [[20, "solders.rpc.requests.VoteUnsubscribe.from_json"]], "id (accountsubscribe attribute)": [[20, "solders.rpc.requests.AccountSubscribe.id"]], "id (accountunsubscribe attribute)": [[20, "solders.rpc.requests.AccountUnsubscribe.id"]], "id (blocksubscribe attribute)": [[20, "solders.rpc.requests.BlockSubscribe.id"]], "id (blockunsubscribe attribute)": [[20, "solders.rpc.requests.BlockUnsubscribe.id"]], "id (getaccountinfo attribute)": [[20, "solders.rpc.requests.GetAccountInfo.id"]], "id (getbalance attribute)": [[20, "solders.rpc.requests.GetBalance.id"]], "id (getblock attribute)": [[20, "solders.rpc.requests.GetBlock.id"]], "id (getblockcommitment attribute)": [[20, "solders.rpc.requests.GetBlockCommitment.id"]], "id (getblockheight attribute)": [[20, "solders.rpc.requests.GetBlockHeight.id"]], "id (getblockproduction attribute)": [[20, "solders.rpc.requests.GetBlockProduction.id"]], "id (getblocktime attribute)": [[20, "solders.rpc.requests.GetBlockTime.id"]], "id (getblocks attribute)": [[20, "solders.rpc.requests.GetBlocks.id"]], "id (getblockswithlimit attribute)": [[20, "solders.rpc.requests.GetBlocksWithLimit.id"]], "id (getclusternodes attribute)": [[20, "solders.rpc.requests.GetClusterNodes.id"]], "id (getepochinfo attribute)": [[20, "solders.rpc.requests.GetEpochInfo.id"]], "id (getepochschedule attribute)": [[20, "solders.rpc.requests.GetEpochSchedule.id"]], "id (getfeeformessage attribute)": [[20, "solders.rpc.requests.GetFeeForMessage.id"]], "id (getfirstavailableblock attribute)": [[20, "solders.rpc.requests.GetFirstAvailableBlock.id"]], "id (getgenesishash attribute)": [[20, "solders.rpc.requests.GetGenesisHash.id"]], "id (gethealth attribute)": [[20, "solders.rpc.requests.GetHealth.id"]], "id (gethighestsnapshotslot attribute)": [[20, "solders.rpc.requests.GetHighestSnapshotSlot.id"]], "id (getidentity attribute)": [[20, "solders.rpc.requests.GetIdentity.id"]], "id (getinflationgovernor attribute)": [[20, "solders.rpc.requests.GetInflationGovernor.id"]], "id (getinflationrate attribute)": [[20, "solders.rpc.requests.GetInflationRate.id"]], "id (getinflationreward attribute)": [[20, "solders.rpc.requests.GetInflationReward.id"]], "id (getlargestaccounts attribute)": [[20, "solders.rpc.requests.GetLargestAccounts.id"]], "id (getlatestblockhash attribute)": [[20, "solders.rpc.requests.GetLatestBlockhash.id"]], "id (getleaderschedule attribute)": [[20, "solders.rpc.requests.GetLeaderSchedule.id"]], "id (getmaxretransmitslot attribute)": [[20, "solders.rpc.requests.GetMaxRetransmitSlot.id"]], "id (getmaxshredinsertslot attribute)": [[20, "solders.rpc.requests.GetMaxShredInsertSlot.id"]], "id (getminimumbalanceforrentexemption attribute)": [[20, "solders.rpc.requests.GetMinimumBalanceForRentExemption.id"]], "id (getmultipleaccounts attribute)": [[20, "solders.rpc.requests.GetMultipleAccounts.id"]], "id (getprogramaccounts attribute)": [[20, "solders.rpc.requests.GetProgramAccounts.id"]], "id (getrecentperformancesamples attribute)": [[20, "solders.rpc.requests.GetRecentPerformanceSamples.id"]], "id (getsignaturestatuses attribute)": [[20, "solders.rpc.requests.GetSignatureStatuses.id"]], "id (getsignaturesforaddress attribute)": [[20, "solders.rpc.requests.GetSignaturesForAddress.id"]], "id (getslot attribute)": [[20, "solders.rpc.requests.GetSlot.id"]], "id (getslotleader attribute)": [[20, "solders.rpc.requests.GetSlotLeader.id"]], "id (getslotleaders attribute)": [[20, "solders.rpc.requests.GetSlotLeaders.id"]], "id (getstakeactivation attribute)": [[20, "solders.rpc.requests.GetStakeActivation.id"]], "id (getsupply attribute)": [[20, "solders.rpc.requests.GetSupply.id"]], "id (gettokenaccountbalance attribute)": [[20, "solders.rpc.requests.GetTokenAccountBalance.id"]], "id (gettokenaccountsbydelegate attribute)": [[20, "solders.rpc.requests.GetTokenAccountsByDelegate.id"]], "id (gettokenaccountsbyowner attribute)": [[20, "solders.rpc.requests.GetTokenAccountsByOwner.id"]], "id (gettokenlargestaccounts attribute)": [[20, "solders.rpc.requests.GetTokenLargestAccounts.id"]], "id (gettokensupply attribute)": [[20, "solders.rpc.requests.GetTokenSupply.id"]], "id (gettransaction attribute)": [[20, "solders.rpc.requests.GetTransaction.id"]], "id (gettransactioncount attribute)": [[20, "solders.rpc.requests.GetTransactionCount.id"]], "id (getversion attribute)": [[20, "solders.rpc.requests.GetVersion.id"]], "id (getvoteaccounts attribute)": [[20, "solders.rpc.requests.GetVoteAccounts.id"]], "id (isblockhashvalid attribute)": [[20, "solders.rpc.requests.IsBlockhashValid.id"]], "id (logssubscribe attribute)": [[20, "solders.rpc.requests.LogsSubscribe.id"]], "id (logsunsubscribe attribute)": [[20, "solders.rpc.requests.LogsUnsubscribe.id"]], "id (minimumledgerslot attribute)": [[20, "solders.rpc.requests.MinimumLedgerSlot.id"]], "id (programsubscribe attribute)": [[20, "solders.rpc.requests.ProgramSubscribe.id"]], "id (programunsubscribe attribute)": [[20, "solders.rpc.requests.ProgramUnsubscribe.id"]], "id (requestairdrop attribute)": [[20, "solders.rpc.requests.RequestAirdrop.id"]], "id (rootsubscribe attribute)": [[20, "solders.rpc.requests.RootSubscribe.id"]], "id (rootunsubscribe attribute)": [[20, "solders.rpc.requests.RootUnsubscribe.id"]], "id (sendlegacytransaction attribute)": [[20, "solders.rpc.requests.SendLegacyTransaction.id"]], "id (sendrawtransaction attribute)": [[20, "solders.rpc.requests.SendRawTransaction.id"]], "id (sendversionedtransaction attribute)": [[20, "solders.rpc.requests.SendVersionedTransaction.id"]], "id (signaturesubscribe attribute)": [[20, "solders.rpc.requests.SignatureSubscribe.id"]], "id (signatureunsubscribe attribute)": [[20, "solders.rpc.requests.SignatureUnsubscribe.id"]], "id (simulatelegacytransaction attribute)": [[20, "solders.rpc.requests.SimulateLegacyTransaction.id"]], "id (simulateversionedtransaction attribute)": [[20, "solders.rpc.requests.SimulateVersionedTransaction.id"]], "id (slotsubscribe attribute)": [[20, "solders.rpc.requests.SlotSubscribe.id"]], "id (slotunsubscribe attribute)": [[20, "solders.rpc.requests.SlotUnsubscribe.id"]], "id (slotsupdatessubscribe attribute)": [[20, "solders.rpc.requests.SlotsUpdatesSubscribe.id"]], "id (slotsupdatesunsubscribe attribute)": [[20, "solders.rpc.requests.SlotsUpdatesUnsubscribe.id"]], "id (validatorexit attribute)": [[20, "solders.rpc.requests.ValidatorExit.id"]], "id (votesubscribe attribute)": [[20, "solders.rpc.requests.VoteSubscribe.id"]], "id (voteunsubscribe attribute)": [[20, "solders.rpc.requests.VoteUnsubscribe.id"]], "lamports (requestairdrop attribute)": [[20, "solders.rpc.requests.RequestAirdrop.lamports"]], "length (getminimumbalanceforrentexemption attribute)": [[20, "solders.rpc.requests.GetMinimumBalanceForRentExemption.length"]], "limit (getblockswithlimit attribute)": [[20, "solders.rpc.requests.GetBlocksWithLimit.limit"]], "limit (getrecentperformancesamples attribute)": [[20, "solders.rpc.requests.GetRecentPerformanceSamples.limit"]], "limit (getslotleaders attribute)": [[20, "solders.rpc.requests.GetSlotLeaders.limit"]], "message (getfeeformessage attribute)": [[20, "solders.rpc.requests.GetFeeForMessage.message"]], "mint (gettokenlargestaccounts attribute)": [[20, "solders.rpc.requests.GetTokenLargestAccounts.mint"]], "mint (gettokensupply attribute)": [[20, "solders.rpc.requests.GetTokenSupply.mint"]], "program (getprogramaccounts attribute)": [[20, "solders.rpc.requests.GetProgramAccounts.program"]], "program (programsubscribe attribute)": [[20, "solders.rpc.requests.ProgramSubscribe.program"]], "pubkey (getaccountinfo attribute)": [[20, "solders.rpc.requests.GetAccountInfo.pubkey"]], "pubkey (getbalance attribute)": [[20, "solders.rpc.requests.GetBalance.pubkey"]], "pubkey (requestairdrop attribute)": [[20, "solders.rpc.requests.RequestAirdrop.pubkey"]], "signature (gettransaction attribute)": [[20, "solders.rpc.requests.GetTransaction.signature"]], "signature (signaturesubscribe attribute)": [[20, "solders.rpc.requests.SignatureSubscribe.signature"]], "signatures (getsignaturestatuses attribute)": [[20, "solders.rpc.requests.GetSignatureStatuses.signatures"]], "slot (getblock attribute)": [[20, "solders.rpc.requests.GetBlock.slot"]], "slot (getblockcommitment attribute)": [[20, "solders.rpc.requests.GetBlockCommitment.slot"]], "slot (getblocktime attribute)": [[20, "solders.rpc.requests.GetBlockTime.slot"]], "slot (getleaderschedule attribute)": [[20, "solders.rpc.requests.GetLeaderSchedule.slot"]], "solders.rpc.requests": [[20, "module-solders.rpc.requests"]], "start (getblocks attribute)": [[20, "solders.rpc.requests.GetBlocks.start"]], "start (getblockswithlimit attribute)": [[20, "solders.rpc.requests.GetBlocksWithLimit.start"]], "start (getslotleaders attribute)": [[20, "solders.rpc.requests.GetSlotLeaders.start"]], "subscription_id (accountunsubscribe attribute)": [[20, "solders.rpc.requests.AccountUnsubscribe.subscription_id"]], "subscription_id (blockunsubscribe attribute)": [[20, "solders.rpc.requests.BlockUnsubscribe.subscription_id"]], "subscription_id (logsunsubscribe attribute)": [[20, "solders.rpc.requests.LogsUnsubscribe.subscription_id"]], "subscription_id (programunsubscribe attribute)": [[20, "solders.rpc.requests.ProgramUnsubscribe.subscription_id"]], "subscription_id (rootunsubscribe attribute)": [[20, "solders.rpc.requests.RootUnsubscribe.subscription_id"]], "subscription_id (signatureunsubscribe attribute)": [[20, "solders.rpc.requests.SignatureUnsubscribe.subscription_id"]], "subscription_id (slotunsubscribe attribute)": [[20, "solders.rpc.requests.SlotUnsubscribe.subscription_id"]], "subscription_id (slotsupdatesunsubscribe attribute)": [[20, "solders.rpc.requests.SlotsUpdatesUnsubscribe.subscription_id"]], "subscription_id (voteunsubscribe attribute)": [[20, "solders.rpc.requests.VoteUnsubscribe.subscription_id"]], "to_json() (accountsubscribe method)": [[20, "solders.rpc.requests.AccountSubscribe.to_json"]], "to_json() (accountunsubscribe method)": [[20, "solders.rpc.requests.AccountUnsubscribe.to_json"]], "to_json() (blocksubscribe method)": [[20, "solders.rpc.requests.BlockSubscribe.to_json"]], "to_json() (blockunsubscribe method)": [[20, "solders.rpc.requests.BlockUnsubscribe.to_json"]], "to_json() (getaccountinfo method)": [[20, "solders.rpc.requests.GetAccountInfo.to_json"]], "to_json() (getbalance method)": [[20, "solders.rpc.requests.GetBalance.to_json"]], "to_json() (getblock method)": [[20, "solders.rpc.requests.GetBlock.to_json"]], "to_json() (getblockcommitment method)": [[20, "solders.rpc.requests.GetBlockCommitment.to_json"]], "to_json() (getblockheight method)": [[20, "solders.rpc.requests.GetBlockHeight.to_json"]], "to_json() (getblockproduction method)": [[20, "solders.rpc.requests.GetBlockProduction.to_json"]], "to_json() (getblocktime method)": [[20, "solders.rpc.requests.GetBlockTime.to_json"]], "to_json() (getblocks method)": [[20, "solders.rpc.requests.GetBlocks.to_json"]], "to_json() (getblockswithlimit method)": [[20, "solders.rpc.requests.GetBlocksWithLimit.to_json"]], "to_json() (getclusternodes method)": [[20, "solders.rpc.requests.GetClusterNodes.to_json"]], "to_json() (getepochinfo method)": [[20, "solders.rpc.requests.GetEpochInfo.to_json"]], "to_json() (getepochschedule method)": [[20, "solders.rpc.requests.GetEpochSchedule.to_json"]], "to_json() (getfeeformessage method)": [[20, "solders.rpc.requests.GetFeeForMessage.to_json"]], "to_json() (getfirstavailableblock method)": [[20, "solders.rpc.requests.GetFirstAvailableBlock.to_json"]], "to_json() (getgenesishash method)": [[20, "solders.rpc.requests.GetGenesisHash.to_json"]], "to_json() (gethealth method)": [[20, "solders.rpc.requests.GetHealth.to_json"]], "to_json() (gethighestsnapshotslot method)": [[20, "solders.rpc.requests.GetHighestSnapshotSlot.to_json"]], "to_json() (getidentity method)": [[20, "solders.rpc.requests.GetIdentity.to_json"]], "to_json() (getinflationgovernor method)": [[20, "solders.rpc.requests.GetInflationGovernor.to_json"]], "to_json() (getinflationrate method)": [[20, "solders.rpc.requests.GetInflationRate.to_json"]], "to_json() (getinflationreward method)": [[20, "solders.rpc.requests.GetInflationReward.to_json"]], "to_json() (getlargestaccounts method)": [[20, "solders.rpc.requests.GetLargestAccounts.to_json"]], "to_json() (getlatestblockhash method)": [[20, "solders.rpc.requests.GetLatestBlockhash.to_json"]], "to_json() (getleaderschedule method)": [[20, "solders.rpc.requests.GetLeaderSchedule.to_json"]], "to_json() (getmaxretransmitslot method)": [[20, "solders.rpc.requests.GetMaxRetransmitSlot.to_json"]], "to_json() (getmaxshredinsertslot method)": [[20, "solders.rpc.requests.GetMaxShredInsertSlot.to_json"]], "to_json() (getminimumbalanceforrentexemption method)": [[20, "solders.rpc.requests.GetMinimumBalanceForRentExemption.to_json"]], "to_json() (getmultipleaccounts method)": [[20, "solders.rpc.requests.GetMultipleAccounts.to_json"]], "to_json() (getprogramaccounts method)": [[20, "solders.rpc.requests.GetProgramAccounts.to_json"]], "to_json() (getrecentperformancesamples method)": [[20, "solders.rpc.requests.GetRecentPerformanceSamples.to_json"]], "to_json() (getsignaturestatuses method)": [[20, "solders.rpc.requests.GetSignatureStatuses.to_json"]], "to_json() (getsignaturesforaddress method)": [[20, "solders.rpc.requests.GetSignaturesForAddress.to_json"]], "to_json() (getslot method)": [[20, "solders.rpc.requests.GetSlot.to_json"]], "to_json() (getslotleader method)": [[20, "solders.rpc.requests.GetSlotLeader.to_json"]], "to_json() (getslotleaders method)": [[20, "solders.rpc.requests.GetSlotLeaders.to_json"]], "to_json() (getstakeactivation method)": [[20, "solders.rpc.requests.GetStakeActivation.to_json"]], "to_json() (getsupply method)": [[20, "solders.rpc.requests.GetSupply.to_json"]], "to_json() (gettokenaccountbalance method)": [[20, "solders.rpc.requests.GetTokenAccountBalance.to_json"]], "to_json() (gettokenaccountsbydelegate method)": [[20, "solders.rpc.requests.GetTokenAccountsByDelegate.to_json"]], "to_json() (gettokenaccountsbyowner method)": [[20, "solders.rpc.requests.GetTokenAccountsByOwner.to_json"]], "to_json() (gettokenlargestaccounts method)": [[20, "solders.rpc.requests.GetTokenLargestAccounts.to_json"]], "to_json() (gettokensupply method)": [[20, "solders.rpc.requests.GetTokenSupply.to_json"]], "to_json() (gettransaction method)": [[20, "solders.rpc.requests.GetTransaction.to_json"]], "to_json() (gettransactioncount method)": [[20, "solders.rpc.requests.GetTransactionCount.to_json"]], "to_json() (getversion method)": [[20, "solders.rpc.requests.GetVersion.to_json"]], "to_json() (getvoteaccounts method)": [[20, "solders.rpc.requests.GetVoteAccounts.to_json"]], "to_json() (isblockhashvalid method)": [[20, "solders.rpc.requests.IsBlockhashValid.to_json"]], "to_json() (logssubscribe method)": [[20, "solders.rpc.requests.LogsSubscribe.to_json"]], "to_json() (logsunsubscribe method)": [[20, "solders.rpc.requests.LogsUnsubscribe.to_json"]], "to_json() (minimumledgerslot method)": [[20, "solders.rpc.requests.MinimumLedgerSlot.to_json"]], "to_json() (programsubscribe method)": [[20, "solders.rpc.requests.ProgramSubscribe.to_json"]], "to_json() (programunsubscribe method)": [[20, "solders.rpc.requests.ProgramUnsubscribe.to_json"]], "to_json() (requestairdrop method)": [[20, "solders.rpc.requests.RequestAirdrop.to_json"]], "to_json() (rootsubscribe method)": [[20, "solders.rpc.requests.RootSubscribe.to_json"]], "to_json() (rootunsubscribe method)": [[20, "solders.rpc.requests.RootUnsubscribe.to_json"]], "to_json() (sendlegacytransaction method)": [[20, "solders.rpc.requests.SendLegacyTransaction.to_json"]], "to_json() (sendrawtransaction method)": [[20, "solders.rpc.requests.SendRawTransaction.to_json"]], "to_json() (sendversionedtransaction method)": [[20, "solders.rpc.requests.SendVersionedTransaction.to_json"]], "to_json() (signaturesubscribe method)": [[20, "solders.rpc.requests.SignatureSubscribe.to_json"]], "to_json() (signatureunsubscribe method)": [[20, "solders.rpc.requests.SignatureUnsubscribe.to_json"]], "to_json() (simulatelegacytransaction method)": [[20, "solders.rpc.requests.SimulateLegacyTransaction.to_json"]], "to_json() (simulateversionedtransaction method)": [[20, "solders.rpc.requests.SimulateVersionedTransaction.to_json"]], "to_json() (slotsubscribe method)": [[20, "solders.rpc.requests.SlotSubscribe.to_json"]], "to_json() (slotunsubscribe method)": [[20, "solders.rpc.requests.SlotUnsubscribe.to_json"]], "to_json() (slotsupdatessubscribe method)": [[20, "solders.rpc.requests.SlotsUpdatesSubscribe.to_json"]], "to_json() (slotsupdatesunsubscribe method)": [[20, "solders.rpc.requests.SlotsUpdatesUnsubscribe.to_json"]], "to_json() (validatorexit method)": [[20, "solders.rpc.requests.ValidatorExit.to_json"]], "to_json() (votesubscribe method)": [[20, "solders.rpc.requests.VoteSubscribe.to_json"]], "to_json() (voteunsubscribe method)": [[20, "solders.rpc.requests.VoteUnsubscribe.to_json"]], "tx (sendlegacytransaction attribute)": [[20, "solders.rpc.requests.SendLegacyTransaction.tx"]], "tx (sendrawtransaction attribute)": [[20, "solders.rpc.requests.SendRawTransaction.tx"]], "tx (sendversionedtransaction attribute)": [[20, "solders.rpc.requests.SendVersionedTransaction.tx"]], "tx (simulatelegacytransaction attribute)": [[20, "solders.rpc.requests.SimulateLegacyTransaction.tx"]], "tx (simulateversionedtransaction attribute)": [[20, "solders.rpc.requests.SimulateVersionedTransaction.tx"]], "accountnotification (class in solders.rpc.responses)": [[21, "solders.rpc.responses.AccountNotification"]], "accountnotificationjsonparsed (class in solders.rpc.responses)": [[21, "solders.rpc.responses.AccountNotificationJsonParsed"]], "accountnotificationjsonparsedresult (class in solders.rpc.responses)": [[21, "solders.rpc.responses.AccountNotificationJsonParsedResult"]], "accountnotificationresult (class in solders.rpc.responses)": [[21, "solders.rpc.responses.AccountNotificationResult"]], "blocknotification (class in solders.rpc.responses)": [[21, "solders.rpc.responses.BlockNotification"]], "blocknotificationresult (class in solders.rpc.responses)": [[21, "solders.rpc.responses.BlockNotificationResult"]], "blockstoreerror (blockstoreerror attribute)": [[21, "solders.rpc.responses.BlockStoreError.BlockStoreError"]], "blockstoreerror (class in solders.rpc.responses)": [[21, "solders.rpc.responses.BlockStoreError"]], "epochinfo (class in solders.rpc.responses)": [[21, "solders.rpc.responses.EpochInfo"]], "getaccountinfojsonparsedresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetAccountInfoJsonParsedResp"]], "getaccountinfomaybejsonparsedresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetAccountInfoMaybeJsonParsedResp"]], "getaccountinforesp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetAccountInfoResp"]], "getbalanceresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetBalanceResp"]], "getblockcommitmentresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetBlockCommitmentResp"]], "getblockheightresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetBlockHeightResp"]], "getblockproductionresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetBlockProductionResp"]], "getblockresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetBlockResp"]], "getblocktimeresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetBlockTimeResp"]], "getblocksresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetBlocksResp"]], "getblockswithlimitresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetBlocksWithLimitResp"]], "getclusternodesresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetClusterNodesResp"]], "getepochinforesp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetEpochInfoResp"]], "getepochscheduleresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetEpochScheduleResp"]], "getfeeformessageresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetFeeForMessageResp"]], "getfirstavailableblockresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetFirstAvailableBlockResp"]], "getgenesishashresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetGenesisHashResp"]], "gethealthresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetHealthResp"]], "gethighestsnapshotslotresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetHighestSnapshotSlotResp"]], "getidentityresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetIdentityResp"]], "getinflationgovernorresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetInflationGovernorResp"]], "getinflationrateresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetInflationRateResp"]], "getinflationrewardresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetInflationRewardResp"]], "getlargestaccountsresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetLargestAccountsResp"]], "getlatestblockhashresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetLatestBlockhashResp"]], "getleaderscheduleresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetLeaderScheduleResp"]], "getmaxretransmitslotresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetMaxRetransmitSlotResp"]], "getmaxshredinsertslotresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetMaxShredInsertSlotResp"]], "getminimumbalanceforrentexemptionresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetMinimumBalanceForRentExemptionResp"]], "getmultipleaccountsjsonparsedresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetMultipleAccountsJsonParsedResp"]], "getmultipleaccountsmaybejsonparsedresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetMultipleAccountsMaybeJsonParsedResp"]], "getmultipleaccountsresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetMultipleAccountsResp"]], "getprogramaccountsjsonparsedresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetProgramAccountsJsonParsedResp"]], "getprogramaccountsmaybejsonparsedresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetProgramAccountsMaybeJsonParsedResp"]], "getprogramaccountsresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetProgramAccountsResp"]], "getprogramaccountswithcontextjsonparsedresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetProgramAccountsWithContextJsonParsedResp"]], "getprogramaccountswithcontextmaybejsonparsedresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetProgramAccountsWithContextMaybeJsonParsedResp"]], "getprogramaccountswithcontextresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetProgramAccountsWithContextResp"]], "getrecentperformancesamplesresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetRecentPerformanceSamplesResp"]], "getsignaturestatusesresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetSignatureStatusesResp"]], "getsignaturesforaddressresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetSignaturesForAddressResp"]], "getslotleaderresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetSlotLeaderResp"]], "getslotleadersresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetSlotLeadersResp"]], "getslotresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetSlotResp"]], "getsupplyresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetSupplyResp"]], "gettokenaccountbalanceresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetTokenAccountBalanceResp"]], "gettokenaccountsbydelegatejsonparsedresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetTokenAccountsByDelegateJsonParsedResp"]], "gettokenaccountsbydelegateresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetTokenAccountsByDelegateResp"]], "gettokenaccountsbyownerjsonparsedresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetTokenAccountsByOwnerJsonParsedResp"]], "gettokenaccountsbyownerresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetTokenAccountsByOwnerResp"]], "gettokenlargestaccountsresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetTokenLargestAccountsResp"]], "gettokensupplyresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetTokenSupplyResp"]], "gettransactioncountresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetTransactionCountResp"]], "gettransactionresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetTransactionResp"]], "getversionresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetVersionResp"]], "getvoteaccountsresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.GetVoteAccountsResp"]], "isblockhashvalidresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.IsBlockhashValidResp"]], "logsnotification (class in solders.rpc.responses)": [[21, "solders.rpc.responses.LogsNotification"]], "logsnotificationresult (class in solders.rpc.responses)": [[21, "solders.rpc.responses.LogsNotificationResult"]], "minimumledgerslotresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.MinimumLedgerSlotResp"]], "programnotification (class in solders.rpc.responses)": [[21, "solders.rpc.responses.ProgramNotification"]], "programnotificationjsonparsed (class in solders.rpc.responses)": [[21, "solders.rpc.responses.ProgramNotificationJsonParsed"]], "programnotificationjsonparsedresult (class in solders.rpc.responses)": [[21, "solders.rpc.responses.ProgramNotificationJsonParsedResult"]], "programnotificationresult (class in solders.rpc.responses)": [[21, "solders.rpc.responses.ProgramNotificationResult"]], "requestairdropresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RequestAirdropResp"]], "rootnotification (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RootNotification"]], "rpcaccountbalance (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RpcAccountBalance"]], "rpcblockcommitment (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RpcBlockCommitment"]], "rpcblockproduction (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RpcBlockProduction"]], "rpcblockproductionrange (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RpcBlockProductionRange"]], "rpcblockupdate (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RpcBlockUpdate"]], "rpcblockhash (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RpcBlockhash"]], "rpcconfirmedtransactionstatuswithsignature (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RpcConfirmedTransactionStatusWithSignature"]], "rpccontactinfo (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RpcContactInfo"]], "rpcidentity (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RpcIdentity"]], "rpcinflationgovernor (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RpcInflationGovernor"]], "rpcinflationrate (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RpcInflationRate"]], "rpcinflationreward (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RpcInflationReward"]], "rpckeyedaccount (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RpcKeyedAccount"]], "rpckeyedaccountjsonparsed (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RpcKeyedAccountJsonParsed"]], "rpclogsresponse (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RpcLogsResponse"]], "rpcperfsample (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RpcPerfSample"]], "rpcresponsecontext (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RpcResponseContext"]], "rpcsignatureresponse (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RpcSignatureResponse"]], "rpcsimulatetransactionresult (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RpcSimulateTransactionResult"]], "rpcsnapshotslotinfo (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RpcSnapshotSlotInfo"]], "rpcsupply (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RpcSupply"]], "rpctokenaccountbalance (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RpcTokenAccountBalance"]], "rpcversioninfo (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RpcVersionInfo"]], "rpcvote (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RpcVote"]], "rpcvoteaccountinfo (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RpcVoteAccountInfo"]], "rpcvoteaccountstatus (class in solders.rpc.responses)": [[21, "solders.rpc.responses.RpcVoteAccountStatus"]], "sendtransactionresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.SendTransactionResp"]], "signaturenotification (class in solders.rpc.responses)": [[21, "solders.rpc.responses.SignatureNotification"]], "signaturenotificationresult (class in solders.rpc.responses)": [[21, "solders.rpc.responses.SignatureNotificationResult"]], "simulatetransactionresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.SimulateTransactionResp"]], "slotinfo (class in solders.rpc.responses)": [[21, "solders.rpc.responses.SlotInfo"]], "slotnotification (class in solders.rpc.responses)": [[21, "solders.rpc.responses.SlotNotification"]], "slottransactionstats (class in solders.rpc.responses)": [[21, "solders.rpc.responses.SlotTransactionStats"]], "slotupdatecompleted (class in solders.rpc.responses)": [[21, "solders.rpc.responses.SlotUpdateCompleted"]], "slotupdatecreatedbank (class in solders.rpc.responses)": [[21, "solders.rpc.responses.SlotUpdateCreatedBank"]], "slotupdatedead (class in solders.rpc.responses)": [[21, "solders.rpc.responses.SlotUpdateDead"]], "slotupdatefirstshredreceived (class in solders.rpc.responses)": [[21, "solders.rpc.responses.SlotUpdateFirstShredReceived"]], "slotupdatenotification (class in solders.rpc.responses)": [[21, "solders.rpc.responses.SlotUpdateNotification"]], "slotupdateoptimisticconfirmation (class in solders.rpc.responses)": [[21, "solders.rpc.responses.SlotUpdateOptimisticConfirmation"]], "slotupdateroot (class in solders.rpc.responses)": [[21, "solders.rpc.responses.SlotUpdateRoot"]], "subscriptionerror (class in solders.rpc.responses)": [[21, "solders.rpc.responses.SubscriptionError"]], "subscriptionresult (class in solders.rpc.responses)": [[21, "solders.rpc.responses.SubscriptionResult"]], "unsubscriberesult (class in solders.rpc.responses)": [[21, "solders.rpc.responses.UnsubscribeResult"]], "validatorexitresp (class in solders.rpc.responses)": [[21, "solders.rpc.responses.ValidatorExitResp"]], "votenotification (class in solders.rpc.responses)": [[21, "solders.rpc.responses.VoteNotification"]], "absolute_slot (epochinfo attribute)": [[21, "solders.rpc.responses.EpochInfo.absolute_slot"]], "account (rpckeyedaccount attribute)": [[21, "solders.rpc.responses.RpcKeyedAccount.account"]], "account (rpckeyedaccountjsonparsed attribute)": [[21, "solders.rpc.responses.RpcKeyedAccountJsonParsed.account"]], "accounts (rpcsimulatetransactionresult attribute)": [[21, "solders.rpc.responses.RpcSimulateTransactionResult.accounts"]], "activated_stake (rpcvoteaccountinfo attribute)": [[21, "solders.rpc.responses.RpcVoteAccountInfo.activated_stake"]], "address (rpcaccountbalance attribute)": [[21, "solders.rpc.responses.RpcAccountBalance.address"]], "address (rpctokenaccountbalance attribute)": [[21, "solders.rpc.responses.RpcTokenAccountBalance.address"]], "amount (rpcinflationreward attribute)": [[21, "solders.rpc.responses.RpcInflationReward.amount"]], "amount (rpctokenaccountbalance attribute)": [[21, "solders.rpc.responses.RpcTokenAccountBalance.amount"]], "api_version (rpcresponsecontext attribute)": [[21, "solders.rpc.responses.RpcResponseContext.api_version"]], "batch_from_json() (in module solders.rpc.responses)": [[21, "solders.rpc.responses.batch_from_json"]], "batch_to_json() (in module solders.rpc.responses)": [[21, "solders.rpc.responses.batch_to_json"]], "block (rpcblockupdate attribute)": [[21, "solders.rpc.responses.RpcBlockUpdate.block"]], "block_height (epochinfo attribute)": [[21, "solders.rpc.responses.EpochInfo.block_height"]], "block_time (rpcconfirmedtransactionstatuswithsignature attribute)": [[21, "solders.rpc.responses.RpcConfirmedTransactionStatusWithSignature.block_time"]], "blockhash (rpcblockhash attribute)": [[21, "solders.rpc.responses.RpcBlockhash.blockhash"]], "by_identity (rpcblockproduction attribute)": [[21, "solders.rpc.responses.RpcBlockProduction.by_identity"]], "circulating (rpcsupply attribute)": [[21, "solders.rpc.responses.RpcSupply.circulating"]], "commission (rpcinflationreward attribute)": [[21, "solders.rpc.responses.RpcInflationReward.commission"]], "commission (rpcvoteaccountinfo attribute)": [[21, "solders.rpc.responses.RpcVoteAccountInfo.commission"]], "commitment (rpcblockcommitment attribute)": [[21, "solders.rpc.responses.RpcBlockCommitment.commitment"]], "confirmation_status (rpcconfirmedtransactionstatuswithsignature attribute)": [[21, "solders.rpc.responses.RpcConfirmedTransactionStatusWithSignature.confirmation_status"]], "context (accountnotificationjsonparsedresult attribute)": [[21, "solders.rpc.responses.AccountNotificationJsonParsedResult.context"]], "context (accountnotificationresult attribute)": [[21, "solders.rpc.responses.AccountNotificationResult.context"]], "context (blocknotificationresult attribute)": [[21, "solders.rpc.responses.BlockNotificationResult.context"]], "context (getaccountinfojsonparsedresp attribute)": [[21, "solders.rpc.responses.GetAccountInfoJsonParsedResp.context"]], "context (getaccountinfomaybejsonparsedresp attribute)": [[21, "solders.rpc.responses.GetAccountInfoMaybeJsonParsedResp.context"]], "context (getaccountinforesp attribute)": [[21, "solders.rpc.responses.GetAccountInfoResp.context"]], "context (getbalanceresp attribute)": [[21, "solders.rpc.responses.GetBalanceResp.context"]], "context (getblockproductionresp attribute)": [[21, "solders.rpc.responses.GetBlockProductionResp.context"]], "context (getfeeformessageresp attribute)": [[21, "solders.rpc.responses.GetFeeForMessageResp.context"]], "context (getlargestaccountsresp attribute)": [[21, "solders.rpc.responses.GetLargestAccountsResp.context"]], "context (getlatestblockhashresp attribute)": [[21, "solders.rpc.responses.GetLatestBlockhashResp.context"]], "context (getmultipleaccountsjsonparsedresp attribute)": [[21, "solders.rpc.responses.GetMultipleAccountsJsonParsedResp.context"]], "context (getmultipleaccountsmaybejsonparsedresp attribute)": [[21, "solders.rpc.responses.GetMultipleAccountsMaybeJsonParsedResp.context"]], "context (getmultipleaccountsresp attribute)": [[21, "solders.rpc.responses.GetMultipleAccountsResp.context"]], "context (getprogramaccountswithcontextjsonparsedresp attribute)": [[21, "solders.rpc.responses.GetProgramAccountsWithContextJsonParsedResp.context"]], "context (getprogramaccountswithcontextmaybejsonparsedresp attribute)": [[21, "solders.rpc.responses.GetProgramAccountsWithContextMaybeJsonParsedResp.context"]], "context (getprogramaccountswithcontextresp attribute)": [[21, "solders.rpc.responses.GetProgramAccountsWithContextResp.context"]], "context (getsignaturestatusesresp attribute)": [[21, "solders.rpc.responses.GetSignatureStatusesResp.context"]], "context (getsupplyresp attribute)": [[21, "solders.rpc.responses.GetSupplyResp.context"]], "context (gettokenaccountbalanceresp attribute)": [[21, "solders.rpc.responses.GetTokenAccountBalanceResp.context"]], "context (gettokenaccountsbydelegatejsonparsedresp attribute)": [[21, "solders.rpc.responses.GetTokenAccountsByDelegateJsonParsedResp.context"]], "context (gettokenaccountsbydelegateresp attribute)": [[21, "solders.rpc.responses.GetTokenAccountsByDelegateResp.context"]], "context (gettokenaccountsbyownerjsonparsedresp attribute)": [[21, "solders.rpc.responses.GetTokenAccountsByOwnerJsonParsedResp.context"]], "context (gettokenaccountsbyownerresp attribute)": [[21, "solders.rpc.responses.GetTokenAccountsByOwnerResp.context"]], "context (gettokenlargestaccountsresp attribute)": [[21, "solders.rpc.responses.GetTokenLargestAccountsResp.context"]], "context (gettokensupplyresp attribute)": [[21, "solders.rpc.responses.GetTokenSupplyResp.context"]], "context (isblockhashvalidresp attribute)": [[21, "solders.rpc.responses.IsBlockhashValidResp.context"]], "context (logsnotificationresult attribute)": [[21, "solders.rpc.responses.LogsNotificationResult.context"]], "context (programnotificationjsonparsedresult attribute)": [[21, "solders.rpc.responses.ProgramNotificationJsonParsedResult.context"]], "context (programnotificationresult attribute)": [[21, "solders.rpc.responses.ProgramNotificationResult.context"]], "context (signaturenotificationresult attribute)": [[21, "solders.rpc.responses.SignatureNotificationResult.context"]], "context (simulatetransactionresp attribute)": [[21, "solders.rpc.responses.SimulateTransactionResp.context"]], "current (rpcvoteaccountstatus attribute)": [[21, "solders.rpc.responses.RpcVoteAccountStatus.current"]], "delinquent (rpcvoteaccountstatus attribute)": [[21, "solders.rpc.responses.RpcVoteAccountStatus.delinquent"]], "effective_slot (rpcinflationreward attribute)": [[21, "solders.rpc.responses.RpcInflationReward.effective_slot"]], "epoch (epochinfo attribute)": [[21, "solders.rpc.responses.EpochInfo.epoch"]], "epoch (rpcinflationrate attribute)": [[21, "solders.rpc.responses.RpcInflationRate.epoch"]], "epoch (rpcinflationreward attribute)": [[21, "solders.rpc.responses.RpcInflationReward.epoch"]], "epoch_credits (rpcvoteaccountinfo attribute)": [[21, "solders.rpc.responses.RpcVoteAccountInfo.epoch_credits"]], "epoch_vote_account (rpcvoteaccountinfo attribute)": [[21, "solders.rpc.responses.RpcVoteAccountInfo.epoch_vote_account"]], "err (rpcblockupdate attribute)": [[21, "solders.rpc.responses.RpcBlockUpdate.err"]], "err (rpcconfirmedtransactionstatuswithsignature attribute)": [[21, "solders.rpc.responses.RpcConfirmedTransactionStatusWithSignature.err"]], "err (rpclogsresponse attribute)": [[21, "solders.rpc.responses.RpcLogsResponse.err"]], "err (rpcsignatureresponse attribute)": [[21, "solders.rpc.responses.RpcSignatureResponse.err"]], "err (rpcsimulatetransactionresult attribute)": [[21, "solders.rpc.responses.RpcSimulateTransactionResult.err"]], "err (slotupdatedead attribute)": [[21, "solders.rpc.responses.SlotUpdateDead.err"]], "error (subscriptionerror attribute)": [[21, "solders.rpc.responses.SubscriptionError.error"]], "feature_set (rpcversioninfo attribute)": [[21, "solders.rpc.responses.RpcVersionInfo.feature_set"]], "first_slot (rpcblockproductionrange attribute)": [[21, "solders.rpc.responses.RpcBlockProductionRange.first_slot"]], "foundation (rpcinflationgovernor attribute)": [[21, "solders.rpc.responses.RpcInflationGovernor.foundation"]], "foundation (rpcinflationrate attribute)": [[21, "solders.rpc.responses.RpcInflationRate.foundation"]], "foundation_term (rpcinflationgovernor attribute)": [[21, "solders.rpc.responses.RpcInflationGovernor.foundation_term"]], "from_bytes() (accountnotification static method)": [[21, "solders.rpc.responses.AccountNotification.from_bytes"]], "from_bytes() (accountnotificationjsonparsed static method)": [[21, "solders.rpc.responses.AccountNotificationJsonParsed.from_bytes"]], "from_bytes() (accountnotificationjsonparsedresult static method)": [[21, "solders.rpc.responses.AccountNotificationJsonParsedResult.from_bytes"]], "from_bytes() (accountnotificationresult static method)": [[21, "solders.rpc.responses.AccountNotificationResult.from_bytes"]], "from_bytes() (blocknotification static method)": [[21, "solders.rpc.responses.BlockNotification.from_bytes"]], "from_bytes() (blocknotificationresult static method)": [[21, "solders.rpc.responses.BlockNotificationResult.from_bytes"]], "from_bytes() (epochinfo static method)": [[21, "solders.rpc.responses.EpochInfo.from_bytes"]], "from_bytes() (getaccountinfojsonparsedresp static method)": [[21, "solders.rpc.responses.GetAccountInfoJsonParsedResp.from_bytes"]], "from_bytes() (getaccountinfomaybejsonparsedresp static method)": [[21, "solders.rpc.responses.GetAccountInfoMaybeJsonParsedResp.from_bytes"]], "from_bytes() (getaccountinforesp static method)": [[21, "solders.rpc.responses.GetAccountInfoResp.from_bytes"]], "from_bytes() (getbalanceresp static method)": [[21, "solders.rpc.responses.GetBalanceResp.from_bytes"]], "from_bytes() (getblockcommitmentresp static method)": [[21, "solders.rpc.responses.GetBlockCommitmentResp.from_bytes"]], "from_bytes() (getblockheightresp static method)": [[21, "solders.rpc.responses.GetBlockHeightResp.from_bytes"]], "from_bytes() (getblockproductionresp static method)": [[21, "solders.rpc.responses.GetBlockProductionResp.from_bytes"]], "from_bytes() (getblockresp static method)": [[21, "solders.rpc.responses.GetBlockResp.from_bytes"]], "from_bytes() (getblocktimeresp static method)": [[21, "solders.rpc.responses.GetBlockTimeResp.from_bytes"]], "from_bytes() (getblocksresp static method)": [[21, "solders.rpc.responses.GetBlocksResp.from_bytes"]], "from_bytes() (getblockswithlimitresp static method)": [[21, "solders.rpc.responses.GetBlocksWithLimitResp.from_bytes"]], "from_bytes() (getclusternodesresp static method)": [[21, "solders.rpc.responses.GetClusterNodesResp.from_bytes"]], "from_bytes() (getepochinforesp static method)": [[21, "solders.rpc.responses.GetEpochInfoResp.from_bytes"]], "from_bytes() (getepochscheduleresp static method)": [[21, "solders.rpc.responses.GetEpochScheduleResp.from_bytes"]], "from_bytes() (getfeeformessageresp static method)": [[21, "solders.rpc.responses.GetFeeForMessageResp.from_bytes"]], "from_bytes() (getfirstavailableblockresp static method)": [[21, "solders.rpc.responses.GetFirstAvailableBlockResp.from_bytes"]], "from_bytes() (getgenesishashresp static method)": [[21, "solders.rpc.responses.GetGenesisHashResp.from_bytes"]], "from_bytes() (gethealthresp static method)": [[21, "solders.rpc.responses.GetHealthResp.from_bytes"]], "from_bytes() (gethighestsnapshotslotresp static method)": [[21, "solders.rpc.responses.GetHighestSnapshotSlotResp.from_bytes"]], "from_bytes() (getidentityresp static method)": [[21, "solders.rpc.responses.GetIdentityResp.from_bytes"]], "from_bytes() (getinflationgovernorresp static method)": [[21, "solders.rpc.responses.GetInflationGovernorResp.from_bytes"]], "from_bytes() (getinflationrateresp static method)": [[21, "solders.rpc.responses.GetInflationRateResp.from_bytes"]], "from_bytes() (getinflationrewardresp static method)": [[21, "solders.rpc.responses.GetInflationRewardResp.from_bytes"]], "from_bytes() (getlargestaccountsresp static method)": [[21, "solders.rpc.responses.GetLargestAccountsResp.from_bytes"]], "from_bytes() (getlatestblockhashresp static method)": [[21, "solders.rpc.responses.GetLatestBlockhashResp.from_bytes"]], "from_bytes() (getleaderscheduleresp static method)": [[21, "solders.rpc.responses.GetLeaderScheduleResp.from_bytes"]], "from_bytes() (getmaxretransmitslotresp static method)": [[21, "solders.rpc.responses.GetMaxRetransmitSlotResp.from_bytes"]], "from_bytes() (getmaxshredinsertslotresp static method)": [[21, "solders.rpc.responses.GetMaxShredInsertSlotResp.from_bytes"]], "from_bytes() (getminimumbalanceforrentexemptionresp static method)": [[21, "solders.rpc.responses.GetMinimumBalanceForRentExemptionResp.from_bytes"]], "from_bytes() (getmultipleaccountsjsonparsedresp static method)": [[21, "solders.rpc.responses.GetMultipleAccountsJsonParsedResp.from_bytes"]], "from_bytes() (getmultipleaccountsmaybejsonparsedresp static method)": [[21, "solders.rpc.responses.GetMultipleAccountsMaybeJsonParsedResp.from_bytes"]], "from_bytes() (getmultipleaccountsresp static method)": [[21, "solders.rpc.responses.GetMultipleAccountsResp.from_bytes"]], "from_bytes() (getprogramaccountsjsonparsedresp static method)": [[21, "solders.rpc.responses.GetProgramAccountsJsonParsedResp.from_bytes"]], "from_bytes() (getprogramaccountsmaybejsonparsedresp static method)": [[21, "solders.rpc.responses.GetProgramAccountsMaybeJsonParsedResp.from_bytes"]], "from_bytes() (getprogramaccountsresp static method)": [[21, "solders.rpc.responses.GetProgramAccountsResp.from_bytes"]], "from_bytes() (getprogramaccountswithcontextjsonparsedresp static method)": [[21, "solders.rpc.responses.GetProgramAccountsWithContextJsonParsedResp.from_bytes"]], "from_bytes() (getprogramaccountswithcontextmaybejsonparsedresp static method)": [[21, "solders.rpc.responses.GetProgramAccountsWithContextMaybeJsonParsedResp.from_bytes"]], "from_bytes() (getprogramaccountswithcontextresp static method)": [[21, "solders.rpc.responses.GetProgramAccountsWithContextResp.from_bytes"]], "from_bytes() (getrecentperformancesamplesresp static method)": [[21, "solders.rpc.responses.GetRecentPerformanceSamplesResp.from_bytes"]], "from_bytes() (getsignaturestatusesresp static method)": [[21, "solders.rpc.responses.GetSignatureStatusesResp.from_bytes"]], "from_bytes() (getsignaturesforaddressresp static method)": [[21, "solders.rpc.responses.GetSignaturesForAddressResp.from_bytes"]], "from_bytes() (getslotleaderresp static method)": [[21, "solders.rpc.responses.GetSlotLeaderResp.from_bytes"]], "from_bytes() (getslotleadersresp static method)": [[21, "solders.rpc.responses.GetSlotLeadersResp.from_bytes"]], "from_bytes() (getslotresp static method)": [[21, "solders.rpc.responses.GetSlotResp.from_bytes"]], "from_bytes() (getsupplyresp static method)": [[21, "solders.rpc.responses.GetSupplyResp.from_bytes"]], "from_bytes() (gettokenaccountbalanceresp static method)": [[21, "solders.rpc.responses.GetTokenAccountBalanceResp.from_bytes"]], "from_bytes() (gettokenaccountsbydelegatejsonparsedresp static method)": [[21, "solders.rpc.responses.GetTokenAccountsByDelegateJsonParsedResp.from_bytes"]], "from_bytes() (gettokenaccountsbydelegateresp static method)": [[21, "solders.rpc.responses.GetTokenAccountsByDelegateResp.from_bytes"]], "from_bytes() (gettokenaccountsbyownerjsonparsedresp static method)": [[21, "solders.rpc.responses.GetTokenAccountsByOwnerJsonParsedResp.from_bytes"]], "from_bytes() (gettokenaccountsbyownerresp static method)": [[21, "solders.rpc.responses.GetTokenAccountsByOwnerResp.from_bytes"]], "from_bytes() (gettokenlargestaccountsresp static method)": [[21, "solders.rpc.responses.GetTokenLargestAccountsResp.from_bytes"]], "from_bytes() (gettokensupplyresp static method)": [[21, "solders.rpc.responses.GetTokenSupplyResp.from_bytes"]], "from_bytes() (gettransactioncountresp static method)": [[21, "solders.rpc.responses.GetTransactionCountResp.from_bytes"]], "from_bytes() (gettransactionresp static method)": [[21, "solders.rpc.responses.GetTransactionResp.from_bytes"]], "from_bytes() (getversionresp static method)": [[21, "solders.rpc.responses.GetVersionResp.from_bytes"]], "from_bytes() (getvoteaccountsresp static method)": [[21, "solders.rpc.responses.GetVoteAccountsResp.from_bytes"]], "from_bytes() (isblockhashvalidresp static method)": [[21, "solders.rpc.responses.IsBlockhashValidResp.from_bytes"]], "from_bytes() (logsnotification static method)": [[21, "solders.rpc.responses.LogsNotification.from_bytes"]], "from_bytes() (logsnotificationresult static method)": [[21, "solders.rpc.responses.LogsNotificationResult.from_bytes"]], "from_bytes() (minimumledgerslotresp static method)": [[21, "solders.rpc.responses.MinimumLedgerSlotResp.from_bytes"]], "from_bytes() (programnotification static method)": [[21, "solders.rpc.responses.ProgramNotification.from_bytes"]], "from_bytes() (programnotificationjsonparsed static method)": [[21, "solders.rpc.responses.ProgramNotificationJsonParsed.from_bytes"]], "from_bytes() (programnotificationjsonparsedresult static method)": [[21, "solders.rpc.responses.ProgramNotificationJsonParsedResult.from_bytes"]], "from_bytes() (programnotificationresult static method)": [[21, "solders.rpc.responses.ProgramNotificationResult.from_bytes"]], "from_bytes() (requestairdropresp static method)": [[21, "solders.rpc.responses.RequestAirdropResp.from_bytes"]], "from_bytes() (rootnotification static method)": [[21, "solders.rpc.responses.RootNotification.from_bytes"]], "from_bytes() (rpcaccountbalance static method)": [[21, "solders.rpc.responses.RpcAccountBalance.from_bytes"]], "from_bytes() (rpcblockcommitment static method)": [[21, "solders.rpc.responses.RpcBlockCommitment.from_bytes"]], "from_bytes() (rpcblockproduction static method)": [[21, "solders.rpc.responses.RpcBlockProduction.from_bytes"]], "from_bytes() (rpcblockproductionrange static method)": [[21, "solders.rpc.responses.RpcBlockProductionRange.from_bytes"]], "from_bytes() (rpcblockupdate static method)": [[21, "solders.rpc.responses.RpcBlockUpdate.from_bytes"]], "from_bytes() (rpcblockhash static method)": [[21, "solders.rpc.responses.RpcBlockhash.from_bytes"]], "from_bytes() (rpcconfirmedtransactionstatuswithsignature static method)": [[21, "solders.rpc.responses.RpcConfirmedTransactionStatusWithSignature.from_bytes"]], "from_bytes() (rpccontactinfo static method)": [[21, "solders.rpc.responses.RpcContactInfo.from_bytes"]], "from_bytes() (rpcidentity static method)": [[21, "solders.rpc.responses.RpcIdentity.from_bytes"]], "from_bytes() (rpcinflationgovernor static method)": [[21, "solders.rpc.responses.RpcInflationGovernor.from_bytes"]], "from_bytes() (rpcinflationrate static method)": [[21, "solders.rpc.responses.RpcInflationRate.from_bytes"]], "from_bytes() (rpcinflationreward static method)": [[21, "solders.rpc.responses.RpcInflationReward.from_bytes"]], "from_bytes() (rpckeyedaccount static method)": [[21, "solders.rpc.responses.RpcKeyedAccount.from_bytes"]], "from_bytes() (rpckeyedaccountjsonparsed static method)": [[21, "solders.rpc.responses.RpcKeyedAccountJsonParsed.from_bytes"]], "from_bytes() (rpclogsresponse static method)": [[21, "solders.rpc.responses.RpcLogsResponse.from_bytes"]], "from_bytes() (rpcperfsample static method)": [[21, "solders.rpc.responses.RpcPerfSample.from_bytes"]], "from_bytes() (rpcresponsecontext static method)": [[21, "solders.rpc.responses.RpcResponseContext.from_bytes"]], "from_bytes() (rpcsignatureresponse static method)": [[21, "solders.rpc.responses.RpcSignatureResponse.from_bytes"]], "from_bytes() (rpcsimulatetransactionresult static method)": [[21, "solders.rpc.responses.RpcSimulateTransactionResult.from_bytes"]], "from_bytes() (rpcsnapshotslotinfo static method)": [[21, "solders.rpc.responses.RpcSnapshotSlotInfo.from_bytes"]], "from_bytes() (rpcsupply static method)": [[21, "solders.rpc.responses.RpcSupply.from_bytes"]], "from_bytes() (rpctokenaccountbalance static method)": [[21, "solders.rpc.responses.RpcTokenAccountBalance.from_bytes"]], "from_bytes() (rpcversioninfo static method)": [[21, "solders.rpc.responses.RpcVersionInfo.from_bytes"]], "from_bytes() (rpcvote static method)": [[21, "solders.rpc.responses.RpcVote.from_bytes"]], "from_bytes() (rpcvoteaccountinfo static method)": [[21, "solders.rpc.responses.RpcVoteAccountInfo.from_bytes"]], "from_bytes() (rpcvoteaccountstatus static method)": [[21, "solders.rpc.responses.RpcVoteAccountStatus.from_bytes"]], "from_bytes() (sendtransactionresp static method)": [[21, "solders.rpc.responses.SendTransactionResp.from_bytes"]], "from_bytes() (signaturenotification static method)": [[21, "solders.rpc.responses.SignatureNotification.from_bytes"]], "from_bytes() (signaturenotificationresult static method)": [[21, "solders.rpc.responses.SignatureNotificationResult.from_bytes"]], "from_bytes() (simulatetransactionresp static method)": [[21, "solders.rpc.responses.SimulateTransactionResp.from_bytes"]], "from_bytes() (slotinfo static method)": [[21, "solders.rpc.responses.SlotInfo.from_bytes"]], "from_bytes() (slotnotification static method)": [[21, "solders.rpc.responses.SlotNotification.from_bytes"]], "from_bytes() (slottransactionstats static method)": [[21, "solders.rpc.responses.SlotTransactionStats.from_bytes"]], "from_bytes() (slotupdatecompleted static method)": [[21, "solders.rpc.responses.SlotUpdateCompleted.from_bytes"]], "from_bytes() (slotupdatecreatedbank static method)": [[21, "solders.rpc.responses.SlotUpdateCreatedBank.from_bytes"]], "from_bytes() (slotupdatedead static method)": [[21, "solders.rpc.responses.SlotUpdateDead.from_bytes"]], "from_bytes() (slotupdatefirstshredreceived static method)": [[21, "solders.rpc.responses.SlotUpdateFirstShredReceived.from_bytes"]], "from_bytes() (slotupdatenotification static method)": [[21, "solders.rpc.responses.SlotUpdateNotification.from_bytes"]], "from_bytes() (slotupdateoptimisticconfirmation static method)": [[21, "solders.rpc.responses.SlotUpdateOptimisticConfirmation.from_bytes"]], "from_bytes() (slotupdateroot static method)": [[21, "solders.rpc.responses.SlotUpdateRoot.from_bytes"]], "from_bytes() (subscriptionerror static method)": [[21, "solders.rpc.responses.SubscriptionError.from_bytes"]], "from_bytes() (subscriptionresult static method)": [[21, "solders.rpc.responses.SubscriptionResult.from_bytes"]], "from_bytes() (unsubscriberesult static method)": [[21, "solders.rpc.responses.UnsubscribeResult.from_bytes"]], "from_bytes() (validatorexitresp static method)": [[21, "solders.rpc.responses.ValidatorExitResp.from_bytes"]], "from_bytes() (votenotification static method)": [[21, "solders.rpc.responses.VoteNotification.from_bytes"]], "from_json() (accountnotification static method)": [[21, "solders.rpc.responses.AccountNotification.from_json"]], "from_json() (accountnotificationjsonparsed static method)": [[21, "solders.rpc.responses.AccountNotificationJsonParsed.from_json"]], "from_json() (accountnotificationjsonparsedresult static method)": [[21, "solders.rpc.responses.AccountNotificationJsonParsedResult.from_json"]], "from_json() (accountnotificationresult static method)": [[21, "solders.rpc.responses.AccountNotificationResult.from_json"]], "from_json() (blocknotification static method)": [[21, "solders.rpc.responses.BlockNotification.from_json"]], "from_json() (blocknotificationresult static method)": [[21, "solders.rpc.responses.BlockNotificationResult.from_json"]], "from_json() (epochinfo static method)": [[21, "solders.rpc.responses.EpochInfo.from_json"]], "from_json() (getaccountinfojsonparsedresp static method)": [[21, "solders.rpc.responses.GetAccountInfoJsonParsedResp.from_json"]], "from_json() (getaccountinfomaybejsonparsedresp static method)": [[21, "solders.rpc.responses.GetAccountInfoMaybeJsonParsedResp.from_json"]], "from_json() (getaccountinforesp static method)": [[21, "solders.rpc.responses.GetAccountInfoResp.from_json"]], "from_json() (getbalanceresp static method)": [[21, "solders.rpc.responses.GetBalanceResp.from_json"]], "from_json() (getblockcommitmentresp static method)": [[21, "solders.rpc.responses.GetBlockCommitmentResp.from_json"]], "from_json() (getblockheightresp static method)": [[21, "solders.rpc.responses.GetBlockHeightResp.from_json"]], "from_json() (getblockproductionresp static method)": [[21, "solders.rpc.responses.GetBlockProductionResp.from_json"]], "from_json() (getblockresp static method)": [[21, "solders.rpc.responses.GetBlockResp.from_json"]], "from_json() (getblocktimeresp static method)": [[21, "solders.rpc.responses.GetBlockTimeResp.from_json"]], "from_json() (getblocksresp static method)": [[21, "solders.rpc.responses.GetBlocksResp.from_json"]], "from_json() (getblockswithlimitresp static method)": [[21, "solders.rpc.responses.GetBlocksWithLimitResp.from_json"]], "from_json() (getclusternodesresp static method)": [[21, "solders.rpc.responses.GetClusterNodesResp.from_json"]], "from_json() (getepochinforesp static method)": [[21, "solders.rpc.responses.GetEpochInfoResp.from_json"]], "from_json() (getepochscheduleresp static method)": [[21, "solders.rpc.responses.GetEpochScheduleResp.from_json"]], "from_json() (getfeeformessageresp static method)": [[21, "solders.rpc.responses.GetFeeForMessageResp.from_json"]], "from_json() (getfirstavailableblockresp static method)": [[21, "solders.rpc.responses.GetFirstAvailableBlockResp.from_json"]], "from_json() (getgenesishashresp static method)": [[21, "solders.rpc.responses.GetGenesisHashResp.from_json"]], "from_json() (gethealthresp static method)": [[21, "solders.rpc.responses.GetHealthResp.from_json"]], "from_json() (gethighestsnapshotslotresp static method)": [[21, "solders.rpc.responses.GetHighestSnapshotSlotResp.from_json"]], "from_json() (getidentityresp static method)": [[21, "solders.rpc.responses.GetIdentityResp.from_json"]], "from_json() (getinflationgovernorresp static method)": [[21, "solders.rpc.responses.GetInflationGovernorResp.from_json"]], "from_json() (getinflationrateresp static method)": [[21, "solders.rpc.responses.GetInflationRateResp.from_json"]], "from_json() (getinflationrewardresp static method)": [[21, "solders.rpc.responses.GetInflationRewardResp.from_json"]], "from_json() (getlargestaccountsresp static method)": [[21, "solders.rpc.responses.GetLargestAccountsResp.from_json"]], "from_json() (getlatestblockhashresp static method)": [[21, "solders.rpc.responses.GetLatestBlockhashResp.from_json"]], "from_json() (getleaderscheduleresp static method)": [[21, "solders.rpc.responses.GetLeaderScheduleResp.from_json"]], "from_json() (getmaxretransmitslotresp static method)": [[21, "solders.rpc.responses.GetMaxRetransmitSlotResp.from_json"]], "from_json() (getmaxshredinsertslotresp static method)": [[21, "solders.rpc.responses.GetMaxShredInsertSlotResp.from_json"]], "from_json() (getminimumbalanceforrentexemptionresp static method)": [[21, "solders.rpc.responses.GetMinimumBalanceForRentExemptionResp.from_json"]], "from_json() (getmultipleaccountsjsonparsedresp static method)": [[21, "solders.rpc.responses.GetMultipleAccountsJsonParsedResp.from_json"]], "from_json() (getmultipleaccountsmaybejsonparsedresp static method)": [[21, "solders.rpc.responses.GetMultipleAccountsMaybeJsonParsedResp.from_json"]], "from_json() (getmultipleaccountsresp static method)": [[21, "solders.rpc.responses.GetMultipleAccountsResp.from_json"]], "from_json() (getprogramaccountsjsonparsedresp static method)": [[21, "solders.rpc.responses.GetProgramAccountsJsonParsedResp.from_json"]], "from_json() (getprogramaccountsmaybejsonparsedresp static method)": [[21, "solders.rpc.responses.GetProgramAccountsMaybeJsonParsedResp.from_json"]], "from_json() (getprogramaccountsresp static method)": [[21, "solders.rpc.responses.GetProgramAccountsResp.from_json"]], "from_json() (getprogramaccountswithcontextjsonparsedresp static method)": [[21, "solders.rpc.responses.GetProgramAccountsWithContextJsonParsedResp.from_json"]], "from_json() (getprogramaccountswithcontextmaybejsonparsedresp static method)": [[21, "solders.rpc.responses.GetProgramAccountsWithContextMaybeJsonParsedResp.from_json"]], "from_json() (getprogramaccountswithcontextresp static method)": [[21, "solders.rpc.responses.GetProgramAccountsWithContextResp.from_json"]], "from_json() (getrecentperformancesamplesresp static method)": [[21, "solders.rpc.responses.GetRecentPerformanceSamplesResp.from_json"]], "from_json() (getsignaturestatusesresp static method)": [[21, "solders.rpc.responses.GetSignatureStatusesResp.from_json"]], "from_json() (getsignaturesforaddressresp static method)": [[21, "solders.rpc.responses.GetSignaturesForAddressResp.from_json"]], "from_json() (getslotleaderresp static method)": [[21, "solders.rpc.responses.GetSlotLeaderResp.from_json"]], "from_json() (getslotleadersresp static method)": [[21, "solders.rpc.responses.GetSlotLeadersResp.from_json"]], "from_json() (getslotresp static method)": [[21, "solders.rpc.responses.GetSlotResp.from_json"]], "from_json() (getsupplyresp static method)": [[21, "solders.rpc.responses.GetSupplyResp.from_json"]], "from_json() (gettokenaccountbalanceresp static method)": [[21, "solders.rpc.responses.GetTokenAccountBalanceResp.from_json"]], "from_json() (gettokenaccountsbydelegatejsonparsedresp static method)": [[21, "solders.rpc.responses.GetTokenAccountsByDelegateJsonParsedResp.from_json"]], "from_json() (gettokenaccountsbydelegateresp static method)": [[21, "solders.rpc.responses.GetTokenAccountsByDelegateResp.from_json"]], "from_json() (gettokenaccountsbyownerjsonparsedresp static method)": [[21, "solders.rpc.responses.GetTokenAccountsByOwnerJsonParsedResp.from_json"]], "from_json() (gettokenaccountsbyownerresp static method)": [[21, "solders.rpc.responses.GetTokenAccountsByOwnerResp.from_json"]], "from_json() (gettokenlargestaccountsresp static method)": [[21, "solders.rpc.responses.GetTokenLargestAccountsResp.from_json"]], "from_json() (gettokensupplyresp static method)": [[21, "solders.rpc.responses.GetTokenSupplyResp.from_json"]], "from_json() (gettransactioncountresp static method)": [[21, "solders.rpc.responses.GetTransactionCountResp.from_json"]], "from_json() (gettransactionresp static method)": [[21, "solders.rpc.responses.GetTransactionResp.from_json"]], "from_json() (getversionresp static method)": [[21, "solders.rpc.responses.GetVersionResp.from_json"]], "from_json() (getvoteaccountsresp static method)": [[21, "solders.rpc.responses.GetVoteAccountsResp.from_json"]], "from_json() (isblockhashvalidresp static method)": [[21, "solders.rpc.responses.IsBlockhashValidResp.from_json"]], "from_json() (logsnotification static method)": [[21, "solders.rpc.responses.LogsNotification.from_json"]], "from_json() (logsnotificationresult static method)": [[21, "solders.rpc.responses.LogsNotificationResult.from_json"]], "from_json() (minimumledgerslotresp static method)": [[21, "solders.rpc.responses.MinimumLedgerSlotResp.from_json"]], "from_json() (programnotification static method)": [[21, "solders.rpc.responses.ProgramNotification.from_json"]], "from_json() (programnotificationjsonparsed static method)": [[21, "solders.rpc.responses.ProgramNotificationJsonParsed.from_json"]], "from_json() (programnotificationjsonparsedresult static method)": [[21, "solders.rpc.responses.ProgramNotificationJsonParsedResult.from_json"]], "from_json() (programnotificationresult static method)": [[21, "solders.rpc.responses.ProgramNotificationResult.from_json"]], "from_json() (requestairdropresp static method)": [[21, "solders.rpc.responses.RequestAirdropResp.from_json"]], "from_json() (rootnotification static method)": [[21, "solders.rpc.responses.RootNotification.from_json"]], "from_json() (rpcaccountbalance static method)": [[21, "solders.rpc.responses.RpcAccountBalance.from_json"]], "from_json() (rpcblockcommitment static method)": [[21, "solders.rpc.responses.RpcBlockCommitment.from_json"]], "from_json() (rpcblockproduction static method)": [[21, "solders.rpc.responses.RpcBlockProduction.from_json"]], "from_json() (rpcblockproductionrange static method)": [[21, "solders.rpc.responses.RpcBlockProductionRange.from_json"]], "from_json() (rpcblockupdate static method)": [[21, "solders.rpc.responses.RpcBlockUpdate.from_json"]], "from_json() (rpcblockhash static method)": [[21, "solders.rpc.responses.RpcBlockhash.from_json"]], "from_json() (rpcconfirmedtransactionstatuswithsignature static method)": [[21, "solders.rpc.responses.RpcConfirmedTransactionStatusWithSignature.from_json"]], "from_json() (rpccontactinfo static method)": [[21, "solders.rpc.responses.RpcContactInfo.from_json"]], "from_json() (rpcidentity static method)": [[21, "solders.rpc.responses.RpcIdentity.from_json"]], "from_json() (rpcinflationgovernor static method)": [[21, "solders.rpc.responses.RpcInflationGovernor.from_json"]], "from_json() (rpcinflationrate static method)": [[21, "solders.rpc.responses.RpcInflationRate.from_json"]], "from_json() (rpcinflationreward static method)": [[21, "solders.rpc.responses.RpcInflationReward.from_json"]], "from_json() (rpckeyedaccount static method)": [[21, "solders.rpc.responses.RpcKeyedAccount.from_json"]], "from_json() (rpckeyedaccountjsonparsed static method)": [[21, "solders.rpc.responses.RpcKeyedAccountJsonParsed.from_json"]], "from_json() (rpclogsresponse static method)": [[21, "solders.rpc.responses.RpcLogsResponse.from_json"]], "from_json() (rpcperfsample static method)": [[21, "solders.rpc.responses.RpcPerfSample.from_json"]], "from_json() (rpcresponsecontext static method)": [[21, "solders.rpc.responses.RpcResponseContext.from_json"]], "from_json() (rpcsignatureresponse static method)": [[21, "solders.rpc.responses.RpcSignatureResponse.from_json"]], "from_json() (rpcsimulatetransactionresult static method)": [[21, "solders.rpc.responses.RpcSimulateTransactionResult.from_json"]], "from_json() (rpcsnapshotslotinfo static method)": [[21, "solders.rpc.responses.RpcSnapshotSlotInfo.from_json"]], "from_json() (rpcsupply static method)": [[21, "solders.rpc.responses.RpcSupply.from_json"]], "from_json() (rpctokenaccountbalance static method)": [[21, "solders.rpc.responses.RpcTokenAccountBalance.from_json"]], "from_json() (rpcversioninfo static method)": [[21, "solders.rpc.responses.RpcVersionInfo.from_json"]], "from_json() (rpcvote static method)": [[21, "solders.rpc.responses.RpcVote.from_json"]], "from_json() (rpcvoteaccountinfo static method)": [[21, "solders.rpc.responses.RpcVoteAccountInfo.from_json"]], "from_json() (rpcvoteaccountstatus static method)": [[21, "solders.rpc.responses.RpcVoteAccountStatus.from_json"]], "from_json() (sendtransactionresp static method)": [[21, "solders.rpc.responses.SendTransactionResp.from_json"]], "from_json() (signaturenotification static method)": [[21, "solders.rpc.responses.SignatureNotification.from_json"]], "from_json() (signaturenotificationresult static method)": [[21, "solders.rpc.responses.SignatureNotificationResult.from_json"]], "from_json() (simulatetransactionresp static method)": [[21, "solders.rpc.responses.SimulateTransactionResp.from_json"]], "from_json() (slotinfo static method)": [[21, "solders.rpc.responses.SlotInfo.from_json"]], "from_json() (slotnotification static method)": [[21, "solders.rpc.responses.SlotNotification.from_json"]], "from_json() (slottransactionstats static method)": [[21, "solders.rpc.responses.SlotTransactionStats.from_json"]], "from_json() (slotupdatecompleted static method)": [[21, "solders.rpc.responses.SlotUpdateCompleted.from_json"]], "from_json() (slotupdatecreatedbank static method)": [[21, "solders.rpc.responses.SlotUpdateCreatedBank.from_json"]], "from_json() (slotupdatedead static method)": [[21, "solders.rpc.responses.SlotUpdateDead.from_json"]], "from_json() (slotupdatefirstshredreceived static method)": [[21, "solders.rpc.responses.SlotUpdateFirstShredReceived.from_json"]], "from_json() (slotupdatenotification static method)": [[21, "solders.rpc.responses.SlotUpdateNotification.from_json"]], "from_json() (slotupdateoptimisticconfirmation static method)": [[21, "solders.rpc.responses.SlotUpdateOptimisticConfirmation.from_json"]], "from_json() (slotupdateroot static method)": [[21, "solders.rpc.responses.SlotUpdateRoot.from_json"]], "from_json() (subscriptionerror static method)": [[21, "solders.rpc.responses.SubscriptionError.from_json"]], "from_json() (subscriptionresult static method)": [[21, "solders.rpc.responses.SubscriptionResult.from_json"]], "from_json() (unsubscriberesult static method)": [[21, "solders.rpc.responses.UnsubscribeResult.from_json"]], "from_json() (validatorexitresp static method)": [[21, "solders.rpc.responses.ValidatorExitResp.from_json"]], "from_json() (votenotification static method)": [[21, "solders.rpc.responses.VoteNotification.from_json"]], "full (rpcsnapshotslotinfo attribute)": [[21, "solders.rpc.responses.RpcSnapshotSlotInfo.full"]], "hash (rpcvote attribute)": [[21, "solders.rpc.responses.RpcVote.hash"]], "id (subscriptionerror attribute)": [[21, "solders.rpc.responses.SubscriptionError.id"]], "id (subscriptionresult attribute)": [[21, "solders.rpc.responses.SubscriptionResult.id"]], "id (unsubscriberesult attribute)": [[21, "solders.rpc.responses.UnsubscribeResult.id"]], "identity (rpcidentity attribute)": [[21, "solders.rpc.responses.RpcIdentity.identity"]], "incremental (rpcsnapshotslotinfo attribute)": [[21, "solders.rpc.responses.RpcSnapshotSlotInfo.incremental"]], "initial (rpcinflationgovernor attribute)": [[21, "solders.rpc.responses.RpcInflationGovernor.initial"]], "lamports (rpcaccountbalance attribute)": [[21, "solders.rpc.responses.RpcAccountBalance.lamports"]], "last_slot (rpcblockproductionrange attribute)": [[21, "solders.rpc.responses.RpcBlockProductionRange.last_slot"]], "last_valid_block_height (rpcblockhash attribute)": [[21, "solders.rpc.responses.RpcBlockhash.last_valid_block_height"]], "last_vote (rpcvoteaccountinfo attribute)": [[21, "solders.rpc.responses.RpcVoteAccountInfo.last_vote"]], "logs (rpclogsresponse attribute)": [[21, "solders.rpc.responses.RpcLogsResponse.logs"]], "logs (rpcsimulatetransactionresult attribute)": [[21, "solders.rpc.responses.RpcSimulateTransactionResult.logs"]], "max_transactions_per_entry (slottransactionstats attribute)": [[21, "solders.rpc.responses.SlotTransactionStats.max_transactions_per_entry"]], "memo (rpcconfirmedtransactionstatuswithsignature attribute)": [[21, "solders.rpc.responses.RpcConfirmedTransactionStatusWithSignature.memo"]], "node_pubkey (rpcvoteaccountinfo attribute)": [[21, "solders.rpc.responses.RpcVoteAccountInfo.node_pubkey"]], "non_circulating (rpcsupply attribute)": [[21, "solders.rpc.responses.RpcSupply.non_circulating"]], "non_circulating_accounts (rpcsupply attribute)": [[21, "solders.rpc.responses.RpcSupply.non_circulating_accounts"]], "num_failed_transactions (slottransactionstats attribute)": [[21, "solders.rpc.responses.SlotTransactionStats.num_failed_transactions"]], "num_non_votetransactions (rpcperfsample attribute)": [[21, "solders.rpc.responses.RpcPerfSample.num_non_votetransactions"]], "num_slots (rpcperfsample attribute)": [[21, "solders.rpc.responses.RpcPerfSample.num_slots"]], "num_successful_transactions (slottransactionstats attribute)": [[21, "solders.rpc.responses.SlotTransactionStats.num_successful_transactions"]], "num_transaction_entries (slottransactionstats attribute)": [[21, "solders.rpc.responses.SlotTransactionStats.num_transaction_entries"]], "num_transactions (rpcperfsample attribute)": [[21, "solders.rpc.responses.RpcPerfSample.num_transactions"]], "parent (slotinfo attribute)": [[21, "solders.rpc.responses.SlotInfo.parent"]], "parent (slotupdatecreatedbank attribute)": [[21, "solders.rpc.responses.SlotUpdateCreatedBank.parent"]], "parse_notification() (in module solders.rpc.responses)": [[21, "solders.rpc.responses.parse_notification"]], "parse_websocket_message() (in module solders.rpc.responses)": [[21, "solders.rpc.responses.parse_websocket_message"]], "post_balance (rpcinflationreward attribute)": [[21, "solders.rpc.responses.RpcInflationReward.post_balance"]], "pubkey (rpckeyedaccount attribute)": [[21, "solders.rpc.responses.RpcKeyedAccount.pubkey"]], "pubkey (rpckeyedaccountjsonparsed attribute)": [[21, "solders.rpc.responses.RpcKeyedAccountJsonParsed.pubkey"]], "range (rpcblockproduction attribute)": [[21, "solders.rpc.responses.RpcBlockProduction.range"]], "result (accountnotification attribute)": [[21, "solders.rpc.responses.AccountNotification.result"]], "result (accountnotificationjsonparsed attribute)": [[21, "solders.rpc.responses.AccountNotificationJsonParsed.result"]], "result (blocknotification attribute)": [[21, "solders.rpc.responses.BlockNotification.result"]], "result (logsnotification attribute)": [[21, "solders.rpc.responses.LogsNotification.result"]], "result (programnotification attribute)": [[21, "solders.rpc.responses.ProgramNotification.result"]], "result (programnotificationjsonparsed attribute)": [[21, "solders.rpc.responses.ProgramNotificationJsonParsed.result"]], "result (rootnotification attribute)": [[21, "solders.rpc.responses.RootNotification.result"]], "result (signaturenotification attribute)": [[21, "solders.rpc.responses.SignatureNotification.result"]], "result (slotnotification attribute)": [[21, "solders.rpc.responses.SlotNotification.result"]], "result (slotupdatenotification attribute)": [[21, "solders.rpc.responses.SlotUpdateNotification.result"]], "result (subscriptionresult attribute)": [[21, "solders.rpc.responses.SubscriptionResult.result"]], "result (unsubscriberesult attribute)": [[21, "solders.rpc.responses.UnsubscribeResult.result"]], "result (votenotification attribute)": [[21, "solders.rpc.responses.VoteNotification.result"]], "return_data (rpcsimulatetransactionresult attribute)": [[21, "solders.rpc.responses.RpcSimulateTransactionResult.return_data"]], "root (slotinfo attribute)": [[21, "solders.rpc.responses.SlotInfo.root"]], "root_slot (rpcvoteaccountinfo attribute)": [[21, "solders.rpc.responses.RpcVoteAccountInfo.root_slot"]], "sample_period_secs (rpcperfsample attribute)": [[21, "solders.rpc.responses.RpcPerfSample.sample_period_secs"]], "signature (rpcconfirmedtransactionstatuswithsignature attribute)": [[21, "solders.rpc.responses.RpcConfirmedTransactionStatusWithSignature.signature"]], "signature (rpclogsresponse attribute)": [[21, "solders.rpc.responses.RpcLogsResponse.signature"]], "signature (rpcvote attribute)": [[21, "solders.rpc.responses.RpcVote.signature"]], "slot (rpcblockupdate attribute)": [[21, "solders.rpc.responses.RpcBlockUpdate.slot"]], "slot (rpcconfirmedtransactionstatuswithsignature attribute)": [[21, "solders.rpc.responses.RpcConfirmedTransactionStatusWithSignature.slot"]], "slot (rpcperfsample attribute)": [[21, "solders.rpc.responses.RpcPerfSample.slot"]], "slot (rpcresponsecontext attribute)": [[21, "solders.rpc.responses.RpcResponseContext.slot"]], "slot (slotinfo attribute)": [[21, "solders.rpc.responses.SlotInfo.slot"]], "slot (slotupdatecompleted attribute)": [[21, "solders.rpc.responses.SlotUpdateCompleted.slot"]], "slot (slotupdatecreatedbank attribute)": [[21, "solders.rpc.responses.SlotUpdateCreatedBank.slot"]], "slot (slotupdatedead attribute)": [[21, "solders.rpc.responses.SlotUpdateDead.slot"]], "slot (slotupdatefirstshredreceived attribute)": [[21, "solders.rpc.responses.SlotUpdateFirstShredReceived.slot"]], "slot (slotupdateoptimisticconfirmation attribute)": [[21, "solders.rpc.responses.SlotUpdateOptimisticConfirmation.slot"]], "slot (slotupdateroot attribute)": [[21, "solders.rpc.responses.SlotUpdateRoot.slot"]], "slot_index (epochinfo attribute)": [[21, "solders.rpc.responses.EpochInfo.slot_index"]], "slots (rpcvote attribute)": [[21, "solders.rpc.responses.RpcVote.slots"]], "slots_in_epoch (epochinfo attribute)": [[21, "solders.rpc.responses.EpochInfo.slots_in_epoch"]], "solana_core (rpcversioninfo attribute)": [[21, "solders.rpc.responses.RpcVersionInfo.solana_core"]], "solders.rpc.responses": [[21, "module-solders.rpc.responses"]], "subscription (accountnotification attribute)": [[21, "solders.rpc.responses.AccountNotification.subscription"]], "subscription (accountnotificationjsonparsed attribute)": [[21, "solders.rpc.responses.AccountNotificationJsonParsed.subscription"]], "subscription (blocknotification attribute)": [[21, "solders.rpc.responses.BlockNotification.subscription"]], "subscription (logsnotification attribute)": [[21, "solders.rpc.responses.LogsNotification.subscription"]], "subscription (programnotification attribute)": [[21, "solders.rpc.responses.ProgramNotification.subscription"]], "subscription (programnotificationjsonparsed attribute)": [[21, "solders.rpc.responses.ProgramNotificationJsonParsed.subscription"]], "subscription (rootnotification attribute)": [[21, "solders.rpc.responses.RootNotification.subscription"]], "subscription (signaturenotification attribute)": [[21, "solders.rpc.responses.SignatureNotification.subscription"]], "subscription (slotnotification attribute)": [[21, "solders.rpc.responses.SlotNotification.subscription"]], "subscription (slotupdatenotification attribute)": [[21, "solders.rpc.responses.SlotUpdateNotification.subscription"]], "subscription (votenotification attribute)": [[21, "solders.rpc.responses.VoteNotification.subscription"]], "taper (rpcinflationgovernor attribute)": [[21, "solders.rpc.responses.RpcInflationGovernor.taper"]], "terminal (rpcinflationgovernor attribute)": [[21, "solders.rpc.responses.RpcInflationGovernor.terminal"]], "timestamp (rpcvote attribute)": [[21, "solders.rpc.responses.RpcVote.timestamp"]], "timestamp (slotupdatecompleted attribute)": [[21, "solders.rpc.responses.SlotUpdateCompleted.timestamp"]], "timestamp (slotupdatecreatedbank attribute)": [[21, "solders.rpc.responses.SlotUpdateCreatedBank.timestamp"]], "timestamp (slotupdatedead attribute)": [[21, "solders.rpc.responses.SlotUpdateDead.timestamp"]], "timestamp (slotupdatefirstshredreceived attribute)": [[21, "solders.rpc.responses.SlotUpdateFirstShredReceived.timestamp"]], "timestamp (slotupdateoptimisticconfirmation attribute)": [[21, "solders.rpc.responses.SlotUpdateOptimisticConfirmation.timestamp"]], "timestamp (slotupdateroot attribute)": [[21, "solders.rpc.responses.SlotUpdateRoot.timestamp"]], "to_json() (accountnotification method)": [[21, "solders.rpc.responses.AccountNotification.to_json"]], "to_json() (accountnotificationjsonparsed method)": [[21, "solders.rpc.responses.AccountNotificationJsonParsed.to_json"]], "to_json() (accountnotificationjsonparsedresult method)": [[21, "solders.rpc.responses.AccountNotificationJsonParsedResult.to_json"]], "to_json() (accountnotificationresult method)": [[21, "solders.rpc.responses.AccountNotificationResult.to_json"]], "to_json() (blocknotification method)": [[21, "solders.rpc.responses.BlockNotification.to_json"]], "to_json() (blocknotificationresult method)": [[21, "solders.rpc.responses.BlockNotificationResult.to_json"]], "to_json() (epochinfo method)": [[21, "solders.rpc.responses.EpochInfo.to_json"]], "to_json() (getaccountinfojsonparsedresp method)": [[21, "solders.rpc.responses.GetAccountInfoJsonParsedResp.to_json"]], "to_json() (getaccountinfomaybejsonparsedresp method)": [[21, "solders.rpc.responses.GetAccountInfoMaybeJsonParsedResp.to_json"]], "to_json() (getaccountinforesp method)": [[21, "solders.rpc.responses.GetAccountInfoResp.to_json"]], "to_json() (getbalanceresp method)": [[21, "solders.rpc.responses.GetBalanceResp.to_json"]], "to_json() (getblockcommitmentresp method)": [[21, "solders.rpc.responses.GetBlockCommitmentResp.to_json"]], "to_json() (getblockheightresp method)": [[21, "solders.rpc.responses.GetBlockHeightResp.to_json"]], "to_json() (getblockproductionresp method)": [[21, "solders.rpc.responses.GetBlockProductionResp.to_json"]], "to_json() (getblockresp method)": [[21, "solders.rpc.responses.GetBlockResp.to_json"]], "to_json() (getblocktimeresp method)": [[21, "solders.rpc.responses.GetBlockTimeResp.to_json"]], "to_json() (getblocksresp method)": [[21, "solders.rpc.responses.GetBlocksResp.to_json"]], "to_json() (getblockswithlimitresp method)": [[21, "solders.rpc.responses.GetBlocksWithLimitResp.to_json"]], "to_json() (getclusternodesresp method)": [[21, "solders.rpc.responses.GetClusterNodesResp.to_json"]], "to_json() (getepochinforesp method)": [[21, "solders.rpc.responses.GetEpochInfoResp.to_json"]], "to_json() (getepochscheduleresp method)": [[21, "solders.rpc.responses.GetEpochScheduleResp.to_json"]], "to_json() (getfeeformessageresp method)": [[21, "solders.rpc.responses.GetFeeForMessageResp.to_json"]], "to_json() (getfirstavailableblockresp method)": [[21, "solders.rpc.responses.GetFirstAvailableBlockResp.to_json"]], "to_json() (getgenesishashresp method)": [[21, "solders.rpc.responses.GetGenesisHashResp.to_json"]], "to_json() (gethealthresp method)": [[21, "solders.rpc.responses.GetHealthResp.to_json"]], "to_json() (gethighestsnapshotslotresp method)": [[21, "solders.rpc.responses.GetHighestSnapshotSlotResp.to_json"]], "to_json() (getidentityresp method)": [[21, "solders.rpc.responses.GetIdentityResp.to_json"]], "to_json() (getinflationgovernorresp method)": [[21, "solders.rpc.responses.GetInflationGovernorResp.to_json"]], "to_json() (getinflationrateresp method)": [[21, "solders.rpc.responses.GetInflationRateResp.to_json"]], "to_json() (getinflationrewardresp method)": [[21, "solders.rpc.responses.GetInflationRewardResp.to_json"]], "to_json() (getlargestaccountsresp method)": [[21, "solders.rpc.responses.GetLargestAccountsResp.to_json"]], "to_json() (getlatestblockhashresp method)": [[21, "solders.rpc.responses.GetLatestBlockhashResp.to_json"]], "to_json() (getleaderscheduleresp method)": [[21, "solders.rpc.responses.GetLeaderScheduleResp.to_json"]], "to_json() (getmaxretransmitslotresp method)": [[21, "solders.rpc.responses.GetMaxRetransmitSlotResp.to_json"]], "to_json() (getmaxshredinsertslotresp method)": [[21, "solders.rpc.responses.GetMaxShredInsertSlotResp.to_json"]], "to_json() (getminimumbalanceforrentexemptionresp method)": [[21, "solders.rpc.responses.GetMinimumBalanceForRentExemptionResp.to_json"]], "to_json() (getmultipleaccountsjsonparsedresp method)": [[21, "solders.rpc.responses.GetMultipleAccountsJsonParsedResp.to_json"]], "to_json() (getmultipleaccountsmaybejsonparsedresp method)": [[21, "solders.rpc.responses.GetMultipleAccountsMaybeJsonParsedResp.to_json"]], "to_json() (getmultipleaccountsresp method)": [[21, "solders.rpc.responses.GetMultipleAccountsResp.to_json"]], "to_json() (getprogramaccountsjsonparsedresp method)": [[21, "solders.rpc.responses.GetProgramAccountsJsonParsedResp.to_json"]], "to_json() (getprogramaccountsmaybejsonparsedresp method)": [[21, "solders.rpc.responses.GetProgramAccountsMaybeJsonParsedResp.to_json"]], "to_json() (getprogramaccountsresp method)": [[21, "solders.rpc.responses.GetProgramAccountsResp.to_json"]], "to_json() (getprogramaccountswithcontextjsonparsedresp method)": [[21, "solders.rpc.responses.GetProgramAccountsWithContextJsonParsedResp.to_json"]], "to_json() (getprogramaccountswithcontextmaybejsonparsedresp method)": [[21, "solders.rpc.responses.GetProgramAccountsWithContextMaybeJsonParsedResp.to_json"]], "to_json() (getprogramaccountswithcontextresp method)": [[21, "solders.rpc.responses.GetProgramAccountsWithContextResp.to_json"]], "to_json() (getrecentperformancesamplesresp method)": [[21, "solders.rpc.responses.GetRecentPerformanceSamplesResp.to_json"]], "to_json() (getsignaturestatusesresp method)": [[21, "solders.rpc.responses.GetSignatureStatusesResp.to_json"]], "to_json() (getsignaturesforaddressresp method)": [[21, "solders.rpc.responses.GetSignaturesForAddressResp.to_json"]], "to_json() (getslotleaderresp method)": [[21, "solders.rpc.responses.GetSlotLeaderResp.to_json"]], "to_json() (getslotleadersresp method)": [[21, "solders.rpc.responses.GetSlotLeadersResp.to_json"]], "to_json() (getslotresp method)": [[21, "solders.rpc.responses.GetSlotResp.to_json"]], "to_json() (getsupplyresp method)": [[21, "solders.rpc.responses.GetSupplyResp.to_json"]], "to_json() (gettokenaccountbalanceresp method)": [[21, "solders.rpc.responses.GetTokenAccountBalanceResp.to_json"]], "to_json() (gettokenaccountsbydelegatejsonparsedresp method)": [[21, "solders.rpc.responses.GetTokenAccountsByDelegateJsonParsedResp.to_json"]], "to_json() (gettokenaccountsbydelegateresp method)": [[21, "solders.rpc.responses.GetTokenAccountsByDelegateResp.to_json"]], "to_json() (gettokenaccountsbyownerjsonparsedresp method)": [[21, "solders.rpc.responses.GetTokenAccountsByOwnerJsonParsedResp.to_json"]], "to_json() (gettokenaccountsbyownerresp method)": [[21, "solders.rpc.responses.GetTokenAccountsByOwnerResp.to_json"]], "to_json() (gettokenlargestaccountsresp method)": [[21, "solders.rpc.responses.GetTokenLargestAccountsResp.to_json"]], "to_json() (gettokensupplyresp method)": [[21, "solders.rpc.responses.GetTokenSupplyResp.to_json"]], "to_json() (gettransactioncountresp method)": [[21, "solders.rpc.responses.GetTransactionCountResp.to_json"]], "to_json() (gettransactionresp method)": [[21, "solders.rpc.responses.GetTransactionResp.to_json"]], "to_json() (getversionresp method)": [[21, "solders.rpc.responses.GetVersionResp.to_json"]], "to_json() (getvoteaccountsresp method)": [[21, "solders.rpc.responses.GetVoteAccountsResp.to_json"]], "to_json() (isblockhashvalidresp method)": [[21, "solders.rpc.responses.IsBlockhashValidResp.to_json"]], "to_json() (logsnotification method)": [[21, "solders.rpc.responses.LogsNotification.to_json"]], "to_json() (logsnotificationresult method)": [[21, "solders.rpc.responses.LogsNotificationResult.to_json"]], "to_json() (minimumledgerslotresp method)": [[21, "solders.rpc.responses.MinimumLedgerSlotResp.to_json"]], "to_json() (programnotification method)": [[21, "solders.rpc.responses.ProgramNotification.to_json"]], "to_json() (programnotificationjsonparsed method)": [[21, "solders.rpc.responses.ProgramNotificationJsonParsed.to_json"]], "to_json() (programnotificationjsonparsedresult method)": [[21, "solders.rpc.responses.ProgramNotificationJsonParsedResult.to_json"]], "to_json() (programnotificationresult method)": [[21, "solders.rpc.responses.ProgramNotificationResult.to_json"]], "to_json() (requestairdropresp method)": [[21, "solders.rpc.responses.RequestAirdropResp.to_json"]], "to_json() (rootnotification method)": [[21, "solders.rpc.responses.RootNotification.to_json"]], "to_json() (rpcaccountbalance method)": [[21, "solders.rpc.responses.RpcAccountBalance.to_json"]], "to_json() (rpcblockcommitment method)": [[21, "solders.rpc.responses.RpcBlockCommitment.to_json"]], "to_json() (rpcblockproduction method)": [[21, "solders.rpc.responses.RpcBlockProduction.to_json"]], "to_json() (rpcblockproductionrange method)": [[21, "solders.rpc.responses.RpcBlockProductionRange.to_json"]], "to_json() (rpcblockupdate method)": [[21, "solders.rpc.responses.RpcBlockUpdate.to_json"]], "to_json() (rpcblockhash method)": [[21, "solders.rpc.responses.RpcBlockhash.to_json"]], "to_json() (rpcconfirmedtransactionstatuswithsignature method)": [[21, "solders.rpc.responses.RpcConfirmedTransactionStatusWithSignature.to_json"]], "to_json() (rpccontactinfo method)": [[21, "solders.rpc.responses.RpcContactInfo.to_json"]], "to_json() (rpcidentity method)": [[21, "solders.rpc.responses.RpcIdentity.to_json"]], "to_json() (rpcinflationgovernor method)": [[21, "solders.rpc.responses.RpcInflationGovernor.to_json"]], "to_json() (rpcinflationrate method)": [[21, "solders.rpc.responses.RpcInflationRate.to_json"]], "to_json() (rpcinflationreward method)": [[21, "solders.rpc.responses.RpcInflationReward.to_json"]], "to_json() (rpckeyedaccount method)": [[21, "solders.rpc.responses.RpcKeyedAccount.to_json"]], "to_json() (rpckeyedaccountjsonparsed method)": [[21, "solders.rpc.responses.RpcKeyedAccountJsonParsed.to_json"]], "to_json() (rpclogsresponse method)": [[21, "solders.rpc.responses.RpcLogsResponse.to_json"]], "to_json() (rpcperfsample method)": [[21, "solders.rpc.responses.RpcPerfSample.to_json"]], "to_json() (rpcresponsecontext method)": [[21, "solders.rpc.responses.RpcResponseContext.to_json"]], "to_json() (rpcsignatureresponse method)": [[21, "solders.rpc.responses.RpcSignatureResponse.to_json"]], "to_json() (rpcsimulatetransactionresult method)": [[21, "solders.rpc.responses.RpcSimulateTransactionResult.to_json"]], "to_json() (rpcsnapshotslotinfo method)": [[21, "solders.rpc.responses.RpcSnapshotSlotInfo.to_json"]], "to_json() (rpcsupply method)": [[21, "solders.rpc.responses.RpcSupply.to_json"]], "to_json() (rpctokenaccountbalance method)": [[21, "solders.rpc.responses.RpcTokenAccountBalance.to_json"]], "to_json() (rpcversioninfo method)": [[21, "solders.rpc.responses.RpcVersionInfo.to_json"]], "to_json() (rpcvote method)": [[21, "solders.rpc.responses.RpcVote.to_json"]], "to_json() (rpcvoteaccountinfo method)": [[21, "solders.rpc.responses.RpcVoteAccountInfo.to_json"]], "to_json() (rpcvoteaccountstatus method)": [[21, "solders.rpc.responses.RpcVoteAccountStatus.to_json"]], "to_json() (sendtransactionresp method)": [[21, "solders.rpc.responses.SendTransactionResp.to_json"]], "to_json() (signaturenotification method)": [[21, "solders.rpc.responses.SignatureNotification.to_json"]], "to_json() (signaturenotificationresult method)": [[21, "solders.rpc.responses.SignatureNotificationResult.to_json"]], "to_json() (simulatetransactionresp method)": [[21, "solders.rpc.responses.SimulateTransactionResp.to_json"]], "to_json() (slotinfo method)": [[21, "solders.rpc.responses.SlotInfo.to_json"]], "to_json() (slotnotification method)": [[21, "solders.rpc.responses.SlotNotification.to_json"]], "to_json() (slottransactionstats method)": [[21, "solders.rpc.responses.SlotTransactionStats.to_json"]], "to_json() (slotupdatecompleted method)": [[21, "solders.rpc.responses.SlotUpdateCompleted.to_json"]], "to_json() (slotupdatecreatedbank method)": [[21, "solders.rpc.responses.SlotUpdateCreatedBank.to_json"]], "to_json() (slotupdatedead method)": [[21, "solders.rpc.responses.SlotUpdateDead.to_json"]], "to_json() (slotupdatefirstshredreceived method)": [[21, "solders.rpc.responses.SlotUpdateFirstShredReceived.to_json"]], "to_json() (slotupdatenotification method)": [[21, "solders.rpc.responses.SlotUpdateNotification.to_json"]], "to_json() (slotupdateoptimisticconfirmation method)": [[21, "solders.rpc.responses.SlotUpdateOptimisticConfirmation.to_json"]], "to_json() (slotupdateroot method)": [[21, "solders.rpc.responses.SlotUpdateRoot.to_json"]], "to_json() (subscriptionerror method)": [[21, "solders.rpc.responses.SubscriptionError.to_json"]], "to_json() (subscriptionresult method)": [[21, "solders.rpc.responses.SubscriptionResult.to_json"]], "to_json() (unsubscriberesult method)": [[21, "solders.rpc.responses.UnsubscribeResult.to_json"]], "to_json() (validatorexitresp method)": [[21, "solders.rpc.responses.ValidatorExitResp.to_json"]], "to_json() (votenotification method)": [[21, "solders.rpc.responses.VoteNotification.to_json"]], "total (rpcinflationrate attribute)": [[21, "solders.rpc.responses.RpcInflationRate.total"]], "total (rpcsupply attribute)": [[21, "solders.rpc.responses.RpcSupply.total"]], "total_stake (rpcblockcommitment attribute)": [[21, "solders.rpc.responses.RpcBlockCommitment.total_stake"]], "transaction_count (epochinfo attribute)": [[21, "solders.rpc.responses.EpochInfo.transaction_count"]], "units_consumed (rpcsimulatetransactionresult attribute)": [[21, "solders.rpc.responses.RpcSimulateTransactionResult.units_consumed"]], "validator (rpcinflationrate attribute)": [[21, "solders.rpc.responses.RpcInflationRate.validator"]], "value (accountnotificationjsonparsedresult attribute)": [[21, "solders.rpc.responses.AccountNotificationJsonParsedResult.value"]], "value (accountnotificationresult attribute)": [[21, "solders.rpc.responses.AccountNotificationResult.value"]], "value (blocknotificationresult attribute)": [[21, "solders.rpc.responses.BlockNotificationResult.value"]], "value (getaccountinfojsonparsedresp attribute)": [[21, "solders.rpc.responses.GetAccountInfoJsonParsedResp.value"]], "value (getaccountinfomaybejsonparsedresp attribute)": [[21, "solders.rpc.responses.GetAccountInfoMaybeJsonParsedResp.value"]], "value (getaccountinforesp attribute)": [[21, "solders.rpc.responses.GetAccountInfoResp.value"]], "value (getbalanceresp attribute)": [[21, "solders.rpc.responses.GetBalanceResp.value"]], "value (getblockcommitmentresp attribute)": [[21, "solders.rpc.responses.GetBlockCommitmentResp.value"]], "value (getblockheightresp attribute)": [[21, "solders.rpc.responses.GetBlockHeightResp.value"]], "value (getblockproductionresp attribute)": [[21, "solders.rpc.responses.GetBlockProductionResp.value"]], "value (getblockresp attribute)": [[21, "solders.rpc.responses.GetBlockResp.value"]], "value (getblocktimeresp attribute)": [[21, "solders.rpc.responses.GetBlockTimeResp.value"]], "value (getblocksresp attribute)": [[21, "solders.rpc.responses.GetBlocksResp.value"]], "value (getblockswithlimitresp attribute)": [[21, "solders.rpc.responses.GetBlocksWithLimitResp.value"]], "value (getclusternodesresp attribute)": [[21, "solders.rpc.responses.GetClusterNodesResp.value"]], "value (getepochinforesp attribute)": [[21, "solders.rpc.responses.GetEpochInfoResp.value"]], "value (getepochscheduleresp attribute)": [[21, "solders.rpc.responses.GetEpochScheduleResp.value"]], "value (getfeeformessageresp attribute)": [[21, "solders.rpc.responses.GetFeeForMessageResp.value"]], "value (getfirstavailableblockresp attribute)": [[21, "solders.rpc.responses.GetFirstAvailableBlockResp.value"]], "value (getgenesishashresp attribute)": [[21, "solders.rpc.responses.GetGenesisHashResp.value"]], "value (gethealthresp attribute)": [[21, "solders.rpc.responses.GetHealthResp.value"]], "value (gethighestsnapshotslotresp attribute)": [[21, "solders.rpc.responses.GetHighestSnapshotSlotResp.value"]], "value (getidentityresp attribute)": [[21, "solders.rpc.responses.GetIdentityResp.value"]], "value (getinflationgovernorresp attribute)": [[21, "solders.rpc.responses.GetInflationGovernorResp.value"]], "value (getinflationrateresp attribute)": [[21, "solders.rpc.responses.GetInflationRateResp.value"]], "value (getinflationrewardresp attribute)": [[21, "solders.rpc.responses.GetInflationRewardResp.value"]], "value (getlargestaccountsresp attribute)": [[21, "solders.rpc.responses.GetLargestAccountsResp.value"]], "value (getlatestblockhashresp attribute)": [[21, "solders.rpc.responses.GetLatestBlockhashResp.value"]], "value (getleaderscheduleresp attribute)": [[21, "solders.rpc.responses.GetLeaderScheduleResp.value"]], "value (getmaxretransmitslotresp attribute)": [[21, "solders.rpc.responses.GetMaxRetransmitSlotResp.value"]], "value (getmaxshredinsertslotresp attribute)": [[21, "solders.rpc.responses.GetMaxShredInsertSlotResp.value"]], "value (getminimumbalanceforrentexemptionresp attribute)": [[21, "solders.rpc.responses.GetMinimumBalanceForRentExemptionResp.value"]], "value (getmultipleaccountsjsonparsedresp attribute)": [[21, "solders.rpc.responses.GetMultipleAccountsJsonParsedResp.value"]], "value (getmultipleaccountsmaybejsonparsedresp attribute)": [[21, "solders.rpc.responses.GetMultipleAccountsMaybeJsonParsedResp.value"]], "value (getmultipleaccountsresp attribute)": [[21, "solders.rpc.responses.GetMultipleAccountsResp.value"]], "value (getprogramaccountsjsonparsedresp attribute)": [[21, "solders.rpc.responses.GetProgramAccountsJsonParsedResp.value"]], "value (getprogramaccountsmaybejsonparsedresp attribute)": [[21, "solders.rpc.responses.GetProgramAccountsMaybeJsonParsedResp.value"]], "value (getprogramaccountsresp attribute)": [[21, "solders.rpc.responses.GetProgramAccountsResp.value"]], "value (getprogramaccountswithcontextjsonparsedresp attribute)": [[21, "solders.rpc.responses.GetProgramAccountsWithContextJsonParsedResp.value"]], "value (getprogramaccountswithcontextmaybejsonparsedresp attribute)": [[21, "solders.rpc.responses.GetProgramAccountsWithContextMaybeJsonParsedResp.value"]], "value (getprogramaccountswithcontextresp attribute)": [[21, "solders.rpc.responses.GetProgramAccountsWithContextResp.value"]], "value (getrecentperformancesamplesresp attribute)": [[21, "solders.rpc.responses.GetRecentPerformanceSamplesResp.value"]], "value (getsignaturestatusesresp attribute)": [[21, "solders.rpc.responses.GetSignatureStatusesResp.value"]], "value (getsignaturesforaddressresp attribute)": [[21, "solders.rpc.responses.GetSignaturesForAddressResp.value"]], "value (getslotleaderresp attribute)": [[21, "solders.rpc.responses.GetSlotLeaderResp.value"]], "value (getslotleadersresp attribute)": [[21, "solders.rpc.responses.GetSlotLeadersResp.value"]], "value (getslotresp attribute)": [[21, "solders.rpc.responses.GetSlotResp.value"]], "value (getsupplyresp attribute)": [[21, "solders.rpc.responses.GetSupplyResp.value"]], "value (gettokenaccountbalanceresp attribute)": [[21, "solders.rpc.responses.GetTokenAccountBalanceResp.value"]], "value (gettokenaccountsbydelegatejsonparsedresp attribute)": [[21, "solders.rpc.responses.GetTokenAccountsByDelegateJsonParsedResp.value"]], "value (gettokenaccountsbydelegateresp attribute)": [[21, "solders.rpc.responses.GetTokenAccountsByDelegateResp.value"]], "value (gettokenaccountsbyownerjsonparsedresp attribute)": [[21, "solders.rpc.responses.GetTokenAccountsByOwnerJsonParsedResp.value"]], "value (gettokenaccountsbyownerresp attribute)": [[21, "solders.rpc.responses.GetTokenAccountsByOwnerResp.value"]], "value (gettokenlargestaccountsresp attribute)": [[21, "solders.rpc.responses.GetTokenLargestAccountsResp.value"]], "value (gettokensupplyresp attribute)": [[21, "solders.rpc.responses.GetTokenSupplyResp.value"]], "value (gettransactioncountresp attribute)": [[21, "solders.rpc.responses.GetTransactionCountResp.value"]], "value (gettransactionresp attribute)": [[21, "solders.rpc.responses.GetTransactionResp.value"]], "value (getversionresp attribute)": [[21, "solders.rpc.responses.GetVersionResp.value"]], "value (getvoteaccountsresp attribute)": [[21, "solders.rpc.responses.GetVoteAccountsResp.value"]], "value (isblockhashvalidresp attribute)": [[21, "solders.rpc.responses.IsBlockhashValidResp.value"]], "value (logsnotificationresult attribute)": [[21, "solders.rpc.responses.LogsNotificationResult.value"]], "value (minimumledgerslotresp attribute)": [[21, "solders.rpc.responses.MinimumLedgerSlotResp.value"]], "value (programnotificationjsonparsedresult attribute)": [[21, "solders.rpc.responses.ProgramNotificationJsonParsedResult.value"]], "value (programnotificationresult attribute)": [[21, "solders.rpc.responses.ProgramNotificationResult.value"]], "value (requestairdropresp attribute)": [[21, "solders.rpc.responses.RequestAirdropResp.value"]], "value (sendtransactionresp attribute)": [[21, "solders.rpc.responses.SendTransactionResp.value"]], "value (signaturenotificationresult attribute)": [[21, "solders.rpc.responses.SignatureNotificationResult.value"]], "value (simulatetransactionresp attribute)": [[21, "solders.rpc.responses.SimulateTransactionResp.value"]], "value (validatorexitresp attribute)": [[21, "solders.rpc.responses.ValidatorExitResp.value"]], "vote_pubkey (rpcvote attribute)": [[21, "solders.rpc.responses.RpcVote.vote_pubkey"]], "vote_pubkey (rpcvoteaccountinfo attribute)": [[21, "solders.rpc.responses.RpcVoteAccountInfo.vote_pubkey"]], "length (signature attribute)": [[22, "solders.signature.Signature.LENGTH"]], "signature (class in solders.signature)": [[22, "solders.signature.Signature"]], "default() (signature static method)": [[22, "solders.signature.Signature.default"]], "from_bytes() (signature static method)": [[22, "solders.signature.Signature.from_bytes"]], "from_json() (signature static method)": [[22, "solders.signature.Signature.from_json"]], "from_string() (signature static method)": [[22, "solders.signature.Signature.from_string"]], "new_unique() (signature static method)": [[22, "solders.signature.Signature.new_unique"]], "solders.signature": [[22, "module-solders.signature"]], "to_bytes_array() (signature method)": [[22, "solders.signature.Signature.to_bytes_array"]], "to_json() (signature method)": [[22, "solders.signature.Signature.to_json"]], "verify() (signature method)": [[22, "solders.signature.Signature.verify"]], "advancenonceaccountparams (class in solders.system_program)": [[23, "solders.system_program.AdvanceNonceAccountParams"]], "allocateparams (class in solders.system_program)": [[23, "solders.system_program.AllocateParams"]], "allocatewithseedparams (class in solders.system_program)": [[23, "solders.system_program.AllocateWithSeedParams"]], "assignparams (class in solders.system_program)": [[23, "solders.system_program.AssignParams"]], "assignwithseedparams (class in solders.system_program)": [[23, "solders.system_program.AssignWithSeedParams"]], "authorizenonceaccountparams (class in solders.system_program)": [[23, "solders.system_program.AuthorizeNonceAccountParams"]], "closelookuptableparams (class in solders.system_program)": [[23, "solders.system_program.CloseLookupTableParams"]], "createaccountparams (class in solders.system_program)": [[23, "solders.system_program.CreateAccountParams"]], "createaccountwithseedparams (class in solders.system_program)": [[23, "solders.system_program.CreateAccountWithSeedParams"]], "createlookuptableparams (class in solders.system_program)": [[23, "solders.system_program.CreateLookupTableParams"]], "createlookuptablesignedparams (class in solders.system_program)": [[23, "solders.system_program.CreateLookupTableSignedParams"]], "deactivatelookuptableparams (class in solders.system_program)": [[23, "solders.system_program.DeactivateLookupTableParams"]], "extendlookuptableparams (class in solders.system_program)": [[23, "solders.system_program.ExtendLookupTableParams"]], "freezelookuptableparams (class in solders.system_program)": [[23, "solders.system_program.FreezeLookupTableParams"]], "id (in module solders.system_program)": [[23, "solders.system_program.ID"]], "initializenonceaccountparams (class in solders.system_program)": [[23, "solders.system_program.InitializeNonceAccountParams"]], "transferparams (class in solders.system_program)": [[23, "solders.system_program.TransferParams"]], "transferwithseedparams (class in solders.system_program)": [[23, "solders.system_program.TransferWithSeedParams"]], "withdrawnonceaccountparams (class in solders.system_program)": [[23, "solders.system_program.WithdrawNonceAccountParams"]], "address (allocatewithseedparams attribute)": [[23, "solders.system_program.AllocateWithSeedParams.address"]], "address (assignwithseedparams attribute)": [[23, "solders.system_program.AssignWithSeedParams.address"]], "advance_nonce_account() (in module solders.system_program)": [[23, "solders.system_program.advance_nonce_account"]], "allocate() (in module solders.system_program)": [[23, "solders.system_program.allocate"]], "allocate_with_seed() (in module solders.system_program)": [[23, "solders.system_program.allocate_with_seed"]], "assign() (in module solders.system_program)": [[23, "solders.system_program.assign"]], "assign_with_seed() (in module solders.system_program)": [[23, "solders.system_program.assign_with_seed"]], "authority (initializenonceaccountparams attribute)": [[23, "solders.system_program.InitializeNonceAccountParams.authority"]], "authority_address (closelookuptableparams attribute)": [[23, "solders.system_program.CloseLookupTableParams.authority_address"]], "authority_address (createlookuptableparams attribute)": [[23, "solders.system_program.CreateLookupTableParams.authority_address"]], "authority_address (createlookuptablesignedparams attribute)": [[23, "solders.system_program.CreateLookupTableSignedParams.authority_address"]], "authority_address (deactivatelookuptableparams attribute)": [[23, "solders.system_program.DeactivateLookupTableParams.authority_address"]], "authority_address (extendlookuptableparams attribute)": [[23, "solders.system_program.ExtendLookupTableParams.authority_address"]], "authority_address (freezelookuptableparams attribute)": [[23, "solders.system_program.FreezeLookupTableParams.authority_address"]], "authorize_nonce_account() (in module solders.system_program)": [[23, "solders.system_program.authorize_nonce_account"]], "authorized_pubkey (advancenonceaccountparams attribute)": [[23, "solders.system_program.AdvanceNonceAccountParams.authorized_pubkey"]], "authorized_pubkey (authorizenonceaccountparams attribute)": [[23, "solders.system_program.AuthorizeNonceAccountParams.authorized_pubkey"]], "authorized_pubkey (withdrawnonceaccountparams attribute)": [[23, "solders.system_program.WithdrawNonceAccountParams.authorized_pubkey"]], "base (allocatewithseedparams attribute)": [[23, "solders.system_program.AllocateWithSeedParams.base"]], "base (assignwithseedparams attribute)": [[23, "solders.system_program.AssignWithSeedParams.base"]], "base (createaccountwithseedparams attribute)": [[23, "solders.system_program.CreateAccountWithSeedParams.base"]], "close_lookup_table() (in module solders.system_program)": [[23, "solders.system_program.close_lookup_table"]], "create_account() (in module solders.system_program)": [[23, "solders.system_program.create_account"]], "create_account_with_seed() (in module solders.system_program)": [[23, "solders.system_program.create_account_with_seed"]], "create_lookup_table() (in module solders.system_program)": [[23, "solders.system_program.create_lookup_table"]], "create_lookup_table_signed() (in module solders.system_program)": [[23, "solders.system_program.create_lookup_table_signed"]], "create_nonce_account() (in module solders.system_program)": [[23, "solders.system_program.create_nonce_account"]], "create_nonce_account_with_seed() (in module solders.system_program)": [[23, "solders.system_program.create_nonce_account_with_seed"]], "deactivate_lookup_table() (in module solders.system_program)": [[23, "solders.system_program.deactivate_lookup_table"]], "decode_advance_nonce_account() (in module solders.system_program)": [[23, "solders.system_program.decode_advance_nonce_account"]], "decode_allocate() (in module solders.system_program)": [[23, "solders.system_program.decode_allocate"]], "decode_allocate_with_seed() (in module solders.system_program)": [[23, "solders.system_program.decode_allocate_with_seed"]], "decode_assign() (in module solders.system_program)": [[23, "solders.system_program.decode_assign"]], "decode_assign_with_seed() (in module solders.system_program)": [[23, "solders.system_program.decode_assign_with_seed"]], "decode_authorize_nonce_account() (in module solders.system_program)": [[23, "solders.system_program.decode_authorize_nonce_account"]], "decode_create_account() (in module solders.system_program)": [[23, "solders.system_program.decode_create_account"]], "decode_create_account_with_seed() (in module solders.system_program)": [[23, "solders.system_program.decode_create_account_with_seed"]], "decode_initialize_nonce_account() (in module solders.system_program)": [[23, "solders.system_program.decode_initialize_nonce_account"]], "decode_transfer() (in module solders.system_program)": [[23, "solders.system_program.decode_transfer"]], "decode_transfer_with_seed() (in module solders.system_program)": [[23, "solders.system_program.decode_transfer_with_seed"]], "decode_withdraw_nonce_account() (in module solders.system_program)": [[23, "solders.system_program.decode_withdraw_nonce_account"]], "extend_lookup_table() (in module solders.system_program)": [[23, "solders.system_program.extend_lookup_table"]], "freeze_lookup_table() (in module solders.system_program)": [[23, "solders.system_program.freeze_lookup_table"]], "from_base (transferwithseedparams attribute)": [[23, "solders.system_program.TransferWithSeedParams.from_base"]], "from_owner (transferwithseedparams attribute)": [[23, "solders.system_program.TransferWithSeedParams.from_owner"]], "from_pubkey (createaccountparams attribute)": [[23, "solders.system_program.CreateAccountParams.from_pubkey"]], "from_pubkey (createaccountwithseedparams attribute)": [[23, "solders.system_program.CreateAccountWithSeedParams.from_pubkey"]], "from_pubkey (transferparams attribute)": [[23, "solders.system_program.TransferParams.from_pubkey"]], "from_pubkey (transferwithseedparams attribute)": [[23, "solders.system_program.TransferWithSeedParams.from_pubkey"]], "from_seed (transferwithseedparams attribute)": [[23, "solders.system_program.TransferWithSeedParams.from_seed"]], "initialize_nonce_account() (in module solders.system_program)": [[23, "solders.system_program.initialize_nonce_account"]], "lamports (createaccountparams attribute)": [[23, "solders.system_program.CreateAccountParams.lamports"]], "lamports (createaccountwithseedparams attribute)": [[23, "solders.system_program.CreateAccountWithSeedParams.lamports"]], "lamports (transferparams attribute)": [[23, "solders.system_program.TransferParams.lamports"]], "lamports (transferwithseedparams attribute)": [[23, "solders.system_program.TransferWithSeedParams.lamports"]], "lamports (withdrawnonceaccountparams attribute)": [[23, "solders.system_program.WithdrawNonceAccountParams.lamports"]], "lookup_table_address (closelookuptableparams attribute)": [[23, "solders.system_program.CloseLookupTableParams.lookup_table_address"]], "lookup_table_address (deactivatelookuptableparams attribute)": [[23, "solders.system_program.DeactivateLookupTableParams.lookup_table_address"]], "lookup_table_address (extendlookuptableparams attribute)": [[23, "solders.system_program.ExtendLookupTableParams.lookup_table_address"]], "lookup_table_address (freezelookuptableparams attribute)": [[23, "solders.system_program.FreezeLookupTableParams.lookup_table_address"]], "new_addresses (extendlookuptableparams attribute)": [[23, "solders.system_program.ExtendLookupTableParams.new_addresses"]], "new_authority (authorizenonceaccountparams attribute)": [[23, "solders.system_program.AuthorizeNonceAccountParams.new_authority"]], "nonce_pubkey (advancenonceaccountparams attribute)": [[23, "solders.system_program.AdvanceNonceAccountParams.nonce_pubkey"]], "nonce_pubkey (authorizenonceaccountparams attribute)": [[23, "solders.system_program.AuthorizeNonceAccountParams.nonce_pubkey"]], "nonce_pubkey (initializenonceaccountparams attribute)": [[23, "solders.system_program.InitializeNonceAccountParams.nonce_pubkey"]], "nonce_pubkey (withdrawnonceaccountparams attribute)": [[23, "solders.system_program.WithdrawNonceAccountParams.nonce_pubkey"]], "owner (allocatewithseedparams attribute)": [[23, "solders.system_program.AllocateWithSeedParams.owner"]], "owner (assignparams attribute)": [[23, "solders.system_program.AssignParams.owner"]], "owner (assignwithseedparams attribute)": [[23, "solders.system_program.AssignWithSeedParams.owner"]], "owner (createaccountparams attribute)": [[23, "solders.system_program.CreateAccountParams.owner"]], "owner (createaccountwithseedparams attribute)": [[23, "solders.system_program.CreateAccountWithSeedParams.owner"]], "payer_address (createlookuptableparams attribute)": [[23, "solders.system_program.CreateLookupTableParams.payer_address"]], "payer_address (createlookuptablesignedparams attribute)": [[23, "solders.system_program.CreateLookupTableSignedParams.payer_address"]], "payer_address (extendlookuptableparams attribute)": [[23, "solders.system_program.ExtendLookupTableParams.payer_address"]], "pubkey (allocateparams attribute)": [[23, "solders.system_program.AllocateParams.pubkey"]], "pubkey (assignparams attribute)": [[23, "solders.system_program.AssignParams.pubkey"]], "recent_slot (createlookuptableparams attribute)": [[23, "solders.system_program.CreateLookupTableParams.recent_slot"]], "recent_slot (createlookuptablesignedparams attribute)": [[23, "solders.system_program.CreateLookupTableSignedParams.recent_slot"]], "recipient_address (closelookuptableparams attribute)": [[23, "solders.system_program.CloseLookupTableParams.recipient_address"]], "seed (allocatewithseedparams attribute)": [[23, "solders.system_program.AllocateWithSeedParams.seed"]], "seed (assignwithseedparams attribute)": [[23, "solders.system_program.AssignWithSeedParams.seed"]], "seed (createaccountwithseedparams attribute)": [[23, "solders.system_program.CreateAccountWithSeedParams.seed"]], "solders.system_program": [[23, "module-solders.system_program"]], "space (allocateparams attribute)": [[23, "solders.system_program.AllocateParams.space"]], "space (allocatewithseedparams attribute)": [[23, "solders.system_program.AllocateWithSeedParams.space"]], "space (createaccountparams attribute)": [[23, "solders.system_program.CreateAccountParams.space"]], "space (createaccountwithseedparams attribute)": [[23, "solders.system_program.CreateAccountWithSeedParams.space"]], "to_pubkey (createaccountparams attribute)": [[23, "solders.system_program.CreateAccountParams.to_pubkey"]], "to_pubkey (createaccountwithseedparams attribute)": [[23, "solders.system_program.CreateAccountWithSeedParams.to_pubkey"]], "to_pubkey (transferparams attribute)": [[23, "solders.system_program.TransferParams.to_pubkey"]], "to_pubkey (transferwithseedparams attribute)": [[23, "solders.system_program.TransferWithSeedParams.to_pubkey"]], "to_pubkey (withdrawnonceaccountparams attribute)": [[23, "solders.system_program.WithdrawNonceAccountParams.to_pubkey"]], "transfer() (in module solders.system_program)": [[23, "solders.system_program.transfer"]], "transfer_many() (in module solders.system_program)": [[23, "solders.system_program.transfer_many"]], "transfer_with_seed() (in module solders.system_program)": [[23, "solders.system_program.transfer_with_seed"]], "withdraw_nonce_account() (in module solders.system_program)": [[23, "solders.system_program.withdraw_nonce_account"]], "clock (in module solders.sysvar)": [[24, "solders.sysvar.CLOCK"]], "epoch_schedule (in module solders.sysvar)": [[24, "solders.sysvar.EPOCH_SCHEDULE"]], "instructions (in module solders.sysvar)": [[24, "solders.sysvar.INSTRUCTIONS"]], "recent_blockhashes (in module solders.sysvar)": [[24, "solders.sysvar.RECENT_BLOCKHASHES"]], "rent (in module solders.sysvar)": [[24, "solders.sysvar.RENT"]], "rewards (in module solders.sysvar)": [[24, "solders.sysvar.REWARDS"]], "slot_hashes (in module solders.sysvar)": [[24, "solders.sysvar.SLOT_HASHES"]], "stake_history (in module solders.sysvar)": [[24, "solders.sysvar.STAKE_HISTORY"]], "solders.sysvar": [[24, "module-solders.sysvar"]], "get_associated_token_address() (in module solders.token.associated)": [[25, "solders.token.associated.get_associated_token_address"]], "solders.token.associated": [[25, "module-solders.token.associated"]], "frozen (tokenaccountstate attribute)": [[27, "solders.token.state.TokenAccountState.Frozen"]], "initialized (tokenaccountstate attribute)": [[27, "solders.token.state.TokenAccountState.Initialized"]], "mint (class in solders.token.state)": [[27, "solders.token.state.Mint"]], "multisig (class in solders.token.state)": [[27, "solders.token.state.Multisig"]], "tokenaccount (class in solders.token.state)": [[27, "solders.token.state.TokenAccount"]], "tokenaccountstate (class in solders.token.state)": [[27, "solders.token.state.TokenAccountState"]], "uninitialized (tokenaccountstate attribute)": [[27, "solders.token.state.TokenAccountState.Uninitialized"]], "amount (tokenaccount attribute)": [[27, "solders.token.state.TokenAccount.amount"]], "close_authority (tokenaccount attribute)": [[27, "solders.token.state.TokenAccount.close_authority"]], "decimals (mint attribute)": [[27, "solders.token.state.Mint.decimals"]], "default() (mint static method)": [[27, "solders.token.state.Mint.default"]], "default() (multisig static method)": [[27, "solders.token.state.Multisig.default"]], "default() (tokenaccount static method)": [[27, "solders.token.state.TokenAccount.default"]], "delegate (tokenaccount attribute)": [[27, "solders.token.state.TokenAccount.delegate"]], "delegated_amount (tokenaccount attribute)": [[27, "solders.token.state.TokenAccount.delegated_amount"]], "freeze_authority (mint attribute)": [[27, "solders.token.state.Mint.freeze_authority"]], "from_bytes() (mint static method)": [[27, "solders.token.state.Mint.from_bytes"]], "from_bytes() (multisig static method)": [[27, "solders.token.state.Multisig.from_bytes"]], "from_bytes() (tokenaccount static method)": [[27, "solders.token.state.TokenAccount.from_bytes"]], "is_initialized (mint attribute)": [[27, "solders.token.state.Mint.is_initialized"]], "is_initialized (multisig attribute)": [[27, "solders.token.state.Multisig.is_initialized"]], "is_native (tokenaccount attribute)": [[27, "solders.token.state.TokenAccount.is_native"]], "m (multisig attribute)": [[27, "solders.token.state.Multisig.m"]], "mint (tokenaccount attribute)": [[27, "solders.token.state.TokenAccount.mint"]], "mint_authority (mint attribute)": [[27, "solders.token.state.Mint.mint_authority"]], "n (multisig attribute)": [[27, "solders.token.state.Multisig.n"]], "owner (tokenaccount attribute)": [[27, "solders.token.state.TokenAccount.owner"]], "signers (multisig attribute)": [[27, "solders.token.state.Multisig.signers"]], "solders.token.state": [[27, "module-solders.token.state"]], "state (tokenaccount attribute)": [[27, "solders.token.state.TokenAccount.state"]], "supply (mint attribute)": [[27, "solders.token.state.Mint.supply"]], "legacy (legacy attribute)": [[28, "solders.transaction.Legacy.Legacy"]], "legacy (class in solders.transaction)": [[28, "solders.transaction.Legacy"]], "sanitizeerror": [[28, "solders.transaction.SanitizeError"]], "transaction (class in solders.transaction)": [[28, "solders.transaction.Transaction"]], "transactionerror": [[28, "solders.transaction.TransactionError"]], "versionedtransaction (class in solders.transaction)": [[28, "solders.transaction.VersionedTransaction"]], "data() (transaction method)": [[28, "solders.transaction.Transaction.data"]], "default() (transaction static method)": [[28, "solders.transaction.Transaction.default"]], "default() (versionedtransaction static method)": [[28, "solders.transaction.VersionedTransaction.default"]], "from_bytes() (transaction static method)": [[28, "solders.transaction.Transaction.from_bytes"]], "from_bytes() (versionedtransaction static method)": [[28, "solders.transaction.VersionedTransaction.from_bytes"]], "from_json() (transaction static method)": [[28, "solders.transaction.Transaction.from_json"]], "from_json() (versionedtransaction static method)": [[28, "solders.transaction.VersionedTransaction.from_json"]], "from_legacy() (versionedtransaction static method)": [[28, "solders.transaction.VersionedTransaction.from_legacy"]], "get_signing_keypair_positions() (transaction method)": [[28, "solders.transaction.Transaction.get_signing_keypair_positions"]], "into_legacy_transaction() (versionedtransaction method)": [[28, "solders.transaction.VersionedTransaction.into_legacy_transaction"]], "is_signed() (transaction method)": [[28, "solders.transaction.Transaction.is_signed"]], "key() (transaction method)": [[28, "solders.transaction.Transaction.key"]], "message (transaction attribute)": [[28, "solders.transaction.Transaction.message"]], "message (versionedtransaction attribute)": [[28, "solders.transaction.VersionedTransaction.message"]], "message_data() (transaction method)": [[28, "solders.transaction.Transaction.message_data"]], "new_signed_with_payer() (transaction static method)": [[28, "solders.transaction.Transaction.new_signed_with_payer"]], "new_unsigned() (transaction static method)": [[28, "solders.transaction.Transaction.new_unsigned"]], "new_with_compiled_instructions() (transaction static method)": [[28, "solders.transaction.Transaction.new_with_compiled_instructions"]], "new_with_payer() (transaction static method)": [[28, "solders.transaction.Transaction.new_with_payer"]], "partial_sign() (transaction method)": [[28, "solders.transaction.Transaction.partial_sign"]], "populate() (transaction static method)": [[28, "solders.transaction.Transaction.populate"]], "populate() (versionedtransaction static method)": [[28, "solders.transaction.VersionedTransaction.populate"]], "replace_signatures() (transaction method)": [[28, "solders.transaction.Transaction.replace_signatures"]], "sanitize() (transaction method)": [[28, "solders.transaction.Transaction.sanitize"]], "sanitize() (versionedtransaction method)": [[28, "solders.transaction.VersionedTransaction.sanitize"]], "sign() (transaction method)": [[28, "solders.transaction.Transaction.sign"]], "signatures (transaction attribute)": [[28, "solders.transaction.Transaction.signatures"]], "signatures (versionedtransaction attribute)": [[28, "solders.transaction.VersionedTransaction.signatures"]], "signer_key() (transaction method)": [[28, "solders.transaction.Transaction.signer_key"]], "solders.transaction": [[28, "module-solders.transaction"]], "to_json() (transaction method)": [[28, "solders.transaction.Transaction.to_json"]], "to_json() (versionedtransaction method)": [[28, "solders.transaction.VersionedTransaction.to_json"]], "uses_durable_nonce() (transaction method)": [[28, "solders.transaction.Transaction.uses_durable_nonce"]], "uses_durable_nonce() (versionedtransaction method)": [[28, "solders.transaction.VersionedTransaction.uses_durable_nonce"]], "verify() (transaction method)": [[28, "solders.transaction.Transaction.verify"]], "verify_and_hash_message() (transaction method)": [[28, "solders.transaction.Transaction.verify_and_hash_message"]], "verify_and_hash_message() (versionedtransaction method)": [[28, "solders.transaction.VersionedTransaction.verify_and_hash_message"]], "verify_with_results() (transaction method)": [[28, "solders.transaction.Transaction.verify_with_results"]], "verify_with_results() (versionedtransaction method)": [[28, "solders.transaction.VersionedTransaction.verify_with_results"]], "version() (versionedtransaction method)": [[28, "solders.transaction.VersionedTransaction.version"]], "accountalreadyinitialized (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.AccountAlreadyInitialized"]], "accountborrowfailed (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.AccountBorrowFailed"]], "accountborrowoutstanding (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.AccountBorrowOutstanding"]], "accountborrowoutstanding (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.AccountBorrowOutstanding"]], "accountdatasizechanged (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.AccountDataSizeChanged"]], "accountdatatoosmall (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.AccountDataTooSmall"]], "accountinuse (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.AccountInUse"]], "accountloadedtwice (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.AccountLoadedTwice"]], "accountnotexecutable (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.AccountNotExecutable"]], "accountnotfound (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.AccountNotFound"]], "accountnotrentexempt (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.AccountNotRentExempt"]], "accounts (transactiondetails attribute)": [[29, "solders.transaction_status.TransactionDetails.Accounts"]], "addresslookuptablenotfound (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.AddressLookupTableNotFound"]], "alreadyprocessed (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.AlreadyProcessed"]], "arithmeticoverflow (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.ArithmeticOverflow"]], "base58 (transactionbinaryencoding attribute)": [[29, "solders.transaction_status.TransactionBinaryEncoding.Base58"]], "base58 (uitransactionencoding attribute)": [[29, "solders.transaction_status.UiTransactionEncoding.Base58"]], "base64 (transactionbinaryencoding attribute)": [[29, "solders.transaction_status.TransactionBinaryEncoding.Base64"]], "base64 (uitransactionencoding attribute)": [[29, "solders.transaction_status.UiTransactionEncoding.Base64"]], "binary (uitransactionencoding attribute)": [[29, "solders.transaction_status.UiTransactionEncoding.Binary"]], "blockhashnotfound (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.BlockhashNotFound"]], "builtinprogramsmustconsumecomputeunits (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.BuiltinProgramsMustConsumeComputeUnits"]], "callchaintoodeep (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.CallChainTooDeep"]], "calldepth (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.CallDepth"]], "clustermaintenance (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.ClusterMaintenance"]], "computationalbudgetexceeded (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.ComputationalBudgetExceeded"]], "confirmed (transactionconfirmationstatus attribute)": [[29, "solders.transaction_status.TransactionConfirmationStatus.Confirmed"]], "duplicateaccountindex (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.DuplicateAccountIndex"]], "duplicateaccountoutofsync (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.DuplicateAccountOutOfSync"]], "encodedconfirmedtransactionwithstatusmeta (class in solders.transaction_status)": [[29, "solders.transaction_status.EncodedConfirmedTransactionWithStatusMeta"]], "encodedtransactionwithstatusmeta (class in solders.transaction_status)": [[29, "solders.transaction_status.EncodedTransactionWithStatusMeta"]], "executableaccountnotrentexempt (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.ExecutableAccountNotRentExempt"]], "executabledatamodified (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.ExecutableDataModified"]], "executablelamportchange (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.ExecutableLamportChange"]], "executablemodified (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.ExecutableModified"]], "externalaccountdatamodified (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.ExternalAccountDataModified"]], "externalaccountlamportspend (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.ExternalAccountLamportSpend"]], "fee (rewardtype attribute)": [[29, "solders.transaction_status.RewardType.Fee"]], "finalized (transactionconfirmationstatus attribute)": [[29, "solders.transaction_status.TransactionConfirmationStatus.Finalized"]], "full (transactiondetails attribute)": [[29, "solders.transaction_status.TransactionDetails.Full"]], "genericerror (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.GenericError"]], "illegalowner (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.IllegalOwner"]], "immutable (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.Immutable"]], "incorrectauthority (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.IncorrectAuthority"]], "incorrectprogramid (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.IncorrectProgramId"]], "instructionerrorborshio (class in solders.transaction_status)": [[29, "solders.transaction_status.InstructionErrorBorshIO"]], "instructionerrorcustom (class in solders.transaction_status)": [[29, "solders.transaction_status.InstructionErrorCustom"]], "instructionerrorfieldless (class in solders.transaction_status)": [[29, "solders.transaction_status.InstructionErrorFieldless"]], "insufficientfunds (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.InsufficientFunds"]], "insufficientfundsforfee (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.InsufficientFundsForFee"]], "invalidaccountdata (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.InvalidAccountData"]], "invalidaccountforfee (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.InvalidAccountForFee"]], "invalidaccountindex (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.InvalidAccountIndex"]], "invalidaccountowner (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.InvalidAccountOwner"]], "invalidaddresslookuptabledata (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.InvalidAddressLookupTableData"]], "invalidaddresslookuptableindex (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.InvalidAddressLookupTableIndex"]], "invalidaddresslookuptableowner (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.InvalidAddressLookupTableOwner"]], "invalidargument (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.InvalidArgument"]], "invaliderror (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.InvalidError"]], "invalidinstructiondata (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.InvalidInstructionData"]], "invalidloadedaccountsdatasizelimit (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.InvalidLoadedAccountsDataSizeLimit"]], "invalidprogramforexecution (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.InvalidProgramForExecution"]], "invalidrealloc (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.InvalidRealloc"]], "invalidrentpayingaccount (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.InvalidRentPayingAccount"]], "invalidseeds (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.InvalidSeeds"]], "invalidwritableaccount (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.InvalidWritableAccount"]], "json (uitransactionencoding attribute)": [[29, "solders.transaction_status.UiTransactionEncoding.Json"]], "jsonparsed (uitransactionencoding attribute)": [[29, "solders.transaction_status.UiTransactionEncoding.JsonParsed"]], "lookuptable (parsedaccountsource attribute)": [[29, "solders.transaction_status.ParsedAccountSource.LookupTable"]], "maxaccountsdataallocationsexceeded (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.MaxAccountsDataAllocationsExceeded"]], "maxaccountsexceeded (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.MaxAccountsExceeded"]], "maxinstructiontracelengthexceeded (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.MaxInstructionTraceLengthExceeded"]], "maxloadedaccountsdatasizeexceeded (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.MaxLoadedAccountsDataSizeExceeded"]], "maxseedlengthexceeded (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.MaxSeedLengthExceeded"]], "missingaccount (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.MissingAccount"]], "missingrequiredsignature (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.MissingRequiredSignature"]], "missingsignatureforfee (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.MissingSignatureForFee"]], "modifiedprogramid (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.ModifiedProgramId"]], "none_ (transactiondetails attribute)": [[29, "solders.transaction_status.TransactionDetails.None_"]], "notenoughaccountkeys (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.NotEnoughAccountKeys"]], "parsedaccount (class in solders.transaction_status)": [[29, "solders.transaction_status.ParsedAccount"]], "parsedaccountsource (class in solders.transaction_status)": [[29, "solders.transaction_status.ParsedAccountSource"]], "parsedinstruction (class in solders.transaction_status)": [[29, "solders.transaction_status.ParsedInstruction"]], "privilegeescalation (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.PrivilegeEscalation"]], "processed (transactionconfirmationstatus attribute)": [[29, "solders.transaction_status.TransactionConfirmationStatus.Processed"]], "programaccountnotfound (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.ProgramAccountNotFound"]], "programcachehitmaxlimit (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.ProgramCacheHitMaxLimit"]], "programenvironmentsetupfailure (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.ProgramEnvironmentSetupFailure"]], "programfailedtocompile (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.ProgramFailedToCompile"]], "programfailedtocomplete (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.ProgramFailedToComplete"]], "readonlydatamodified (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.ReadonlyDataModified"]], "readonlylamportchange (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.ReadonlyLamportChange"]], "reentrancynotallowed (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.ReentrancyNotAllowed"]], "rent (rewardtype attribute)": [[29, "solders.transaction_status.RewardType.Rent"]], "rentepochmodified (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.RentEpochModified"]], "resanitizationneeded (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.ResanitizationNeeded"]], "reward (class in solders.transaction_status)": [[29, "solders.transaction_status.Reward"]], "rewardtype (class in solders.transaction_status)": [[29, "solders.transaction_status.RewardType"]], "sanitizefailure (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.SanitizeFailure"]], "signaturefailure (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.SignatureFailure"]], "signatures (transactiondetails attribute)": [[29, "solders.transaction_status.TransactionDetails.Signatures"]], "staking (rewardtype attribute)": [[29, "solders.transaction_status.RewardType.Staking"]], "toomanyaccountlocks (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.TooManyAccountLocks"]], "transaction (parsedaccountsource attribute)": [[29, "solders.transaction_status.ParsedAccountSource.Transaction"]], "transactionbinaryencoding (class in solders.transaction_status)": [[29, "solders.transaction_status.TransactionBinaryEncoding"]], "transactionconfirmationstatus (class in solders.transaction_status)": [[29, "solders.transaction_status.TransactionConfirmationStatus"]], "transactiondetails (class in solders.transaction_status)": [[29, "solders.transaction_status.TransactionDetails"]], "transactionerrorduplicateinstruction (class in solders.transaction_status)": [[29, "solders.transaction_status.TransactionErrorDuplicateInstruction"]], "transactionerrorfieldless (class in solders.transaction_status)": [[29, "solders.transaction_status.TransactionErrorFieldless"]], "transactionerrorinstructionerror (class in solders.transaction_status)": [[29, "solders.transaction_status.TransactionErrorInstructionError"]], "transactionerrorinsufficientfundsforrent (class in solders.transaction_status)": [[29, "solders.transaction_status.TransactionErrorInsufficientFundsForRent"]], "transactionreturndata (class in solders.transaction_status)": [[29, "solders.transaction_status.TransactionReturnData"]], "transactionstatus (class in solders.transaction_status)": [[29, "solders.transaction_status.TransactionStatus"]], "uiaccountslist (class in solders.transaction_status)": [[29, "solders.transaction_status.UiAccountsList"]], "uiaddresstablelookup (class in solders.transaction_status)": [[29, "solders.transaction_status.UiAddressTableLookup"]], "uicompiledinstruction (class in solders.transaction_status)": [[29, "solders.transaction_status.UiCompiledInstruction"]], "uiconfirmedblock (class in solders.transaction_status)": [[29, "solders.transaction_status.UiConfirmedBlock"]], "uiinnerinstructions (class in solders.transaction_status)": [[29, "solders.transaction_status.UiInnerInstructions"]], "uiloadedaddresses (class in solders.transaction_status)": [[29, "solders.transaction_status.UiLoadedAddresses"]], "uiparsedmessage (class in solders.transaction_status)": [[29, "solders.transaction_status.UiParsedMessage"]], "uipartiallydecodedinstruction (class in solders.transaction_status)": [[29, "solders.transaction_status.UiPartiallyDecodedInstruction"]], "uirawmessage (class in solders.transaction_status)": [[29, "solders.transaction_status.UiRawMessage"]], "uitransaction (class in solders.transaction_status)": [[29, "solders.transaction_status.UiTransaction"]], "uitransactionencoding (class in solders.transaction_status)": [[29, "solders.transaction_status.UiTransactionEncoding"]], "uitransactionstatusmeta (class in solders.transaction_status)": [[29, "solders.transaction_status.UiTransactionStatusMeta"]], "uitransactiontokenbalance (class in solders.transaction_status)": [[29, "solders.transaction_status.UiTransactionTokenBalance"]], "unbalancedinstruction (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.UnbalancedInstruction"]], "unbalancedtransaction (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.UnbalancedTransaction"]], "uninitializedaccount (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.UninitializedAccount"]], "unsupportedprogramid (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.UnsupportedProgramId"]], "unsupportedsysvar (instructionerrorfieldless attribute)": [[29, "solders.transaction_status.InstructionErrorFieldless.UnsupportedSysvar"]], "unsupportedversion (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.UnsupportedVersion"]], "voting (rewardtype attribute)": [[29, "solders.transaction_status.RewardType.Voting"]], "wouldexceedaccountdatablocklimit (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.WouldExceedAccountDataBlockLimit"]], "wouldexceedaccountdatatotallimit (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.WouldExceedAccountDataTotalLimit"]], "wouldexceedmaxaccountcostlimit (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.WouldExceedMaxAccountCostLimit"]], "wouldexceedmaxblockcostlimit (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.WouldExceedMaxBlockCostLimit"]], "wouldexceedmaxvotecostlimit (transactionerrorfieldless attribute)": [[29, "solders.transaction_status.TransactionErrorFieldless.WouldExceedMaxVoteCostLimit"]], "account_index (transactionerrorinsufficientfundsforrent attribute)": [[29, "solders.transaction_status.TransactionErrorInsufficientFundsForRent.account_index"]], "account_index (uitransactiontokenbalance attribute)": [[29, "solders.transaction_status.UiTransactionTokenBalance.account_index"]], "account_key (uiaddresstablelookup attribute)": [[29, "solders.transaction_status.UiAddressTableLookup.account_key"]], "account_keys (uiaccountslist attribute)": [[29, "solders.transaction_status.UiAccountsList.account_keys"]], "account_keys (uiparsedmessage attribute)": [[29, "solders.transaction_status.UiParsedMessage.account_keys"]], "account_keys (uirawmessage attribute)": [[29, "solders.transaction_status.UiRawMessage.account_keys"]], "accounts (uicompiledinstruction attribute)": [[29, "solders.transaction_status.UiCompiledInstruction.accounts"]], "accounts (uipartiallydecodedinstruction attribute)": [[29, "solders.transaction_status.UiPartiallyDecodedInstruction.accounts"]], "address_table_lookups (uiparsedmessage attribute)": [[29, "solders.transaction_status.UiParsedMessage.address_table_lookups"]], "address_table_lookups (uirawmessage attribute)": [[29, "solders.transaction_status.UiRawMessage.address_table_lookups"]], "block_height (uiconfirmedblock attribute)": [[29, "solders.transaction_status.UiConfirmedBlock.block_height"]], "block_time (encodedconfirmedtransactionwithstatusmeta attribute)": [[29, "solders.transaction_status.EncodedConfirmedTransactionWithStatusMeta.block_time"]], "block_time (uiconfirmedblock attribute)": [[29, "solders.transaction_status.UiConfirmedBlock.block_time"]], "blockhash (uiconfirmedblock attribute)": [[29, "solders.transaction_status.UiConfirmedBlock.blockhash"]], "code (instructionerrorcustom attribute)": [[29, "solders.transaction_status.InstructionErrorCustom.code"]], "commission (reward attribute)": [[29, "solders.transaction_status.Reward.commission"]], "compute_units_consumed (uitransactionstatusmeta attribute)": [[29, "solders.transaction_status.UiTransactionStatusMeta.compute_units_consumed"]], "confirmation_status (transactionstatus attribute)": [[29, "solders.transaction_status.TransactionStatus.confirmation_status"]], "confirmations (transactionstatus attribute)": [[29, "solders.transaction_status.TransactionStatus.confirmations"]], "data (transactionreturndata attribute)": [[29, "solders.transaction_status.TransactionReturnData.data"]], "data (uicompiledinstruction attribute)": [[29, "solders.transaction_status.UiCompiledInstruction.data"]], "data (uipartiallydecodedinstruction attribute)": [[29, "solders.transaction_status.UiPartiallyDecodedInstruction.data"]], "err (transactionerrorinstructionerror attribute)": [[29, "solders.transaction_status.TransactionErrorInstructionError.err"]], "err (transactionstatus attribute)": [[29, "solders.transaction_status.TransactionStatus.err"]], "err (uitransactionstatusmeta attribute)": [[29, "solders.transaction_status.UiTransactionStatusMeta.err"]], "fee (uitransactionstatusmeta attribute)": [[29, "solders.transaction_status.UiTransactionStatusMeta.fee"]], "find_confirmation_status() (transactionstatus method)": [[29, "solders.transaction_status.TransactionStatus.find_confirmation_status"]], "from_bytes() (encodedconfirmedtransactionwithstatusmeta static method)": [[29, "solders.transaction_status.EncodedConfirmedTransactionWithStatusMeta.from_bytes"]], "from_bytes() (encodedtransactionwithstatusmeta static method)": [[29, "solders.transaction_status.EncodedTransactionWithStatusMeta.from_bytes"]], "from_bytes() (instructionerrorborshio static method)": [[29, "solders.transaction_status.InstructionErrorBorshIO.from_bytes"]], "from_bytes() (instructionerrorcustom static method)": [[29, "solders.transaction_status.InstructionErrorCustom.from_bytes"]], "from_bytes() (parsedinstruction static method)": [[29, "solders.transaction_status.ParsedInstruction.from_bytes"]], "from_bytes() (reward static method)": [[29, "solders.transaction_status.Reward.from_bytes"]], "from_bytes() (transactionerrorduplicateinstruction static method)": [[29, "solders.transaction_status.TransactionErrorDuplicateInstruction.from_bytes"]], "from_bytes() (transactionerrorinstructionerror static method)": [[29, "solders.transaction_status.TransactionErrorInstructionError.from_bytes"]], "from_bytes() (transactionerrorinsufficientfundsforrent static method)": [[29, "solders.transaction_status.TransactionErrorInsufficientFundsForRent.from_bytes"]], "from_bytes() (transactionreturndata static method)": [[29, "solders.transaction_status.TransactionReturnData.from_bytes"]], "from_bytes() (transactionstatus static method)": [[29, "solders.transaction_status.TransactionStatus.from_bytes"]], "from_bytes() (uiaccountslist static method)": [[29, "solders.transaction_status.UiAccountsList.from_bytes"]], "from_bytes() (uiaddresstablelookup static method)": [[29, "solders.transaction_status.UiAddressTableLookup.from_bytes"]], "from_bytes() (uicompiledinstruction static method)": [[29, "solders.transaction_status.UiCompiledInstruction.from_bytes"]], "from_bytes() (uiconfirmedblock static method)": [[29, "solders.transaction_status.UiConfirmedBlock.from_bytes"]], "from_bytes() (uiinnerinstructions static method)": [[29, "solders.transaction_status.UiInnerInstructions.from_bytes"]], "from_bytes() (uiloadedaddresses static method)": [[29, "solders.transaction_status.UiLoadedAddresses.from_bytes"]], "from_bytes() (uiparsedmessage static method)": [[29, "solders.transaction_status.UiParsedMessage.from_bytes"]], "from_bytes() (uipartiallydecodedinstruction static method)": [[29, "solders.transaction_status.UiPartiallyDecodedInstruction.from_bytes"]], "from_bytes() (uirawmessage static method)": [[29, "solders.transaction_status.UiRawMessage.from_bytes"]], "from_bytes() (uitransaction static method)": [[29, "solders.transaction_status.UiTransaction.from_bytes"]], "from_bytes() (uitransactionstatusmeta static method)": [[29, "solders.transaction_status.UiTransactionStatusMeta.from_bytes"]], "from_bytes() (uitransactiontokenbalance static method)": [[29, "solders.transaction_status.UiTransactionTokenBalance.from_bytes"]], "from_json() (encodedconfirmedtransactionwithstatusmeta static method)": [[29, "solders.transaction_status.EncodedConfirmedTransactionWithStatusMeta.from_json"]], "from_json() (encodedtransactionwithstatusmeta static method)": [[29, "solders.transaction_status.EncodedTransactionWithStatusMeta.from_json"]], "from_json() (instructionerrorborshio static method)": [[29, "solders.transaction_status.InstructionErrorBorshIO.from_json"]], "from_json() (instructionerrorcustom static method)": [[29, "solders.transaction_status.InstructionErrorCustom.from_json"]], "from_json() (parsedinstruction static method)": [[29, "solders.transaction_status.ParsedInstruction.from_json"]], "from_json() (reward static method)": [[29, "solders.transaction_status.Reward.from_json"]], "from_json() (transactionerrorduplicateinstruction static method)": [[29, "solders.transaction_status.TransactionErrorDuplicateInstruction.from_json"]], "from_json() (transactionerrorinstructionerror static method)": [[29, "solders.transaction_status.TransactionErrorInstructionError.from_json"]], "from_json() (transactionerrorinsufficientfundsforrent static method)": [[29, "solders.transaction_status.TransactionErrorInsufficientFundsForRent.from_json"]], "from_json() (transactionreturndata static method)": [[29, "solders.transaction_status.TransactionReturnData.from_json"]], "from_json() (transactionstatus static method)": [[29, "solders.transaction_status.TransactionStatus.from_json"]], "from_json() (uiaccountslist static method)": [[29, "solders.transaction_status.UiAccountsList.from_json"]], "from_json() (uiaddresstablelookup static method)": [[29, "solders.transaction_status.UiAddressTableLookup.from_json"]], "from_json() (uicompiledinstruction static method)": [[29, "solders.transaction_status.UiCompiledInstruction.from_json"]], "from_json() (uiconfirmedblock static method)": [[29, "solders.transaction_status.UiConfirmedBlock.from_json"]], "from_json() (uiinnerinstructions static method)": [[29, "solders.transaction_status.UiInnerInstructions.from_json"]], "from_json() (uiloadedaddresses static method)": [[29, "solders.transaction_status.UiLoadedAddresses.from_json"]], "from_json() (uiparsedmessage static method)": [[29, "solders.transaction_status.UiParsedMessage.from_json"]], "from_json() (uipartiallydecodedinstruction static method)": [[29, "solders.transaction_status.UiPartiallyDecodedInstruction.from_json"]], "from_json() (uirawmessage static method)": [[29, "solders.transaction_status.UiRawMessage.from_json"]], "from_json() (uitransaction static method)": [[29, "solders.transaction_status.UiTransaction.from_json"]], "from_json() (uitransactionstatusmeta static method)": [[29, "solders.transaction_status.UiTransactionStatusMeta.from_json"]], "from_json() (uitransactiontokenbalance static method)": [[29, "solders.transaction_status.UiTransactionTokenBalance.from_json"]], "header (uirawmessage attribute)": [[29, "solders.transaction_status.UiRawMessage.header"]], "index (transactionerrorduplicateinstruction attribute)": [[29, "solders.transaction_status.TransactionErrorDuplicateInstruction.index"]], "index (transactionerrorinstructionerror attribute)": [[29, "solders.transaction_status.TransactionErrorInstructionError.index"]], "index (uiinnerinstructions attribute)": [[29, "solders.transaction_status.UiInnerInstructions.index"]], "inner_instructions (uitransactionstatusmeta attribute)": [[29, "solders.transaction_status.UiTransactionStatusMeta.inner_instructions"]], "instructions (uiinnerinstructions attribute)": [[29, "solders.transaction_status.UiInnerInstructions.instructions"]], "instructions (uiparsedmessage attribute)": [[29, "solders.transaction_status.UiParsedMessage.instructions"]], "instructions (uirawmessage attribute)": [[29, "solders.transaction_status.UiRawMessage.instructions"]], "lamports (reward attribute)": [[29, "solders.transaction_status.Reward.lamports"]], "loaded_addresses (uitransactionstatusmeta attribute)": [[29, "solders.transaction_status.UiTransactionStatusMeta.loaded_addresses"]], "log_messages (uitransactionstatusmeta attribute)": [[29, "solders.transaction_status.UiTransactionStatusMeta.log_messages"]], "message (uitransaction attribute)": [[29, "solders.transaction_status.UiTransaction.message"]], "meta (encodedtransactionwithstatusmeta attribute)": [[29, "solders.transaction_status.EncodedTransactionWithStatusMeta.meta"]], "mint (uitransactiontokenbalance attribute)": [[29, "solders.transaction_status.UiTransactionTokenBalance.mint"]], "owner (uitransactiontokenbalance attribute)": [[29, "solders.transaction_status.UiTransactionTokenBalance.owner"]], "parent_slot (uiconfirmedblock attribute)": [[29, "solders.transaction_status.UiConfirmedBlock.parent_slot"]], "parsed (parsedinstruction attribute)": [[29, "solders.transaction_status.ParsedInstruction.parsed"]], "post_balance (reward attribute)": [[29, "solders.transaction_status.Reward.post_balance"]], "post_balances (uitransactionstatusmeta attribute)": [[29, "solders.transaction_status.UiTransactionStatusMeta.post_balances"]], "post_token_balances (uitransactionstatusmeta attribute)": [[29, "solders.transaction_status.UiTransactionStatusMeta.post_token_balances"]], "pre_balances (uitransactionstatusmeta attribute)": [[29, "solders.transaction_status.UiTransactionStatusMeta.pre_balances"]], "pre_token_balances (uitransactionstatusmeta attribute)": [[29, "solders.transaction_status.UiTransactionStatusMeta.pre_token_balances"]], "previous_blockhash (uiconfirmedblock attribute)": [[29, "solders.transaction_status.UiConfirmedBlock.previous_blockhash"]], "program (parsedinstruction attribute)": [[29, "solders.transaction_status.ParsedInstruction.program"]], "program_id (parsedinstruction attribute)": [[29, "solders.transaction_status.ParsedInstruction.program_id"]], "program_id (transactionreturndata attribute)": [[29, "solders.transaction_status.TransactionReturnData.program_id"]], "program_id (uipartiallydecodedinstruction attribute)": [[29, "solders.transaction_status.UiPartiallyDecodedInstruction.program_id"]], "program_id (uitransactiontokenbalance attribute)": [[29, "solders.transaction_status.UiTransactionTokenBalance.program_id"]], "program_id_index (uicompiledinstruction attribute)": [[29, "solders.transaction_status.UiCompiledInstruction.program_id_index"]], "pubkey (parsedaccount attribute)": [[29, "solders.transaction_status.ParsedAccount.pubkey"]], "pubkey (reward attribute)": [[29, "solders.transaction_status.Reward.pubkey"]], "readonly (uiloadedaddresses attribute)": [[29, "solders.transaction_status.UiLoadedAddresses.readonly"]], "readonly_indexes (uiaddresstablelookup attribute)": [[29, "solders.transaction_status.UiAddressTableLookup.readonly_indexes"]], "recent_blockhash (uiparsedmessage attribute)": [[29, "solders.transaction_status.UiParsedMessage.recent_blockhash"]], "recent_blockhash (uirawmessage attribute)": [[29, "solders.transaction_status.UiRawMessage.recent_blockhash"]], "return_data (uitransactionstatusmeta attribute)": [[29, "solders.transaction_status.UiTransactionStatusMeta.return_data"]], "reward_type (reward attribute)": [[29, "solders.transaction_status.Reward.reward_type"]], "rewards (uiconfirmedblock attribute)": [[29, "solders.transaction_status.UiConfirmedBlock.rewards"]], "rewards (uitransactionstatusmeta attribute)": [[29, "solders.transaction_status.UiTransactionStatusMeta.rewards"]], "satisfies_commitment() (transactionstatus method)": [[29, "solders.transaction_status.TransactionStatus.satisfies_commitment"]], "signatures (uiaccountslist attribute)": [[29, "solders.transaction_status.UiAccountsList.signatures"]], "signatures (uiconfirmedblock attribute)": [[29, "solders.transaction_status.UiConfirmedBlock.signatures"]], "signatures (uitransaction attribute)": [[29, "solders.transaction_status.UiTransaction.signatures"]], "signer (parsedaccount attribute)": [[29, "solders.transaction_status.ParsedAccount.signer"]], "slot (encodedconfirmedtransactionwithstatusmeta attribute)": [[29, "solders.transaction_status.EncodedConfirmedTransactionWithStatusMeta.slot"]], "slot (transactionstatus attribute)": [[29, "solders.transaction_status.TransactionStatus.slot"]], "solders.transaction_status": [[29, "module-solders.transaction_status"]], "source (parsedaccount attribute)": [[29, "solders.transaction_status.ParsedAccount.source"]], "stack_height (parsedinstruction attribute)": [[29, "solders.transaction_status.ParsedInstruction.stack_height"]], "stack_height (uicompiledinstruction attribute)": [[29, "solders.transaction_status.UiCompiledInstruction.stack_height"]], "stack_height (uipartiallydecodedinstruction attribute)": [[29, "solders.transaction_status.UiPartiallyDecodedInstruction.stack_height"]], "status (transactionstatus attribute)": [[29, "solders.transaction_status.TransactionStatus.status"]], "to_json() (encodedconfirmedtransactionwithstatusmeta method)": [[29, "solders.transaction_status.EncodedConfirmedTransactionWithStatusMeta.to_json"]], "to_json() (encodedtransactionwithstatusmeta method)": [[29, "solders.transaction_status.EncodedTransactionWithStatusMeta.to_json"]], "to_json() (instructionerrorborshio method)": [[29, "solders.transaction_status.InstructionErrorBorshIO.to_json"]], "to_json() (instructionerrorcustom method)": [[29, "solders.transaction_status.InstructionErrorCustom.to_json"]], "to_json() (parsedinstruction method)": [[29, "solders.transaction_status.ParsedInstruction.to_json"]], "to_json() (reward method)": [[29, "solders.transaction_status.Reward.to_json"]], "to_json() (transactionerrorduplicateinstruction method)": [[29, "solders.transaction_status.TransactionErrorDuplicateInstruction.to_json"]], "to_json() (transactionerrorinstructionerror method)": [[29, "solders.transaction_status.TransactionErrorInstructionError.to_json"]], "to_json() (transactionerrorinsufficientfundsforrent method)": [[29, "solders.transaction_status.TransactionErrorInsufficientFundsForRent.to_json"]], "to_json() (transactionreturndata method)": [[29, "solders.transaction_status.TransactionReturnData.to_json"]], "to_json() (transactionstatus method)": [[29, "solders.transaction_status.TransactionStatus.to_json"]], "to_json() (uiaccountslist method)": [[29, "solders.transaction_status.UiAccountsList.to_json"]], "to_json() (uiaddresstablelookup method)": [[29, "solders.transaction_status.UiAddressTableLookup.to_json"]], "to_json() (uicompiledinstruction method)": [[29, "solders.transaction_status.UiCompiledInstruction.to_json"]], "to_json() (uiconfirmedblock method)": [[29, "solders.transaction_status.UiConfirmedBlock.to_json"]], "to_json() (uiinnerinstructions method)": [[29, "solders.transaction_status.UiInnerInstructions.to_json"]], "to_json() (uiloadedaddresses method)": [[29, "solders.transaction_status.UiLoadedAddresses.to_json"]], "to_json() (uiparsedmessage method)": [[29, "solders.transaction_status.UiParsedMessage.to_json"]], "to_json() (uipartiallydecodedinstruction method)": [[29, "solders.transaction_status.UiPartiallyDecodedInstruction.to_json"]], "to_json() (uirawmessage method)": [[29, "solders.transaction_status.UiRawMessage.to_json"]], "to_json() (uitransaction method)": [[29, "solders.transaction_status.UiTransaction.to_json"]], "to_json() (uitransactionstatusmeta method)": [[29, "solders.transaction_status.UiTransactionStatusMeta.to_json"]], "to_json() (uitransactiontokenbalance method)": [[29, "solders.transaction_status.UiTransactionTokenBalance.to_json"]], "transaction (encodedconfirmedtransactionwithstatusmeta attribute)": [[29, "solders.transaction_status.EncodedConfirmedTransactionWithStatusMeta.transaction"]], "transaction (encodedtransactionwithstatusmeta attribute)": [[29, "solders.transaction_status.EncodedTransactionWithStatusMeta.transaction"]], "transactions (uiconfirmedblock attribute)": [[29, "solders.transaction_status.UiConfirmedBlock.transactions"]], "ui_token_amount (uitransactiontokenbalance attribute)": [[29, "solders.transaction_status.UiTransactionTokenBalance.ui_token_amount"]], "value (instructionerrorborshio attribute)": [[29, "solders.transaction_status.InstructionErrorBorshIO.value"]], "version (encodedtransactionwithstatusmeta attribute)": [[29, "solders.transaction_status.EncodedTransactionWithStatusMeta.version"]], "writable (parsedaccount attribute)": [[29, "solders.transaction_status.ParsedAccount.writable"]], "writable (uiloadedaddresses attribute)": [[29, "solders.transaction_status.UiLoadedAddresses.writable"]], "writable_indexes (uiaddresstablelookup attribute)": [[29, "solders.transaction_status.UiAddressTableLookup.writable_indexes"]]}}) \ No newline at end of file diff --git a/tutorials/bankrun.html b/tutorials/bankrun.html new file mode 100644 index 00000000..506b26bf --- /dev/null +++ b/tutorials/bankrun.html @@ -0,0 +1,399 @@ + + + + + + + Bankrun — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Bankrun

+

The bankrun module offers a quick and powerful yet lightweight solution for testing Solana programs. +While people often use solana-test-validator for this, +bankrun is orders of magnitude faster and far more convenient. +You don’t have to +take care of an external process and you can start as many bankrun +instances as you like without worrying about ports in use or hogging your machines resources.

+

You can also do things that are not possible with solana-test-validator, +such as jumping back and forth in time or dynamically setting account data.

+

If you’ve used solana-program-test +you’ll be familiar with bankrun, since that’s what it uses under the hood.

+

For those unfamiliar, bankrun and solana-program-test work by spinning up a lightweight +BanksServer that’s like an RPC but much faster, and creating a BanksClient to talk to the +server. This author thought solana-program-test was a boring name, so he chose bankrun instead +(you’re running Solana Banks).

+
+

Minimal example

+

This example just transfers lamports from Alice to Bob without loading +any programs of our own. Note: you’ll need pytest-asyncio installed in +the environment, since the test function is async.

+
from pytest import mark
+from solders.bankrun import start
+from solders.message import Message
+from solders.pubkey import Pubkey
+from solders.system_program import transfer
+from solders.transaction import VersionedTransaction
+
+
+@mark.asyncio
+async def test_transfer() -> None:
+    context = await start()
+    receiver = Pubkey.new_unique()
+    client = context.banks_client
+    payer = context.payer
+    blockhash = context.last_blockhash
+    transfer_lamports = 1_000_000
+    ixs = [
+        transfer(
+            {
+                "from_pubkey": context.payer.pubkey(),
+                "to_pubkey": receiver,
+                "lamports": transfer_lamports,
+            }
+        )
+    ]
+    msg = Message.new_with_blockhash(ixs, payer.pubkey(), blockhash)
+    tx = VersionedTransaction(msg, [payer])
+    await client.process_transaction(tx)
+    balance_after = await client.get_balance(receiver)
+    assert balance_after == transfer_lamports
+
+
+

Some things to note here:

+
    +
  • The context object contains a banks_client to talk to the BanksServer, +a payer keypair that has been funded with a bunch of SOL, and a last_blockhash +that we can use in our transactions.

  • +
  • We haven’t loaded any specific programs, but by default we have access to +the System Program, the SPL token programs and the SPL memo program.

  • +
+
+
+

Deploying programs

+

Most of the time we want to do more than just mess around with token transfers - +we want to test our own programs. solana-program-test is a bit fussy about +how this is done.

+

Firstly, the program’s .so file must be present in one of the following directories:

+
    +
  • ./tests/fixtures (just create this directory if it doesn’t exist)

  • +
  • The current working directory

  • +
  • A directory you define in the BPF_OUT_DIR or SBF_OUT_DIR environment variables.

  • +
+

(If you’re not aware, the .so file is created when you run anchor build or cargo build-sbf +and can be found in target/deploy).

+

Now to add the program to our tests we use the programs parameter in the start function. +The program name used in this parameter must match the filename without the .so extension.

+

Here’s an example using a simple program +from the Solana monorepo that just does some logging:

+
from pytest import mark
+from solders.bankrun import start
+from solders.instruction import AccountMeta, Instruction
+from solders.message import Message
+from solders.pubkey import Pubkey
+from solders.transaction import VersionedTransaction
+
+
+@mark.asyncio
+async def test_logging() -> None:
+    program_id = Pubkey.from_string("Logging111111111111111111111111111111111111")
+    ix = Instruction(
+        program_id,
+        bytes([5, 10, 11, 12, 13, 14]),
+        [AccountMeta(Pubkey.new_unique(), is_signer=False, is_writable=True)],
+    )
+    context = await start(programs=[("spl_example_logging", program_id)])
+    payer = context.payer
+    blockhash = context.last_blockhash
+    client = context.banks_client
+    msg = Message.new_with_blockhash([ix], payer.pubkey(), blockhash)
+    tx = VersionedTransaction(msg, [payer])
+    # let's sim it first
+    sim_res = await client.simulate_transaction(tx)
+    meta = await client.process_transaction(tx)
+    assert sim_res.meta == meta
+    assert meta is not None
+    assert meta.log_messages[1] == "Program log: static string"
+    assert (
+        meta.compute_units_consumed < 10_000
+    )  # not being precise here in case it changes
+
+
+

The .so file must be named spl_example_logging.so, since spl_example_logging is +the name we used in the programs parameter.

+
+
+

Anchor integration

+

If you have an Anchor workspace, bankrun can make some extra assumptions that make it more +convenient to get started. Just use start_anchor and give it the path to the project root +(the folder containing the Anchor.toml file). The programs in the workspace will be automatically +deployed to the test environment.

+

Example:

+
from pathlib import Path
+
+from pytest import mark
+from solders.bankrun import start_anchor
+from solders.pubkey import Pubkey
+
+
+@mark.asyncio
+async def test_anchor() -> None:
+    ctx = await start_anchor(Path("tests/bankrun/anchor-example"))
+    program_id = Pubkey.from_string("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS")
+    executable_account = await ctx.banks_client.get_account(program_id)
+    assert executable_account is not None
+    assert executable_account.executable
+
+
+
+
+

Time travel

+

Many programs rely on the Clock sysvar: for example, a mint that doesn’t become available until after +a certain time. With bankrun you can dynamically overwrite the Clock sysvar using context.set_clock(). +Here’s an example using a program that panics if clock.unix_timestamp is greater than 100 +(which is on January 1st 1970):

+
from pytest import mark, raises
+from solders.bankrun import start
+from solders.clock import Clock
+from solders.instruction import Instruction
+from solders.message import Message
+from solders.pubkey import Pubkey
+from solders.transaction import TransactionError, VersionedTransaction
+
+
+@mark.asyncio
+async def test_set_clock() -> None:
+    program_id = Pubkey.new_unique()
+    context = await start(programs=[("solders_clock_example", program_id)])
+    client = context.banks_client
+    payer = context.payer
+    blockhash = context.last_blockhash
+    ixs = [Instruction(program_id=program_id, data=b"", accounts=[])]
+    msg = Message.new_with_blockhash(ixs, payer.pubkey(), blockhash)
+    tx = VersionedTransaction(msg, [payer])
+    # this will fail because it's not January 1970 anymore
+    with raises(TransactionError):
+        await client.process_transaction(tx)
+    # so let's turn back time
+    current_clock = await client.get_clock()
+    context.set_clock(
+        Clock(
+            slot=current_clock.slot,
+            epoch_start_timestamp=current_clock.epoch_start_timestamp,
+            epoch=current_clock.epoch,
+            leader_schedule_epoch=current_clock.leader_schedule_epoch,
+            unix_timestamp=50,
+        )
+    )
+    ixs2 = [
+        Instruction(
+            program_id=program_id,
+            data=b"foobar",  # unused, this is just to dedup the transaction
+            accounts=[],
+        )
+    ]
+    msg2 = Message.new_with_blockhash(ixs2, payer.pubkey(), blockhash)
+    tx2 = VersionedTransaction(msg2, [payer])
+    # now the transaction goes through
+    await client.process_transaction(tx2)
+
+
+

See also: context.warp_to_slot(), which lets you jump to a future slot.

+
+
+

Writing arbitrary accounts

+

Bankrun lets you write any account data you want, regardless of +whether the account state would even be possible.

+

Here’s an example where we give an account a bunch of USDC, +even though we don’t have the USDC mint keypair. This is +convenient for testing because it means we don’t have to +work with fake USDC in our tests:

+
from pytest import mark
+from solders.account import Account
+from solders.bankrun import start
+from solders.pubkey import Pubkey
+from solders.token import ID as TOKEN_PROGRAM_ID
+from solders.token.associated import get_associated_token_address
+from solders.token.state import TokenAccount, TokenAccountState
+
+
+@mark.asyncio
+async def test_infinite_usdc_mint() -> None:
+    owner = Pubkey.new_unique()
+    usdc_mint = Pubkey.from_string("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v")
+    ata = get_associated_token_address(owner, usdc_mint)
+    usdc_to_own = 1_000_000_000_000
+    token_acc = TokenAccount(
+        mint=usdc_mint,
+        owner=owner,
+        amount=usdc_to_own,
+        delegate=None,
+        state=TokenAccountState.Initialized,
+        is_native=None,
+        delegated_amount=0,
+        close_authority=None,
+    )
+    context = await start(
+        accounts=[
+            (
+                ata,
+                Account(
+                    lamports=1_000_000_000,
+                    data=bytes(token_acc),
+                    owner=TOKEN_PROGRAM_ID,
+                    executable=False,
+                ),
+            )
+        ]
+    )
+    client = context.banks_client
+    raw_account = await client.get_account(ata)
+    assert raw_account is not None
+    raw_account_data = raw_account.data
+    assert TokenAccount.from_bytes(raw_account_data).amount == usdc_to_own
+
+
+
+

Tip

+

If you want to set account data after calling bankrun.start(), +you can use context.set_account().

+
+
+
+

Other features

+

Other things you can do with bankrun include:

+
    +
  • Changing the max compute units with the compute_max_units parameter.

  • +
  • Changing the transaction account lock limit with the transaction_account_lock_limit parameter.

  • +
+
+
+

When should I use solana-test-validator?

+

While bankrun is faster and more convenient, it is also less like a real RPC node. +So solana-test-validator is still useful when you need to call RPC methods that BanksServer +doesn’t support, or when you want to test something that depends on real-life validator behaviour +rather than just testing your program and client code.

+

In general though I would recommend using bankrun wherever possible, as it will make your life +much easier.

+
+
+

Supported platforms

+

bankrun is not included on windows and musllinux-i686 targets, but otherwise +should run everywhere that solders runs.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/tutorials/index.html b/tutorials/index.html new file mode 100644 index 00000000..de1f76c9 --- /dev/null +++ b/tutorials/index.html @@ -0,0 +1,157 @@ + + + + + + + Tutorials — solders 0.23.0 documentation + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tutorials/keypairs.html b/tutorials/keypairs.html new file mode 100644 index 00000000..e0f05803 --- /dev/null +++ b/tutorials/keypairs.html @@ -0,0 +1,233 @@ + + + + + + + Keypairs — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Keypairs

+

The Keypair class is a wrapper around a 64-byte array, where +the first 32 bytes consist of your secret seed and the latter 32 bytes +are your pubkey.

+
+

Generating a new keypair

+

Often you need to generate a new keypair on the fly:

+
from solders.keypair import Keypair
+keypair = Keypair()
+
+
+
+
+

Converting a keypair to raw bytes

+

To get the raw bytes of a keypair object you just call +bytes(keypair):

+
from solders.keypair import Keypair
+keypair = Keypair()
+raw = bytes(keypair)
+
+
+
+
+

Restoring a keypair from a secret

+

If you already have the 64-byte secret key, +you can use Keypair.from_bytes:

+
from solders.keypair import Keypair
+
+secret_key = [
+    174, 47, 154, 16, 202, 193, 206, 113,
+    199, 190, 53, 133, 169, 175, 31, 56,
+    222, 53, 138, 189, 224, 216, 117, 173,
+    10, 149, 53, 45, 73, 251, 237, 246,
+    15, 185, 186, 82, 177, 240, 148, 69,
+    241, 227, 167, 80, 141, 89, 240, 121,
+    121, 35, 172, 247, 68, 251, 226, 218,
+    48, 63, 176, 109, 168, 89, 238, 135,
+]
+
+keypair = Keypair.from_bytes(secret_key)
+print(f"Created Keypair with public key: {keypair.pubkey()}")
+
+
+
Created Keypair with public key: 24PNhTaNtomHhoy3fTRaMhAFCRj4uHqhZEEoWrKDbR5p
+
+
+

This is the inverse operation to bytes(keypair).

+

If the secret is in base58 format, you can use Keypair.from_base58_string:

+
from solders.keypair import Keypair
+
+b58_string = "5MaiiCavjCmn9Hs1o3eznqDEhRwxo7pXiAYez7keQUviUkauRiTMD8DrESdrNjN8zd9mTmVhRvBJeg5vhyvgrAhG"
+keypair = Keypair.from_base58_string(b58_string)
+print(f"Created Keypair with public key: {keypair.pubkey()}")
+
+
+
Created Keypair with public key: 5pVyoAeURQHNMVU7DmfMHvCDNmTEYXWfEwc136GYhTKG
+
+
+
+
+

Verifying a keypair

+

If you have a keypair and a pubkey, you can check whether the given pubkey +comes from that keypair:

+
from solders.keypair import Keypair
+from solders.pubkey import Pubkey
+
+public_key = Pubkey.from_string("24PNhTaNtomHhoy3fTRaMhAFCRj4uHqhZEEoWrKDbR5p")
+
+keys = [
+        174, 47, 154, 16, 202, 193, 206, 113, 199, 190, 53, 133, 169, 175, 31, 56, 222, 53, 138,
+        189, 224, 216, 117, 173, 10, 149, 53, 45, 73, 251, 237, 246, 15, 185, 186, 82, 177, 240,
+        148, 69, 241, 227, 167, 80, 141, 89, 240, 121, 121, 35, 172, 247, 68, 251, 226, 218, 48,
+        63, 176, 109, 168, 89, 238, 135,
+    ]
+keypair = Keypair.from_bytes(keys)
+
+assert keypair.pubkey() == public_key
+
+
+
+
+

Restoring a keypair from a mnemonic (seed phrase)

+
from solders.keypair import Keypair
+from mnemonic import Mnemonic
+
+mnemo = Mnemonic("english")
+seed = mnemo.to_seed("pill tomorrow foster begin walnut borrow virtual kick shift mutual shoe scatter")
+keypair = Keypair.from_seed(seed[:32])
+
+
+
+
+

Signing and verifying messages

+

The primary function of a keypair is to sign messages and enable verification of the signature. +Verification of a signature allows the recipient to be sure that the data was signed by the owner of a specific private key.

+
from solders.keypair import Keypair
+
+secret_key = [
+      174, 47, 154, 16, 202, 193, 206, 113, 199, 190, 53, 133, 169, 175, 31, 56, 222, 53, 138, 189, 224, 216, 117,
+      173, 10, 149, 53, 45, 73, 251, 237, 246, 15, 185, 186, 82, 177, 240, 148, 69, 241, 227, 167, 80, 141, 89, 240,
+      121, 121, 35, 172, 247, 68, 251, 226, 218, 48, 63, 176, 109, 168, 89, 238, 135,
+]
+keypair = Keypair.from_bytes(secret_key)
+message = b"The quick brown fox jumps over the lazy dog"
+signature = keypair.sign_message(message)
+assert signature.verify(keypair.pubkey(), message)
+
+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/tutorials/pubkeys.html b/tutorials/pubkeys.html new file mode 100644 index 00000000..62aa6179 --- /dev/null +++ b/tutorials/pubkeys.html @@ -0,0 +1,153 @@ + + + + + + + Pubkeys — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Pubkeys

+

The Pubkey class is used for both actual public keys, +and addresses that are off the ed25519 curve (e.g. program-derived addresses).

+
+

Checking if an address has a private key

+

Program-derived addresses (PDAs) do not lie on the ed25519 curve and thus do not have +private keys.

+
from solders.pubkey import Pubkey
+
+# Note that Keypair() will always give a public key that is valid for users
+key = Pubkey.from_string('5oNDL3swdJJF1g9DzJiZ4ynHXgszjAEpUkxVYejchzrY') # Valid public key
+assert key.is_on_curve() # Lies on the ed25519 curve and is suitable for users
+
+off_curve_address = Pubkey.from_string('4BJXYkfvg37zEmBbsacZjeQDpTNx91KppxFJxRqrz48e') # Valid public key
+assert not off_curve_address.is_on_curve() # Not on the ed25519 curve, therefore not suitable for users
+
+
+
+
+

Generating PDAs

+

The find_program_address static method takes an array of seed bytes and tries +adding a “bump” byte until it finds an off-curve address (i.e. a PDA):

+
from solders.pubkey import Pubkey
+
+program_id = Pubkey.from_string("G1DCNUQTSGHehwdLCAmRyAG8hf51eCHrLNUqkgGKYASj")
+pda, bump = Pubkey.find_program_address([b"test"], program_id)
+print(f"bump: {bump}; pda: {pda}")
+
+
+
bump: 253; pda: AfEjen5hHkTkEqy2yfyPhDQWq7dc7zbWU2aJmB3h8brU
+
+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/tutorials/rpc.html b/tutorials/rpc.html new file mode 100644 index 00000000..0c2412aa --- /dev/null +++ b/tutorials/rpc.html @@ -0,0 +1,176 @@ + + + + + + + RPC helpers — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

RPC helpers

+

While solders doesn’t talk to RPCs directly, it does help to build RPC request JSONs +and parse RPC responses. It even supports batch requests (calling multiple RPC methods in one go).

+
+

Building an RPC request

+

Here we build a getFeeForMessage request and convert it to a JSON string +using the .to_json() method:

+
>>> from solders.rpc.requests import GetFeeForMessage
+>>> from solders.commitment_config import CommitmentLevel
+>>> from solders.message import MessageV0
+>>> GetFeeForMessage(MessageV0.default(), commitment=CommitmentLevel.Processed).to_json()
+'{"method":"getFeeForMessage","jsonrpc":"2.0","id":0,"params":["gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",{"commitment":"processed"}]}'
+
+
+
+
+

Building a batch RPC request

+

We can combine a list of RPC request objects into a single JSON request using +the batch_to_json function:

+
>>> from solders.rpc.requests import batch_to_json, GetClusterNodes, GetEpochSchedule
+>>> batch_to_json([GetClusterNodes(0), GetEpochSchedule(1)])
+'[{"method":"getClusterNodes","jsonrpc":"2.0","id":0},{"method":"getEpochSchedule","jsonrpc":"2.0","id":1}]'
+
+
+
+
+

Parsing an RPC response

+

The rpc.repsonses module parses JSON RPC responses into strongly-typed objects:

+
from solders.rpc.responses import GetIdentityResp, RpcIdentity
+raw = """{
+"jsonrpc": "2.0",
+"result": { "identity": "2r1F4iWqVcb8M1DbAjQuFpebkQHY9hcVU4WuW2DJBppN" },
+"id": 1
+}"""
+parsed = GetIdentityResp.from_json(raw)
+assert isinstance(parsed, GetIdentityResp)
+assert str(parsed.value.identity) == "2r1F4iWqVcb8M1DbAjQuFpebkQHY9hcVU4WuW2DJBppN"
+
+
+
+
+

Parsing an RPC batch repsonse

+

The batch_from_json function parses an RPC batch response into a list of objects:

+
>>> from solders.rpc.responses import batch_from_json, GetBlockHeightResp, GetFirstAvailableBlockResp
+>>> raw = '[{ "jsonrpc": "2.0", "result": 1233, "id": 1 },{ "jsonrpc": "2.0", "result": 111, "id": 1 }]'
+>>> batch_from_json(raw, [GetBlockHeightResp, GetFirstAvailableBlockResp])
+[GetBlockHeightResp(
+    1233,
+), GetFirstAvailableBlockResp(
+    111,
+)]
+
+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/tutorials/transactions.html b/tutorials/transactions.html new file mode 100644 index 00000000..93fea95c --- /dev/null +++ b/tutorials/transactions.html @@ -0,0 +1,203 @@ + + + + + + + Transactions — solders 0.23.0 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Transactions

+

Solana has two kinds of transactions: “legacy” transactions represented by +the Transaction class and versioned transactions represented by the +VersionedTransaction class. These examples will focus on +versioned transactions which are what you should use if you have a choice.

+

These examples do not demonstrate sending transactions or fetching the latest blockhash, +which you can do with the send_transaction and get_latest_blockhash methods in +solana-py.

+
+

Sending SOL

+

Here we construct a transaction with one instruction - it sends SOL from one +wallet to another via the System Program:

+
from solders.hash import Hash
+from solders.keypair import Keypair
+from solders.message import MessageV0
+from solders.system_program import TransferParams, transfer
+from solders.transaction import VersionedTransaction
+
+sender = Keypair()  # let's pretend this account actually has SOL to send
+receiver = Keypair()
+ix = transfer(
+    TransferParams(
+        from_pubkey=sender.pubkey(), to_pubkey=receiver.pubkey(), lamports=1_000_000
+    )
+)
+blockhash = Hash.default()  # replace with a real blockhash using get_latest_blockhash
+msg = MessageV0.try_compile(
+    payer=sender.pubkey(),
+    instructions=[ix],
+    address_lookup_table_accounts=[],
+    recent_blockhash=blockhash,
+)
+tx = VersionedTransaction(msg, [sender])
+
+
+
+
+

Partial signing

+

Suppose you have a transaction that both Alice and Bob need to sign, and Bob doesn’t want to give +Alice his keypair because last time he did that all his apes got stolen.

+

One solution is for Alice to create a transaction containing her signature and a dummy signature using +the NullSigner class. She then serializes this transaction and sends it to Bob, who deserializes it +and replaces the dummy signature with his own signature:

+
from solders.hash import Hash
+from solders.instruction import AccountMeta, Instruction
+from solders.keypair import Keypair
+from solders.message import MessageV0, to_bytes_versioned
+from solders.null_signer import NullSigner
+from solders.pubkey import Pubkey
+from solders.transaction import VersionedTransaction
+
+keypair0 = Keypair()
+keypair1 = Keypair()
+ix = Instruction(
+    Pubkey.new_unique(), b"", [AccountMeta(keypair1.pubkey(), True, False)]
+)
+message = MessageV0.try_compile(keypair0.pubkey(), [ix], [], Hash.default())
+# sign with a real signer and a null signer
+signers = (keypair0, NullSigner(keypair1.pubkey()))
+partially_signed = VersionedTransaction(message, signers)
+serialized = bytes(partially_signed)
+deserialized = VersionedTransaction.from_bytes(serialized)
+assert deserialized == partially_signed
+deserialized_message = deserialized.message
+# find the null signer in the deserialized transaction
+keypair1_sig_index = next(
+    i
+    for i, key in enumerate(deserialized_message.account_keys)
+    if key == keypair1.pubkey()
+)
+sigs = deserialized.signatures
+# replace the null signature with a real signature
+sigs[keypair1_sig_index] = keypair1.sign_message(
+    to_bytes_versioned(deserialized_message)
+)
+deserialized.signatures = sigs
+fully_signed = VersionedTransaction(message, [keypair0, keypair1])
+assert deserialized.signatures == fully_signed.signatures
+assert deserialized == fully_signed
+assert bytes(deserialized) == bytes(fully_signed)
+
+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file