mirror of
https://github.com/vacp2p/linea-monorepo.git
synced 2026-01-09 04:08:01 -05:00
* bump go-corset * fix compile errors * constraints: bump to v0.1.0-rc1 for beta-v1.2 * bump to latest go-corset * constraints: bump to beta-v1.2 / v0.1.0-rc2 * bump go-corset * bump zkevm bin * use next power of two value for non-power of two size columns (e.g., MMIO) * remove a check for the power of two size * bump corset to 9.7.18 * bump zkevm.bin * bump corset to v9.7.18 * update zkevm.bin * added interleaved to the compilediop columns * adjusted size for corset columns * Prover/Codehash Non Power of Two Column Size (#618) * Revert "adjusted size for corset columns" This reverts commit b1a7319fa586319a04ba57f421f10b55492124ff. * fixed bug and added panic message for a non power of two size column * removing panic * reinsteaded the panic --------- Co-authored-by: gusiri <dreamerty@postech.ac.kr> * adjusted size for corset columns * constraints: bump to beta v1.2/v0.1.0-rc3 * update constraints version to rc3 * bump to latest go-corset * apply hotfix for BLOCKDATA * move NextPowerOfTwo unit test to utils * add logs for adjusted columns with non-power of two size * turn off trace version check * fix golangcli-lint * Prover/fix public input timestamps from new blockdata (#644) * updated timestamp fetcher and arithmetization mock data for unit testing. * fix(codehash): uses 0x0 for the codehash of non-existing accounts instead of the default EOA codehash * fix(mimccodehash): unimport the rom codehash for initialization code * fixup(execDataHash): revert the exec-data hash check * timestamp byte change * fix(execdatahash): adds the real blockhash in the execdata hash instead of 0x0 * fixup previous commit * fixup(build): removes imports * Revert "fixup(execDataHash): revert the exec-data hash check" This reverts commit eb8d984e13fab627a853dc98b2c94980a7eed0b3. * fix(consistency): adds a smaller size to the consistency module * feat(mimc): alex -- mimc simplification -- start * optimize factorExpression * feat(exec): uses the ProveCheck in the execution proof * Revert "feat(mimc): alex -- mimc simplification -- start" This reverts commit 184771b92746070dedb5ca356ed81f989a3daea5. * fix (public-input): changed the hashing method to match compression * perf(mem): adds a detector for constant regular column. * fixup(mem): support the edge-case for smartvectors of size 1 * fix(codehash): support the case where the ROM is empty * feat(csv): adds a feature to rename columns when using fmtcsv * fixup(codehash): supports the case where no codehash are available * test(codehash): adds test for empty rom or statesummary * fix(ss-connect): skip the integration connector test --------- Co-authored-by: gusiri <dreamerty@postech.ac.kr> Co-authored-by: Soleimani193 <azam.soleimanian@ens.fr> Co-authored-by: Arijit Dutta <37040536+arijitdutta67@users.noreply.github.com> Co-authored-by: Bogdan Ursu <bogdanursuoffice@gmail.com>
56 lines
1.8 KiB
Go
56 lines
1.8 KiB
Go
package zkevm
|
|
|
|
import (
|
|
"fmt"
|
|
"math/big"
|
|
|
|
"github.com/consensys/linea-monorepo/prover/backend/ethereum"
|
|
"github.com/consensys/linea-monorepo/prover/backend/execution/statemanager"
|
|
"github.com/consensys/linea-monorepo/prover/utils"
|
|
"github.com/consensys/linea-monorepo/prover/utils/types"
|
|
"github.com/ethereum/go-ethereum/common"
|
|
)
|
|
|
|
// Witness is a collection of prover inputs used to derive an assignment to the
|
|
// full proving scheme.
|
|
type Witness struct {
|
|
// ExecTracesFPath is the filepath toward the execution traces to use for
|
|
// proof trace generation.
|
|
ExecTracesFPath string
|
|
// StateManager traces
|
|
SMTraces [][]statemanager.DecodedTrace
|
|
// TxSignatures lists the signatures of the transaction as found
|
|
// chronologically in the block.
|
|
TxSignatures []ethereum.Signature
|
|
// TxHashes lists the hash of the transactions in the order found in the
|
|
// block.
|
|
TxHashes [][32]byte
|
|
L2BridgeAddress common.Address
|
|
ChainID uint
|
|
// BlockHashList is the list of the block-hashes of the proven blocks
|
|
BlockHashList []types.FullBytes32
|
|
}
|
|
|
|
// TxSignatureGetter implements the ecdsa.TxSignatureGetter interface
|
|
func (w Witness) TxSignatureGetter(i int, txHash []byte) (r, s, v *big.Int, err error) {
|
|
|
|
if i > len(w.TxHashes) {
|
|
return nil, nil, nil, fmt.Errorf("requested txID outgoes the total number of transactions we found in the conflation")
|
|
}
|
|
|
|
if utils.HexEncodeToString(txHash) != utils.HexEncodeToString(w.TxHashes[i][:]) {
|
|
return nil, nil, nil, fmt.Errorf(
|
|
"requested txID=%v while txnrlp expects it to have it for txhash=%v but the blocks transaction has hash=%v",
|
|
i, utils.HexEncodeToString(w.TxHashes[i][:]), utils.HexEncodeToString(txHash),
|
|
)
|
|
}
|
|
|
|
sig := w.TxSignatures[i]
|
|
|
|
r, _ = new(big.Int).SetString(sig.R, 0)
|
|
s, _ = new(big.Int).SetString(sig.S, 0)
|
|
v, _ = new(big.Int).SetString(sig.V, 0)
|
|
|
|
return r, s, v, nil
|
|
}
|