Skip to content
This repository was archived by the owner on Jul 5, 2024. It is now read-only.

Commit f82c3a7

Browse files
deduplicate and fix busmapping constraint
1 parent 37c3fd1 commit f82c3a7

File tree

1 file changed

+3
-26
lines changed

1 file changed

+3
-26
lines changed

bus-mapping/src/circuit_input_builder/input_state_ref.rs

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -608,18 +608,7 @@ impl<'a> CircuitInputStateRef<'a> {
608608
sender_balance_prev,
609609
sender_balance
610610
);
611-
// If receiver doesn't exist, create it
612-
if !receiver_exists && (!value.is_zero() || must_create) {
613-
self.push_op_reversible(
614-
step,
615-
AccountOp {
616-
address: receiver,
617-
field: AccountField::CodeHash,
618-
value: CodeDB::empty_code_hash().to_word(),
619-
value_prev: Word::zero(),
620-
},
621-
)?;
622-
}
611+
623612
if value.is_zero() {
624613
// Skip transfer if value == 0
625614
return Ok(());
@@ -634,19 +623,7 @@ impl<'a> CircuitInputStateRef<'a> {
634623
value_prev: sender_balance_prev,
635624
},
636625
)?;
637-
638-
let (_found, receiver_account) = self.sdb.get_account(&receiver);
639-
let receiver_balance_prev = receiver_account.balance;
640-
let receiver_balance = receiver_account.balance + value;
641-
self.push_op_reversible(
642-
step,
643-
AccountOp {
644-
address: receiver,
645-
field: AccountField::Balance,
646-
value: receiver_balance,
647-
value_prev: receiver_balance_prev,
648-
},
649-
)?;
626+
self.transfer_to(step, receiver, receiver_exists, must_create, value, true)?;
650627

651628
Ok(())
652629
}
@@ -683,7 +660,7 @@ impl<'a> CircuitInputStateRef<'a> {
683660
reversible: bool,
684661
) -> Result<(), Error> {
685662
// If receiver doesn't exist, create it
686-
if (!receiver_exists && !value.is_zero()) || must_create {
663+
if !receiver_exists && (!value.is_zero() || must_create) {
687664
self.account_write(
688665
step,
689666
receiver,

0 commit comments

Comments
 (0)