Kamino Limit Order decoder
Decode Kamino Limit Order instructions, accounts and events in Rust with the carbon-kamino-limit-order-decoder crate.
On this page
carbon-kamino-limit-order-decoder decodes the instructions, accounts and events of the Kamino Limit Order program (LiMoM9rMhrdYrfzUCxQppvxCSG1FcrUK9G8uLq4A1GF): 15 instructions, 3 account types, 2 events. It is generated with Codama from the program's IDL; see decoders for how decoders plug into a pipeline.
| Crate | carbon-kamino-limit-order-decoder 2.0.0 |
| Install | cargo add carbon-kamino-limit-order-decoder@2. |
| Program ID | LiMoM9rMhrdYrfzUCxQppvxCSG1FcrUK9G8uLq4A1GF (carbon_) |
| Category | DEX & AMM |
| Decoder | carbon_ |
| Instruction enum | instructions:: |
| Account enum | accounts:: |
| Event enum | instructions:: |
| Features | serde, postgres, graphql (none enabled by default) |
| API docs | docs.rs/carbon-kamino-limit-order-decoder/2.0.0 |
| Source | decoders/kamino-limit-order-decoder |
Other DEX and AMM decoders: BonkSwap, FluxBeam, Gavel, Heaven, Jupiter Limit Order, Jupiter Limit Order v2, Lifinity AMM v2, Meteora DAMM v2, Meteora DLMM, Meteora Pools, OpenBook v2, Orca Whirlpools, PancakeSwap, Phoenix v1, PumpSwap, Raydium AMM v4, Raydium CLMM, Raydium CPMM, Raydium Stable Swap, Stabble Stable Swap, Stabble Weighted Swap. To decode several in one pipeline, see dEX and AMM decoders.
The serde feature derives Serialize/Deserialize on every type, postgres adds tables and processors for Postgres, and graphql adds a schema for the GraphQL server.
Usage#
This program crawls recent Kamino Limit Order transactions from the public RPC and prints every decoded AssertUserSwapBalancesEnd instruction. Add the dependencies:
cargo add carbon-core@2.0.0 carbon-kamino-limit-order-decoder@2.0.0 carbon-rpc-transaction-crawler-datasource@2.0.0 carbon-log-metrics@2.0.0 env_logger tokio --features tokio/fulluse {
carbon_core::{
error::CarbonResult, instruction::InstructionProcessorInputType, pipeline::Pipeline,
processor::Processor,
},
carbon_log_metrics::LogMetrics,
carbon_kamino_limit_order_decoder::{
instructions::KaminoLimitOrderInstruction, KaminoLimitOrderDecoder, PROGRAM_ID,
},
carbon_rpc_transaction_crawler_datasource::{ConnectionConfig, Filters, RpcTransactionCrawler},
std::sync::Arc,
};
#[tokio::main]
async fn main() -> CarbonResult<()> {
env_logger::init();
// Fetches the program's recent transactions over JSON-RPC, newest first.
let datasource = RpcTransactionCrawler::new(
"https://api.mainnet-beta.solana.com".to_string(),
PROGRAM_ID,
ConnectionConfig::default(),
Filters::new(None, None, None),
None,
);
Pipeline::builder()
.datasource(datasource)
.metrics(Arc::new(LogMetrics::new()))
.instruction(KaminoLimitOrderDecoder, InstructionLogger)
.build()?
.run()
.await
}
struct InstructionLogger;
impl Processor<InstructionProcessorInputType<'_, KaminoLimitOrderInstruction>> for InstructionLogger {
async fn process(
&mut self,
input: &InstructionProcessorInputType<'_, KaminoLimitOrderInstruction>,
) -> CarbonResult<()> {
let signature = input.metadata.transaction_metadata.signature;
if let KaminoLimitOrderInstruction::AssertUserSwapBalancesEnd { data, accounts, .. } = input.decoded_instruction {
println!("assert_user_swap_balances_end {signature}: {data:?} maker={}", accounts.maker);
}
Ok(())
}
}RUST_LOG=info cargo runEach AssertUserSwapBalancesEnd instruction prints one line with the transaction signature and the decoded AssertUserSwapBalancesEnd data. The public endpoint rate-limits requests, so the first lines can take a while; use your own RPC URL for anything beyond a test. See stream with RPC for the crawler options.
Events published with Anchor's emit_cpi! arrive as the CpiEvent instruction. Match them with KaminoLimitOrderInstruction:: (import instructions::); see Events. If CpiEvent never arrives, the program logs its events with emit! instead: decode them with decode_.
Decode accounts#
The transaction crawler emits transactions only. To decode accounts, use a datasource that emits account updates. This program subscribes to the program's accounts with programSubscribe on the public WebSocket endpoint and prints every decoded GlobalConfig account as it changes. Add the datasource and the Solana RPC types it takes:
cargo add carbon-rpc-program-subscribe-datasource@2.0.0 solana-client@4.2.2use {
carbon_core::{
account::AccountProcessorInputType, error::CarbonResult, pipeline::Pipeline,
processor::Processor,
},
carbon_log_metrics::LogMetrics,
carbon_kamino_limit_order_decoder::{
accounts::KaminoLimitOrderAccount, KaminoLimitOrderDecoder, PROGRAM_ID,
},
carbon_rpc_program_subscribe_datasource::{Filters, RpcProgramSubscribe},
solana_client::rpc_config::{RpcAccountInfoConfig, RpcProgramAccountsConfig, UiAccountEncoding},
std::sync::Arc,
};
#[tokio::main]
async fn main() -> CarbonResult<()> {
env_logger::init();
// Streams every change to an account owned by the program (programSubscribe).
let config = RpcProgramAccountsConfig {
account_config: RpcAccountInfoConfig {
encoding: Some(UiAccountEncoding::Base64),
..Default::default()
},
..Default::default()
};
let datasource = RpcProgramSubscribe::new(
"wss://api.mainnet-beta.solana.com".to_string(),
Filters::new(PROGRAM_ID, Some(config)),
);
Pipeline::builder()
.datasource(datasource)
.metrics(Arc::new(LogMetrics::new()))
.account(KaminoLimitOrderDecoder, AccountLogger)
.build()?
.run()
.await
}
struct AccountLogger;
impl Processor<AccountProcessorInputType<'_, KaminoLimitOrderAccount>> for AccountLogger {
async fn process(
&mut self,
input: &AccountProcessorInputType<'_, KaminoLimitOrderAccount>,
) -> CarbonResult<()> {
if let KaminoLimitOrderAccount::GlobalConfig(global_config) = &input.decoded_account.data {
println!("global_config {}: {global_config:?}", input.metadata.pubkey);
}
Ok(())
}
}RUST_LOG=info cargo runEach update to a GlobalConfig account prints its address and decoded fields; the program runs until you stop it. Cargo resolves solana-client to 4.2.2, the exact version the datasource pins, so both use the same RpcProgramAccountsConfig type. To load every existing account once instead of streaming changes, see load account state.
Instructions#
Variants of KaminoLimitOrderInstruction. Each is KaminoLimitOrderInstruction::, where data and accounts are the types listed under the variant, exported from carbon_. Discriminators are the leading bytes of the instruction data, in hex.
How an instruction decodes. The decoder returns a variant only when all of these hold; otherwise the instruction is skipped and no processor is called:
- The instruction's program ID is
LiMoM9rMhrdYrfzUCxQppvxCSG1FcrUK9G8uLq4A1GF. - The data starts with the variant's discriminator, and the rest deserializes into its data type.
- The instruction has at least as many accounts as the variant requires (the "Required accounts" count under each variant).
Accounts. They are matched by position, in the order listed. An account marked optional is None only when the instruction ends before it; Anchor programs pass the program ID as a placeholder for an omitted optional account, so check for Some(PROGRAM_ too. Accounts after the listed ones are in accounts. as AccountMetas. The decoder doesn't record whether an account signed or was writable: read that from input. and ., which follow the same order. It doesn't check signer, writable, owner or PDA constraints either; the program enforced those when the transaction executed, so a decoded instruction from a successful transaction already satisfied them.
AssertUserSwapBalancesEnd#
Discriminator a39dae5d1c7ffa88 · data AssertUserSwapBalancesEnd · accounts AssertUserSwapBalancesEndInstructionAccounts.
| Field | Type |
|---|---|
max_ | u64 |
min_ | u64 |
Required accounts: 7; extras go to remaining.
Fields of AssertUserSwapBalancesEndInstructionAccounts, in account order:
| # | Field | Type |
|---|---|---|
| 0 | maker | Pubkey |
| 1 | input_ta | Pubkey |
| 2 | output_ta | Pubkey |
| 3 | user_ | Pubkey |
| 4 | system_ | Pubkey |
| 5 | rent | Pubkey |
| 6 | sysvar_ | Pubkey |
| 7… | remaining | Vec< |
AssertUserSwapBalancesStart#
Discriminator 5ff1e2c1d6af8e8b · data AssertUserSwapBalancesStart · accounts AssertUserSwapBalancesStartInstructionAccounts.
No data fields.
Required accounts: 7; extras go to remaining.
Fields of AssertUserSwapBalancesStartInstructionAccounts, in account order:
| # | Field | Type |
|---|---|---|
| 0 | maker | Pubkey |
| 1 | input_ta | Pubkey |
| 2 | output_ta | Pubkey |
| 3 | user_ | Pubkey |
| 4 | system_ | Pubkey |
| 5 | rent | Pubkey |
| 6 | sysvar_ | Pubkey |
| 7… | remaining | Vec< |
CloseOrderAndClaimTip#
Discriminator f41b0ce22df7e62b · data CloseOrderAndClaimTip · accounts CloseOrderAndClaimTipInstructionAccounts.
No data fields.
Required accounts: 12; extras go to remaining.
Fields of CloseOrderAndClaimTipInstructionAccounts, in account order:
| # | Field | Type |
|---|---|---|
| 0 | maker | Pubkey |
| 1 | order | Pubkey |
| 2 | global_ | Pubkey |
| 3 | pda_ | Pubkey |
| 4 | input_mint | Pubkey |
| 5 | output_mint | Pubkey |
| 6 | maker_ | Pubkey |
| 7 | input_vault | Pubkey |
| 8 | input_ | Pubkey |
| 9 | system_ | Pubkey |
| 10 | event_ | Pubkey |
| 11 | program | Pubkey |
| 12… | remaining | Vec< |
CreateOrder#
Discriminator 8d3625cfedd2fad7 · data CreateOrder · accounts CreateOrderInstructionAccounts.
| Field | Type |
|---|---|
input_ | u64 |
output_ | u64 |
order_type | u8 |
Required accounts: 13; extras go to remaining.
Fields of CreateOrderInstructionAccounts, in account order:
| # | Field | Type |
|---|---|---|
| 0 | maker | Pubkey |
| 1 | global_ | Pubkey |
| 2 | pda_ | Pubkey |
| 3 | order | Pubkey |
| 4 | input_mint | Pubkey |
| 5 | output_mint | Pubkey |
| 6 | maker_ata | Pubkey |
| 7 | input_vault | Pubkey |
| 8 | input_ | Pubkey |
| 9 | output_ | Pubkey |
| 10 | system_ | Pubkey |
| 11 | event_ | Pubkey |
| 12 | program | Pubkey |
| 13… | remaining | Vec< |
FlashTakeOrderEnd#
Discriminator cef2d7bb8621e094 · data FlashTakeOrderEnd · accounts FlashTakeOrderEndInstructionAccounts.
| Field | Type |
|---|---|
input_ | u64 |
min_ | u64 |
tip_ | u64 |
Required accounts: 23; extras go to remaining.
Fields of FlashTakeOrderEndInstructionAccounts, in account order:
| # | Field | Type |
|---|---|---|
| 0 | taker | Pubkey |
| 1 | maker | Pubkey |
| 2 | global_ | Pubkey |
| 3 | pda_ | Pubkey |
| 4 | order | Pubkey |
| 5 | input_mint | Pubkey |
| 6 | output_mint | Pubkey |
| 7 | input_vault | Pubkey |
| 8 | taker_ | Pubkey |
| 9 | taker_ | Pubkey |
| 10 | intermediary_ | Option< |
| 11 | maker_ | Option< |
| 12 | express_ | Pubkey |
| 13 | express_ | Pubkey |
| 14 | sysvar_ | Pubkey |
| 15 | permission | Option< |
| 16 | config_ | Pubkey |
| 17 | input_ | Pubkey |
| 18 | output_ | Pubkey |
| 19 | system_ | Pubkey |
| 20 | rent | Pubkey |
| 21 | event_ | Pubkey |
| 22 | program | Pubkey |
| 23… | remaining | Vec< |
FlashTakeOrderStart#
Discriminator 7e35b00f276761f3 · data FlashTakeOrderStart · accounts FlashTakeOrderStartInstructionAccounts.
| Field | Type |
|---|---|
input_ | u64 |
min_ | u64 |
tip_ | u64 |
Required accounts: 23; extras go to remaining.
Fields of FlashTakeOrderStartInstructionAccounts, in account order:
| # | Field | Type |
|---|---|---|
| 0 | taker | Pubkey |
| 1 | maker | Pubkey |
| 2 | global_ | Pubkey |
| 3 | pda_ | Pubkey |
| 4 | order | Pubkey |
| 5 | input_mint | Pubkey |
| 6 | output_mint | Pubkey |
| 7 | input_vault | Pubkey |
| 8 | taker_ | Pubkey |
| 9 | taker_ | Pubkey |
| 10 | intermediary_ | Option< |
| 11 | maker_ | Option< |
| 12 | express_ | Pubkey |
| 13 | express_ | Pubkey |
| 14 | sysvar_ | Pubkey |
| 15 | permission | Option< |
| 16 | config_ | Pubkey |
| 17 | input_ | Pubkey |
| 18 | output_ | Pubkey |
| 19 | system_ | Pubkey |
| 20 | rent | Pubkey |
| 21 | event_ | Pubkey |
| 22 | program | Pubkey |
| 23… | remaining | Vec< |
InitializeGlobalConfig#
Discriminator 71d87a83e1d11637 · data InitializeGlobalConfig · accounts InitializeGlobalConfigInstructionAccounts.
No data fields.
Required accounts: 3; extras go to remaining.
Fields of InitializeGlobalConfigInstructionAccounts, in account order:
| # | Field | Type |
|---|---|---|
| 0 | admin_ | Pubkey |
| 1 | pda_ | Pubkey |
| 2 | global_ | Pubkey |
| 3… | remaining | Vec< |
InitializeVault#
Discriminator 30bfa32c47813fa4 · data InitializeVault · accounts InitializeVaultInstructionAccounts.
No data fields.
Required accounts: 7; extras go to remaining.
Fields of InitializeVaultInstructionAccounts, in account order:
| # | Field | Type |
|---|---|---|
| 0 | payer | Pubkey |
| 1 | global_ | Pubkey |
| 2 | pda_ | Pubkey |
| 3 | mint | Pubkey |
| 4 | vault | Pubkey |
| 5 | token_ | Pubkey |
| 6 | system_ | Pubkey |
| 7… | remaining | Vec< |
LogUserSwapBalancesEnd#
Discriminator 8c2ac65293902c71 · data LogUserSwapBalancesEnd · accounts LogUserSwapBalancesEndInstructionAccounts.
| Field | Type |
|---|---|
simulated_ | u64 |
simulated_ | u64 |
minimum_ | u64 |
swap_ | u64 |
simulated_ | u64 |
aggregator | u8 |
next_ | u8 |
padding | [u8; 2] |
Required accounts: 13; extras go to remaining.
Fields of LogUserSwapBalancesEndInstructionAccounts, in account order:
| # | Field | Type |
|---|---|---|
| 0 | maker | Pubkey |
| 1 | input_mint | Pubkey |
| 2 | output_mint | Pubkey |
| 3 | input_ta | Pubkey |
| 4 | output_ta | Pubkey |
| 5 | pda_ | Option< |
| 6 | swap_ | Pubkey |
| 7 | user_ | Pubkey |
| 8 | system_ | Pubkey |
| 9 | rent | Pubkey |
| 10 | sysvar_ | Pubkey |
| 11 | event_ | Pubkey |
| 12 | program | Pubkey |
| 13… | remaining | Vec< |
LogUserSwapBalancesStart#
Discriminator 856c170fe2d7b05f · data LogUserSwapBalancesStart · accounts LogUserSwapBalancesStartInstructionAccounts.
No data fields.
Required accounts: 13; extras go to remaining.
Fields of LogUserSwapBalancesStartInstructionAccounts, in account order:
| # | Field | Type |
|---|---|---|
| 0 | maker | Pubkey |
| 1 | input_mint | Pubkey |
| 2 | output_mint | Pubkey |
| 3 | input_ta | Pubkey |
| 4 | output_ta | Pubkey |
| 5 | pda_ | Option< |
| 6 | swap_ | Pubkey |
| 7 | user_ | Pubkey |
| 8 | system_ | Pubkey |
| 9 | rent | Pubkey |
| 10 | sysvar_ | Pubkey |
| 11 | event_ | Pubkey |
| 12 | program | Pubkey |
| 13… | remaining | Vec< |
TakeOrder#
Discriminator a3d014acdf41ffe4 · data TakeOrder · accounts TakeOrderInstructionAccounts.
| Field | Type |
|---|---|
input_ | u64 |
min_ | u64 |
tip_ | u64 |
Required accounts: 23; extras go to remaining.
Fields of TakeOrderInstructionAccounts, in account order:
| # | Field | Type |
|---|---|---|
| 0 | taker | Pubkey |
| 1 | maker | Pubkey |
| 2 | global_ | Pubkey |
| 3 | pda_ | Pubkey |
| 4 | order | Pubkey |
| 5 | input_mint | Pubkey |
| 6 | output_mint | Pubkey |
| 7 | input_vault | Pubkey |
| 8 | taker_ | Pubkey |
| 9 | taker_ | Pubkey |
| 10 | intermediary_ | Option< |
| 11 | maker_ | Option< |
| 12 | express_ | Pubkey |
| 13 | express_ | Pubkey |
| 14 | sysvar_ | Pubkey |
| 15 | permission | Option< |
| 16 | config_ | Pubkey |
| 17 | input_ | Pubkey |
| 18 | output_ | Pubkey |
| 19 | rent | Pubkey |
| 20 | system_ | Pubkey |
| 21 | event_ | Pubkey |
| 22 | program | Pubkey |
| 23… | remaining | Vec< |
UpdateGlobalConfig#
Discriminator a45482bd6f3afac8 · data UpdateGlobalConfig · accounts UpdateGlobalConfigInstructionAccounts.
| Field | Type |
|---|---|
mode | u16 |
value | [u8; 128] |
Required accounts: 2; extras go to remaining.
Fields of UpdateGlobalConfigInstructionAccounts, in account order:
| # | Field | Type |
|---|---|---|
| 0 | admin_ | Pubkey |
| 1 | global_ | Pubkey |
| 2… | remaining | Vec< |
UpdateGlobalConfigAdmin#
Discriminator b85717c19ceeaf77 · data UpdateGlobalConfigAdmin · accounts UpdateGlobalConfigAdminInstructionAccounts.
No data fields.
Required accounts: 2; extras go to remaining.
Fields of UpdateGlobalConfigAdminInstructionAccounts, in account order:
| # | Field | Type |
|---|---|---|
| 0 | admin_ | Pubkey |
| 1 | global_ | Pubkey |
| 2… | remaining | Vec< |
UpdateOrder#
Discriminator 3608d0cf2286efa8 · data UpdateOrder · accounts UpdateOrderInstructionAccounts.
| Field | Type |
|---|---|
mode | u16 |
value | Vec<u8> |
Required accounts: 3; extras go to remaining.
Fields of UpdateOrderInstructionAccounts, in account order:
| # | Field | Type |
|---|---|---|
| 0 | maker | Pubkey |
| 1 | global_ | Pubkey |
| 2 | order | Pubkey |
| 3… | remaining | Vec< |
WithdrawHostTip#
Discriminator 8cf669a550558f12 · data WithdrawHostTip · accounts WithdrawHostTipInstructionAccounts.
No data fields.
Required accounts: 4; extras go to remaining.
Fields of WithdrawHostTipInstructionAccounts, in account order:
| # | Field | Type |
|---|---|---|
| 0 | admin_ | Pubkey |
| 1 | global_ | Pubkey |
| 2 | pda_ | Pubkey |
| 3 | system_ | Pubkey |
| 4… | remaining | Vec< |
CpiEvent#
Anchor self-CPI that carries one of the program's events. data is the CpiEvent enum.
Discriminator e445a52e51cb9a1d · data CpiEvent · accounts CpiEventInstructionAccounts.
Required accounts: 2; extras go to remaining.
Fields of CpiEventInstructionAccounts, in account order:
| # | Field | Type |
|---|---|---|
| 0 | program | Pubkey |
| 1 | event_ | Pubkey |
| 2… | remaining | Vec< |
Accounts#
Variants of KaminoLimitOrderAccount. Each wraps a boxed struct from carbon_. decode_ only considers accounts owned by PROGRAM_ID and returns the first variant that matches.
GlobalConfig#
Discriminator 95089ccaa0fcb0d9 · accounts::.
| Field | Type | Description |
|---|---|---|
emergency_ | u8 | |
flash_ | u8 | |
new_ | u8 | |
orders_ | u8 | |
host_ | u16 | |
padding0 | [u8; 2] | |
order_ | u64 | The number of seconds after an order has been updated before it can be closed |
padding1 | [u64; 9] | |
pda_ | u64 | The total amount of lamports that were present in the pda_authority last time a program instructions which alters the pda_authority account was executed |
total_ | u64 | The total amount of tips that have been paid out - should be at least as much as the total lamports present in the pda_authority account |
host_ | u64 | The amount of tips the host is due to receive - in lamports, stored in the pda_authority account |
pda_ | Pubkey | |
pda_ | u64 | |
admin_ | Pubkey | |
admin_ | Pubkey | |
txn_ | u64 | |
ata_ | u64 | |
padding2 | [u64; 241] |
Order#
Discriminator 86addfb94d561c33 · accounts::.
| Field | Type | Description |
|---|---|---|
global_ | Pubkey | |
maker | Pubkey | |
input_mint | Pubkey | |
input_ | Pubkey | |
output_mint | Pubkey | |
output_ | Pubkey | |
initial_ | u64 | The amount of input token the maker wants to swap |
expected_ | u64 | The amount of output token the maker wants to receive |
remaining_ | u64 | The amount of input token remaining to be swapped |
filled_ | u64 | The amount of output token that the maker has received so far |
tip_amount | u64 | The amount of tips the maker is due to receive for this order - in lamports, stored in the pda_authority account |
number_ | u64 | The number of times the order has been filled |
order_type | u8 | |
status | u8 | |
in_ | u8 | |
flash_ | u8 | This is normally set to 0, but can be set to 1 to indicate that the order is part of a flash operation, in whcih case the order can not be modified until the flash operation is completed. |
permissionless | u8 | |
padding0 | [u8; 3] | |
last_ | u64 | |
flash_ | u64 | This is only used for flash operations, and is set to the blanance on the start operation, and than back to 0 on the end operation. It is used to compute the difference between start and end balances in order to compute the amount received from a potential swap |
counterparty | Pubkey | |
padding | [u64; 15] |
UserSwapBalancesState#
Discriminator 8ce4983ee71bf5c6 · accounts::.
| Field | Type |
|---|---|
user_ | u64 |
input_ | u64 |
output_ | u64 |
Events#
Variants of instructions::, decoded from the CpiEvent instruction. Each wraps a struct from carbon_. The discriminator is the 8-byte event discriminator that follows the e445a52e51cb9a1d CPI-event tag.
OrderDisplay#
Discriminator 5c65069ef898f13c · events::.
| Field | Type |
|---|---|
initial_ | u64 |
expected_ | u64 |
remaining_ | u64 |
filled_ | u64 |
tip_amount | u64 |
number_ | u64 |
on_ | u64 |
on_ | u64 |
order_type | u8 |
status | u8 |
last_ | u64 |
UserSwapBalanceDiffs#
Discriminator 8bcb231f19083e8f · events::.
| Field | Type |
|---|---|
user_ | u64 |
input_ | u64 |
output_ | u64 |
user_ | u64 |
input_ | u64 |
output_ | u64 |
swap_ | Pubkey |
simulated_ | u64 |
simulated_ | u64 |
minimum_ | u64 |
swap_ | u64 |
simulated_ | u64 |
aggregator | u8 |
next_ | u8 |
Types#
Types used by the instructions, accounts and events above, exported from carbon_.
OrderDisplay#
Struct types::. Same fields as the OrderDisplay event.
OrderStatus#
Enum types::.
| Variant |
|---|
Active |
Filled |
Cancelled |
OrderType#
Enum types::.
| Variant |
|---|
Vanilla |
UpdateGlobalConfigMode#
Enum types::.
| Variant |
|---|
UpdateEmergencyMode |
UpdateFlashTakeOrderBlocked |
UpdateBlockNewOrders |
UpdateBlockOrderTaking |
UpdateHostFeeBps |
UpdateAdminAuthorityCached |
UpdateOrderTakingPermissionless |
UpdateOrderCloseDelaySeconds |
UpdateTxnFeeCost |
UpdateAtaCreationCost |
UpdateGlobalConfigValue#
Enum types::.
| Variant | Fields |
|---|---|
Bool | bool |
U16 | u16 |
U64 | u64 |
Pubkey | Pubkey |
UpdateOrderMode#
Enum types::.
| Variant |
|---|
UpdatePermissionless |
UpdateCounterparty |
UserSwapBalanceDiffs#
Struct types::. Same fields as the UserSwapBalanceDiffs event.