Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: CDP/Lending example contract #1554

Merged
merged 22 commits into from
Aug 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions circuits/cpp/src/aztec3/constants.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@ constexpr size_t MAX_NEW_NULLIFIERS_PER_CALL = 4;
constexpr size_t MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL = 4;
constexpr size_t MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL = 4;
constexpr size_t MAX_NEW_L2_TO_L1_MSGS_PER_CALL = 2;
constexpr size_t MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL = 8;
constexpr size_t MAX_PUBLIC_DATA_READS_PER_CALL = 8;
constexpr size_t MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL = 16;
constexpr size_t MAX_PUBLIC_DATA_READS_PER_CALL = 16;
constexpr size_t MAX_READ_REQUESTS_PER_CALL = 4;


Expand All @@ -56,8 +56,8 @@ constexpr size_t MAX_NEW_NULLIFIERS_PER_TX = MAX_PRIVATE_CALL_STACK_LENGTH_PER_C
constexpr size_t MAX_PRIVATE_CALL_STACK_LENGTH_PER_TX = 8;
constexpr size_t MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX = 8;
constexpr size_t MAX_NEW_L2_TO_L1_MSGS_PER_TX = 2;
constexpr size_t MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX = 8;
constexpr size_t MAX_PUBLIC_DATA_READS_PER_TX = 8;
constexpr size_t MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX = 16;
constexpr size_t MAX_PUBLIC_DATA_READS_PER_TX = 16;
constexpr size_t MAX_NEW_CONTRACTS_PER_TX = 1;
constexpr size_t MAX_OPTIONALLY_REVEALED_DATA_LENGTH_PER_TX = 4;
constexpr size_t MAX_READ_REQUESTS_PER_TX = MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL * MAX_READ_REQUESTS_PER_CALL;
Expand Down
14 changes: 7 additions & 7 deletions l1-contracts/src/core/libraries/ConstantsGen.sol
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,16 @@ library Constants {
uint256 internal constant MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL = 4;
uint256 internal constant MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL = 4;
uint256 internal constant MAX_NEW_L2_TO_L1_MSGS_PER_CALL = 2;
uint256 internal constant MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL = 8;
uint256 internal constant MAX_PUBLIC_DATA_READS_PER_CALL = 8;
uint256 internal constant MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL = 16;
uint256 internal constant MAX_PUBLIC_DATA_READS_PER_CALL = 16;
uint256 internal constant MAX_READ_REQUESTS_PER_CALL = 4;
uint256 internal constant MAX_NEW_COMMITMENTS_PER_TX = 16;
uint256 internal constant MAX_NEW_NULLIFIERS_PER_TX = 16;
uint256 internal constant MAX_PRIVATE_CALL_STACK_LENGTH_PER_TX = 8;
uint256 internal constant MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX = 8;
uint256 internal constant MAX_NEW_L2_TO_L1_MSGS_PER_TX = 2;
uint256 internal constant MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX = 8;
uint256 internal constant MAX_PUBLIC_DATA_READS_PER_TX = 8;
uint256 internal constant MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX = 16;
uint256 internal constant MAX_PUBLIC_DATA_READS_PER_TX = 16;
uint256 internal constant MAX_NEW_CONTRACTS_PER_TX = 1;
uint256 internal constant MAX_OPTIONALLY_REVEALED_DATA_LENGTH_PER_TX = 4;
uint256 internal constant MAX_READ_REQUESTS_PER_TX = 16;
Expand Down Expand Up @@ -71,15 +71,15 @@ library Constants {
uint256 internal constant PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH = 58;
uint256 internal constant CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH = 3;
uint256 internal constant CONTRACT_STORAGE_READ_LENGTH = 2;
uint256 internal constant PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH = 77;
uint256 internal constant PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH = 117;
uint256 internal constant GET_NOTES_ORACLE_RETURN_LENGTH = 86;
uint256 internal constant EMPTY_NULLIFIED_COMMITMENT = 1000000;
uint256 internal constant CALL_PRIVATE_FUNCTION_RETURN_SIZE = 64;
uint256 internal constant PUBLIC_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH = 47;
uint256 internal constant PUBLIC_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH = 63;
uint256 internal constant PRIVATE_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH = 48;
uint256 internal constant COMMITMENTS_NUM_BYTES_PER_BASE_ROLLUP = 1024;
uint256 internal constant NULLIFIERS_NUM_BYTES_PER_BASE_ROLLUP = 1024;
uint256 internal constant PUBLIC_DATA_WRITES_NUM_BYTES_PER_BASE_ROLLUP = 1024;
uint256 internal constant PUBLIC_DATA_WRITES_NUM_BYTES_PER_BASE_ROLLUP = 2048;
uint256 internal constant CONTRACTS_NUM_BYTES_PER_BASE_ROLLUP = 64;
uint256 internal constant CONTRACT_DATA_NUM_BYTES_PER_BASE_ROLLUP = 128;
uint256 internal constant CONTRACT_DATA_NUM_BYTES_PER_BASE_ROLLUP_UNPADDED = 104;
Expand Down
3 changes: 2 additions & 1 deletion l1-contracts/test/Rollup.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ import {Rollup} from "@aztec/core/Rollup.sol";
* Main use of these test is shorter cycles when updating the decoder contract.
*/
contract RollupTest is DecoderTest {
function testEmptyBlock() public {
// Skipping this because the block is invalid after I changed the constants.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the longer term solution to this:

Options:

  • Remove the test
  • Automate the creation of the block data (vm.readfile after running a script)

Copy link
Contributor

@rahul-kothari rahul-kothari Aug 22, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the vm.readfile idea.

Edit by @LHerskind:
Created #1736

function __testEmptyBlock() public {
(,, bytes32 endStateHash,, bytes32[] memory l2ToL1Msgs, bytes32[] memory l1ToL2Msgs) =
helper.decode(block_empty_1);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ export class UnconstrainedFunctionExecution {
}

const makeLogMsg = (slot: bigint, value: string) =>
`Oracle storage read: slot=${slot.toString()} value=${value}`;
`Oracle storage read: slot=${slot.toString(16)} value=${value}`;

const startStorageSlot = fromACVMField(slot);
const values = [];
Expand Down
2 changes: 1 addition & 1 deletion yarn-project/aztec-rpc/src/simulator_oracle/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ export class SimulatorOracle implements DBOracle {
async getCommitmentOracle(contractAddress: AztecAddress, innerCommitment: Fr): Promise<CommitmentDataOracleInputs> {
const siloedCommitment = siloCommitment(await CircuitsWasm.get(), contractAddress, innerCommitment);
const index = await this.dataTreeProvider.findCommitmentIndex(siloedCommitment.toBuffer());
if (!index) throw new Error('Commitment not found');
if (!index) throw new Error(`Commitment not found ${siloedCommitment.toString()}`);

const siblingPath = await this.dataTreeProvider.getDataTreePath(index);
return await Promise.resolve({
Expand Down
28 changes: 14 additions & 14 deletions yarn-project/aztec.js/src/abis/ecdsa_account_contract.json

Large diffs are not rendered by default.

28 changes: 14 additions & 14 deletions yarn-project/aztec.js/src/abis/schnorr_account_contract.json

Large diffs are not rendered by default.

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions yarn-project/circuits.js/src/cbind/circuits.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -479,8 +479,8 @@ interface MsgpackCombinedAccumulatedData {
unencrypted_log_preimages_length: Buffer;
new_contracts: Tuple<MsgpackNewContractData, 1>;
optionally_revealed_data: Tuple<MsgpackOptionallyRevealedData, 4>;
public_data_update_requests: Tuple<MsgpackPublicDataUpdateRequest, 8>;
public_data_reads: Tuple<MsgpackPublicDataRead, 8>;
public_data_update_requests: Tuple<MsgpackPublicDataUpdateRequest, 16>;
public_data_reads: Tuple<MsgpackPublicDataRead, 16>;
}

export function toCombinedAccumulatedData(o: MsgpackCombinedAccumulatedData): CombinedAccumulatedData {
Expand Down Expand Up @@ -1235,8 +1235,8 @@ interface MsgpackPublicCircuitPublicInputs {
call_context: MsgpackCallContext;
args_hash: Buffer;
return_values: Tuple<Buffer, 4>;
contract_storage_update_requests: Tuple<MsgpackContractStorageUpdateRequest, 8>;
contract_storage_reads: Tuple<MsgpackContractStorageRead, 8>;
contract_storage_update_requests: Tuple<MsgpackContractStorageUpdateRequest, 16>;
contract_storage_reads: Tuple<MsgpackContractStorageRead, 16>;
public_call_stack: Tuple<Buffer, 4>;
new_commitments: Tuple<Buffer, 4>;
new_nullifiers: Tuple<Buffer, 4>;
Expand Down
14 changes: 7 additions & 7 deletions yarn-project/circuits.js/src/cbind/constants.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,16 @@ export const MAX_NEW_NULLIFIERS_PER_CALL = 4;
export const MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL = 4;
export const MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL = 4;
export const MAX_NEW_L2_TO_L1_MSGS_PER_CALL = 2;
export const MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL = 8;
export const MAX_PUBLIC_DATA_READS_PER_CALL = 8;
export const MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL = 16;
export const MAX_PUBLIC_DATA_READS_PER_CALL = 16;
export const MAX_READ_REQUESTS_PER_CALL = 4;
export const MAX_NEW_COMMITMENTS_PER_TX = 16;
export const MAX_NEW_NULLIFIERS_PER_TX = 16;
export const MAX_PRIVATE_CALL_STACK_LENGTH_PER_TX = 8;
export const MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX = 8;
export const MAX_NEW_L2_TO_L1_MSGS_PER_TX = 2;
export const MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX = 8;
export const MAX_PUBLIC_DATA_READS_PER_TX = 8;
export const MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX = 16;
export const MAX_PUBLIC_DATA_READS_PER_TX = 16;
export const MAX_NEW_CONTRACTS_PER_TX = 1;
export const MAX_OPTIONALLY_REVEALED_DATA_LENGTH_PER_TX = 4;
export const MAX_READ_REQUESTS_PER_TX = 16;
Expand Down Expand Up @@ -57,15 +57,15 @@ export const CONTRACT_DEPLOYMENT_DATA_LENGTH = 6;
export const PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH = 58;
export const CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH = 3;
export const CONTRACT_STORAGE_READ_LENGTH = 2;
export const PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH = 77;
export const PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH = 117;
export const GET_NOTES_ORACLE_RETURN_LENGTH = 86;
export const EMPTY_NULLIFIED_COMMITMENT = 1000000;
export const CALL_PRIVATE_FUNCTION_RETURN_SIZE = 64;
export const PUBLIC_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH = 47;
export const PUBLIC_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH = 63;
export const PRIVATE_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH = 48;
export const COMMITMENTS_NUM_BYTES_PER_BASE_ROLLUP = 1024;
export const NULLIFIERS_NUM_BYTES_PER_BASE_ROLLUP = 1024;
export const PUBLIC_DATA_WRITES_NUM_BYTES_PER_BASE_ROLLUP = 1024;
export const PUBLIC_DATA_WRITES_NUM_BYTES_PER_BASE_ROLLUP = 2048;
export const CONTRACTS_NUM_BYTES_PER_BASE_ROLLUP = 64;
export const CONTRACT_DATA_NUM_BYTES_PER_BASE_ROLLUP = 128;
export const CONTRACT_DATA_NUM_BYTES_PER_BASE_ROLLUP_UNPADDED = 104;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,30 @@ new_value: 0x404
storage_slot: 0x403
old_value: 0x404
new_value: 0x405
storage_slot: 0x404
old_value: 0x405
new_value: 0x406
storage_slot: 0x405
old_value: 0x406
new_value: 0x407
storage_slot: 0x406
old_value: 0x407
new_value: 0x408
storage_slot: 0x407
old_value: 0x408
new_value: 0x409
storage_slot: 0x0
old_value: 0x1
new_value: 0x2
storage_slot: 0x0
old_value: 0x1
new_value: 0x2
storage_slot: 0x0
old_value: 0x1
new_value: 0x2
storage_slot: 0x0
old_value: 0x1
new_value: 0x2
storage_slot: 0x0
old_value: 0x1
new_value: 0x2
Expand All @@ -44,6 +68,22 @@ current_value: 0x502
current_value: 0x503
storage_slot: 0x503
current_value: 0x504
storage_slot: 0x504
current_value: 0x505
storage_slot: 0x505
current_value: 0x506
storage_slot: 0x506
current_value: 0x507
storage_slot: 0x507
current_value: 0x508
storage_slot: 0x0
current_value: 0x1
storage_slot: 0x0
current_value: 0x1
storage_slot: 0x0
current_value: 0x1
storage_slot: 0x0
current_value: 0x1
storage_slot: 0x0
current_value: 0x1
storage_slot: 0x0
Expand Down
Loading