sui_transaction_builder/intent/mod.rs
1use crate::Argument;
2use crate::TransactionBuilder;
3
4mod coin_with_balance;
5pub use coin_with_balance::CoinWithBalance;
6
7const MAX_GAS_OBJECTS: usize = 250; // 256
8#[allow(unused)]
9const MAX_COMMANDS: usize = 1000; // 1024
10#[allow(unused)]
11const MAX_INPUT_OBJECTS: usize = 2000; // 2048
12const MAX_ARGUMENTS: usize = 500; // 512
13
14pub(crate) type BoxError = Box<dyn std::error::Error + Send + Sync + 'static>;
15
16pub(crate) trait Intent: std::any::Any + Send + Sync {
17 fn register(self, builder: &mut TransactionBuilder) -> Argument;
18}
19
20#[async_trait::async_trait]
21pub(crate) trait IntentResolver: std::any::Any + std::fmt::Debug + Send {
22 // Perform any required resolutions
23 async fn resolve(
24 &self,
25 builder: &mut TransactionBuilder,
26 client: &mut sui_rpc::Client,
27 ) -> Result<(), BoxError>;
28}