@aztec/protocol-contracts 3.0.3-rc.3 → 3.9.9-nightly.20260312
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/AuthRegistry.json +894 -1705
- package/artifacts/ContractClassRegistry.json +804 -5417
- package/artifacts/ContractInstanceRegistry.json +978 -1650
- package/artifacts/FeeJuice.json +1624 -2281
- package/artifacts/MultiCallEntrypoint.json +1141 -1116
- package/artifacts/PublicChecks.json +980 -0
- package/dest/auth-registry/index.d.ts +1 -1
- package/dest/auth-registry/index.d.ts.map +1 -1
- package/dest/auth-registry/index.js +3 -3
- package/dest/auth-registry/lazy.js +1 -1
- package/dest/class-registry/contract_class_published_event.js +1 -1
- package/dest/class-registry/index.d.ts +1 -1
- package/dest/class-registry/index.d.ts.map +1 -1
- package/dest/class-registry/index.js +3 -3
- package/dest/class-registry/lazy.js +1 -1
- package/dest/class-registry/private_function_broadcasted_event.d.ts +5 -1
- package/dest/class-registry/private_function_broadcasted_event.d.ts.map +1 -1
- package/dest/class-registry/utility_function_broadcasted_event.d.ts +4 -1
- package/dest/class-registry/utility_function_broadcasted_event.d.ts.map +1 -1
- package/dest/fee-juice/index.d.ts +1 -1
- package/dest/fee-juice/index.d.ts.map +1 -1
- package/dest/fee-juice/index.js +3 -3
- package/dest/fee-juice/lazy.js +1 -1
- package/dest/instance-registry/index.d.ts +1 -1
- package/dest/instance-registry/index.d.ts.map +1 -1
- package/dest/instance-registry/index.js +3 -3
- package/dest/instance-registry/lazy.js +1 -1
- package/dest/make_protocol_contract.d.ts +4 -4
- package/dest/make_protocol_contract.d.ts.map +1 -1
- package/dest/make_protocol_contract.js +28 -14
- package/dest/multi-call-entrypoint/index.d.ts +1 -1
- package/dest/multi-call-entrypoint/index.d.ts.map +1 -1
- package/dest/multi-call-entrypoint/index.js +3 -3
- package/dest/multi-call-entrypoint/lazy.js +1 -1
- package/dest/protocol_contract_data.d.ts +15 -3
- package/dest/protocol_contract_data.d.ts.map +1 -1
- package/dest/protocol_contract_data.js +103 -17
- package/dest/provider/bundle.js +3 -3
- package/dest/provider/lazy.js +3 -3
- package/dest/public-checks/index.d.ts +5 -0
- package/dest/public-checks/index.d.ts.map +1 -0
- package/dest/public-checks/index.js +13 -0
- package/dest/public-checks/lazy.d.ts +6 -0
- package/dest/public-checks/lazy.d.ts.map +1 -0
- package/dest/{router → public-checks}/lazy.js +6 -6
- package/dest/scripts/generate_data.js +72 -23
- package/package.json +7 -7
- package/src/auth-registry/index.ts +3 -3
- package/src/auth-registry/lazy.ts +1 -1
- package/src/class-registry/contract_class_published_event.ts +1 -1
- package/src/class-registry/index.ts +3 -3
- package/src/class-registry/lazy.ts +1 -1
- package/src/fee-juice/index.ts +3 -3
- package/src/fee-juice/lazy.ts +1 -1
- package/src/instance-registry/index.ts +3 -3
- package/src/instance-registry/lazy.ts +1 -1
- package/src/make_protocol_contract.ts +37 -15
- package/src/multi-call-entrypoint/index.ts +3 -3
- package/src/multi-call-entrypoint/lazy.ts +1 -1
- package/src/protocol_contract_data.ts +80 -17
- package/src/provider/bundle.ts +3 -3
- package/src/provider/lazy.ts +3 -3
- package/src/{router → public-checks}/index.ts +5 -5
- package/src/{router → public-checks}/lazy.ts +7 -7
- package/artifacts/Router.json +0 -959
- package/dest/router/index.d.ts +0 -5
- package/dest/router/index.d.ts.map +0 -1
- package/dest/router/index.js +0 -13
- package/dest/router/lazy.d.ts +0 -6
- package/dest/router/lazy.d.ts.map +0 -1
- /package/artifacts/{Router.d.json.ts → PublicChecks.d.json.ts} +0 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ProtocolContract } from '../protocol_contract.js';
|
|
2
|
+
export declare const PublicChecksArtifact: import("@aztec/stdlib/abi").ContractArtifact;
|
|
3
|
+
/** Returns the canonical deployment of the contract. */
|
|
4
|
+
export declare function getCanonicalPublicChecks(): Promise<ProtocolContract>;
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMtY2hlY2tzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaEUsZUFBTyxNQUFNLG9CQUFvQiw4Q0FBaUUsQ0FBQztBQUluRyx3REFBd0Q7QUFDeEQsd0JBQWdCLHdCQUF3QixJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUtwRSJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/public-checks/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,eAAO,MAAM,oBAAoB,8CAAiE,CAAC;AAInG,wDAAwD;AACxD,wBAAgB,wBAAwB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAKpE"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { loadContractArtifact } from '@aztec/stdlib/abi';
|
|
2
|
+
import PublicChecksJson from '../../artifacts/PublicChecks.json' with {
|
|
3
|
+
type: 'json'
|
|
4
|
+
};
|
|
5
|
+
import { makeProtocolContract } from '../make_protocol_contract.js';
|
|
6
|
+
export const PublicChecksArtifact = loadContractArtifact(PublicChecksJson);
|
|
7
|
+
let protocolContract;
|
|
8
|
+
/** Returns the canonical deployment of the contract. */ export function getCanonicalPublicChecks() {
|
|
9
|
+
if (!protocolContract) {
|
|
10
|
+
protocolContract = makeProtocolContract('PublicChecks', PublicChecksArtifact);
|
|
11
|
+
}
|
|
12
|
+
return Promise.resolve(protocolContract);
|
|
13
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type ContractArtifact } from '@aztec/stdlib/abi';
|
|
2
|
+
import type { ProtocolContract } from '../protocol_contract.js';
|
|
3
|
+
export declare function getPublicChecksArtifact(): Promise<ContractArtifact>;
|
|
4
|
+
/** Returns the canonical deployment of the public checks contract. */
|
|
5
|
+
export declare function getCanonicalPublicChecks(): Promise<ProtocolContract>;
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1YmxpYy1jaGVja3MvbGF6eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBd0IsTUFBTSxtQkFBbUIsQ0FBQztBQUdoRixPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBS2hFLHdCQUFzQix1QkFBdUIsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FXekU7QUFFRCxzRUFBc0U7QUFDdEUsd0JBQXNCLHdCQUF3QixJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQU0xRSJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../src/public-checks/lazy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAGhF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAKhE,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAWzE;AAED,sEAAsE;AACtE,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAM1E"}
|
|
@@ -2,22 +2,22 @@ import { loadContractArtifact } from '@aztec/stdlib/abi';
|
|
|
2
2
|
import { makeProtocolContract } from '../make_protocol_contract.js';
|
|
3
3
|
let protocolContract;
|
|
4
4
|
let protocolContractArtifact;
|
|
5
|
-
export async function
|
|
5
|
+
export async function getPublicChecksArtifact() {
|
|
6
6
|
if (!protocolContractArtifact) {
|
|
7
7
|
// Cannot assert this import as it's incompatible with bundlers like vite
|
|
8
8
|
// https://github.com/vitejs/vite/issues/19095#issuecomment-2566074352
|
|
9
9
|
// Even if now supported by al major browsers, the MIME type is replaced with
|
|
10
10
|
// "text/javascript"
|
|
11
11
|
// In the meantime, this lazy import is INCOMPATIBLE WITH NODEJS
|
|
12
|
-
const { default:
|
|
13
|
-
protocolContractArtifact = loadContractArtifact(
|
|
12
|
+
const { default: publicChecksJson } = await import('../../artifacts/PublicChecks.json');
|
|
13
|
+
protocolContractArtifact = loadContractArtifact(publicChecksJson);
|
|
14
14
|
}
|
|
15
15
|
return protocolContractArtifact;
|
|
16
16
|
}
|
|
17
|
-
/** Returns the canonical deployment of the
|
|
17
|
+
/** Returns the canonical deployment of the public checks contract. */ export async function getCanonicalPublicChecks() {
|
|
18
18
|
if (!protocolContract) {
|
|
19
|
-
const
|
|
20
|
-
protocolContract =
|
|
19
|
+
const publicChecksArtifact = await getPublicChecksArtifact();
|
|
20
|
+
protocolContract = makeProtocolContract('PublicChecks', publicChecksArtifact);
|
|
21
21
|
}
|
|
22
22
|
return protocolContract;
|
|
23
23
|
}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
// Reads compiled Noir artifacts for each protocol contract and derives their addresses, class IDs,
|
|
2
|
+
// bytecode commitments, and other deployment data, emitting everything as precomputed constants into
|
|
3
|
+
// `protocol_contract_data.ts`. This avoids clients repeating the expensive hashing at runtime and
|
|
4
|
+
// ensures a single source of truth for the protocol contracts hash enforced by circuits, P2P, and L1.
|
|
5
|
+
import { CANONICAL_AUTH_REGISTRY_ADDRESS, CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS, CONTRACT_INSTANCE_PUBLISHED_MAGIC_VALUE, CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS, FEE_JUICE_ADDRESS, MAX_PROTOCOL_CONTRACTS, MULTI_CALL_ENTRYPOINT_ADDRESS, PUBLIC_CHECKS_ADDRESS } from '@aztec/constants';
|
|
2
6
|
import { makeTuple } from '@aztec/foundation/array';
|
|
3
|
-
import { poseidon2Hash } from '@aztec/foundation/crypto/poseidon';
|
|
4
7
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
5
8
|
import { createConsoleLogger } from '@aztec/foundation/log';
|
|
6
9
|
import { loadContractArtifact } from '@aztec/stdlib/abi';
|
|
7
10
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
8
|
-
import {
|
|
11
|
+
import { computeContractAddressFromInstance, computeInitializationHash, getContractClassFromArtifact } from '@aztec/stdlib/contract';
|
|
12
|
+
import { computeSiloedPrivateLogFirstField } from '@aztec/stdlib/hash';
|
|
13
|
+
import { PublicKeys } from '@aztec/stdlib/keys';
|
|
9
14
|
import { ProtocolContracts } from '@aztec/stdlib/tx';
|
|
10
15
|
import { promises as fs } from 'fs';
|
|
11
16
|
import path from 'path';
|
|
@@ -21,7 +26,7 @@ const contractAddressMapping = {
|
|
|
21
26
|
ContractClassRegistry: CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS,
|
|
22
27
|
MultiCallEntrypoint: MULTI_CALL_ENTRYPOINT_ADDRESS,
|
|
23
28
|
FeeJuice: FEE_JUICE_ADDRESS,
|
|
24
|
-
|
|
29
|
+
PublicChecks: PUBLIC_CHECKS_ADDRESS
|
|
25
30
|
};
|
|
26
31
|
async function clearDestDir() {
|
|
27
32
|
try {
|
|
@@ -50,11 +55,32 @@ async function copyArtifact(srcName, destName) {
|
|
|
50
55
|
await fs.copyFile(src, dest);
|
|
51
56
|
return artifact;
|
|
52
57
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
+
// Precompute all the expensive contract data that can be obtained from the artifact, to avoid redundant computations in clients.
|
|
59
|
+
// Protocol contracts come from a trusted source, so no class verifications are needed.
|
|
60
|
+
async function computeContractData(artifact, deployer) {
|
|
61
|
+
const loaded = loadContractArtifact(artifact);
|
|
62
|
+
const contractClass = await getContractClassFromArtifact(loaded);
|
|
63
|
+
const constructorArtifact = loaded.functions.find((f)=>f.name === 'constructor');
|
|
64
|
+
const initializationHash = await computeInitializationHash(constructorArtifact, []);
|
|
65
|
+
const instance = {
|
|
66
|
+
version: 1,
|
|
67
|
+
currentContractClassId: contractClass.id,
|
|
68
|
+
originalContractClassId: contractClass.id,
|
|
69
|
+
initializationHash,
|
|
70
|
+
publicKeys: PublicKeys.default(),
|
|
71
|
+
salt,
|
|
72
|
+
deployer
|
|
73
|
+
};
|
|
74
|
+
const address = await computeContractAddressFromInstance(instance);
|
|
75
|
+
return {
|
|
76
|
+
address,
|
|
77
|
+
classId: contractClass.id,
|
|
78
|
+
artifactHash: contractClass.artifactHash,
|
|
79
|
+
privateFunctionsRoot: contractClass.privateFunctionsRoot,
|
|
80
|
+
publicBytecodeCommitment: contractClass.publicBytecodeCommitment,
|
|
81
|
+
initializationHash,
|
|
82
|
+
privateFunctions: contractClass.privateFunctions
|
|
83
|
+
};
|
|
58
84
|
}
|
|
59
85
|
async function generateDeclarationFile(destName) {
|
|
60
86
|
const content = `
|
|
@@ -88,14 +114,37 @@ function generateContractAddresses(names) {
|
|
|
88
114
|
};
|
|
89
115
|
`;
|
|
90
116
|
}
|
|
91
|
-
function generateDerivedAddresses(names,
|
|
117
|
+
function generateDerivedAddresses(names, contractData) {
|
|
92
118
|
return `
|
|
93
119
|
export const ProtocolContractDerivedAddress = {
|
|
94
|
-
${
|
|
120
|
+
${contractData.map((d, i)=>`${names[i]}: AztecAddress.fromString('${d.address.toString()}')`).join(',\n')}
|
|
121
|
+
};
|
|
122
|
+
`;
|
|
123
|
+
}
|
|
124
|
+
function generateClassIdPreimages(names, contractData) {
|
|
125
|
+
return `
|
|
126
|
+
export const ProtocolContractClassId: Record<ProtocolContractName, Fr> = {
|
|
127
|
+
${contractData.map((d, i)=>`${names[i]}: Fr.fromString('${d.classId.toString()}')`).join(',\n')}
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
export const ProtocolContractClassIdPreimage: Record<ProtocolContractName, { artifactHash: Fr; privateFunctionsRoot: Fr; publicBytecodeCommitment: Fr }> = {
|
|
131
|
+
${contractData.map((d, i)=>`${names[i]}: {
|
|
132
|
+
artifactHash: Fr.fromString('${d.artifactHash.toString()}'),
|
|
133
|
+
privateFunctionsRoot: Fr.fromString('${d.privateFunctionsRoot.toString()}'),
|
|
134
|
+
publicBytecodeCommitment: Fr.fromString('${d.publicBytecodeCommitment.toString()}'),
|
|
135
|
+
}`).join(',\n')}
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
export const ProtocolContractInitializationHash: Record<ProtocolContractName, Fr> = {
|
|
139
|
+
${contractData.map((d, i)=>`${names[i]}: Fr.fromString('${d.initializationHash.toString()}')`).join(',\n')}
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
export const ProtocolContractPrivateFunctions: Record<ProtocolContractName, { selector: FunctionSelector; vkHash: Fr }[]> = {
|
|
143
|
+
${contractData.map((d, i)=>`${names[i]}: [${d.privateFunctions.map((fn)=>`{ selector: FunctionSelector.fromField(Fr.fromString('${fn.selector.toField().toString()}')), vkHash: Fr.fromString('${fn.vkHash.toString()}') }`).join(', ')}]`).join(',\n')}
|
|
95
144
|
};
|
|
96
145
|
`;
|
|
97
146
|
}
|
|
98
|
-
async function generateProtocolContractsList(names,
|
|
147
|
+
async function generateProtocolContractsList(names, contractData) {
|
|
99
148
|
const list = makeTuple(MAX_PROTOCOL_CONTRACTS, ()=>AztecAddress.zero());
|
|
100
149
|
for(let i = 0; i < names.length; i++){
|
|
101
150
|
const name = names[i];
|
|
@@ -104,7 +153,7 @@ async function generateProtocolContractsList(names, derivedAddresses) {
|
|
|
104
153
|
if (!list[derivedAddressIndex].equals(AztecAddress.zero())) {
|
|
105
154
|
throw new Error(`Duplicate protocol contract address: ${address.toString()}`);
|
|
106
155
|
}
|
|
107
|
-
list[derivedAddressIndex] =
|
|
156
|
+
list[derivedAddressIndex] = contractData[i].address;
|
|
108
157
|
}
|
|
109
158
|
return `
|
|
110
159
|
export const ProtocolContractsList = new ProtocolContracts([
|
|
@@ -117,16 +166,14 @@ async function generateProtocolContractsList(names, derivedAddresses) {
|
|
|
117
166
|
// Generate the siloed log tags for events emitted via private logs.
|
|
118
167
|
async function generateLogTags() {
|
|
119
168
|
return `
|
|
120
|
-
export const CONTRACT_INSTANCE_PUBLISHED_EVENT_TAG = Fr.fromHexString('${await
|
|
121
|
-
CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS,
|
|
122
|
-
CONTRACT_INSTANCE_PUBLISHED_MAGIC_VALUE
|
|
123
|
-
])}');
|
|
169
|
+
export const CONTRACT_INSTANCE_PUBLISHED_EVENT_TAG = Fr.fromHexString('${await computeSiloedPrivateLogFirstField(new AztecAddress(new Fr(CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS)), new Fr(CONTRACT_INSTANCE_PUBLISHED_MAGIC_VALUE))}');
|
|
124
170
|
`;
|
|
125
171
|
}
|
|
126
|
-
async function generateOutputFile(names,
|
|
172
|
+
async function generateOutputFile(names, contractData) {
|
|
127
173
|
const content = `
|
|
128
174
|
// GENERATED FILE - DO NOT EDIT. RUN \`yarn generate\` or \`yarn generate:data\`
|
|
129
175
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
176
|
+
import { FunctionSelector } from '@aztec/stdlib/abi';
|
|
130
177
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
131
178
|
import { ProtocolContracts } from '@aztec/stdlib/tx';
|
|
132
179
|
|
|
@@ -136,9 +183,11 @@ async function generateOutputFile(names, derivedAddresses) {
|
|
|
136
183
|
|
|
137
184
|
${generateContractAddresses(names)}
|
|
138
185
|
|
|
139
|
-
${generateDerivedAddresses(names,
|
|
186
|
+
${generateDerivedAddresses(names, contractData)}
|
|
187
|
+
|
|
188
|
+
${generateClassIdPreimages(names, contractData)}
|
|
140
189
|
|
|
141
|
-
${await generateProtocolContractsList(names,
|
|
190
|
+
${await generateProtocolContractsList(names, contractData)}
|
|
142
191
|
|
|
143
192
|
${await generateLogTags()}
|
|
144
193
|
`;
|
|
@@ -147,16 +196,16 @@ async function generateOutputFile(names, derivedAddresses) {
|
|
|
147
196
|
async function main() {
|
|
148
197
|
await clearDestDir();
|
|
149
198
|
const srcNames = JSON.parse(await fs.readFile(path.join(noirContractsRoot, 'protocol_contracts.json'), 'utf8'));
|
|
150
|
-
const
|
|
199
|
+
const contractDataList = [];
|
|
151
200
|
const destNames = srcNames.map((n)=>n.split('-')[1]);
|
|
152
201
|
for(let i = 0; i < srcNames.length; i++){
|
|
153
202
|
const srcName = srcNames[i];
|
|
154
203
|
const destName = destNames[i];
|
|
155
204
|
const artifact = await copyArtifact(srcName, destName);
|
|
156
205
|
await generateDeclarationFile(destName);
|
|
157
|
-
|
|
206
|
+
contractDataList.push(await computeContractData(artifact, AztecAddress.fromBigInt(BigInt(contractAddressMapping[destName]))));
|
|
158
207
|
}
|
|
159
|
-
await generateOutputFile(destNames,
|
|
208
|
+
await generateOutputFile(destNames, contractDataList);
|
|
160
209
|
}
|
|
161
210
|
try {
|
|
162
211
|
await main();
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@aztec/protocol-contracts",
|
|
3
3
|
"homepage": "https://github.com/AztecProtocol/aztec-packages/tree/master/yarn-project/protocol-contracts",
|
|
4
4
|
"description": "Canonical Noir contracts for the Aztec Network",
|
|
5
|
-
"version": "3.
|
|
5
|
+
"version": "3.9.9-nightly.20260312",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"exports": {
|
|
8
8
|
".": "./dest/index.js",
|
|
@@ -22,12 +22,12 @@
|
|
|
22
22
|
},
|
|
23
23
|
"scripts": {
|
|
24
24
|
"build": "yarn clean && yarn generate && yarn generate:cleanup-artifacts && ../scripts/tsc.sh",
|
|
25
|
-
"build:keep-debug-symbols": "yarn clean && yarn generate &&
|
|
25
|
+
"build:keep-debug-symbols": "yarn clean && yarn generate && ../scripts/tsc.sh",
|
|
26
26
|
"generate": "yarn generate:data",
|
|
27
27
|
"generate:cleanup-artifacts": "node --no-warnings --loader @swc-node/register/esm src/scripts/cleanup_artifacts.ts",
|
|
28
28
|
"generate:data": "node --no-warnings --loader @swc-node/register/esm src/scripts/generate_data.ts",
|
|
29
29
|
"build:dev": "../scripts/tsc.sh --watch",
|
|
30
|
-
"build:ts": "
|
|
30
|
+
"build:ts": "../scripts/tsc.sh",
|
|
31
31
|
"clean": "rm -rf ./dest .tsbuildinfo ./artifacts",
|
|
32
32
|
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
|
|
33
33
|
},
|
|
@@ -73,9 +73,9 @@
|
|
|
73
73
|
]
|
|
74
74
|
},
|
|
75
75
|
"dependencies": {
|
|
76
|
-
"@aztec/constants": "3.
|
|
77
|
-
"@aztec/foundation": "3.
|
|
78
|
-
"@aztec/stdlib": "3.
|
|
76
|
+
"@aztec/constants": "3.9.9-nightly.20260312",
|
|
77
|
+
"@aztec/foundation": "3.9.9-nightly.20260312",
|
|
78
|
+
"@aztec/stdlib": "3.9.9-nightly.20260312",
|
|
79
79
|
"lodash.chunk": "^4.2.0",
|
|
80
80
|
"lodash.omit": "^4.5.0",
|
|
81
81
|
"tslib": "^2.4.0"
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"@types/lodash.chunk": "^4.2.9",
|
|
87
87
|
"@types/lodash.omit": "^4.5.9",
|
|
88
88
|
"@types/node": "^22.15.17",
|
|
89
|
-
"@typescript/native-preview": "7.0.0-dev.
|
|
89
|
+
"@typescript/native-preview": "7.0.0-dev.20260113.1",
|
|
90
90
|
"jest": "^30.0.0",
|
|
91
91
|
"jest-mock-extended": "^4.0.0",
|
|
92
92
|
"ts-loader": "^9.5.4",
|
|
@@ -10,9 +10,9 @@ let protocolContract: ProtocolContract;
|
|
|
10
10
|
export const AuthRegistryArtifact: ContractArtifact = loadContractArtifact(AuthRegistryJson as NoirCompiledContract);
|
|
11
11
|
|
|
12
12
|
/** Returns the canonical deployment of the auth registry. */
|
|
13
|
-
export
|
|
13
|
+
export function getCanonicalAuthRegistry(): Promise<ProtocolContract> {
|
|
14
14
|
if (!protocolContract) {
|
|
15
|
-
protocolContract =
|
|
15
|
+
protocolContract = makeProtocolContract('AuthRegistry', AuthRegistryArtifact);
|
|
16
16
|
}
|
|
17
|
-
return protocolContract;
|
|
17
|
+
return Promise.resolve(protocolContract);
|
|
18
18
|
}
|
|
@@ -23,7 +23,7 @@ export async function getAuthRegistryArtifact(): Promise<ContractArtifact> {
|
|
|
23
23
|
export async function getCanonicalAuthRegistry(): Promise<ProtocolContract> {
|
|
24
24
|
if (!protocolContract) {
|
|
25
25
|
const authRegistryArtifact = await getAuthRegistryArtifact();
|
|
26
|
-
protocolContract =
|
|
26
|
+
protocolContract = makeProtocolContract('AuthRegistry', authRegistryArtifact);
|
|
27
27
|
}
|
|
28
28
|
return protocolContract;
|
|
29
29
|
}
|
|
@@ -29,7 +29,7 @@ export class ContractClassPublishedEvent {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
static fromLog(log: ContractClassLog) {
|
|
32
|
-
// See how the log is serialized in `noir-projects/noir-contracts/contracts/protocol/
|
|
32
|
+
// See how the log is serialized in `noir-projects/noir-contracts/contracts/protocol/contract_class_registry_contract/src/events/class_published.nr`.
|
|
33
33
|
const fieldsWithoutTag = log.fields.fields.slice(1);
|
|
34
34
|
const reader = new FieldReader(fieldsWithoutTag);
|
|
35
35
|
const contractClassId = reader.readField();
|
|
@@ -14,10 +14,10 @@ export const ContractClassRegistryArtifact = loadContractArtifact(ContractClassR
|
|
|
14
14
|
let protocolContract: ProtocolContract;
|
|
15
15
|
|
|
16
16
|
/** Returns the canonical deployment of the contract. */
|
|
17
|
-
export
|
|
17
|
+
export function getCanonicalClassRegistry(): Promise<ProtocolContract> {
|
|
18
18
|
if (!protocolContract) {
|
|
19
19
|
const artifact = ContractClassRegistryArtifact;
|
|
20
|
-
protocolContract =
|
|
20
|
+
protocolContract = makeProtocolContract('ContractClassRegistry', artifact);
|
|
21
21
|
}
|
|
22
|
-
return protocolContract;
|
|
22
|
+
return Promise.resolve(protocolContract);
|
|
23
23
|
}
|
|
@@ -27,7 +27,7 @@ export async function getContractClassRegistryArtifact(): Promise<ContractArtifa
|
|
|
27
27
|
export async function getCanonicalClassRegistry(): Promise<ProtocolContract> {
|
|
28
28
|
if (!protocolContract) {
|
|
29
29
|
const contractClassRegistryArtifact = await getContractClassRegistryArtifact();
|
|
30
|
-
protocolContract =
|
|
30
|
+
protocolContract = makeProtocolContract('ContractClassRegistry', contractClassRegistryArtifact);
|
|
31
31
|
}
|
|
32
32
|
return protocolContract;
|
|
33
33
|
}
|
package/src/fee-juice/index.ts
CHANGED
|
@@ -14,11 +14,11 @@ export const FeeJuiceArtifact = loadContractArtifact(FeeJuiceJson as NoirCompile
|
|
|
14
14
|
let protocolContract: ProtocolContract;
|
|
15
15
|
|
|
16
16
|
/** Returns the canonical deployment of the contract. */
|
|
17
|
-
export
|
|
17
|
+
export function getCanonicalFeeJuice(): Promise<ProtocolContract> {
|
|
18
18
|
if (!protocolContract) {
|
|
19
|
-
protocolContract =
|
|
19
|
+
protocolContract = makeProtocolContract('FeeJuice', FeeJuiceArtifact);
|
|
20
20
|
}
|
|
21
|
-
return protocolContract;
|
|
21
|
+
return Promise.resolve(protocolContract);
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
/**
|
package/src/fee-juice/lazy.ts
CHANGED
|
@@ -23,7 +23,7 @@ export async function getFeeJuiceArtifact(): Promise<ContractArtifact> {
|
|
|
23
23
|
export async function getCanonicalFeeJuice(): Promise<ProtocolContract> {
|
|
24
24
|
if (!protocolContract) {
|
|
25
25
|
const feeJuiceArtifact = await getFeeJuiceArtifact();
|
|
26
|
-
protocolContract =
|
|
26
|
+
protocolContract = makeProtocolContract('FeeJuice', feeJuiceArtifact);
|
|
27
27
|
}
|
|
28
28
|
return protocolContract;
|
|
29
29
|
}
|
|
@@ -15,9 +15,9 @@ export const ContractInstanceRegistryArtifact = loadContractArtifact(
|
|
|
15
15
|
let protocolContract: ProtocolContract;
|
|
16
16
|
|
|
17
17
|
/** Returns the canonical deployment of the contract. */
|
|
18
|
-
export
|
|
18
|
+
export function getCanonicalInstanceRegistry(): Promise<ProtocolContract> {
|
|
19
19
|
if (!protocolContract) {
|
|
20
|
-
protocolContract =
|
|
20
|
+
protocolContract = makeProtocolContract('ContractInstanceRegistry', ContractInstanceRegistryArtifact);
|
|
21
21
|
}
|
|
22
|
-
return protocolContract;
|
|
22
|
+
return Promise.resolve(protocolContract);
|
|
23
23
|
}
|
|
@@ -26,7 +26,7 @@ export async function getContractInstanceRegistryArtifact(): Promise<ContractArt
|
|
|
26
26
|
export async function getCanonicalInstanceRegistry(): Promise<ProtocolContract> {
|
|
27
27
|
if (!protocolContract) {
|
|
28
28
|
const contractInstanceRegistryArtifact = await getContractInstanceRegistryArtifact();
|
|
29
|
-
protocolContract =
|
|
29
|
+
protocolContract = makeProtocolContract('ContractInstanceRegistry', contractInstanceRegistryArtifact);
|
|
30
30
|
}
|
|
31
31
|
return protocolContract;
|
|
32
32
|
}
|
|
@@ -1,26 +1,48 @@
|
|
|
1
1
|
import type { ContractArtifact } from '@aztec/stdlib/abi';
|
|
2
|
-
import {
|
|
2
|
+
import { PublicKeys } from '@aztec/stdlib/keys';
|
|
3
3
|
|
|
4
4
|
import type { ProtocolContract } from './protocol_contract.js';
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
ProtocolContractAddress,
|
|
7
|
+
ProtocolContractClassId,
|
|
8
|
+
ProtocolContractClassIdPreimage,
|
|
9
|
+
ProtocolContractInitializationHash,
|
|
10
|
+
type ProtocolContractName,
|
|
11
|
+
ProtocolContractPrivateFunctions,
|
|
12
|
+
ProtocolContractSalt,
|
|
13
|
+
} from './protocol_contract_data.js';
|
|
6
14
|
|
|
7
15
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
16
|
+
* Reconstructs a ProtocolContract from precomputed data without performing any hash computations.
|
|
17
|
+
* Internal to the protocol-contracts package — not part of the public API.
|
|
10
18
|
*/
|
|
11
|
-
export
|
|
12
|
-
name: ProtocolContractName,
|
|
13
|
-
artifact: ContractArtifact,
|
|
14
|
-
): Promise<ProtocolContract> {
|
|
19
|
+
export function makeProtocolContract(name: ProtocolContractName, artifact: ContractArtifact): ProtocolContract {
|
|
15
20
|
const address = ProtocolContractAddress[name];
|
|
16
21
|
const salt = ProtocolContractSalt[name];
|
|
17
|
-
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
const classId = ProtocolContractClassId[name];
|
|
23
|
+
const { artifactHash, privateFunctionsRoot, publicBytecodeCommitment } = ProtocolContractClassIdPreimage[name];
|
|
24
|
+
const initializationHash = ProtocolContractInitializationHash[name];
|
|
25
|
+
|
|
26
|
+
const contractClass = {
|
|
27
|
+
id: classId,
|
|
28
|
+
version: 1 as const,
|
|
29
|
+
artifactHash,
|
|
30
|
+
privateFunctionsRoot,
|
|
31
|
+
publicBytecodeCommitment,
|
|
32
|
+
packedBytecode: artifact.functions.find(f => f.name === 'public_dispatch')?.bytecode ?? Buffer.alloc(0),
|
|
33
|
+
privateFunctions: ProtocolContractPrivateFunctions[name],
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const instance = {
|
|
37
|
+
version: 1 as const,
|
|
38
|
+
currentContractClassId: classId,
|
|
39
|
+
originalContractClassId: classId,
|
|
40
|
+
initializationHash,
|
|
41
|
+
publicKeys: PublicKeys.default(),
|
|
42
|
+
salt,
|
|
43
|
+
deployer: address,
|
|
24
44
|
address,
|
|
25
45
|
};
|
|
46
|
+
|
|
47
|
+
return { instance, contractClass, artifact, address };
|
|
26
48
|
}
|
|
@@ -10,9 +10,9 @@ export const MultiCallEntrypointArtifact = loadContractArtifact(MultiCallEntrypo
|
|
|
10
10
|
let protocolContract: ProtocolContract;
|
|
11
11
|
|
|
12
12
|
/** Returns the canonical deployment of the contract. */
|
|
13
|
-
export
|
|
13
|
+
export function getCanonicalMultiCallEntrypoint(): Promise<ProtocolContract> {
|
|
14
14
|
if (!protocolContract) {
|
|
15
|
-
protocolContract =
|
|
15
|
+
protocolContract = makeProtocolContract('MultiCallEntrypoint', MultiCallEntrypointArtifact);
|
|
16
16
|
}
|
|
17
|
-
return protocolContract;
|
|
17
|
+
return Promise.resolve(protocolContract);
|
|
18
18
|
}
|
|
@@ -23,7 +23,7 @@ export async function getMultiCallEntrypointArtifact(): Promise<ContractArtifact
|
|
|
23
23
|
export async function getCanonicalMultiCallEntrypoint(): Promise<ProtocolContract> {
|
|
24
24
|
if (!protocolContract) {
|
|
25
25
|
const multiCallEntrypointArtifact = await getMultiCallEntrypointArtifact();
|
|
26
|
-
protocolContract =
|
|
26
|
+
protocolContract = makeProtocolContract('MultiCallEntrypoint', multiCallEntrypointArtifact);
|
|
27
27
|
}
|
|
28
28
|
return protocolContract;
|
|
29
29
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
// GENERATED FILE - DO NOT EDIT. RUN `yarn generate` or `yarn generate:data`
|
|
3
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
|
+
import { FunctionSelector } from '@aztec/stdlib/abi';
|
|
4
5
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
5
6
|
import { ProtocolContracts } from '@aztec/stdlib/tx';
|
|
6
7
|
|
|
@@ -11,7 +12,7 @@
|
|
|
11
12
|
'ContractClassRegistry',
|
|
12
13
|
'MultiCallEntrypoint',
|
|
13
14
|
'FeeJuice',
|
|
14
|
-
'
|
|
15
|
+
'PublicChecks'
|
|
15
16
|
] as const;
|
|
16
17
|
|
|
17
18
|
export type ProtocolContractName = typeof protocolContractNames[number];
|
|
@@ -24,7 +25,7 @@ ContractInstanceRegistry: new Fr(1),
|
|
|
24
25
|
ContractClassRegistry: new Fr(1),
|
|
25
26
|
MultiCallEntrypoint: new Fr(1),
|
|
26
27
|
FeeJuice: new Fr(1),
|
|
27
|
-
|
|
28
|
+
PublicChecks: new Fr(1)
|
|
28
29
|
};
|
|
29
30
|
|
|
30
31
|
|
|
@@ -35,29 +36,91 @@ ContractInstanceRegistry: AztecAddress.fromBigInt(2n),
|
|
|
35
36
|
ContractClassRegistry: AztecAddress.fromBigInt(3n),
|
|
36
37
|
MultiCallEntrypoint: AztecAddress.fromBigInt(4n),
|
|
37
38
|
FeeJuice: AztecAddress.fromBigInt(5n),
|
|
38
|
-
|
|
39
|
+
PublicChecks: AztecAddress.fromBigInt(6n)
|
|
39
40
|
};
|
|
40
41
|
|
|
41
42
|
|
|
42
43
|
|
|
43
44
|
export const ProtocolContractDerivedAddress = {
|
|
44
|
-
AuthRegistry: AztecAddress.fromString('
|
|
45
|
-
ContractInstanceRegistry: AztecAddress.fromString('
|
|
46
|
-
ContractClassRegistry: AztecAddress.fromString('
|
|
47
|
-
MultiCallEntrypoint: AztecAddress.fromString('
|
|
48
|
-
FeeJuice: AztecAddress.fromString('
|
|
49
|
-
|
|
45
|
+
AuthRegistry: AztecAddress.fromString('0x139f8eb6d6e7e7a7c0322c3b7558687a7e24201f11bf2c4cb2fe56c18d363695'),
|
|
46
|
+
ContractInstanceRegistry: AztecAddress.fromString('0x1254246c88aca5a66fa66f3aa78c408a698ebca3b713120497c7555dfc718592'),
|
|
47
|
+
ContractClassRegistry: AztecAddress.fromString('0x14d670efa326a07b99777b01fb706427ca776095246569150f2a3f17a7d4dc66'),
|
|
48
|
+
MultiCallEntrypoint: AztecAddress.fromString('0x230d0b47ba6d5ed99afb89d584f32ff33438b64f51000f252a140cf995781628'),
|
|
49
|
+
FeeJuice: AztecAddress.fromString('0x204913186c0dd70015d05bf9100a12e31ccb7cc2527aacdfae0c19ad6439fcf4'),
|
|
50
|
+
PublicChecks: AztecAddress.fromString('0x1198142fd84a58c0ab22d5fde371ce527042db49487e05206a326ad154952ac8')
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
export const ProtocolContractClassId: Record<ProtocolContractName, Fr> = {
|
|
56
|
+
AuthRegistry: Fr.fromString('0x17ad10e1b5dba2877b9a973449c03d5227f2c719c0eb1989427c10c1d83867a5'),
|
|
57
|
+
ContractInstanceRegistry: Fr.fromString('0x187c710b0d69b2da7a6f0663c15093a5d595c04e77762c249aa9b654bc12158c'),
|
|
58
|
+
ContractClassRegistry: Fr.fromString('0x013466b8a65dea98ad80c119cf236a0acf53acfede687769410cfd57876b8242'),
|
|
59
|
+
MultiCallEntrypoint: Fr.fromString('0x1acd7ab8bf186c16eafc9c4fe9049f35df27e172bb2d8319a2a22ddd0006966d'),
|
|
60
|
+
FeeJuice: Fr.fromString('0x16b2d5ef5044c11126a16ccdb3778082eb423375977da9458d493fdf84505e81'),
|
|
61
|
+
PublicChecks: Fr.fromString('0x03f2ebaef8d692422185e35d8fe35d0bb7289702cf023b525c022d77fc6b5ed5')
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
export const ProtocolContractClassIdPreimage: Record<ProtocolContractName, { artifactHash: Fr; privateFunctionsRoot: Fr; publicBytecodeCommitment: Fr }> = {
|
|
65
|
+
AuthRegistry: {
|
|
66
|
+
artifactHash: Fr.fromString('0x029f3b5582e9e2f9cddb4f887fa67c06d8dbe9aef604aa7de91a6f5328bf477c'),
|
|
67
|
+
privateFunctionsRoot: Fr.fromString('0x0826df9bf86cf460935b2bd024edcb5a58532fcf0392abbdb33f5f2150753756'),
|
|
68
|
+
publicBytecodeCommitment: Fr.fromString('0x22db1f0a70bfefaf90371c7728e558cf60507b718e99ed276ed3143bec615f6f'),
|
|
69
|
+
},
|
|
70
|
+
ContractInstanceRegistry: {
|
|
71
|
+
artifactHash: Fr.fromString('0x18601566bacdca7a5a40528f221b04ee7b74f382e6cd34fbdf69d31c50d5ee88'),
|
|
72
|
+
privateFunctionsRoot: Fr.fromString('0x136a6705c7ad1d47f65cb881a56909d4c78d3fa8944f5b103734cd91e654ed63'),
|
|
73
|
+
publicBytecodeCommitment: Fr.fromString('0x01c573f470ba9a17d362c7dd5a28931c39432f9ce527555049c71432f895ad6c'),
|
|
74
|
+
},
|
|
75
|
+
ContractClassRegistry: {
|
|
76
|
+
artifactHash: Fr.fromString('0x232d868db8a4d1e0f013efa4bfe5c39d96e11f16a62e3e73abbbafc3028fc410'),
|
|
77
|
+
privateFunctionsRoot: Fr.fromString('0x2ac3bf890a7d534a768079aa86889caa1a86373c8e6fc2db48215b11bbb79106'),
|
|
78
|
+
publicBytecodeCommitment: Fr.fromString('0x0ce4c618c3ed7f3a20410e618c06bb701e150af7fe28a3e92f68e7733809f33e'),
|
|
79
|
+
},
|
|
80
|
+
MultiCallEntrypoint: {
|
|
81
|
+
artifactHash: Fr.fromString('0x0d30526b6b786cf887d7e44ba59d2e9561d5791b0e3c78c681d0499ae45b225a'),
|
|
82
|
+
privateFunctionsRoot: Fr.fromString('0x266505ecb7c02ce6e227227c0b6bdb44713c8ecd43164ee7bb00b8fb340e8b03'),
|
|
83
|
+
publicBytecodeCommitment: Fr.fromString('0x0ce4c618c3ed7f3a20410e618c06bb701e150af7fe28a3e92f68e7733809f33e'),
|
|
84
|
+
},
|
|
85
|
+
FeeJuice: {
|
|
86
|
+
artifactHash: Fr.fromString('0x2eb476f12cce5207be118047fb7f603378b78aa619d6539a4d9eec4700ea2507'),
|
|
87
|
+
privateFunctionsRoot: Fr.fromString('0x0abef3cfc6ae314886c841b42dc33d3eed255ad3dee7773daabf05b229573759'),
|
|
88
|
+
publicBytecodeCommitment: Fr.fromString('0x2a144b28b36efa21b7488467aba7e06b33e016d00bfe083a7bfa06ad6ff5aa2f'),
|
|
89
|
+
},
|
|
90
|
+
PublicChecks: {
|
|
91
|
+
artifactHash: Fr.fromString('0x228ea8af66ff150f40a4b01b64115d12777b2f7fd3a4bfc0d97d38a91f139ef6'),
|
|
92
|
+
privateFunctionsRoot: Fr.fromString('0x067243231eddf4222f3911defbba7705aff06ed45960b27f6f91319196ef97e1'),
|
|
93
|
+
publicBytecodeCommitment: Fr.fromString('0x2d0834fc9468fd2092091852543a2fbd7b6b313c7e5e4defe8730c8065366a03'),
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
export const ProtocolContractInitializationHash: Record<ProtocolContractName, Fr> = {
|
|
98
|
+
AuthRegistry: Fr.fromString('0x0000000000000000000000000000000000000000000000000000000000000000'),
|
|
99
|
+
ContractInstanceRegistry: Fr.fromString('0x0000000000000000000000000000000000000000000000000000000000000000'),
|
|
100
|
+
ContractClassRegistry: Fr.fromString('0x0000000000000000000000000000000000000000000000000000000000000000'),
|
|
101
|
+
MultiCallEntrypoint: Fr.fromString('0x0000000000000000000000000000000000000000000000000000000000000000'),
|
|
102
|
+
FeeJuice: Fr.fromString('0x0000000000000000000000000000000000000000000000000000000000000000'),
|
|
103
|
+
PublicChecks: Fr.fromString('0x0000000000000000000000000000000000000000000000000000000000000000')
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
export const ProtocolContractPrivateFunctions: Record<ProtocolContractName, { selector: FunctionSelector; vkHash: Fr }[]> = {
|
|
107
|
+
AuthRegistry: [{ selector: FunctionSelector.fromField(Fr.fromString('0x0000000000000000000000000000000000000000000000000000000079a3d418')), vkHash: Fr.fromString('0x019c553854290b9b547841e45bf45e344d4a2d4f6702fee430ec5897ce7d3b78') }],
|
|
108
|
+
ContractInstanceRegistry: [{ selector: FunctionSelector.fromField(Fr.fromString('0x0000000000000000000000000000000000000000000000000000000016ec12aa')), vkHash: Fr.fromString('0x262f7a90ecf055779001b67dad01a3add1e549f6c27931f0e71e463ce2142b57') }],
|
|
109
|
+
ContractClassRegistry: [{ selector: FunctionSelector.fromField(Fr.fromString('0x000000000000000000000000000000000000000000000000000000006934ed0d')), vkHash: Fr.fromString('0x1163f31e191528254c877fce0c7f62dd738f5552bbd2dda97512fe4777377f5b') }],
|
|
110
|
+
MultiCallEntrypoint: [{ selector: FunctionSelector.fromField(Fr.fromString('0x00000000000000000000000000000000000000000000000000000000f04908a9')), vkHash: Fr.fromString('0x21732ab3cecf633e4c31a030df62c93e35a005b89941fdab568d2818c1355192') }],
|
|
111
|
+
FeeJuice: [{ selector: FunctionSelector.fromField(Fr.fromString('0x00000000000000000000000000000000000000000000000000000000cbe67243')), vkHash: Fr.fromString('0x2ad6083b4595f8076c014e5152191013167ab1b5a31ad0cbb06490054c7c59ae') }, { selector: FunctionSelector.fromField(Fr.fromString('0x00000000000000000000000000000000000000000000000000000000e8d374b6')), vkHash: Fr.fromString('0x05aaffffdf797625ff24575d939339303775c5db77fb6bdcecbf955f726fd071') }],
|
|
112
|
+
PublicChecks: []
|
|
50
113
|
};
|
|
51
114
|
|
|
52
115
|
|
|
53
116
|
|
|
54
117
|
export const ProtocolContractsList = new ProtocolContracts([
|
|
55
|
-
AztecAddress.fromString('
|
|
56
|
-
AztecAddress.fromString('
|
|
57
|
-
AztecAddress.fromString('
|
|
58
|
-
AztecAddress.fromString('
|
|
59
|
-
AztecAddress.fromString('
|
|
60
|
-
AztecAddress.fromString('
|
|
118
|
+
AztecAddress.fromString('0x139f8eb6d6e7e7a7c0322c3b7558687a7e24201f11bf2c4cb2fe56c18d363695'),
|
|
119
|
+
AztecAddress.fromString('0x1254246c88aca5a66fa66f3aa78c408a698ebca3b713120497c7555dfc718592'),
|
|
120
|
+
AztecAddress.fromString('0x14d670efa326a07b99777b01fb706427ca776095246569150f2a3f17a7d4dc66'),
|
|
121
|
+
AztecAddress.fromString('0x230d0b47ba6d5ed99afb89d584f32ff33438b64f51000f252a140cf995781628'),
|
|
122
|
+
AztecAddress.fromString('0x204913186c0dd70015d05bf9100a12e31ccb7cc2527aacdfae0c19ad6439fcf4'),
|
|
123
|
+
AztecAddress.fromString('0x1198142fd84a58c0ab22d5fde371ce527042db49487e05206a326ad154952ac8'),
|
|
61
124
|
AztecAddress.fromString('0x0000000000000000000000000000000000000000000000000000000000000000'),
|
|
62
125
|
AztecAddress.fromString('0x0000000000000000000000000000000000000000000000000000000000000000'),
|
|
63
126
|
AztecAddress.fromString('0x0000000000000000000000000000000000000000000000000000000000000000'),
|
|
@@ -65,10 +128,10 @@ AztecAddress.fromString('0x00000000000000000000000000000000000000000000000000000
|
|
|
65
128
|
AztecAddress.fromString('0x0000000000000000000000000000000000000000000000000000000000000000')
|
|
66
129
|
]);
|
|
67
130
|
|
|
68
|
-
export const protocolContractsHash = Fr.fromString('
|
|
131
|
+
export const protocolContractsHash = Fr.fromString('0x2672340d9a0107a7b81e6d10d25b854debe613f3272e8738e8df0ca2ff297141');
|
|
69
132
|
|
|
70
133
|
|
|
71
134
|
|
|
72
|
-
export const CONTRACT_INSTANCE_PUBLISHED_EVENT_TAG = Fr.fromHexString('
|
|
135
|
+
export const CONTRACT_INSTANCE_PUBLISHED_EVENT_TAG = Fr.fromHexString('0x1a7e1badb79abdd38c684b3c8306ffe7ecb33c69e3380d9855730aaaa83a21a8');
|
|
73
136
|
|
|
74
137
|
|