@aztec/txe 1.0.0 → 1.1.0
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/state_machine/archiver.d.ts +2 -1
- package/dest/state_machine/archiver.d.ts.map +1 -1
- package/dest/state_machine/archiver.js +1 -1
- package/dest/state_machine/index.d.ts.map +1 -1
- package/dest/state_machine/index.js +2 -1
- package/dest/state_machine/mock_epoch_cache.d.ts +23 -0
- package/dest/state_machine/mock_epoch_cache.d.ts.map +1 -0
- package/dest/state_machine/mock_epoch_cache.js +44 -0
- package/dest/txe_service/txe_service.d.ts +3 -0
- package/dest/txe_service/txe_service.d.ts.map +1 -1
- package/dest/txe_service/txe_service.js +9 -0
- package/package.json +15 -15
- package/src/state_machine/archiver.ts +2 -1
- package/src/state_machine/index.ts +2 -0
- package/src/state_machine/mock_epoch_cache.ts +59 -0
- package/src/txe_service/txe_service.ts +11 -0
|
@@ -6,6 +6,7 @@ import type { L2Block, L2Tips } from '@aztec/stdlib/block';
|
|
|
6
6
|
import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
7
7
|
import type { L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
|
|
8
8
|
import type { BlockHeader } from '@aztec/stdlib/tx';
|
|
9
|
+
import type { UInt64 } from '@aztec/stdlib/types';
|
|
9
10
|
export declare class TXEArchiver extends ArchiverStoreHelper {
|
|
10
11
|
constructor(db: AztecAsyncKVStore);
|
|
11
12
|
addBlocks(blocks: PublishedL2Block[]): Promise<boolean>;
|
|
@@ -46,7 +47,7 @@ export declare class TXEArchiver extends ArchiverStoreHelper {
|
|
|
46
47
|
getL2Tips(): Promise<L2Tips>;
|
|
47
48
|
getL1Constants(): Promise<L1RollupConstants>;
|
|
48
49
|
syncImmediate(): Promise<void>;
|
|
49
|
-
getContract(_address: AztecAddress,
|
|
50
|
+
getContract(_address: AztecAddress, _timestamp?: UInt64): Promise<ContractInstanceWithAddress | undefined>;
|
|
50
51
|
getRollupAddress(): Promise<EthAddress>;
|
|
51
52
|
getRegistryAddress(): Promise<EthAddress>;
|
|
52
53
|
getL1Timestamp(): Promise<bigint>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/state_machine/archiver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAuB,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAClG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/state_machine/archiver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAuB,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAClG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAKlD,qBAAa,WAAY,SAAQ,mBAAmB;gBACtC,EAAE,EAAE,iBAAiB;IAIX,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAS7E;;;OAGG;IACI,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAIxC;;;OAGG;IACI,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI9C;;;;OAIG;IACmB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAY9F;;;;OAIG;IACI,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAI7D;;;;OAIG;IACU,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAWjF,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAI7E,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAIlC,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAInC,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAI3D,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAIrE,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvD,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5B,cAAc,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAI5C,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC;IAI1G,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC;IAIvC,kBAAkB,IAAI,OAAO,CAAC,UAAU,CAAC;IAIzC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;CAGzC"}
|
|
@@ -88,7 +88,7 @@ export class TXEArchiver extends ArchiverStoreHelper {
|
|
|
88
88
|
syncImmediate() {
|
|
89
89
|
throw new Error('TXE Archiver does not implement "syncImmediate"');
|
|
90
90
|
}
|
|
91
|
-
getContract(_address,
|
|
91
|
+
getContract(_address, _timestamp) {
|
|
92
92
|
throw new Error('TXE Archiver does not implement "getContract"');
|
|
93
93
|
}
|
|
94
94
|
getRollupAddress() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state_machine/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAGjE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state_machine/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAGjE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,eAAe;IAEjB,IAAI,EAAE,SAAS;IACf,YAAY,EAAE,eAAe;IAC7B,QAAQ,EAAE,WAAW;IACrB,gBAAgB,EAAE,gBAAgB;gBAHlC,IAAI,EAAE,SAAS,EACf,YAAY,EAAE,eAAe,EAC7B,QAAQ,EAAE,WAAW,EACrB,gBAAgB,EAAE,gBAAgB;WAGvB,MAAM,CAAC,EAAE,EAAE,iBAAiB;IAkCnC,aAAa,CAAC,KAAK,EAAE,OAAO;CAiB1C"}
|
|
@@ -6,6 +6,7 @@ import { getPackageVersion } from '@aztec/stdlib/update-checker';
|
|
|
6
6
|
import { TXEArchiver } from './archiver.js';
|
|
7
7
|
import { DummyP2P } from './dummy_p2p_client.js';
|
|
8
8
|
import { TXEGlobalVariablesBuilder } from './global_variable_builder.js';
|
|
9
|
+
import { MockEpochCache } from './mock_epoch_cache.js';
|
|
9
10
|
import { TXESynchronizer } from './synchronizer.js';
|
|
10
11
|
export class TXEStateMachine {
|
|
11
12
|
node;
|
|
@@ -25,7 +26,7 @@ export class TXEStateMachine {
|
|
|
25
26
|
const aztecNodeConfig = {};
|
|
26
27
|
const log = createLogger('txe_node');
|
|
27
28
|
const node = new AztecNodeService(aztecNodeConfig, new DummyP2P(), archiver, archiver, archiver, archiver, synchronizer, undefined, undefined, undefined, undefined, // version and chainId should match the ones in txe oracle
|
|
28
|
-
1, 1, new TXEGlobalVariablesBuilder(), getPackageVersion() ?? '', new TestCircuitVerifier(), undefined, log);
|
|
29
|
+
1, 1, new TXEGlobalVariablesBuilder(), new MockEpochCache(), getPackageVersion() ?? '', new TestCircuitVerifier(), undefined, log);
|
|
29
30
|
return new this(node, synchronizer, archiver, syncDataProvider);
|
|
30
31
|
}
|
|
31
32
|
async handleL2Block(block) {
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { EpochAndSlot, EpochCacheInterface, EpochCommitteeInfo } from '@aztec/epoch-cache';
|
|
2
|
+
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
|
+
/**
|
|
4
|
+
* Mock implementation of the EpochCacheInterface used to satisfy dependencies of AztecNodeService.
|
|
5
|
+
* Since in TXE we don't validate transactions, mock suffices here.
|
|
6
|
+
*/
|
|
7
|
+
export declare class MockEpochCache implements EpochCacheInterface {
|
|
8
|
+
getCommittee(): Promise<EpochCommitteeInfo>;
|
|
9
|
+
getEpochAndSlotNow(): EpochAndSlot;
|
|
10
|
+
getEpochAndSlotInNextL1Slot(): EpochAndSlot & {
|
|
11
|
+
now: bigint;
|
|
12
|
+
};
|
|
13
|
+
getProposerIndexEncoding(_epoch: bigint, _slot: bigint, _seed: bigint): `0x${string}`;
|
|
14
|
+
computeProposerIndex(_slot: bigint, _epoch: bigint, _seed: bigint, _size: bigint): bigint;
|
|
15
|
+
getProposerAttesterAddressInCurrentOrNextSlot(): Promise<{
|
|
16
|
+
currentProposer: EthAddress | undefined;
|
|
17
|
+
nextProposer: EthAddress | undefined;
|
|
18
|
+
currentSlot: bigint;
|
|
19
|
+
nextSlot: bigint;
|
|
20
|
+
}>;
|
|
21
|
+
isInCommittee(_validator: EthAddress): Promise<boolean>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=mock_epoch_cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock_epoch_cache.d.ts","sourceRoot":"","sources":["../../src/state_machine/mock_epoch_cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAChG,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D;;;GAGG;AACH,qBAAa,cAAe,YAAW,mBAAmB;IACxD,YAAY,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAQ3C,kBAAkB,IAAI,YAAY;IAQlC,2BAA2B,IAAI,YAAY,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE;IAS7D,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE;IAIrF,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAIzF,6CAA6C,IAAI,OAAO,CAAC;QACvD,eAAe,EAAE,UAAU,GAAG,SAAS,CAAC;QACxC,YAAY,EAAE,UAAU,GAAG,SAAS,CAAC;QACrC,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IASF,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;CAGxD"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mock implementation of the EpochCacheInterface used to satisfy dependencies of AztecNodeService.
|
|
3
|
+
* Since in TXE we don't validate transactions, mock suffices here.
|
|
4
|
+
*/ export class MockEpochCache {
|
|
5
|
+
getCommittee() {
|
|
6
|
+
return Promise.resolve({
|
|
7
|
+
committee: undefined,
|
|
8
|
+
seed: 0n,
|
|
9
|
+
epoch: 0n
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
getEpochAndSlotNow() {
|
|
13
|
+
return {
|
|
14
|
+
epoch: 0n,
|
|
15
|
+
slot: 0n,
|
|
16
|
+
ts: 0n
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
getEpochAndSlotInNextL1Slot() {
|
|
20
|
+
return {
|
|
21
|
+
epoch: 0n,
|
|
22
|
+
slot: 0n,
|
|
23
|
+
ts: 0n,
|
|
24
|
+
now: 0n
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
getProposerIndexEncoding(_epoch, _slot, _seed) {
|
|
28
|
+
return '0x00';
|
|
29
|
+
}
|
|
30
|
+
computeProposerIndex(_slot, _epoch, _seed, _size) {
|
|
31
|
+
return 0n;
|
|
32
|
+
}
|
|
33
|
+
getProposerAttesterAddressInCurrentOrNextSlot() {
|
|
34
|
+
return Promise.resolve({
|
|
35
|
+
currentProposer: undefined,
|
|
36
|
+
nextProposer: undefined,
|
|
37
|
+
currentSlot: 0n,
|
|
38
|
+
nextSlot: 0n
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
isInCommittee(_validator) {
|
|
42
|
+
return Promise.resolve(false);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -205,6 +205,9 @@ export declare class TXEService {
|
|
|
205
205
|
avmOpcodeBlockNumber(): Promise<{
|
|
206
206
|
values: (string | ForeignCallArray)[];
|
|
207
207
|
}>;
|
|
208
|
+
avmOpcodeTimestamp(): Promise<{
|
|
209
|
+
values: (string | ForeignCallArray)[];
|
|
210
|
+
}>;
|
|
208
211
|
avmOpcodeIsStaticCall(): {
|
|
209
212
|
values: (string | ForeignCallArray)[];
|
|
210
213
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"txe_service.d.ts","sourceRoot":"","sources":["../../src/txe_service/txe_service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"txe_service.d.ts","sourceRoot":"","sources":["../../src/txe_service/txe_service.ts"],"names":[],"mappings":"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"}
|
|
@@ -660,6 +660,15 @@ export class TXEService {
|
|
|
660
660
|
toSingle(new Fr(blockNumber))
|
|
661
661
|
]);
|
|
662
662
|
}
|
|
663
|
+
async avmOpcodeTimestamp() {
|
|
664
|
+
if (!this.oraclesEnabled) {
|
|
665
|
+
throw new Error('Oracle access from the root of a TXe test are not enabled. Please use env._ to interact with the oracles.');
|
|
666
|
+
}
|
|
667
|
+
const timestamp = await this.typedOracle.getTimestamp();
|
|
668
|
+
return toForeignCallResult([
|
|
669
|
+
toSingle(new Fr(timestamp))
|
|
670
|
+
]);
|
|
671
|
+
}
|
|
663
672
|
avmOpcodeIsStaticCall() {
|
|
664
673
|
if (!this.oraclesEnabled) {
|
|
665
674
|
throw new Error('Oracle access from the root of a TXe test are not enabled. Please use env._ to interact with the oracles.');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/txe",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": "./dest/index.js",
|
|
6
6
|
"bin": "./dest/bin/index.js",
|
|
@@ -61,20 +61,20 @@
|
|
|
61
61
|
]
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@aztec/accounts": "1.
|
|
65
|
-
"@aztec/archiver": "1.
|
|
66
|
-
"@aztec/aztec-node": "1.
|
|
67
|
-
"@aztec/aztec.js": "1.
|
|
68
|
-
"@aztec/bb-prover": "1.
|
|
69
|
-
"@aztec/constants": "1.
|
|
70
|
-
"@aztec/foundation": "1.
|
|
71
|
-
"@aztec/key-store": "1.
|
|
72
|
-
"@aztec/kv-store": "1.
|
|
73
|
-
"@aztec/protocol-contracts": "1.
|
|
74
|
-
"@aztec/pxe": "1.
|
|
75
|
-
"@aztec/simulator": "1.
|
|
76
|
-
"@aztec/stdlib": "1.
|
|
77
|
-
"@aztec/world-state": "1.
|
|
64
|
+
"@aztec/accounts": "1.1.0",
|
|
65
|
+
"@aztec/archiver": "1.1.0",
|
|
66
|
+
"@aztec/aztec-node": "1.1.0",
|
|
67
|
+
"@aztec/aztec.js": "1.1.0",
|
|
68
|
+
"@aztec/bb-prover": "1.1.0",
|
|
69
|
+
"@aztec/constants": "1.1.0",
|
|
70
|
+
"@aztec/foundation": "1.1.0",
|
|
71
|
+
"@aztec/key-store": "1.1.0",
|
|
72
|
+
"@aztec/kv-store": "1.1.0",
|
|
73
|
+
"@aztec/protocol-contracts": "1.1.0",
|
|
74
|
+
"@aztec/pxe": "1.1.0",
|
|
75
|
+
"@aztec/simulator": "1.1.0",
|
|
76
|
+
"@aztec/stdlib": "1.1.0",
|
|
77
|
+
"@aztec/world-state": "1.1.0",
|
|
78
78
|
"zod": "^3.23.8"
|
|
79
79
|
},
|
|
80
80
|
"devDependencies": {
|
|
@@ -6,6 +6,7 @@ import type { L2Block, L2Tips } from '@aztec/stdlib/block';
|
|
|
6
6
|
import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
7
7
|
import type { L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
|
|
8
8
|
import type { BlockHeader } from '@aztec/stdlib/tx';
|
|
9
|
+
import type { UInt64 } from '@aztec/stdlib/types';
|
|
9
10
|
|
|
10
11
|
// We are extending the ArchiverDataStoreHelper here because it provides most of the endpoints needed by the
|
|
11
12
|
// node for reading from and writing to state, without needing any of the extra overhead that the Archiver itself
|
|
@@ -118,7 +119,7 @@ export class TXEArchiver extends ArchiverStoreHelper {
|
|
|
118
119
|
throw new Error('TXE Archiver does not implement "syncImmediate"');
|
|
119
120
|
}
|
|
120
121
|
|
|
121
|
-
public getContract(_address: AztecAddress,
|
|
122
|
+
public getContract(_address: AztecAddress, _timestamp?: UInt64): Promise<ContractInstanceWithAddress | undefined> {
|
|
122
123
|
throw new Error('TXE Archiver does not implement "getContract"');
|
|
123
124
|
}
|
|
124
125
|
|
|
@@ -10,6 +10,7 @@ import { getPackageVersion } from '@aztec/stdlib/update-checker';
|
|
|
10
10
|
import { TXEArchiver } from './archiver.js';
|
|
11
11
|
import { DummyP2P } from './dummy_p2p_client.js';
|
|
12
12
|
import { TXEGlobalVariablesBuilder } from './global_variable_builder.js';
|
|
13
|
+
import { MockEpochCache } from './mock_epoch_cache.js';
|
|
13
14
|
import { TXESynchronizer } from './synchronizer.js';
|
|
14
15
|
|
|
15
16
|
export class TXEStateMachine {
|
|
@@ -44,6 +45,7 @@ export class TXEStateMachine {
|
|
|
44
45
|
1,
|
|
45
46
|
1,
|
|
46
47
|
new TXEGlobalVariablesBuilder(),
|
|
48
|
+
new MockEpochCache(),
|
|
47
49
|
getPackageVersion() ?? '',
|
|
48
50
|
new TestCircuitVerifier(),
|
|
49
51
|
undefined,
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { EpochAndSlot, EpochCacheInterface, EpochCommitteeInfo } from '@aztec/epoch-cache';
|
|
2
|
+
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Mock implementation of the EpochCacheInterface used to satisfy dependencies of AztecNodeService.
|
|
6
|
+
* Since in TXE we don't validate transactions, mock suffices here.
|
|
7
|
+
*/
|
|
8
|
+
export class MockEpochCache implements EpochCacheInterface {
|
|
9
|
+
getCommittee(): Promise<EpochCommitteeInfo> {
|
|
10
|
+
return Promise.resolve({
|
|
11
|
+
committee: undefined,
|
|
12
|
+
seed: 0n,
|
|
13
|
+
epoch: 0n,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
getEpochAndSlotNow(): EpochAndSlot {
|
|
18
|
+
return {
|
|
19
|
+
epoch: 0n,
|
|
20
|
+
slot: 0n,
|
|
21
|
+
ts: 0n,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
getEpochAndSlotInNextL1Slot(): EpochAndSlot & { now: bigint } {
|
|
26
|
+
return {
|
|
27
|
+
epoch: 0n,
|
|
28
|
+
slot: 0n,
|
|
29
|
+
ts: 0n,
|
|
30
|
+
now: 0n,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
getProposerIndexEncoding(_epoch: bigint, _slot: bigint, _seed: bigint): `0x${string}` {
|
|
35
|
+
return '0x00';
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
computeProposerIndex(_slot: bigint, _epoch: bigint, _seed: bigint, _size: bigint): bigint {
|
|
39
|
+
return 0n;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
getProposerAttesterAddressInCurrentOrNextSlot(): Promise<{
|
|
43
|
+
currentProposer: EthAddress | undefined;
|
|
44
|
+
nextProposer: EthAddress | undefined;
|
|
45
|
+
currentSlot: bigint;
|
|
46
|
+
nextSlot: bigint;
|
|
47
|
+
}> {
|
|
48
|
+
return Promise.resolve({
|
|
49
|
+
currentProposer: undefined,
|
|
50
|
+
nextProposer: undefined,
|
|
51
|
+
currentSlot: 0n,
|
|
52
|
+
nextSlot: 0n,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
isInCommittee(_validator: EthAddress): Promise<boolean> {
|
|
57
|
+
return Promise.resolve(false);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -1040,6 +1040,17 @@ export class TXEService {
|
|
|
1040
1040
|
return toForeignCallResult([toSingle(new Fr(blockNumber))]);
|
|
1041
1041
|
}
|
|
1042
1042
|
|
|
1043
|
+
async avmOpcodeTimestamp() {
|
|
1044
|
+
if (!this.oraclesEnabled) {
|
|
1045
|
+
throw new Error(
|
|
1046
|
+
'Oracle access from the root of a TXe test are not enabled. Please use env._ to interact with the oracles.',
|
|
1047
|
+
);
|
|
1048
|
+
}
|
|
1049
|
+
|
|
1050
|
+
const timestamp = await this.typedOracle.getTimestamp();
|
|
1051
|
+
return toForeignCallResult([toSingle(new Fr(timestamp))]);
|
|
1052
|
+
}
|
|
1053
|
+
|
|
1043
1054
|
avmOpcodeIsStaticCall() {
|
|
1044
1055
|
if (!this.oraclesEnabled) {
|
|
1045
1056
|
throw new Error(
|