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

Commit ee2917e

Browse files
deduplicate and fix busmapping constraint
1 parent 45a7ba3 commit ee2917e

File tree

1 file changed

+2
-30
lines changed

1 file changed

+2
-30
lines changed

bus-mapping/src/circuit_input_builder/input_state_ref.rs

Lines changed: 2 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -609,22 +609,6 @@ impl<'a> CircuitInputStateRef<'a> {
609609
sender_balance_prev,
610610
sender_balance
611611
);
612-
// If receiver doesn't exist, create it
613-
if !receiver_exists && (!value.is_zero() || must_create) {
614-
self.push_op_reversible(
615-
step,
616-
AccountOp {
617-
address: receiver,
618-
field: AccountField::CodeHash,
619-
value: CodeDB::empty_code_hash().to_word(),
620-
value_prev: Word::zero(),
621-
},
622-
)?;
623-
}
624-
if value.is_zero() {
625-
// Skip transfer if value == 0
626-
return Ok(());
627-
}
628612

629613
self.push_op_reversible(
630614
step,
@@ -635,19 +619,7 @@ impl<'a> CircuitInputStateRef<'a> {
635619
value_prev: sender_balance_prev,
636620
},
637621
)?;
638-
639-
let (_found, receiver_account) = self.sdb.get_account(&receiver);
640-
let receiver_balance_prev = receiver_account.balance;
641-
let receiver_balance = receiver_account.balance + value;
642-
self.push_op_reversible(
643-
step,
644-
AccountOp {
645-
address: receiver,
646-
field: AccountField::Balance,
647-
value: receiver_balance,
648-
value_prev: receiver_balance_prev,
649-
},
650-
)?;
622+
self.transfer_to(step, receiver, receiver_exists, must_create, value, true)?;
651623

652624
Ok(())
653625
}
@@ -684,7 +656,7 @@ impl<'a> CircuitInputStateRef<'a> {
684656
reversible: bool,
685657
) -> Result<(), Error> {
686658
// If receiver doesn't exist, create it
687-
if (!receiver_exists && !value.is_zero()) || must_create {
659+
if !receiver_exists && (!value.is_zero() || must_create) {
688660
self.account_write(
689661
step,
690662
receiver,

0 commit comments

Comments
 (0)