fuels_programs/calls/traits/
contract_dep_configurator.rs1use fuels_core::types::bech32::Bech32ContractId;
2
3use crate::calls::{utils::sealed, ContractCall, ScriptCall};
4
5pub trait ContractDependencyConfigurator: sealed::Sealed {
6 fn append_external_contract(&mut self, contract_id: Bech32ContractId);
7 fn with_external_contracts(self, external_contracts: Vec<Bech32ContractId>) -> Self;
8}
9
10impl ContractDependencyConfigurator for ContractCall {
11 fn append_external_contract(&mut self, contract_id: Bech32ContractId) {
12 self.external_contracts.push(contract_id)
13 }
14
15 fn with_external_contracts(self, external_contracts: Vec<Bech32ContractId>) -> Self {
16 ContractCall {
17 external_contracts,
18 ..self
19 }
20 }
21}
22
23impl ContractDependencyConfigurator for ScriptCall {
24 fn append_external_contract(&mut self, contract_id: Bech32ContractId) {
25 self.external_contracts.push(contract_id)
26 }
27
28 fn with_external_contracts(self, external_contracts: Vec<Bech32ContractId>) -> Self {
29 ScriptCall {
30 external_contracts,
31 ..self
32 }
33 }
34}