diff --git a/core/block_pkg_test.go b/core/block_pkg_test.go index 1387b40acb..d142ab6e58 100644 --- a/core/block_pkg_test.go +++ b/core/block_pkg_test.go @@ -57,7 +57,7 @@ func TestTransactionCommitmentPoseidon(t *testing.T) { c, err := transactionCommitmentPoseidon(txs) require.NoError(t, err) - expected := utils.HexToFelt(t, "0x6e067f82eefc8efa75b4ad389253757f4992eee0f81f0b43815fa56135ca801") + expected := utils.HexToFelt(t, "0x5ecb75d7a86984ec8ef9d5fbbe49ef8737c37246d33cf73037df1ceb412244e") assert.Equal(t, expected, c, "expected: %s, got: %s", expected, c) }) } diff --git a/core/transaction.go b/core/transaction.go index e2edfc1585..7d9a8ffcb6 100644 --- a/core/transaction.go +++ b/core/transaction.go @@ -129,6 +129,10 @@ type Transaction interface { TxVersion() *TransactionVersion } +type SignatureCarrier interface { + Signature() []*felt.Felt +} + var ( _ Transaction = (*DeployTransaction)(nil) _ Transaction = (*DeployAccountTransaction)(nil) @@ -672,10 +676,10 @@ func transactionCommitmentPoseidon(transactions []Transaction) (*felt.Felt, erro digest.Update(transaction.Hash()) switch transaction.(type) { - case *DeployTransaction, *L1HandlerTransaction: - digest.Update(&felt.Zero) - default: + case SignatureCarrier: digest.Update(transaction.Signature()...) + default: + digest.Update(&felt.Zero) } if _, err := trie.Put(new(felt.Felt).SetUint64(uint64(i)), digest.Finish()); err != nil {