Merge branch 'main' of github.com:mir-protocol/plonky2 into ripeMD

This commit is contained in:
Dmitry Vagner 2022-09-21 19:34:18 -07:00
commit 1867e5feb7
4 changed files with 17 additions and 2 deletions

View File

@ -512,6 +512,12 @@ mod tests {
assert_eq!(kernel.code, vec![push1, 42, push1, 42]);
}
#[test]
fn macro_with_reserved_prefix() {
// The name `repeat` should be allowed, even though `rep` is reserved.
parse_and_assemble(&["%macro repeat %endmacro", "%repeat"]);
}
#[test]
#[should_panic]
fn macro_with_wrong_vars() {

View File

@ -17,7 +17,7 @@ constant = ${ "@" ~ identifier }
item = { macro_def | macro_call | repeat | stack | global_label_decl | local_label_decl | macro_label_decl | bytes_item | push_instruction | prover_input_instruction | nullary_instruction }
macro_def = { ^"%macro" ~ identifier ~ paramlist? ~ item* ~ ^"%endmacro" }
macro_call = ${ "%" ~ !(^"macro" | ^"endmacro" | ^"rep" | ^"endrep" | ^"stack") ~ identifier ~ macro_arglist? }
macro_call = ${ "%" ~ !((^"macro" | ^"endmacro" | ^"rep" | ^"endrep" | ^"stack") ~ !identifier_char) ~ identifier ~ macro_arglist? }
repeat = { ^"%rep" ~ literal ~ item* ~ ^"%endrep" }
paramlist = { "(" ~ identifier ~ ("," ~ identifier)* ~ ")" }
macro_arglist = !{ "(" ~ push_target ~ ("," ~ push_target)* ~ ")" }

View File

@ -1,5 +1,7 @@
use std::collections::HashMap;
use eth_trie_utils::partial_trie::PartialTrie;
use ethereum_types::Address;
use ethereum_types::{Address, H256};
use plonky2::field::extension::Extendable;
use plonky2::field::polynomial::PolynomialValues;
use plonky2::field::types::Field;
@ -41,6 +43,10 @@ pub struct GenerationInputs {
/// storage tries, and nodes therein, that will be accessed by these transactions.
pub storage_tries: Vec<(Address, PartialTrie)>,
/// Mapping between smart contract code hashes and the contract byte code.
/// All account smart contracts that are invoked will have an entry present.
pub contract_code: HashMap<H256, Vec<u8>>,
pub block_metadata: BlockMetadata,
}

View File

@ -1,3 +1,5 @@
use std::collections::HashMap;
use eth_trie_utils::partial_trie::PartialTrie;
use hex_literal::hex;
use plonky2::field::goldilocks_field::GoldilocksField;
@ -31,6 +33,7 @@ fn test_simple_transfer() -> anyhow::Result<()> {
transactions_trie: PartialTrie::Empty,
receipts_trie: PartialTrie::Empty,
storage_tries: vec![],
contract_code: HashMap::new(),
block_metadata,
};