feat(amm): complete shared transaction client

This commit is contained in:
Ricardo Guilherme Schmidt
2026-08-10 11:22:44 -03:00
parent a7395aadb7
commit fb9df2fd96
23 changed files with 6353 additions and 63 deletions
+15 -11
View File
@@ -9,28 +9,32 @@ extern "C" {
* Accepts a tagged UTF-8 JSON request and returns an owned UTF-8 JSON envelope.
* Supported operation tags: initialize, update_config, create_price_observations,
* create_oracle_price_account, create_pool, add_liquidity, remove_liquidity,
* swap_exact_input, swap_exact_output, and sync_reserves.
* swap_exact_input, swap_exact_output, sync_reserves, and the five
* prepare_*_transaction task operations documented in docs/wire-api.md.
* Release the result with amm_client_free.
*/
char *amm_client_plan(const char *request_json);
/*
* Accepts a tagged UTF-8 JSON request and returns an owned UTF-8 JSON envelope.
* Supported operation tags: protocol_constants, pair_order, create_pool,
* prepare_create_pool, preview_add_liquidity, prepare_add_liquidity, add_liquidity,
* preview_remove_liquidity, prepare_remove_liquidity, remove_liquidity,
* preview_swap_exact_input, prepare_swap_exact_input, swap_exact_input,
* preview_swap_exact_output, prepare_swap_exact_output, swap_exact_output,
* sync_reserves, and create_oracle_price_account.
* Supported operation tags include protocol constants; config and pair discovery;
* pair inspection; caller-order opening preparation; economic quote/preparation
* operations; and prepare_create_pool_transaction,
* prepare_add_liquidity_transaction, prepare_remove_liquidity_transaction,
* prepare_swap_exact_input_transaction, and
* prepare_swap_exact_output_transaction. See docs/wire-api.md for fields.
* Release the result with amm_client_free.
*/
char *amm_client_quote(const char *request_json);
/*
* Raw u128 and u64 values are unsigned decimal JSON strings. Program IDs and
* instruction words are JSON u32 arrays. Account IDs are base58 strings and
* account data is hexadecimal. Responses use {"ok":true,"value":...} or
* {"ok":false,"error":{"code":...,"message":...}}.
* Raw u128, u64, and signed tick values are decimal JSON strings. Program IDs
* and instruction words are JSON u32 arrays. Account IDs are base58 strings and
* account data is hexadecimal. Requests may carry schema "amm-client.v1";
* schema-less legacy requests remain accepted. Responses use
* {"schema":"amm-client.v1","ok":true,"value":...} or the same envelope
* with ok=false and error={"code":...,"message":...}. Plan values contain
* typed instructionArgs as well as exact RISC Zero instructionWords.
*/
/*