Core
Execution
Drive a proposal through policy decryption, dWallet co-signing, and finalization.
Pre-alpha — not production ready
aura-sdk targets Solana devnet only. APIs may change without notice. Do not use for real funds until a stable release and audit are published.
After a proposal is created, execution follows a fixed sequence.
Flow
Public:
propose_transaction → execute_pending → finalize_execution
Confidential:
propose_confidential_transaction
→ request_policy_decryption
→ confirm_policy_decryption
→ execute_pending
→ finalize_executionrequest_policy_decryption
Request the Ika Encrypt network to decrypt the FHE policy output.
client.request_policy_decryption(
&operator,
accounts,
now,
&[&request_signer],
)?;confirm_policy_decryption
Apply the decrypted policy result once the Encrypt network has responded.
client.confirm_policy_decryption(
&operator,
treasury,
request_account,
now,
)?;execute_pending
Submit the approved proposal to the dWallet program for co-signing.
client.execute_pending(&operator, accounts, now)?;finalize_execution
Verify the dWallet co-signature and close the proposal.
client.finalize_execution(&operator, accounts, now)?;Complete Example
use aura_sdk::{AuraClient, ENCRYPT_DEVNET_PROGRAM_ID, DWALLET_DEVNET_PROGRAM_ID};
let now = chrono::Utc::now().timestamp();
// 1. Request decryption (confidential only)
client.request_policy_decryption(
&operator,
request_accounts,
now,
&[&request_keypair],
)?;
// 2. Confirm decryption (confidential only)
client.confirm_policy_decryption(
&operator,
treasury,
request_keypair.pubkey(),
now,
)?;
// 3. Execute
client.execute_pending(&operator, execute_accounts, now)?;
// 4. Finalize
client.finalize_execution(&operator, finalize_accounts, now)?;