Skip to content

Commit 26d45d4

Browse files
committed
pr comment
1 parent c364488 commit 26d45d4

File tree

3 files changed

+48
-68
lines changed

3 files changed

+48
-68
lines changed

packages/fuels-core/src/types/transaction_builders.rs

Lines changed: 35 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -771,9 +771,6 @@ impl_tx_builder_trait!(UpgradeTransactionBuilder, UpgradeTransaction);
771771

772772
impl ScriptTransactionBuilder {
773773
async fn build(mut self, provider: impl DryRunner) -> Result<ScriptTransaction> {
774-
let consensus_parameters = provider.consensus_parameters().await?;
775-
self.intercept_burn(consensus_parameters.base_asset_id())?;
776-
777774
let is_using_predicates = self.is_using_predicates();
778775

779776
let tx = match self.build_strategy {
@@ -792,13 +789,8 @@ impl ScriptTransactionBuilder {
792789
fee_index,
793790
} => {
794791
let required_balances = std::mem::take(required_balances);
795-
self.assemble_tx(
796-
required_balances,
797-
fee_index,
798-
&consensus_parameters,
799-
provider,
800-
)
801-
.await?
792+
self.assemble_tx(required_balances, fee_index, provider)
793+
.await?
802794
}
803795
};
804796

@@ -812,9 +804,10 @@ impl ScriptTransactionBuilder {
812804
self,
813805
required_balances: Vec<RequiredBalance>,
814806
fee_index: u16,
815-
consensus_parameters: &ConsensusParameters,
816807
dry_runner: impl DryRunner,
817808
) -> Result<Script> {
809+
let consensus_parameters = dry_runner.consensus_parameters().await?;
810+
818811
let tx = FuelTransaction::script(
819812
0, // default value - will be overwritten
820813
self.script.clone(),
@@ -897,6 +890,9 @@ impl ScriptTransactionBuilder {
897890
}
898891

899892
async fn resolve_fuel_tx(self, dry_runner: impl DryRunner) -> Result<Script> {
893+
let consensus_parameters = dry_runner.consensus_parameters().await?;
894+
self.intercept_burn(consensus_parameters.base_asset_id())?;
895+
900896
let predefined_witnesses = self.witnesses.clone();
901897
let mut script_tx_estimator = self.script_tx_estimator(predefined_witnesses, &dry_runner);
902898

@@ -949,6 +945,9 @@ impl ScriptTransactionBuilder {
949945
}
950946

951947
async fn resolve_fuel_tx_for_state_reading(self, dry_runner: impl DryRunner) -> Result<Script> {
948+
let consensus_parameters = dry_runner.consensus_parameters().await?;
949+
self.intercept_burn(consensus_parameters.base_asset_id())?;
950+
952951
let predefined_witnesses = self.witnesses.clone();
953952
let mut script_tx_estimator = self.script_tx_estimator(predefined_witnesses, &dry_runner);
954953

@@ -1207,9 +1206,6 @@ fn add_variable_outputs(tx: &mut fuel_tx::Script, variable_outputs: usize) {
12071206

12081207
impl CreateTransactionBuilder {
12091208
pub async fn build(mut self, provider: impl DryRunner) -> Result<CreateTransaction> {
1210-
let consensus_parameters = provider.consensus_parameters().await?;
1211-
self.intercept_burn(consensus_parameters.base_asset_id())?;
1212-
12131209
let is_using_predicates = self.is_using_predicates();
12141210

12151211
let tx = match self.build_strategy {
@@ -1224,13 +1220,8 @@ impl CreateTransactionBuilder {
12241220
fee_index,
12251221
} => {
12261222
let required_balances = std::mem::take(required_balances);
1227-
self.assemble_tx(
1228-
required_balances,
1229-
fee_index,
1230-
&consensus_parameters,
1231-
provider,
1232-
)
1233-
.await?
1223+
self.assemble_tx(required_balances, fee_index, provider)
1224+
.await?
12341225
}
12351226
};
12361227

@@ -1244,9 +1235,9 @@ impl CreateTransactionBuilder {
12441235
self,
12451236
required_balances: Vec<RequiredBalance>,
12461237
fee_index: u16,
1247-
consensus_parameters: &ConsensusParameters,
12481238
dry_runner: impl DryRunner,
12491239
) -> Result<Create> {
1240+
let consensus_parameters = dry_runner.consensus_parameters().await?;
12501241
let num_witnesses = self.num_witnesses()?;
12511242

12521243
let tx = FuelTransaction::create(
@@ -1311,7 +1302,10 @@ impl CreateTransactionBuilder {
13111302
}
13121303

13131304
async fn resolve_fuel_tx(self, provider: impl DryRunner) -> Result<Create> {
1314-
let chain_id = provider.consensus_parameters().await?.chain_id();
1305+
let consensus_parameters = provider.consensus_parameters().await?;
1306+
self.intercept_burn(consensus_parameters.base_asset_id())?;
1307+
1308+
let chain_id = consensus_parameters.chain_id();
13151309
let num_witnesses = self.num_witnesses()?;
13161310
let policies = self.generate_fuel_policies()?;
13171311
let is_using_predicates = self.is_using_predicates();
@@ -1406,9 +1400,6 @@ impl CreateTransactionBuilder {
14061400

14071401
impl UploadTransactionBuilder {
14081402
pub async fn build(mut self, provider: impl DryRunner) -> Result<UploadTransaction> {
1409-
let consensus_parameters = provider.consensus_parameters().await?;
1410-
self.intercept_burn(consensus_parameters.base_asset_id())?;
1411-
14121403
let is_using_predicates = self.is_using_predicates();
14131404

14141405
let tx = match self.build_strategy {
@@ -1423,13 +1414,8 @@ impl UploadTransactionBuilder {
14231414
fee_index,
14241415
} => {
14251416
let required_balances = std::mem::take(required_balances);
1426-
self.assemble_tx(
1427-
required_balances,
1428-
fee_index,
1429-
&consensus_parameters,
1430-
provider,
1431-
)
1432-
.await?
1417+
self.assemble_tx(required_balances, fee_index, provider)
1418+
.await?
14331419
}
14341420
};
14351421

@@ -1443,9 +1429,10 @@ impl UploadTransactionBuilder {
14431429
self,
14441430
required_balances: Vec<RequiredBalance>,
14451431
fee_index: u16,
1446-
consensus_parameters: &ConsensusParameters,
14471432
dry_runner: impl DryRunner,
14481433
) -> Result<Upload> {
1434+
let consensus_parameters = dry_runner.consensus_parameters().await?;
1435+
14491436
let num_witnesses = self.num_witnesses()?;
14501437
let policies = self.generate_fuel_policies_assemble();
14511438

@@ -1515,7 +1502,10 @@ impl UploadTransactionBuilder {
15151502
}
15161503

15171504
async fn resolve_fuel_tx(self, provider: impl DryRunner) -> Result<Upload> {
1518-
let chain_id = provider.consensus_parameters().await?.chain_id();
1505+
let consensus_parameters = provider.consensus_parameters().await?;
1506+
self.intercept_burn(consensus_parameters.base_asset_id())?;
1507+
1508+
let chain_id = consensus_parameters.chain_id();
15191509
let num_witnesses = self.num_witnesses()?;
15201510
let policies = self.generate_fuel_policies()?;
15211511
let is_using_predicates = self.is_using_predicates();
@@ -1621,10 +1611,8 @@ impl UploadTransactionBuilder {
16211611

16221612
impl UpgradeTransactionBuilder {
16231613
pub async fn build(mut self, provider: impl DryRunner) -> Result<UpgradeTransaction> {
1624-
let consensus_parameters = provider.consensus_parameters().await?;
1625-
self.intercept_burn(consensus_parameters.base_asset_id())?;
1626-
16271614
let is_using_predicates = self.is_using_predicates();
1615+
16281616
let tx = match self.build_strategy {
16291617
Strategy::Complete => self.resolve_fuel_tx(&provider).await?,
16301618
Strategy::NoSignatures => {
@@ -1637,13 +1625,8 @@ impl UpgradeTransactionBuilder {
16371625
fee_index,
16381626
} => {
16391627
let required_balances = std::mem::take(required_balances);
1640-
self.assemble_tx(
1641-
required_balances,
1642-
fee_index,
1643-
&consensus_parameters,
1644-
provider,
1645-
)
1646-
.await?
1628+
self.assemble_tx(required_balances, fee_index, provider)
1629+
.await?
16471630
}
16481631
};
16491632
Ok(UpgradeTransaction {
@@ -1656,9 +1639,10 @@ impl UpgradeTransactionBuilder {
16561639
self,
16571640
required_balances: Vec<RequiredBalance>,
16581641
fee_index: u16,
1659-
consensus_parameters: &ConsensusParameters,
16601642
dry_runner: impl DryRunner,
16611643
) -> Result<Upgrade> {
1644+
let consensus_parameters = dry_runner.consensus_parameters().await?;
1645+
16621646
let num_witnesses = self.num_witnesses()?;
16631647
let policies = self.generate_fuel_policies_assemble();
16641648

@@ -1687,7 +1671,7 @@ impl UpgradeTransactionBuilder {
16871671
_ => {
16881672
return Err(error_transaction!(
16891673
Builder,
1690-
"`asseble_tx` did not return the right transaction type. Expected `upgrade`"
1674+
"`asseble_tx` did not return the right transactio type. Expected `upgrade`"
16911675
));
16921676
}
16931677
};
@@ -1722,7 +1706,10 @@ impl UpgradeTransactionBuilder {
17221706
}
17231707

17241708
async fn resolve_fuel_tx(self, provider: impl DryRunner) -> Result<Upgrade> {
1725-
let chain_id = provider.consensus_parameters().await?.chain_id();
1709+
let consensus_parameters = provider.consensus_parameters().await?;
1710+
self.intercept_burn(consensus_parameters.base_asset_id())?;
1711+
1712+
let chain_id = consensus_parameters.chain_id();
17261713
let num_witnesses = self.num_witnesses()?;
17271714
let policies = self.generate_fuel_policies()?;
17281715
let is_using_predicates = self.is_using_predicates();

packages/fuels-core/src/types/transaction_builders/blob.rs

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ use std::{fmt::Debug, iter::repeat, sync::Arc};
33
use async_trait::async_trait;
44
use fuel_crypto::Signature;
55
use fuel_tx::{
6-
BlobIdExt, Chargeable, ConsensusParameters, Output, Transaction as FuelTransaction,
7-
UniqueIdentifier, Witness,
6+
BlobIdExt, Chargeable, Output, Transaction as FuelTransaction, UniqueIdentifier, Witness,
87
field::{MaxFeeLimit, Policies as PoliciesField, WitnessLimit, Witnesses},
98
policies::{Policies, PolicyType},
109
};
@@ -151,9 +150,6 @@ impl BlobTransactionBuilder {
151150
}
152151

153152
pub async fn build(mut self, provider: impl DryRunner) -> Result<BlobTransaction> {
154-
let consensus_parameters = provider.consensus_parameters().await?;
155-
self.intercept_burn(consensus_parameters.base_asset_id())?;
156-
157153
let is_using_predicates = self.is_using_predicates();
158154

159155
let tx = match self.build_strategy {
@@ -168,13 +164,8 @@ impl BlobTransactionBuilder {
168164
fee_index,
169165
} => {
170166
let required_balances = std::mem::take(required_balances);
171-
self.assemble_tx(
172-
required_balances,
173-
fee_index,
174-
&consensus_parameters,
175-
provider,
176-
)
177-
.await?
167+
self.assemble_tx(required_balances, fee_index, provider)
168+
.await?
178169
}
179170
};
180171

@@ -188,9 +179,10 @@ impl BlobTransactionBuilder {
188179
mut self,
189180
required_balances: Vec<RequiredBalance>,
190181
fee_index: u16,
191-
consensus_parameters: &ConsensusParameters,
192182
dry_runner: impl DryRunner,
193183
) -> Result<fuel_tx::Blob> {
184+
let consensus_parameters = dry_runner.consensus_parameters().await?;
185+
194186
let free_witness_index = self.num_witnesses()?;
195187
let body = self.blob.as_blob_body(free_witness_index);
196188

@@ -260,7 +252,10 @@ impl BlobTransactionBuilder {
260252
}
261253

262254
async fn resolve_fuel_tx(mut self, provider: &impl DryRunner) -> Result<fuel_tx::Blob> {
263-
let chain_id = provider.consensus_parameters().await?.chain_id();
255+
let consensus_parameters = provider.consensus_parameters().await?;
256+
self.intercept_burn(consensus_parameters.base_asset_id())?;
257+
258+
let chain_id = consensus_parameters.chain_id();
264259

265260
let free_witness_index = self.num_witnesses()?;
266261
let body = self.blob.as_blob_body(free_witness_index);

packages/fuels-programs/src/calls/utils.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -312,12 +312,10 @@ pub(crate) async fn assemble_tx(
312312
let change_address = find_base_asset_change_address(&tb.outputs, base_asset_id);
313313
let required_balances = vec![account.required_balance(0, *base_asset_id, change_address)];
314314

315-
let mut tb = tb
316-
.with_build_strategy(ScriptBuildStrategy::AssembleTx {
317-
required_balances,
318-
fee_index,
319-
})
320-
.enable_burn(true); // assemble tx will add missing change outputs
315+
let mut tb = tb.with_build_strategy(ScriptBuildStrategy::AssembleTx {
316+
required_balances,
317+
fee_index,
318+
});
321319

322320
account.add_witnesses(&mut tb)?;
323321

0 commit comments

Comments
 (0)