Skip to content

Commit 8311c65

Browse files
author
sklppy88
committed
init
1 parent dfca718 commit 8311c65

File tree

8 files changed

+42
-0
lines changed

8 files changed

+42
-0
lines changed

noir-projects/aztec-nr/aztec/src/oracle/notes.nr

+12
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,18 @@ unconstrained fn get_app_tagging_secret_oracle(
221221
_recipient: AztecAddress,
222222
) -> [Field; INDEXED_TAGGING_SECRET_LENGTH] {}
223223

224+
225+
pub unconstrained fn increment_app_tagging_secret(
226+
to_increment: IndexedTaggingSecret,
227+
) {
228+
increment_app_tagging_secret_oracle(to_increment);
229+
}
230+
231+
#[oracle(incrementAppTaggingSecret)]
232+
unconstrained fn increment_app_tagging_secret_oracle(
233+
to_increment: IndexedTaggingSecret,
234+
) {}
235+
224236
/// Returns the tagging secrets for a given recipient and all the senders in PXE's address book,
225237
// siloed for the current contract address.
226238
/// Includes the last known index used for tagging with this secret.

yarn-project/circuits.js/src/structs/indexed_tagging_secret.ts

+4
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,8 @@ export class IndexedTaggingSecret {
66
toFields(): Fr[] {
77
return [this.secret, new Fr(this.index)];
88
}
9+
10+
static fromFields(fields: Fr[]): IndexedTaggingSecret {
11+
return new this(fields[0], fields[1].toNumber());
12+
}
913
}

yarn-project/pxe/src/simulator_oracle/index.ts

+4
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,10 @@ export class SimulatorOracle implements DBOracle {
252252
return new IndexedTaggingSecret(secret, index);
253253
}
254254

255+
public async incrementAppTaggingSecret(indexedSecret: IndexedTaggingSecret): Promise<void> {
256+
await this.db.incrementTaggingSecretsIndexes([indexedSecret.secret]);
257+
}
258+
255259
/**
256260
* Returns the siloed tagging secrets for a given recipient and all the senders in the address book
257261
* @param contractAddress - The contract address to silo the secret for

yarn-project/simulator/src/acvm/oracle/oracle.ts

+7
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { MerkleTreeId, UnencryptedL2Log } from '@aztec/circuit-types';
2+
import { IndexedTaggingSecret } from '@aztec/circuits.js';
23
import { FunctionSelector, NoteSelector } from '@aztec/foundation/abi';
34
import { AztecAddress } from '@aztec/foundation/aztec-address';
45
import { Fr } from '@aztec/foundation/fields';
@@ -417,6 +418,12 @@ export class Oracle {
417418
return taggingSecret.toFields().map(toACVMField);
418419
}
419420

421+
async incrementAppTaggingSecret(indexedTaggingSecret: ACVMField[]) {
422+
await this.typedOracle.incrementAppTaggingSecret(
423+
IndexedTaggingSecret.fromFields(indexedTaggingSecret.map(fromACVMField)),
424+
);
425+
}
426+
420427
async getAppTaggingSecretsForSenders([recipient]: ACVMField[]): Promise<ACVMField[]> {
421428
const taggingSecrets = await this.typedOracle.getAppTaggingSecretsForSenders(AztecAddress.fromString(recipient));
422429
return taggingSecrets.flatMap(taggingSecret => taggingSecret.toFields().map(toACVMField));

yarn-project/simulator/src/acvm/oracle/typed_oracle.ts

+4
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,10 @@ export abstract class TypedOracle {
258258
throw new OracleMethodNotAvailableError('getAppTaggingSecret');
259259
}
260260

261+
incrementAppTaggingSecret(_indexedTaggingSecret: IndexedTaggingSecret): Promise<void> {
262+
throw new OracleMethodNotAvailableError('incrementAppTaggingSecret');
263+
}
264+
261265
getAppTaggingSecretsForSenders(_recipient: AztecAddress): Promise<IndexedTaggingSecret[]> {
262266
throw new OracleMethodNotAvailableError('getAppTaggingSecretsForSenders');
263267
}

yarn-project/simulator/src/client/client_execution_context.ts

+5
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import {
1717
CallContext,
1818
FunctionSelector,
1919
type Header,
20+
IndexedTaggingSecret,
2021
PRIVATE_CONTEXT_INPUTS_LENGTH,
2122
PUBLIC_DISPATCH_SELECTOR,
2223
PrivateContextInputs,
@@ -609,4 +610,8 @@ export class ClientExecutionContext extends ViewDataOracle {
609610
public getDebugFunctionName() {
610611
return this.db.getDebugFunctionName(this.contractAddress, this.callContext.functionSelector);
611612
}
613+
614+
public override async incrementAppTaggingSecret(indexedTaggingSecret: IndexedTaggingSecret) {
615+
await this.db.incrementAppTaggingSecret(indexedTaggingSecret);
616+
}
612617
}

yarn-project/simulator/src/client/db_oracle.ts

+2
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,8 @@ export interface DBOracle extends CommitmentsDB {
209209
recipient: AztecAddress,
210210
): Promise<IndexedTaggingSecret>;
211211

212+
incrementAppTaggingSecret(indexedSecret: IndexedTaggingSecret): Promise<void>;
213+
212214
/**
213215
* Returns the siloed tagging secrets for a given recipient and all the senders in the address book
214216
* @param contractAddress - The contract address to silo the secret for

yarn-project/txe/src/oracle/txe_oracle.ts

+4
Original file line numberDiff line numberDiff line change
@@ -752,6 +752,10 @@ export class TXE implements TypedOracle {
752752
return;
753753
}
754754

755+
async incrementAppTaggingSecret(indexedSecret: IndexedTaggingSecret): Promise<void> {
756+
await this.txeDatabase.incrementTaggingSecretsIndexes([indexedSecret.secret]);
757+
}
758+
755759
async getAppTaggingSecret(sender: AztecAddress, recipient: AztecAddress): Promise<IndexedTaggingSecret> {
756760
const senderCompleteAddress = await this.getCompleteAddress(sender);
757761
const senderIvsk = await this.keyStore.getMasterIncomingViewingSecretKey(sender);

0 commit comments

Comments
 (0)