@aztec/simulator 2.0.0-nightly.20250901 → 2.0.0-nightly.20250902
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/dest/public/fixtures/bulk_test.d.ts +2 -2
- package/dest/public/fixtures/bulk_test.d.ts.map +1 -1
- package/dest/public/fixtures/bulk_test.js +2 -4
- package/dest/public/public_processor/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor.js +2 -1
- package/dest/public/state_manager/state_manager.d.ts.map +1 -1
- package/dest/public/state_manager/state_manager.js +10 -7
- package/package.json +15 -15
- package/src/public/fixtures/bulk_test.ts +0 -4
- package/src/public/public_processor/public_processor.ts +2 -1
- package/src/public/state_manager/state_manager.ts +15 -7
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Logger } from '@aztec/foundation/log';
|
|
2
2
|
import type { ContractArtifact } from '@aztec/stdlib/abi';
|
|
3
3
|
import { PublicTxSimulationTester } from './public_tx_simulation_tester.js';
|
|
4
|
-
export declare function bulkTest(tester: PublicTxSimulationTester, logger: Logger, avmTestContractArtifact: ContractArtifact
|
|
5
|
-
export declare function megaBulkTest(tester: PublicTxSimulationTester, logger: Logger, avmTestContractArtifact: ContractArtifact
|
|
4
|
+
export declare function bulkTest(tester: PublicTxSimulationTester, logger: Logger, avmTestContractArtifact: ContractArtifact): Promise<import("../index.js").PublicTxResult>;
|
|
5
|
+
export declare function megaBulkTest(tester: PublicTxSimulationTester, logger: Logger, avmTestContractArtifact: ContractArtifact): Promise<import("../index.js").PublicTxResult>;
|
|
6
6
|
//# sourceMappingURL=bulk_test.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulk_test.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/bulk_test.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,wBAAwB,EAChC,MAAM,EAAE,MAAM,EACd,uBAAuB,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"bulk_test.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/bulk_test.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,wBAAwB,EAChC,MAAM,EAAE,MAAM,EACd,uBAAuB,EAAE,gBAAgB,iDAsD1C;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,wBAAwB,EAChC,MAAM,EAAE,MAAM,EACd,uBAAuB,EAAE,gBAAgB,iDAgF1C"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/fields';
|
|
2
2
|
import { Timer } from '@aztec/foundation/timer';
|
|
3
3
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
|
-
export async function bulkTest(tester, logger, avmTestContractArtifact
|
|
4
|
+
export async function bulkTest(tester, logger, avmTestContractArtifact) {
|
|
5
5
|
const timer = new Timer();
|
|
6
6
|
const deployer = AztecAddress.fromNumber(42);
|
|
7
7
|
const avmTestContract = await tester.registerAndDeployContract(/*constructorArgs=*/ [], deployer, avmTestContractArtifact);
|
|
@@ -65,11 +65,10 @@ export async function bulkTest(tester, logger, avmTestContractArtifact, expectTo
|
|
|
65
65
|
]
|
|
66
66
|
}
|
|
67
67
|
});
|
|
68
|
-
expectToBeTrue(bulkResult.revertCode.isOK());
|
|
69
68
|
logger.info(`Bulk test took ${timer.ms()}ms\n`);
|
|
70
69
|
return bulkResult;
|
|
71
70
|
}
|
|
72
|
-
export async function megaBulkTest(tester, logger, avmTestContractArtifact
|
|
71
|
+
export async function megaBulkTest(tester, logger, avmTestContractArtifact) {
|
|
73
72
|
const timer = new Timer();
|
|
74
73
|
const deployer = AztecAddress.fromNumber(42);
|
|
75
74
|
const avmTestContract = await tester.registerAndDeployContract(/*constructorArgs=*/ [], deployer, avmTestContractArtifact);
|
|
@@ -389,7 +388,6 @@ export async function megaBulkTest(tester, logger, avmTestContractArtifact, expe
|
|
|
389
388
|
]
|
|
390
389
|
}
|
|
391
390
|
});
|
|
392
|
-
expectToBeTrue(bulkResult.revertCode.isOK());
|
|
393
391
|
logger.info(`Mega bulk test took ${timer.ms()}ms\n`);
|
|
394
392
|
return bulkResult;
|
|
395
393
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_processor.d.ts","sourceRoot":"","sources":["../../../src/public/public_processor/public_processor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAkC,MAAM,yBAAyB,CAAC;AAMvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"public_processor.d.ts","sourceRoot":"","sources":["../../../src/public/public_processor/public_processor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAkC,MAAM,yBAAyB,CAAC;AAMvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGjE,OAAO,KAAK,EACV,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,eAAe,EAChB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,KAAK,QAAQ,EACb,eAAe,EACf,yBAAyB,EACzB,KAAK,WAAW,EAEhB,EAAE,EAKH,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,iBAAiB,EAAiB,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,KAAK,iBAAiB,EAA8B,MAAM,iCAAiC,CAAC;AACrG,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAGvE;;GAEG;AACH,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,YAAY;IACpB,SAAS,CAAC,eAAe,EAAE,eAAe;gBAFlC,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,GAAE,YAAiC,EAC7C,eAAe,GAAE,eAAsC;IAGnE;;;;;;OAMG;IACI,MAAM,CACX,UAAU,EAAE,yBAAyB,EACrC,eAAe,EAAE,eAAe,EAChC,kBAAkB,EAAE,OAAO,EAC3B,yBAAyB,GAAE,OAAe,GACzC,eAAe;IAuBlB,SAAS,CAAC,uBAAuB,CAC/B,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EAChC,kBAAkB,EAAE,OAAO,EAC3B,kBAAkB,EAAE,OAAO,EAC3B,yBAAyB,EAAE,OAAO,GACjC,iBAAiB;CAWrB;AASD;;;GAGG;AACH,qBAAa,eAAgB,YAAW,SAAS;IAI7C,SAAS,CAAC,eAAe,EAAE,eAAe;IAC1C,OAAO,CAAC,iBAAiB;IACzB,SAAS,CAAC,WAAW,EAAE,iBAAiB;IACxC,SAAS,CAAC,iBAAiB,EAAE,iBAAiB;IAC9C,OAAO,CAAC,YAAY;IAEpB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,IAAI;IAVd,OAAO,CAAC,OAAO,CAAyB;gBAG5B,eAAe,EAAE,eAAe,EAClC,iBAAiB,EAAE,2BAA2B,EAC5C,WAAW,EAAE,iBAAiB,EAC9B,iBAAiB,EAAE,iBAAiB,EACtC,YAAY,EAAE,YAAY,EAClC,eAAe,GAAE,eAAsC,EAC/C,GAAG,yCAA6C,EAChD,IAAI,GAAE,IAAI,CAAC,eAAe,EAAE,4BAA4B,CAAM;IAKxE,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;;;OAMG;IACU,OAAO,CAClB,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC,EACrC,MAAM,GAAE,qBAA0B,EAClC,SAAS,GAAE,wBAA6B,GACvC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,yBAAyB,EAAE,CAAC,CAAC;YAyK5D,wBAAwB;YAiBxB,SAAS;YA2BT,gCAAgC;IAoC9C,kFAAkF;YACpE,uBAAuB;IA2CrC;;;;OAIG;YACW,gCAAgC;YA0BhC,oBAAoB;YAkCpB,wBAAwB;CAsCvC"}
|
|
@@ -14,6 +14,7 @@ import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
|
14
14
|
import { ContractClassPublishedEvent } from '@aztec/protocol-contracts/class-registry';
|
|
15
15
|
import { computeFeePayerBalanceLeafSlot, computeFeePayerBalanceStorageSlot } from '@aztec/protocol-contracts/fee-juice';
|
|
16
16
|
import { PublicDataWrite } from '@aztec/stdlib/avm';
|
|
17
|
+
import { computeTransactionFee } from '@aztec/stdlib/fees';
|
|
17
18
|
import { Gas } from '@aztec/stdlib/gas';
|
|
18
19
|
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
19
20
|
import { NestedProcessReturnValues, Tx, TxExecutionPhase, makeProcessedTxFromPrivateOnlyTx, makeProcessedTxFromTxWithPublicCalls } from '@aztec/stdlib/tx';
|
|
@@ -347,7 +348,7 @@ class PublicProcessorTimeoutError extends Error {
|
|
|
347
348
|
}
|
|
348
349
|
async processPrivateOnlyTx(tx) {
|
|
349
350
|
const gasFees = this.globalVariables.gasFees;
|
|
350
|
-
const transactionFee = tx.data.gasUsed
|
|
351
|
+
const transactionFee = computeTransactionFee(gasFees, tx.data.constants.txContext.gasSettings, tx.data.gasUsed);
|
|
351
352
|
const feePaymentPublicDataWrite = await this.performFeePaymentPublicDataWrite(transactionFee, tx.data.feePayer);
|
|
352
353
|
const processedTx = makeProcessedTxFromPrivateOnlyTx(tx, transactionFee, feePaymentPublicDataWrite, this.globalVariables);
|
|
353
354
|
this.metrics.recordClassPublication(...tx.getContractClassLogs().filter((log)=>ContractClassPublishedEvent.isContractClassPublishedEvent(log)).map((log)=>ContractClassPublishedEvent.fromLog(log)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state_manager.d.ts","sourceRoot":"","sources":["../../../src/public/state_manager/state_manager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"state_manager.d.ts","sourceRoot":"","sources":["../../../src/public/state_manager/state_manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -243,18 +243,20 @@ import { PublicStorage } from './public_storage.js';
|
|
|
243
243
|
const instanceWithAddress = await this.contractsDB.getContractInstance(contractAddress, this.timestamp);
|
|
244
244
|
const exists = instanceWithAddress !== undefined;
|
|
245
245
|
const instance = exists ? new SerializableContractInstance(instanceWithAddress) : undefined;
|
|
246
|
-
if (!exists) {
|
|
247
|
-
this.log.debug(`Contract instance NOT FOUND (address=${contractAddress})`);
|
|
248
|
-
return undefined;
|
|
249
|
-
}
|
|
250
|
-
this.log.trace(`Got contract instance (address=${contractAddress}): instance=${jsonStringify(instance)}`);
|
|
251
|
-
// Canonical addresses do not trigger nullifier and update checks.
|
|
252
246
|
if (contractAddressIsCanonical(contractAddress)) {
|
|
247
|
+
this.log.trace(`Got canonical contract instance (address=${contractAddress}): instance=${jsonStringify(instance)}`);
|
|
253
248
|
return instance;
|
|
254
249
|
}
|
|
255
|
-
//
|
|
250
|
+
// Nullifier check! We do this regardless of whether or not the instance exists,
|
|
251
|
+
// as even for non-existence, we need to generate nullifier check hints.
|
|
252
|
+
// This will internally decide whether to check the nullifier tree or not depending on doMerkleOperations.
|
|
256
253
|
const nullifierExistsInTree = await this.checkNullifierExists(AztecAddress.fromNumber(CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS), contractAddress.toField());
|
|
257
254
|
assert(exists == nullifierExistsInTree, `Contract instance for address ${contractAddress} in DB: ${exists} != nullifier tree: ${nullifierExistsInTree}. This is a bug!`);
|
|
255
|
+
if (!exists) {
|
|
256
|
+
this.log.debug(`Contract instance NOT FOUND (address=${contractAddress})`);
|
|
257
|
+
return undefined;
|
|
258
|
+
}
|
|
259
|
+
this.log.trace(`Got contract instance (address=${contractAddress}): instance=${jsonStringify(instance)}`);
|
|
258
260
|
// All that is left is tocheck that the contract updatability information is correct.
|
|
259
261
|
// That is, that the current and original contract class ids are correct.
|
|
260
262
|
await this.checkContractUpdateInformation(instanceWithAddress);
|
|
@@ -319,6 +321,7 @@ import { PublicStorage } from './public_storage.js';
|
|
|
319
321
|
} else {
|
|
320
322
|
this.log.debug(`Contract instance NOT FOUND (id=${classId})`);
|
|
321
323
|
}
|
|
324
|
+
// TODO(dbanks12): does this need to be moved to before the DB accesses as was done with writeNullifier?
|
|
322
325
|
this.trace.traceGetContractClass(classId, exists);
|
|
323
326
|
return extendedClass;
|
|
324
327
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/simulator",
|
|
3
|
-
"version": "2.0.0-nightly.
|
|
3
|
+
"version": "2.0.0-nightly.20250902",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./server": "./dest/server.js",
|
|
@@ -63,25 +63,25 @@
|
|
|
63
63
|
]
|
|
64
64
|
},
|
|
65
65
|
"dependencies": {
|
|
66
|
-
"@aztec/constants": "2.0.0-nightly.
|
|
67
|
-
"@aztec/foundation": "2.0.0-nightly.
|
|
68
|
-
"@aztec/noir-acvm_js": "2.0.0-nightly.
|
|
69
|
-
"@aztec/noir-noirc_abi": "2.0.0-nightly.
|
|
70
|
-
"@aztec/noir-protocol-circuits-types": "2.0.0-nightly.
|
|
71
|
-
"@aztec/noir-types": "2.0.0-nightly.
|
|
72
|
-
"@aztec/protocol-contracts": "2.0.0-nightly.
|
|
73
|
-
"@aztec/stdlib": "2.0.0-nightly.
|
|
74
|
-
"@aztec/telemetry-client": "2.0.0-nightly.
|
|
75
|
-
"@aztec/world-state": "2.0.0-nightly.
|
|
66
|
+
"@aztec/constants": "2.0.0-nightly.20250902",
|
|
67
|
+
"@aztec/foundation": "2.0.0-nightly.20250902",
|
|
68
|
+
"@aztec/noir-acvm_js": "2.0.0-nightly.20250902",
|
|
69
|
+
"@aztec/noir-noirc_abi": "2.0.0-nightly.20250902",
|
|
70
|
+
"@aztec/noir-protocol-circuits-types": "2.0.0-nightly.20250902",
|
|
71
|
+
"@aztec/noir-types": "2.0.0-nightly.20250902",
|
|
72
|
+
"@aztec/protocol-contracts": "2.0.0-nightly.20250902",
|
|
73
|
+
"@aztec/stdlib": "2.0.0-nightly.20250902",
|
|
74
|
+
"@aztec/telemetry-client": "2.0.0-nightly.20250902",
|
|
75
|
+
"@aztec/world-state": "2.0.0-nightly.20250902",
|
|
76
76
|
"lodash.clonedeep": "^4.5.0",
|
|
77
77
|
"lodash.merge": "^4.6.2",
|
|
78
78
|
"tslib": "^2.4.0"
|
|
79
79
|
},
|
|
80
80
|
"devDependencies": {
|
|
81
|
-
"@aztec/kv-store": "2.0.0-nightly.
|
|
82
|
-
"@aztec/merkle-tree": "2.0.0-nightly.
|
|
83
|
-
"@aztec/noir-contracts.js": "2.0.0-nightly.
|
|
84
|
-
"@aztec/noir-test-contracts.js": "2.0.0-nightly.
|
|
81
|
+
"@aztec/kv-store": "2.0.0-nightly.20250902",
|
|
82
|
+
"@aztec/merkle-tree": "2.0.0-nightly.20250902",
|
|
83
|
+
"@aztec/noir-contracts.js": "2.0.0-nightly.20250902",
|
|
84
|
+
"@aztec/noir-test-contracts.js": "2.0.0-nightly.20250902",
|
|
85
85
|
"@jest/globals": "^30.0.0",
|
|
86
86
|
"@types/jest": "^30.0.0",
|
|
87
87
|
"@types/lodash.clonedeep": "^4.5.7",
|
|
@@ -10,7 +10,6 @@ export async function bulkTest(
|
|
|
10
10
|
tester: PublicTxSimulationTester,
|
|
11
11
|
logger: Logger,
|
|
12
12
|
avmTestContractArtifact: ContractArtifact,
|
|
13
|
-
expectToBeTrue: (x: boolean) => void,
|
|
14
13
|
) {
|
|
15
14
|
const timer = new Timer();
|
|
16
15
|
|
|
@@ -60,7 +59,6 @@ export async function bulkTest(
|
|
|
60
59
|
},
|
|
61
60
|
},
|
|
62
61
|
);
|
|
63
|
-
expectToBeTrue(bulkResult.revertCode.isOK());
|
|
64
62
|
|
|
65
63
|
logger.info(`Bulk test took ${timer.ms()}ms\n`);
|
|
66
64
|
|
|
@@ -71,7 +69,6 @@ export async function megaBulkTest(
|
|
|
71
69
|
tester: PublicTxSimulationTester,
|
|
72
70
|
logger: Logger,
|
|
73
71
|
avmTestContractArtifact: ContractArtifact,
|
|
74
|
-
expectToBeTrue: (x: boolean) => void,
|
|
75
72
|
) {
|
|
76
73
|
const timer = new Timer();
|
|
77
74
|
|
|
@@ -147,7 +144,6 @@ export async function megaBulkTest(
|
|
|
147
144
|
},
|
|
148
145
|
},
|
|
149
146
|
);
|
|
150
|
-
expectToBeTrue(bulkResult.revertCode.isOK());
|
|
151
147
|
|
|
152
148
|
logger.info(`Mega bulk test took ${timer.ms()}ms\n`);
|
|
153
149
|
|
|
@@ -10,6 +10,7 @@ import { computeFeePayerBalanceLeafSlot, computeFeePayerBalanceStorageSlot } fro
|
|
|
10
10
|
import { PublicDataWrite } from '@aztec/stdlib/avm';
|
|
11
11
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
12
12
|
import type { ContractDataSource } from '@aztec/stdlib/contract';
|
|
13
|
+
import { computeTransactionFee } from '@aztec/stdlib/fees';
|
|
13
14
|
import { Gas } from '@aztec/stdlib/gas';
|
|
14
15
|
import type {
|
|
15
16
|
MerkleTreeWriteOperations,
|
|
@@ -478,7 +479,7 @@ export class PublicProcessor implements Traceable {
|
|
|
478
479
|
}))
|
|
479
480
|
private async processPrivateOnlyTx(tx: Tx): Promise<[ProcessedTx, undefined]> {
|
|
480
481
|
const gasFees = this.globalVariables.gasFees;
|
|
481
|
-
const transactionFee = tx.data.gasUsed
|
|
482
|
+
const transactionFee = computeTransactionFee(gasFees, tx.data.constants.txContext.gasSettings, tx.data.gasUsed);
|
|
482
483
|
|
|
483
484
|
const feePaymentPublicDataWrite = await this.performFeePaymentPublicDataWrite(transactionFee, tx.data.feePayer);
|
|
484
485
|
|
|
@@ -340,18 +340,18 @@ export class PublicPersistableStateManager {
|
|
|
340
340
|
const exists = instanceWithAddress !== undefined;
|
|
341
341
|
|
|
342
342
|
const instance = exists ? new SerializableContractInstance(instanceWithAddress) : undefined;
|
|
343
|
-
if (!exists) {
|
|
344
|
-
this.log.debug(`Contract instance NOT FOUND (address=${contractAddress})`);
|
|
345
|
-
return undefined;
|
|
346
|
-
}
|
|
347
343
|
|
|
348
|
-
this.log.trace(`Got contract instance (address=${contractAddress}): instance=${jsonStringify(instance!)}`);
|
|
349
|
-
// Canonical addresses do not trigger nullifier and update checks.
|
|
350
344
|
if (contractAddressIsCanonical(contractAddress)) {
|
|
345
|
+
this.log.trace(
|
|
346
|
+
`Got canonical contract instance (address=${contractAddress}): instance=${jsonStringify(instance!)}`,
|
|
347
|
+
);
|
|
351
348
|
return instance;
|
|
352
349
|
}
|
|
353
350
|
|
|
354
|
-
//
|
|
351
|
+
// Nullifier check! We do this regardless of whether or not the instance exists,
|
|
352
|
+
// as even for non-existence, we need to generate nullifier check hints.
|
|
353
|
+
|
|
354
|
+
// This will internally decide whether to check the nullifier tree or not depending on doMerkleOperations.
|
|
355
355
|
const nullifierExistsInTree = await this.checkNullifierExists(
|
|
356
356
|
AztecAddress.fromNumber(CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS),
|
|
357
357
|
contractAddress.toField(),
|
|
@@ -361,6 +361,13 @@ export class PublicPersistableStateManager {
|
|
|
361
361
|
`Contract instance for address ${contractAddress} in DB: ${exists} != nullifier tree: ${nullifierExistsInTree}. This is a bug!`,
|
|
362
362
|
);
|
|
363
363
|
|
|
364
|
+
if (!exists) {
|
|
365
|
+
this.log.debug(`Contract instance NOT FOUND (address=${contractAddress})`);
|
|
366
|
+
return undefined;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
this.log.trace(`Got contract instance (address=${contractAddress}): instance=${jsonStringify(instance!)}`);
|
|
370
|
+
|
|
364
371
|
// All that is left is tocheck that the contract updatability information is correct.
|
|
365
372
|
// That is, that the current and original contract class ids are correct.
|
|
366
373
|
await this.checkContractUpdateInformation(instanceWithAddress);
|
|
@@ -455,6 +462,7 @@ export class PublicPersistableStateManager {
|
|
|
455
462
|
this.log.debug(`Contract instance NOT FOUND (id=${classId})`);
|
|
456
463
|
}
|
|
457
464
|
|
|
465
|
+
// TODO(dbanks12): does this need to be moved to before the DB accesses as was done with writeNullifier?
|
|
458
466
|
this.trace.traceGetContractClass(classId, exists);
|
|
459
467
|
return extendedClass;
|
|
460
468
|
}
|