@aztec/txe 0.0.1-commit.9593d84 → 0.0.1-commit.967fc6998
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/constants.d.ts +3 -0
- package/dest/constants.d.ts.map +1 -0
- package/dest/constants.js +2 -0
- package/dest/index.d.ts +1 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +85 -52
- package/dest/oracle/interfaces.d.ts +14 -10
- package/dest/oracle/interfaces.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_public_context.d.ts +7 -7
- package/dest/oracle/txe_oracle_public_context.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_public_context.js +10 -12
- package/dest/oracle/txe_oracle_top_level_context.d.ts +24 -15
- package/dest/oracle/txe_oracle_top_level_context.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_top_level_context.js +188 -80
- package/dest/rpc_translator.d.ts +30 -18
- package/dest/rpc_translator.d.ts.map +1 -1
- package/dest/rpc_translator.js +140 -61
- package/dest/state_machine/archiver.d.ts +21 -52
- package/dest/state_machine/archiver.d.ts.map +1 -1
- package/dest/state_machine/archiver.js +63 -94
- package/dest/state_machine/dummy_p2p_client.d.ts +20 -15
- package/dest/state_machine/dummy_p2p_client.d.ts.map +1 -1
- package/dest/state_machine/dummy_p2p_client.js +42 -25
- package/dest/state_machine/global_variable_builder.d.ts +6 -5
- package/dest/state_machine/global_variable_builder.d.ts.map +1 -1
- package/dest/state_machine/global_variable_builder.js +13 -1
- package/dest/state_machine/index.d.ts +7 -7
- package/dest/state_machine/index.d.ts.map +1 -1
- package/dest/state_machine/index.js +40 -23
- package/dest/state_machine/mock_epoch_cache.d.ts +9 -6
- package/dest/state_machine/mock_epoch_cache.d.ts.map +1 -1
- package/dest/state_machine/mock_epoch_cache.js +14 -7
- package/dest/state_machine/synchronizer.d.ts +3 -2
- package/dest/state_machine/synchronizer.d.ts.map +1 -1
- package/dest/state_machine/synchronizer.js +5 -4
- package/dest/txe_session.d.ts +26 -15
- package/dest/txe_session.d.ts.map +1 -1
- package/dest/txe_session.js +158 -52
- package/dest/util/encoding.d.ts +618 -19
- package/dest/util/encoding.d.ts.map +1 -1
- package/dest/util/encoding.js +1 -1
- package/dest/util/txe_account_store.d.ts +10 -0
- package/dest/util/txe_account_store.d.ts.map +1 -0
- package/dest/util/{txe_account_data_provider.js → txe_account_store.js} +1 -1
- package/dest/util/txe_public_contract_data_source.d.ts +8 -8
- package/dest/util/txe_public_contract_data_source.d.ts.map +1 -1
- package/dest/util/txe_public_contract_data_source.js +12 -29
- package/dest/utils/block_creation.d.ts +21 -6
- package/dest/utils/block_creation.d.ts.map +1 -1
- package/dest/utils/block_creation.js +38 -4
- package/dest/utils/tx_effect_creation.d.ts +3 -3
- package/dest/utils/tx_effect_creation.d.ts.map +1 -1
- package/dest/utils/tx_effect_creation.js +4 -7
- package/package.json +18 -18
- package/src/constants.ts +3 -0
- package/src/index.ts +97 -60
- package/src/oracle/interfaces.ts +16 -8
- package/src/oracle/txe_oracle_public_context.ts +12 -19
- package/src/oracle/txe_oracle_top_level_context.ts +233 -120
- package/src/rpc_translator.ts +171 -60
- package/src/state_machine/archiver.ts +59 -114
- package/src/state_machine/dummy_p2p_client.ts +58 -33
- package/src/state_machine/global_variable_builder.ts +21 -4
- package/src/state_machine/index.ts +60 -21
- package/src/state_machine/mock_epoch_cache.ts +15 -11
- package/src/state_machine/synchronizer.ts +6 -5
- package/src/txe_session.ts +219 -100
- package/src/util/encoding.ts +1 -1
- package/src/util/{txe_account_data_provider.ts → txe_account_store.ts} +1 -1
- package/src/util/txe_public_contract_data_source.ts +20 -45
- package/src/utils/block_creation.ts +49 -15
- package/src/utils/tx_effect_creation.ts +5 -12
- package/dest/util/txe_account_data_provider.d.ts +0 -10
- package/dest/util/txe_account_data_provider.d.ts.map +0 -1
- package/dest/util/txe_contract_data_provider.d.ts +0 -12
- package/dest/util/txe_contract_data_provider.d.ts.map +0 -1
- package/dest/util/txe_contract_data_provider.js +0 -22
- package/src/util/txe_contract_data_provider.ts +0 -36
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
2
|
+
export declare const DEFAULT_ADDRESS: AztecAddress;
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUzRCxlQUFPLE1BQU0sZUFBZSxjQUE4QixDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,eAAO,MAAM,eAAe,cAA8B,CAAC"}
|
package/dest/index.d.ts
CHANGED
|
@@ -5,4 +5,4 @@ import type { Logger } from '@aztec/foundation/log';
|
|
|
5
5
|
* @returns A TXE RPC server.
|
|
6
6
|
*/
|
|
7
7
|
export declare function createTXERpcServer(logger: Logger): import("@aztec/foundation/json-rpc/server").SafeJsonRpcServer;
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQWtRcEQ7Ozs7R0FJRztBQUNILHdCQUFnQixrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxpRUFJaEQifQ==
|
package/dest/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAkQpD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,iEAIhD"}
|
package/dest/index.js
CHANGED
|
@@ -5,9 +5,12 @@ import { getContractInstanceFromInstantiationParams } from '@aztec/aztec.js/cont
|
|
|
5
5
|
import { Fr } from '@aztec/aztec.js/fields';
|
|
6
6
|
import { PublicKeys, deriveKeys } from '@aztec/aztec.js/keys';
|
|
7
7
|
import { createSafeJsonRpcServer } from '@aztec/foundation/json-rpc/server';
|
|
8
|
+
import { openTmpStore } from '@aztec/kv-store/lmdb-v2';
|
|
8
9
|
import { protocolContractNames } from '@aztec/protocol-contracts';
|
|
9
10
|
import { BundledProtocolContractsProvider } from '@aztec/protocol-contracts/providers/bundle';
|
|
11
|
+
import { ContractStore } from '@aztec/pxe/server';
|
|
10
12
|
import { computeArtifactHash } from '@aztec/stdlib/contract';
|
|
13
|
+
import { zodFor } from '@aztec/stdlib/schemas';
|
|
11
14
|
import { createHash } from 'crypto';
|
|
12
15
|
import { createReadStream } from 'fs';
|
|
13
16
|
import { readFile, readdir } from 'fs/promises';
|
|
@@ -18,9 +21,13 @@ import { ForeignCallArgsSchema, ForeignCallResultSchema, fromArray, fromSingle,
|
|
|
18
21
|
const sessions = new Map();
|
|
19
22
|
/*
|
|
20
23
|
* TXE typically has to load the same contract artifacts over and over again for multiple tests,
|
|
21
|
-
* so we cache them here to avoid
|
|
24
|
+
* so we cache them here to avoid loading from disk repeatedly.
|
|
25
|
+
*
|
|
26
|
+
* The in-flight map coalesces concurrent requests for the same cache key so that
|
|
27
|
+
* computeArtifactHash (very expensive) is only run once even under parallelism.
|
|
22
28
|
*/ const TXEArtifactsCache = new Map();
|
|
23
|
-
const
|
|
29
|
+
const TXEArtifactsCacheInFlight = new Map();
|
|
30
|
+
const TXEForeignCallInputSchema = zodFor()(z.object({
|
|
24
31
|
// eslint-disable-next-line camelcase
|
|
25
32
|
session_id: z.number().int().nonnegative(),
|
|
26
33
|
function: z.string(),
|
|
@@ -29,10 +36,10 @@ const TXEForeignCallInputSchema = z.object({
|
|
|
29
36
|
// eslint-disable-next-line camelcase
|
|
30
37
|
package_name: z.string(),
|
|
31
38
|
inputs: ForeignCallArgsSchema
|
|
32
|
-
});
|
|
39
|
+
}));
|
|
33
40
|
class TXEDispatcher {
|
|
34
41
|
logger;
|
|
35
|
-
|
|
42
|
+
contractStore;
|
|
36
43
|
constructor(logger){
|
|
37
44
|
this.logger = logger;
|
|
38
45
|
}
|
|
@@ -84,28 +91,37 @@ class TXEDispatcher {
|
|
|
84
91
|
this.logger.debug(`Using cached artifact for ${cacheKey}`);
|
|
85
92
|
({ artifact, instance } = TXEArtifactsCache.get(cacheKey));
|
|
86
93
|
} else {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
94
|
+
if (!TXEArtifactsCacheInFlight.has(cacheKey)) {
|
|
95
|
+
this.logger.debug(`Loading compiled artifact ${artifactPath}`);
|
|
96
|
+
const compute = async ()=>{
|
|
97
|
+
const artifactJSON = JSON.parse(await readFile(artifactPath, 'utf-8'));
|
|
98
|
+
const artifactWithoutHash = loadContractArtifact(artifactJSON);
|
|
99
|
+
const computedArtifact = {
|
|
100
|
+
...artifactWithoutHash,
|
|
101
|
+
// Artifact hash is *very* expensive to compute, so we do it here once
|
|
102
|
+
// and the TXE contract data provider can cache it
|
|
103
|
+
artifactHash: await computeArtifactHash(artifactWithoutHash)
|
|
104
|
+
};
|
|
105
|
+
this.logger.debug(`Deploy ${computedArtifact.name} with initializer ${initializer}(${decodedArgs}) and public keys hash ${publicKeysHash.toString()}`);
|
|
106
|
+
const computedInstance = await getContractInstanceFromInstantiationParams(computedArtifact, {
|
|
107
|
+
constructorArgs: decodedArgs,
|
|
108
|
+
skipArgsDecoding: true,
|
|
109
|
+
salt: Fr.ONE,
|
|
110
|
+
publicKeys,
|
|
111
|
+
constructorArtifact: initializer ? initializer : undefined,
|
|
112
|
+
deployer: AztecAddress.ZERO
|
|
113
|
+
});
|
|
114
|
+
const result = {
|
|
115
|
+
artifact: computedArtifact,
|
|
116
|
+
instance: computedInstance
|
|
117
|
+
};
|
|
118
|
+
TXEArtifactsCache.set(cacheKey, result);
|
|
119
|
+
TXEArtifactsCacheInFlight.delete(cacheKey);
|
|
120
|
+
return result;
|
|
121
|
+
};
|
|
122
|
+
TXEArtifactsCacheInFlight.set(cacheKey, compute());
|
|
123
|
+
}
|
|
124
|
+
({ artifact, instance } = await TXEArtifactsCacheInFlight.get(cacheKey));
|
|
109
125
|
}
|
|
110
126
|
inputs.splice(0, 1, artifact, instance, toSingle(secret));
|
|
111
127
|
}
|
|
@@ -118,29 +134,38 @@ class TXEDispatcher {
|
|
|
118
134
|
this.logger.debug(`Using cached artifact for ${cacheKey}`);
|
|
119
135
|
({ artifact, instance } = TXEArtifactsCache.get(cacheKey));
|
|
120
136
|
} else {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
137
|
+
if (!TXEArtifactsCacheInFlight.has(cacheKey)) {
|
|
138
|
+
const compute = async ()=>{
|
|
139
|
+
const keys = await deriveKeys(secret);
|
|
140
|
+
const args = [
|
|
141
|
+
keys.publicKeys.masterIncomingViewingPublicKey.x,
|
|
142
|
+
keys.publicKeys.masterIncomingViewingPublicKey.y
|
|
143
|
+
];
|
|
144
|
+
const computedArtifact = {
|
|
145
|
+
...SchnorrAccountContractArtifact,
|
|
146
|
+
// Artifact hash is *very* expensive to compute, so we do it here once
|
|
147
|
+
// and the TXE contract data provider can cache it
|
|
148
|
+
artifactHash: await computeArtifactHash(SchnorrAccountContractArtifact)
|
|
149
|
+
};
|
|
150
|
+
const computedInstance = await getContractInstanceFromInstantiationParams(computedArtifact, {
|
|
151
|
+
constructorArgs: args,
|
|
152
|
+
skipArgsDecoding: true,
|
|
153
|
+
salt: Fr.ONE,
|
|
154
|
+
publicKeys: keys.publicKeys,
|
|
155
|
+
constructorArtifact: 'constructor',
|
|
156
|
+
deployer: AztecAddress.ZERO
|
|
157
|
+
});
|
|
158
|
+
const result = {
|
|
159
|
+
artifact: computedArtifact,
|
|
160
|
+
instance: computedInstance
|
|
161
|
+
};
|
|
162
|
+
TXEArtifactsCache.set(cacheKey, result);
|
|
163
|
+
TXEArtifactsCacheInFlight.delete(cacheKey);
|
|
164
|
+
return result;
|
|
165
|
+
};
|
|
166
|
+
TXEArtifactsCacheInFlight.set(cacheKey, compute());
|
|
167
|
+
}
|
|
168
|
+
({ artifact, instance } = await TXEArtifactsCacheInFlight.get(cacheKey));
|
|
144
169
|
}
|
|
145
170
|
inputs.splice(0, 0, artifact, instance);
|
|
146
171
|
}
|
|
@@ -150,10 +175,18 @@ class TXEDispatcher {
|
|
|
150
175
|
this.logger.debug(`Calling ${functionName} on session ${sessionId}`);
|
|
151
176
|
if (!sessions.has(sessionId)) {
|
|
152
177
|
this.logger.debug(`Creating new session ${sessionId}`);
|
|
153
|
-
if (!this.
|
|
154
|
-
|
|
178
|
+
if (!this.contractStore) {
|
|
179
|
+
const kvStore = await openTmpStore('txe-contracts');
|
|
180
|
+
this.contractStore = new ContractStore(kvStore);
|
|
181
|
+
const provider = new BundledProtocolContractsProvider();
|
|
182
|
+
for (const name of protocolContractNames){
|
|
183
|
+
const { instance, artifact } = await provider.getProtocolContractArtifact(name);
|
|
184
|
+
await this.contractStore.addContractArtifact(artifact);
|
|
185
|
+
await this.contractStore.addContractInstance(instance);
|
|
186
|
+
}
|
|
187
|
+
this.logger.debug('Registered protocol contracts in shared contract store');
|
|
155
188
|
}
|
|
156
|
-
sessions.set(sessionId, await TXESession.init(this.
|
|
189
|
+
sessions.set(sessionId, await TXESession.init(this.contractStore));
|
|
157
190
|
}
|
|
158
191
|
switch(functionName){
|
|
159
192
|
case 'txeDeploy':
|
|
@@ -2,10 +2,11 @@ import type { ContractArtifact } from '@aztec/aztec.js/abi';
|
|
|
2
2
|
import { CompleteAddress } from '@aztec/aztec.js/addresses';
|
|
3
3
|
import type { ContractInstanceWithAddress } from '@aztec/aztec.js/contracts';
|
|
4
4
|
import { TxHash } from '@aztec/aztec.js/tx';
|
|
5
|
-
import
|
|
6
|
-
import type {
|
|
5
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
6
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
7
|
+
import type { EventSelector, FunctionSelector } from '@aztec/stdlib/abi';
|
|
7
8
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
8
|
-
import type {
|
|
9
|
+
import type { UInt64 } from '@aztec/stdlib/types';
|
|
9
10
|
/**
|
|
10
11
|
* Oracle methods associated with the execution of an Aztec #[external("public")] function.
|
|
11
12
|
*
|
|
@@ -17,23 +18,24 @@ export interface IAvmExecutionOracle {
|
|
|
17
18
|
isAvm: true;
|
|
18
19
|
avmOpcodeAddress(): Promise<AztecAddress>;
|
|
19
20
|
avmOpcodeSender(): Promise<AztecAddress>;
|
|
20
|
-
avmOpcodeBlockNumber(): Promise<
|
|
21
|
+
avmOpcodeBlockNumber(): Promise<BlockNumber>;
|
|
21
22
|
avmOpcodeTimestamp(): Promise<bigint>;
|
|
22
23
|
avmOpcodeIsStaticCall(): Promise<boolean>;
|
|
23
24
|
avmOpcodeChainId(): Promise<Fr>;
|
|
24
25
|
avmOpcodeVersion(): Promise<Fr>;
|
|
25
26
|
avmOpcodeEmitNullifier(nullifier: Fr): Promise<void>;
|
|
26
27
|
avmOpcodeEmitNoteHash(noteHash: Fr): Promise<void>;
|
|
27
|
-
avmOpcodeNullifierExists(
|
|
28
|
+
avmOpcodeNullifierExists(siloedNullifier: Fr): Promise<boolean>;
|
|
28
29
|
avmOpcodeStorageWrite(slot: Fr, value: Fr): Promise<void>;
|
|
29
|
-
avmOpcodeStorageRead(slot: Fr): Promise<Fr>;
|
|
30
|
+
avmOpcodeStorageRead(slot: Fr, contractAddress: AztecAddress): Promise<Fr>;
|
|
30
31
|
}
|
|
31
32
|
/**
|
|
32
33
|
* Oracle methods associated with the execution of an Aztec Noir test.
|
|
33
34
|
*/
|
|
34
35
|
export interface ITxeExecutionOracle {
|
|
35
36
|
isTxe: true;
|
|
36
|
-
|
|
37
|
+
txeGetDefaultAddress(): AztecAddress;
|
|
38
|
+
txeGetNextBlockNumber(): Promise<BlockNumber>;
|
|
37
39
|
txeGetNextBlockTimestamp(): Promise<UInt64>;
|
|
38
40
|
txeAdvanceBlocksBy(blocks: number): Promise<void>;
|
|
39
41
|
txeAdvanceTimestampBy(duration: UInt64): void;
|
|
@@ -47,8 +49,10 @@ export interface ITxeExecutionOracle {
|
|
|
47
49
|
noteHashes: Fr[];
|
|
48
50
|
nullifiers: Fr[];
|
|
49
51
|
}>;
|
|
50
|
-
|
|
51
|
-
|
|
52
|
+
txeGetPrivateEvents(selector: EventSelector, contractAddress: AztecAddress, scope: AztecAddress): Promise<Fr[][]>;
|
|
53
|
+
txePrivateCallNewFlow(from: AztecAddress, targetContractAddress: AztecAddress, functionSelector: FunctionSelector, args: Fr[], argsHash: Fr, isStaticCall: boolean, jobId: string): Promise<Fr[]>;
|
|
54
|
+
txeExecuteUtilityFunction(targetContractAddress: AztecAddress, functionSelector: FunctionSelector, args: Fr[], jobId: string): Promise<Fr[]>;
|
|
52
55
|
txePublicCallNewFlow(from: AztecAddress, targetContractAddress: AztecAddress, calldata: Fr[], isStaticCall: boolean): Promise<Fr[]>;
|
|
56
|
+
syncContractNonOracleMethod(contractAddress: AztecAddress, scope: AztecAddress, jobId: string): Promise<void>;
|
|
53
57
|
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29yYWNsZS9pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQVFsRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFdBQVcsbUJBQW1CO0lBQ2xDLEtBQUssRUFBRSxJQUFJLENBQUM7SUFFWixnQkFBZ0IsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDMUMsZUFBZSxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN6QyxvQkFBb0IsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDN0Msa0JBQWtCLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLHFCQUFxQixJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQyxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEMsZ0JBQWdCLElBQUksT0FBTyxDQUFD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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/oracle/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/oracle/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
3
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
|
-
import { L2Block } from '@aztec/stdlib/block';
|
|
4
|
+
import type { L2Block } from '@aztec/stdlib/block';
|
|
4
5
|
import { type MerkleTreeWriteOperations } from '@aztec/stdlib/trees';
|
|
5
6
|
import { GlobalVariables } from '@aztec/stdlib/tx';
|
|
6
|
-
import type { UInt32 } from '@aztec/stdlib/types';
|
|
7
7
|
import type { IAvmExecutionOracle } from './interfaces.js';
|
|
8
8
|
export declare class TXEOraclePublicContext implements IAvmExecutionOracle {
|
|
9
9
|
private contractAddress;
|
|
@@ -18,17 +18,17 @@ export declare class TXEOraclePublicContext implements IAvmExecutionOracle {
|
|
|
18
18
|
constructor(contractAddress: AztecAddress, forkedWorldTrees: MerkleTreeWriteOperations, txRequestHash: Fr, globalVariables: GlobalVariables);
|
|
19
19
|
avmOpcodeAddress(): Promise<AztecAddress>;
|
|
20
20
|
avmOpcodeSender(): Promise<AztecAddress>;
|
|
21
|
-
avmOpcodeBlockNumber(): Promise<
|
|
21
|
+
avmOpcodeBlockNumber(): Promise<BlockNumber>;
|
|
22
22
|
avmOpcodeTimestamp(): Promise<bigint>;
|
|
23
23
|
avmOpcodeIsStaticCall(): Promise<boolean>;
|
|
24
24
|
avmOpcodeChainId(): Promise<Fr>;
|
|
25
25
|
avmOpcodeVersion(): Promise<Fr>;
|
|
26
26
|
avmOpcodeEmitNullifier(nullifier: Fr): Promise<void>;
|
|
27
27
|
avmOpcodeEmitNoteHash(noteHash: Fr): Promise<void>;
|
|
28
|
-
avmOpcodeNullifierExists(
|
|
28
|
+
avmOpcodeNullifierExists(siloedNullifier: Fr): Promise<boolean>;
|
|
29
29
|
avmOpcodeStorageWrite(slot: Fr, value: Fr): Promise<void>;
|
|
30
|
-
avmOpcodeStorageRead(slot: Fr): Promise<Fr>;
|
|
30
|
+
avmOpcodeStorageRead(slot: Fr, contractAddress: AztecAddress): Promise<Fr>;
|
|
31
31
|
close(): Promise<L2Block>;
|
|
32
32
|
private makeTxEffect;
|
|
33
33
|
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhlX29yYWNsZV9wdWJsaWNfY29udGV4dC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29yYWNsZS90eGVfb3JhY2xlX3B1YmxpY19jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRW5ELE9BQU8sRUFFTCxLQUFLLHlCQUF5QixFQUcvQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxlQUFlLEVBQW9CLE1BQU0sa0JBQWtCLENBQUM7QUFHckUsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUzRCxxQkFBYSxzQkFBdUIsWUFBVyxtQkFBbUI7SUFTOUQsT0FBTyxDQUFDLGVBQWU7SUFDdkIsT0FBTyxDQUFDLGdCQUFnQjtJQUN4QixPQUFPLENBQUMsYUFBYTtJQUNyQixPQUFPLENBQUMsZUFBZTtJQVh6QixLQUFLLE9BQWlCO0lBRXRCLE9BQU8sQ0FBQyxNQUFNLENBQVM7SUFDdkIsT0FBTyxDQUFDLHlCQUF5QixDQUFZO0lBQzdDLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBWTtJQUM3QyxPQUFPLENBQUMsZ0JBQWdCLENBQXlCO0lBRWpELFlBQ1UsZUFBZSxFQUFFLFlBQVksRUFDN0IsZ0JBQWdCLEVBQUUseUJBQXlCLEVBQzNDLGFBQWEsRUFBRSxFQUFFLEVBQ2pCLGVBQWUsRUFBRSxlQUFlLEVBU3pDO0lBRUQsZ0JBQWdCLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUV4QztJQUVELGVBQWUsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLENBRXZDO0lBRUQsb0JBQW9CLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUUzQztJQUVELGtCQUFrQixJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FFcEM7SUFFRCxxQkFBcUIsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBRXhDO0lBRUQsZ0JBQWdCLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUU5QjtJQUVELGdCQUFnQixJQUFJLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FFOUI7SUFFSyxzQkFBc0IsQ0FBQyxTQUFTLEVBQUUsRUFBRSxpQkFHekM7SUFFSyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsRUFBRSxpQkFJdkM7SUFFSyx3QkFBd0IsQ0FBQyxlQUFlLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FPcEU7SUFFSyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLGlCQVU5QztJQUVLLG9CQUFvQixDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsZUFBZSxFQUFFLFlBQVksR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLENBcUIvRTtJQUVLLEtBQUssSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBa0I5QjtJQUVELE9BQU8sQ0FBQyxZQUFZO0NBYXJCIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"txe_oracle_public_context.d.ts","sourceRoot":"","sources":["../../src/oracle/txe_oracle_public_context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"txe_oracle_public_context.d.ts","sourceRoot":"","sources":["../../src/oracle/txe_oracle_public_context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAEL,KAAK,yBAAyB,EAG/B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAoB,MAAM,kBAAkB,CAAC;AAGrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,qBAAa,sBAAuB,YAAW,mBAAmB;IAS9D,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,eAAe;IAXzB,KAAK,OAAiB;IAEtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,yBAAyB,CAAY;IAC7C,OAAO,CAAC,yBAAyB,CAAY;IAC7C,OAAO,CAAC,gBAAgB,CAAyB;IAEjD,YACU,eAAe,EAAE,YAAY,EAC7B,gBAAgB,EAAE,yBAAyB,EAC3C,aAAa,EAAE,EAAE,EACjB,eAAe,EAAE,eAAe,EASzC;IAED,gBAAgB,IAAI,OAAO,CAAC,YAAY,CAAC,CAExC;IAED,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAEvC;IAED,oBAAoB,IAAI,OAAO,CAAC,WAAW,CAAC,CAE3C;IAED,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,CAEpC;IAED,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAExC;IAED,gBAAgB,IAAI,OAAO,CAAC,EAAE,CAAC,CAE9B;IAED,gBAAgB,IAAI,OAAO,CAAC,EAAE,CAAC,CAE9B;IAEK,sBAAsB,CAAC,SAAS,EAAE,EAAE,iBAGzC;IAEK,qBAAqB,CAAC,QAAQ,EAAE,EAAE,iBAIvC;IAEK,wBAAwB,CAAC,eAAe,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAOpE;IAEK,qBAAqB,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,iBAU9C;IAEK,oBAAoB,CAAC,IAAI,EAAE,EAAE,EAAE,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC,CAqB/E;IAEK,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,CAkB9B;IAED,OAAO,CAAC,YAAY;CAarB"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import { Fr } from '@aztec/foundation/
|
|
1
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
3
|
import { PublicDataWrite } from '@aztec/stdlib/avm';
|
|
4
4
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
5
|
-
import { Body, L2Block } from '@aztec/stdlib/block';
|
|
6
5
|
import { computePublicDataTreeLeafSlot, siloNoteHash, siloNullifier } from '@aztec/stdlib/hash';
|
|
7
|
-
import { makeAppendOnlyTreeSnapshot } from '@aztec/stdlib/testing';
|
|
8
6
|
import { MerkleTreeId, PublicDataTreeLeaf } from '@aztec/stdlib/trees';
|
|
9
7
|
import { TxEffect, TxHash } from '@aztec/stdlib/tx';
|
|
10
|
-
import { insertTxEffectIntoWorldTrees,
|
|
8
|
+
import { insertTxEffectIntoWorldTrees, makeTXEBlock } from '../utils/block_creation.js';
|
|
11
9
|
export class TXEOraclePublicContext {
|
|
12
10
|
contractAddress;
|
|
13
11
|
forkedWorldTrees;
|
|
@@ -64,12 +62,11 @@ export class TXEOraclePublicContext {
|
|
|
64
62
|
// TODO: make the note hash unique - they are only siloed right now
|
|
65
63
|
this.transientUniqueNoteHashes.push(siloedNoteHash);
|
|
66
64
|
}
|
|
67
|
-
async avmOpcodeNullifierExists(
|
|
68
|
-
const nullifier = await siloNullifier(targetAddress, innerNullifier);
|
|
65
|
+
async avmOpcodeNullifierExists(siloedNullifier) {
|
|
69
66
|
const treeIndex = (await this.forkedWorldTrees.findLeafIndices(MerkleTreeId.NULLIFIER_TREE, [
|
|
70
|
-
|
|
67
|
+
siloedNullifier.toBuffer()
|
|
71
68
|
]))[0];
|
|
72
|
-
const transientIndex = this.transientSiloedNullifiers.find((n)=>n.equals(
|
|
69
|
+
const transientIndex = this.transientSiloedNullifiers.find((n)=>n.equals(siloedNullifier));
|
|
73
70
|
return treeIndex !== undefined || transientIndex !== undefined;
|
|
74
71
|
}
|
|
75
72
|
async avmOpcodeStorageWrite(slot, value) {
|
|
@@ -83,12 +80,13 @@ export class TXEOraclePublicContext {
|
|
|
83
80
|
new PublicDataTreeLeaf(dataWrite.leafSlot, dataWrite.value).toBuffer()
|
|
84
81
|
]);
|
|
85
82
|
}
|
|
86
|
-
async avmOpcodeStorageRead(slot) {
|
|
87
|
-
const leafSlot = await computePublicDataTreeLeafSlot(
|
|
83
|
+
async avmOpcodeStorageRead(slot, contractAddress) {
|
|
84
|
+
const leafSlot = await computePublicDataTreeLeafSlot(contractAddress, slot);
|
|
88
85
|
const lowLeafResult = await this.forkedWorldTrees.getPreviousValueIndex(MerkleTreeId.PUBLIC_DATA_TREE, leafSlot.toBigInt());
|
|
89
86
|
const value = !lowLeafResult || !lowLeafResult.alreadyPresent ? Fr.ZERO : (await this.forkedWorldTrees.getLeafPreimage(MerkleTreeId.PUBLIC_DATA_TREE, lowLeafResult.index)).leaf.value;
|
|
90
87
|
this.logger.debug('AVM storage read', {
|
|
91
88
|
slot,
|
|
89
|
+
contractAddress,
|
|
92
90
|
value
|
|
93
91
|
});
|
|
94
92
|
return value;
|
|
@@ -99,9 +97,9 @@ export class TXEOraclePublicContext {
|
|
|
99
97
|
});
|
|
100
98
|
const txEffect = this.makeTxEffect();
|
|
101
99
|
await insertTxEffectIntoWorldTrees(txEffect, this.forkedWorldTrees);
|
|
102
|
-
const block =
|
|
100
|
+
const block = await makeTXEBlock(this.forkedWorldTrees, this.globalVariables, [
|
|
103
101
|
txEffect
|
|
104
|
-
])
|
|
102
|
+
]);
|
|
105
103
|
await this.forkedWorldTrees.close();
|
|
106
104
|
this.logger.debug('Exited PublicContext with built block', {
|
|
107
105
|
blockNumber: block.number,
|
|
@@ -1,24 +1,29 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
3
|
import type { KeyStore } from '@aztec/key-store';
|
|
3
|
-
import {
|
|
4
|
+
import { AddressStore, CapsuleStore, type ContractStore, NoteStore, PrivateEventStore, RecipientTaggingStore, SenderAddressBookStore, SenderTaggingStore } from '@aztec/pxe/server';
|
|
4
5
|
import { type IMiscOracle } from '@aztec/pxe/simulator';
|
|
5
|
-
import { type ContractArtifact, FunctionSelector } from '@aztec/stdlib/abi';
|
|
6
|
+
import { type ContractArtifact, EventSelector, FunctionSelector } from '@aztec/stdlib/abi';
|
|
6
7
|
import { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
7
8
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
8
9
|
import { type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
9
10
|
import { TxHash } from '@aztec/stdlib/tx';
|
|
10
11
|
import type { UInt64 } from '@aztec/stdlib/types';
|
|
11
12
|
import type { TXEStateMachine } from '../state_machine/index.js';
|
|
12
|
-
import type {
|
|
13
|
-
import type { TXEContractDataProvider } from '../util/txe_contract_data_provider.js';
|
|
13
|
+
import type { TXEAccountStore } from '../util/txe_account_store.js';
|
|
14
14
|
import type { ITxeExecutionOracle } from './interfaces.js';
|
|
15
15
|
export declare class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracle {
|
|
16
16
|
private stateMachine;
|
|
17
|
-
private
|
|
17
|
+
private contractStore;
|
|
18
|
+
private noteStore;
|
|
18
19
|
private keyStore;
|
|
19
|
-
private
|
|
20
|
-
private
|
|
21
|
-
private
|
|
20
|
+
private addressStore;
|
|
21
|
+
private accountStore;
|
|
22
|
+
private senderTaggingStore;
|
|
23
|
+
private recipientTaggingStore;
|
|
24
|
+
private senderAddressBookStore;
|
|
25
|
+
private capsuleStore;
|
|
26
|
+
private privateEventStore;
|
|
22
27
|
private nextBlockTimestamp;
|
|
23
28
|
private version;
|
|
24
29
|
private chainId;
|
|
@@ -26,11 +31,12 @@ export declare class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecut
|
|
|
26
31
|
isMisc: true;
|
|
27
32
|
isTxe: true;
|
|
28
33
|
private logger;
|
|
29
|
-
constructor(stateMachine: TXEStateMachine,
|
|
34
|
+
constructor(stateMachine: TXEStateMachine, contractStore: ContractStore, noteStore: NoteStore, keyStore: KeyStore, addressStore: AddressStore, accountStore: TXEAccountStore, senderTaggingStore: SenderTaggingStore, recipientTaggingStore: RecipientTaggingStore, senderAddressBookStore: SenderAddressBookStore, capsuleStore: CapsuleStore, privateEventStore: PrivateEventStore, nextBlockTimestamp: bigint, version: Fr, chainId: Fr, authwits: Map<string, AuthWitness>);
|
|
30
35
|
utilityAssertCompatibleOracleVersion(version: number): void;
|
|
31
36
|
utilityGetRandomField(): Fr;
|
|
32
|
-
|
|
33
|
-
|
|
37
|
+
utilityLog(level: number, message: string, fields: Fr[]): Promise<void>;
|
|
38
|
+
txeGetDefaultAddress(): AztecAddress;
|
|
39
|
+
txeGetNextBlockNumber(): Promise<BlockNumber>;
|
|
34
40
|
txeGetNextBlockTimestamp(): Promise<bigint>;
|
|
35
41
|
txeGetLastBlockTimestamp(): Promise<bigint>;
|
|
36
42
|
txeGetLastTxEffects(): Promise<{
|
|
@@ -38,6 +44,8 @@ export declare class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecut
|
|
|
38
44
|
noteHashes: Fr[];
|
|
39
45
|
nullifiers: Fr[];
|
|
40
46
|
}>;
|
|
47
|
+
syncContractNonOracleMethod(contractAddress: AztecAddress, scope: AztecAddress, jobId: string): Promise<void>;
|
|
48
|
+
txeGetPrivateEvents(selector: EventSelector, contractAddress: AztecAddress, scope: AztecAddress): Promise<Fr[][]>;
|
|
41
49
|
txeAdvanceBlocksBy(blocks: number): Promise<void>;
|
|
42
50
|
txeAdvanceTimestampBy(duration: UInt64): void;
|
|
43
51
|
txeDeploy(artifact: ContractArtifact, instance: ContractInstanceWithAddress, secret: Fr): Promise<void>;
|
|
@@ -47,10 +55,11 @@ export declare class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecut
|
|
|
47
55
|
mineBlock(options?: {
|
|
48
56
|
nullifiers?: Fr[];
|
|
49
57
|
}): Promise<void>;
|
|
50
|
-
txePrivateCallNewFlow(from: AztecAddress, targetContractAddress: AztecAddress | undefined, functionSelector: FunctionSelector | undefined, args: Fr[], argsHash
|
|
58
|
+
txePrivateCallNewFlow(from: AztecAddress, targetContractAddress: AztecAddress | undefined, functionSelector: FunctionSelector | undefined, args: Fr[], argsHash: Fr | undefined, isStaticCall: boolean | undefined, jobId: string): Promise<Fr[]>;
|
|
51
59
|
txePublicCallNewFlow(from: AztecAddress, targetContractAddress: AztecAddress, calldata: Fr[], isStaticCall: boolean): Promise<Fr[]>;
|
|
52
|
-
|
|
60
|
+
txeExecuteUtilityFunction(targetContractAddress: AztecAddress, functionSelector: FunctionSelector, args: Fr[], jobId: string): Promise<Fr[]>;
|
|
61
|
+
private executeUtilityCall;
|
|
53
62
|
close(): [bigint, Map<string, AuthWitness>];
|
|
54
63
|
private getLastBlockNumber;
|
|
55
64
|
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhlX29yYWNsZV90b3BfbGV2ZWxfY29udGV4dC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29yYWNsZS90eGVfb3JhY2xlX3RvcF9sZXZlbF9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHcEQsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakQsT0FBTyxFQUNMLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxhQUFhLEVBQ2xCLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixrQkFBa0IsRUFFbkIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBSUwsS0FBSyxXQUFXLEVBTWpCLE1BQU0sc0JBQXNCLENBQUM7QUFnQjlCLE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUFFLGFBQWEsRUFBZ0IsZ0JBQWdCLEVBQWdCLE1BQU0sbUJBQW1CLENBQUM7QUFDdkgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSywyQkFBMkIsRUFBeUIsTUFBTSx3QkFBd0IsQ0FBQztBQVlqRyxPQUFPLEVBU0wsTUFBTSxFQUVQLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJbEQsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHcEUsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"txe_oracle_top_level_context.d.ts","sourceRoot":"","sources":["../../src/oracle/txe_oracle_top_level_context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"txe_oracle_top_level_context.d.ts","sourceRoot":"","sources":["../../src/oracle/txe_oracle_top_level_context.ts"],"names":[],"mappings":"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"}
|