@aztec/txe 0.0.1-commit.b8a057fa → 0.0.1-commit.be03c316
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/AuthRegistry-QVGDDH5X.js +3 -0
- package/dest/AuthRegistry-QVGDDH5X.js.map +7 -0
- package/dest/ContractClassRegistry-VWR3F42P.js +3 -0
- package/dest/ContractClassRegistry-VWR3F42P.js.map +7 -0
- package/dest/{ContractInstanceRegistry-2TZHWOTT.js → ContractInstanceRegistry-FHIWE33X.js} +1 -1
- package/dest/{ContractInstanceRegistry-2TZHWOTT.js.map → ContractInstanceRegistry-FHIWE33X.js.map} +1 -1
- package/dest/FeeJuice-SAOWVGG7.js +3 -0
- package/dest/FeeJuice-SAOWVGG7.js.map +7 -0
- package/dest/HandshakeRegistry-GY5CPEPS.js +3 -0
- package/dest/HandshakeRegistry-GY5CPEPS.js.map +7 -0
- package/dest/{MultiCallEntrypoint-IGLO227K.js → MultiCallEntrypoint-QG5H33ZZ.js} +1 -1
- package/dest/{MultiCallEntrypoint-IGLO227K.js.map → MultiCallEntrypoint-QG5H33ZZ.js.map} +2 -2
- package/dest/SchnorrAccount-NME3E45O.js +3 -0
- package/dest/SchnorrAccount-NME3E45O.js.map +7 -0
- package/dest/SchnorrInitializerlessAccount-WTGXU6SW.js +3 -0
- package/dest/SchnorrInitializerlessAccount-WTGXU6SW.js.map +7 -0
- package/dest/bin/check_txe_oracle_version.js +7 -15
- package/dest/bin/index.js +1 -1
- package/dest/{chunk-FRF5YZEO.js → chunk-DXIAVNMJ.js} +2 -2
- package/dest/{chunk-FRF5YZEO.js.map → chunk-DXIAVNMJ.js.map} +3 -3
- package/dest/{chunk-O57S6W5S.js → chunk-JHAAHRCL.js} +13 -13
- package/dest/{chunk-O57S6W5S.js.map → chunk-JHAAHRCL.js.map} +4 -4
- package/dest/metafile.json +654 -392
- package/dest/oracle/interfaces.d.ts +11 -3
- package/dest/oracle/interfaces.d.ts.map +1 -1
- package/dest/oracle/tagging_secret_strategy.d.ts +12 -0
- package/dest/oracle/tagging_secret_strategy.d.ts.map +1 -0
- package/dest/oracle/tagging_secret_strategy.js +12 -0
- package/dest/oracle/test-resolver/default_fixtures.d.ts +9 -2
- package/dest/oracle/test-resolver/default_fixtures.d.ts.map +1 -1
- package/dest/oracle/test-resolver/default_fixtures.js +32 -39
- package/dest/oracle/test-resolver/resolver.d.ts +1 -1
- package/dest/oracle/test-resolver/resolver.d.ts.map +1 -1
- package/dest/oracle/test-resolver/resolver.js +2 -2
- package/dest/oracle/txe_oracle_registry.d.ts +8 -5
- package/dest/oracle/txe_oracle_registry.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_registry.js +52 -30
- package/dest/oracle/txe_oracle_top_level_context.d.ts +21 -7
- package/dest/oracle/txe_oracle_top_level_context.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_top_level_context.js +39 -17
- package/dest/oracle/txe_oracle_version.d.ts +4 -4
- package/dest/oracle/txe_oracle_version.js +4 -4
- package/dest/rpc_translator.d.ts +6 -3
- package/dest/rpc_translator.d.ts.map +1 -1
- package/dest/rpc_translator.js +31 -7
- package/dest/server.bundle.js +1 -1
- package/dest/txe_session.d.ts +3 -2
- package/dest/txe_session.d.ts.map +1 -1
- package/dest/txe_session.js +15 -9
- package/dest/worker.bundle.js +1 -1
- package/package.json +17 -17
- package/src/bin/check_txe_oracle_version.ts +9 -12
- package/src/oracle/interfaces.ts +13 -2
- package/src/oracle/tagging_secret_strategy.ts +25 -0
- package/src/oracle/test-resolver/default_fixtures.ts +58 -69
- package/src/oracle/test-resolver/resolver.ts +2 -2
- package/src/oracle/txe_oracle_registry.ts +48 -28
- package/src/oracle/txe_oracle_top_level_context.ts +47 -12
- package/src/oracle/txe_oracle_version.ts +4 -4
- package/src/rpc_translator.ts +37 -8
- package/src/txe_session.ts +23 -11
- package/dest/AuthRegistry-HMC7WEOJ.js +0 -3
- package/dest/AuthRegistry-HMC7WEOJ.js.map +0 -7
- package/dest/ContractClassRegistry-TXCDCFNC.js +0 -3
- package/dest/ContractClassRegistry-TXCDCFNC.js.map +0 -7
- package/dest/FeeJuice-FDF3J2Q5.js +0 -3
- package/dest/FeeJuice-FDF3J2Q5.js.map +0 -7
- package/dest/HandshakeRegistry-C7JF4R54.js +0 -3
- package/dest/HandshakeRegistry-C7JF4R54.js.map +0 -7
- package/dest/SchnorrAccount-KCIHUCXS.js +0 -3
- package/dest/SchnorrAccount-KCIHUCXS.js.map +0 -7
- package/dest/SchnorrInitializerlessAccount-PVR6XUSN.js +0 -3
- package/dest/SchnorrInitializerlessAccount-PVR6XUSN.js.map +0 -7
package/dest/rpc_translator.js
CHANGED
|
@@ -149,7 +149,7 @@ export class RPCTranslator {
|
|
|
149
149
|
return callTxeHandler({
|
|
150
150
|
oracle: 'aztec_txe_createAccount',
|
|
151
151
|
inputs,
|
|
152
|
-
handler: ([secret])=>this.handlerAsTxe().createAccount(secret)
|
|
152
|
+
handler: ([secret, partialAddress])=>this.handlerAsTxe().createAccount(secret, partialAddress)
|
|
153
153
|
});
|
|
154
154
|
}
|
|
155
155
|
// eslint-disable-next-line camelcase
|
|
@@ -177,11 +177,19 @@ export class RPCTranslator {
|
|
|
177
177
|
});
|
|
178
178
|
}
|
|
179
179
|
// eslint-disable-next-line camelcase
|
|
180
|
-
|
|
180
|
+
aztec_txe_setTaggingSecretStrategies(...inputs) {
|
|
181
181
|
return callTxeHandler({
|
|
182
|
-
oracle: '
|
|
182
|
+
oracle: 'aztec_txe_setTaggingSecretStrategies',
|
|
183
183
|
inputs,
|
|
184
|
-
handler: ([
|
|
184
|
+
handler: ([unconstrainedStrategy, constrainedStrategy])=>this.handlerAsTxe().setTaggingSecretStrategies(unconstrainedStrategy, constrainedStrategy)
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
// eslint-disable-next-line camelcase
|
|
188
|
+
aztec_txe_setAuthorizeAllUtilityCallTargets(...inputs) {
|
|
189
|
+
return callTxeHandler({
|
|
190
|
+
oracle: 'aztec_txe_setAuthorizeAllUtilityCallTargets',
|
|
191
|
+
inputs,
|
|
192
|
+
handler: ([authorizeAll])=>this.handlerAsTxe().setAuthorizeAllUtilityCallTargets(authorizeAll)
|
|
185
193
|
});
|
|
186
194
|
}
|
|
187
195
|
// PXE oracles
|
|
@@ -370,11 +378,11 @@ export class RPCTranslator {
|
|
|
370
378
|
});
|
|
371
379
|
}
|
|
372
380
|
// eslint-disable-next-line camelcase
|
|
373
|
-
|
|
381
|
+
aztec_utl_getL1ToL2MembershipWitnessV2(...inputs) {
|
|
374
382
|
return callTxeHandler({
|
|
375
|
-
oracle: '
|
|
383
|
+
oracle: 'aztec_utl_getL1ToL2MembershipWitnessV2',
|
|
376
384
|
inputs,
|
|
377
|
-
handler: ([
|
|
385
|
+
handler: ([messageHash, nullifier])=>this.handlerAsUtility().getL1ToL2MembershipWitnessV2(messageHash, nullifier)
|
|
378
386
|
});
|
|
379
387
|
}
|
|
380
388
|
// eslint-disable-next-line camelcase
|
|
@@ -442,6 +450,14 @@ export class RPCTranslator {
|
|
|
442
450
|
});
|
|
443
451
|
}
|
|
444
452
|
// eslint-disable-next-line camelcase
|
|
453
|
+
aztec_utl_areBlockHashesInArchive(...inputs) {
|
|
454
|
+
return callTxeHandler({
|
|
455
|
+
oracle: 'aztec_utl_areBlockHashesInArchive',
|
|
456
|
+
inputs,
|
|
457
|
+
handler: ([anchorBlockHash, blockHashes])=>this.handlerAsUtility().areBlockHashesInArchive(anchorBlockHash, blockHashes)
|
|
458
|
+
});
|
|
459
|
+
}
|
|
460
|
+
// eslint-disable-next-line camelcase
|
|
445
461
|
aztec_utl_getLowNullifierMembershipWitness(...inputs) {
|
|
446
462
|
return callTxeHandler({
|
|
447
463
|
oracle: 'aztec_utl_getLowNullifierMembershipWitness',
|
|
@@ -482,6 +498,14 @@ export class RPCTranslator {
|
|
|
482
498
|
});
|
|
483
499
|
}
|
|
484
500
|
// eslint-disable-next-line camelcase
|
|
501
|
+
aztec_utl_getTxEffects(...inputs) {
|
|
502
|
+
return callTxeHandler({
|
|
503
|
+
oracle: 'aztec_utl_getTxEffects',
|
|
504
|
+
inputs,
|
|
505
|
+
handler: ([txHashes])=>this.handlerAsUtility().getTxEffects(txHashes)
|
|
506
|
+
});
|
|
507
|
+
}
|
|
508
|
+
// eslint-disable-next-line camelcase
|
|
485
509
|
aztec_utl_setCapsule(...inputs) {
|
|
486
510
|
return callTxeHandler({
|
|
487
511
|
oracle: 'aztec_utl_setCapsule',
|
package/dest/server.bundle.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createRequire as __txeCreateRequire } from 'node:module';
|
|
2
2
|
const require = __txeCreateRequire(import.meta.url);
|
|
3
|
-
import{createTXERpcServer}from"./chunk-
|
|
3
|
+
import{createTXERpcServer}from"./chunk-DXIAVNMJ.js";import"./chunk-JHAAHRCL.js";import"./chunk-32UHX7YY.js";export{createTXERpcServer};
|
package/dest/txe_session.d.ts
CHANGED
|
@@ -98,7 +98,8 @@ export declare class TXESession implements TXESessionStateHandler {
|
|
|
98
98
|
private readonly packageName;
|
|
99
99
|
private state;
|
|
100
100
|
private authwits;
|
|
101
|
-
private
|
|
101
|
+
private taggingSecretStrategies;
|
|
102
|
+
private authorizeAllUtilityCallTargets;
|
|
102
103
|
private lastCallInfo;
|
|
103
104
|
private txeOracleVersion;
|
|
104
105
|
private disposed;
|
|
@@ -145,4 +146,4 @@ export declare class TXESession implements TXESessionStateHandler {
|
|
|
145
146
|
private utilityExecutorForContractSync;
|
|
146
147
|
}
|
|
147
148
|
export {};
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhlX3Nlc3Npb24uZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90eGVfc2Vzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6RCxPQUFPLEVBQ0wsWUFBWSxFQUlaLFlBQVksRUFDWixhQUFhLEVBRWIsU0FBUyxFQUNULGNBQWMsRUFFZCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbEIseUJBQXlCLEVBRTFCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUlMLEtBQUssV0FBVyxFQUNoQixLQUFLLHVCQUF1QixFQUM1QixLQUFLLHVCQUF1QixFQUU1QixNQUFNLEVBSVAsTUFBTSxzQkFBc0IsQ0FBQztBQVU5QixPQUFPLEVBQUUsYUFBYSxFQUFnQixnQkFBZ0IsRUFBZ0IsTUFBTSxtQkFBbUIsQ0FBQztBQUVoRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFPNUQsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVV2RixPQUFPLEVBQUUsYUFBYSxFQUEwQixNQUFNLHFCQUFxQixDQUFDO0FBRTVFLE9BQU8sRUFBRSxlQUFl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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"txe_session.d.ts","sourceRoot":"","sources":["../src/txe_session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EACL,YAAY,EAIZ,YAAY,EACZ,aAAa,EAEb,SAAS,EACT,cAAc,EAEd,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"txe_session.d.ts","sourceRoot":"","sources":["../src/txe_session.ts"],"names":[],"mappings":"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"}
|
package/dest/txe_session.js
CHANGED
|
@@ -14,9 +14,10 @@ import { makeGlobalVariables } from '@aztec/stdlib/testing';
|
|
|
14
14
|
import { CallContext, OFFCHAIN_MESSAGE_IDENTIFIER, TxContext } from '@aztec/stdlib/tx';
|
|
15
15
|
import { z } from 'zod';
|
|
16
16
|
import { DEFAULT_ADDRESS, MAX_OFFCHAIN_EFFECTS_PER_TXE_QUERY, MAX_OFFCHAIN_EFFECT_LEN } from './constants.js';
|
|
17
|
+
import { makeResolveTaggingSecretStrategyHook } from './oracle/tagging_secret_strategy.js';
|
|
17
18
|
import { TXEOraclePublicContext } from './oracle/txe_oracle_public_context.js';
|
|
18
19
|
import { callTxeLegacyHandler } from './oracle/txe_oracle_registry.js';
|
|
19
|
-
import { TXEOracleTopLevelContext } from './oracle/txe_oracle_top_level_context.js';
|
|
20
|
+
import { TXEOracleTopLevelContext, authorizeAllUtilityCallsHook } from './oracle/txe_oracle_top_level_context.js';
|
|
20
21
|
import { TXE_ORACLE_VERSION_MAJOR, TXE_ORACLE_VERSION_MINOR } from './oracle/txe_oracle_version.js';
|
|
21
22
|
import { TXEPrivateExecutionOracle } from './oracle/txe_private_execution_oracle.js';
|
|
22
23
|
import { RPCTranslator, UnavailableOracleError } from './rpc_translator.js';
|
|
@@ -62,7 +63,8 @@ function emptyLastCallState() {
|
|
|
62
63
|
packageName;
|
|
63
64
|
state;
|
|
64
65
|
authwits;
|
|
65
|
-
|
|
66
|
+
taggingSecretStrategies;
|
|
67
|
+
authorizeAllUtilityCallTargets;
|
|
66
68
|
lastCallInfo;
|
|
67
69
|
txeOracleVersion;
|
|
68
70
|
disposed;
|
|
@@ -94,7 +96,8 @@ function emptyLastCallState() {
|
|
|
94
96
|
name: 'TOP_LEVEL'
|
|
95
97
|
};
|
|
96
98
|
this.authwits = new Map();
|
|
97
|
-
this.
|
|
99
|
+
this.taggingSecretStrategies = new Map();
|
|
100
|
+
this.authorizeAllUtilityCallTargets = false;
|
|
98
101
|
this.lastCallInfo = emptyLastCallState();
|
|
99
102
|
this.disposed = false;
|
|
100
103
|
}
|
|
@@ -158,7 +161,7 @@ function emptyLastCallState() {
|
|
|
158
161
|
const chainId = new Fr(await stateMachine.node.getChainId());
|
|
159
162
|
const initialJobId = jobCoordinator.beginJob();
|
|
160
163
|
const logger = createLogger('txe:session');
|
|
161
|
-
const topLevelOracleHandler = new TXEOracleTopLevelContext(stateMachine, contractStore, noteStore, keyStore, addressStore, accountStore, senderTaggingStore, recipientTaggingStore, taggingSecretSourcesStore, capsuleStore, factStore, privateEventStore, nextBlockTimestamp, version, chainId, new Map(),
|
|
164
|
+
const topLevelOracleHandler = new TXEOracleTopLevelContext(stateMachine, contractStore, noteStore, keyStore, addressStore, accountStore, senderTaggingStore, recipientTaggingStore, taggingSecretSourcesStore, capsuleStore, factStore, privateEventStore, nextBlockTimestamp, version, chainId, new Map(), new Map(), false, artifactResolver, rootPath, packageName);
|
|
162
165
|
await topLevelOracleHandler.mineDeploymentNullifiers([
|
|
163
166
|
STANDARD_AUTH_REGISTRY_ADDRESS
|
|
164
167
|
]);
|
|
@@ -354,7 +357,7 @@ function emptyLastCallState() {
|
|
|
354
357
|
}
|
|
355
358
|
// Commit all staged stores from the job that was just completed, then begin a new job
|
|
356
359
|
await this.cycleJob();
|
|
357
|
-
this.oracleHandler = new TXEOracleTopLevelContext(this.stateMachine, this.contractStore, this.noteStore, this.keyStore, this.addressStore, this.accountStore, this.senderTaggingStore, this.recipientTaggingStore, this.taggingSecretSourcesStore, this.capsuleStore, this.factStore, this.privateEventStore, this.nextBlockTimestamp, this.version, this.chainId, this.authwits, this.
|
|
360
|
+
this.oracleHandler = new TXEOracleTopLevelContext(this.stateMachine, this.contractStore, this.noteStore, this.keyStore, this.addressStore, this.accountStore, this.senderTaggingStore, this.recipientTaggingStore, this.taggingSecretSourcesStore, this.capsuleStore, this.factStore, this.privateEventStore, this.nextBlockTimestamp, this.version, this.chainId, this.authwits, this.taggingSecretStrategies, this.authorizeAllUtilityCallTargets, this.artifactResolver, this.rootPath, this.packageName);
|
|
358
361
|
this.state = {
|
|
359
362
|
name: 'TOP_LEVEL'
|
|
360
363
|
};
|
|
@@ -384,7 +387,6 @@ function emptyLastCallState() {
|
|
|
384
387
|
const utilityExecutor = this.utilityExecutorForContractSync(anchorBlock);
|
|
385
388
|
const transientArrayService = new TransientArrayService();
|
|
386
389
|
const anchoredContractData = new AnchoredContractData(this.contractStore, this.stateMachine.contractClassService, anchorBlock);
|
|
387
|
-
const taggingSecretStrategy = this.taggingSecretStrategy;
|
|
388
390
|
this.oracleHandler = new TXEPrivateExecutionOracle({
|
|
389
391
|
argsHash: Fr.ZERO,
|
|
390
392
|
txContext: new TxContext(this.chainId, this.version, gasSettings),
|
|
@@ -415,7 +417,8 @@ function emptyLastCallState() {
|
|
|
415
417
|
txResolver: this.stateMachine.txResolver,
|
|
416
418
|
simulator: new WASMSimulator(),
|
|
417
419
|
hooks: composeHooks({
|
|
418
|
-
resolveTaggingSecretStrategy:
|
|
420
|
+
resolveTaggingSecretStrategy: makeResolveTaggingSecretStrategyHook(this.taggingSecretStrategies),
|
|
421
|
+
authorizeUtilityCall: this.authorizeAllUtilityCallTargets ? authorizeAllUtilityCallsHook : undefined
|
|
419
422
|
}),
|
|
420
423
|
transientArrayService
|
|
421
424
|
});
|
|
@@ -496,6 +499,9 @@ function emptyLastCallState() {
|
|
|
496
499
|
scopes: await this.keyStore.getAccounts(),
|
|
497
500
|
simulator: new WASMSimulator(),
|
|
498
501
|
utilityExecutor: this.utilityExecutorForContractSync(anchorBlockHeader),
|
|
502
|
+
hooks: composeHooks({
|
|
503
|
+
authorizeUtilityCall: this.authorizeAllUtilityCallTargets ? authorizeAllUtilityCallsHook : undefined
|
|
504
|
+
}),
|
|
499
505
|
// Execution-tree root (top-level utility run): own store; nested frames inherit it.
|
|
500
506
|
transientArrayService: new TransientArrayService()
|
|
501
507
|
});
|
|
@@ -516,12 +522,12 @@ function emptyLastCallState() {
|
|
|
516
522
|
// accounts to PXE (via `addAccount`), etc. This is a slight inconsistency in the working model of this class, but
|
|
517
523
|
// is not too bad. The `close` call below therefore only hands back the session-scoped values that a test
|
|
518
524
|
// sets directly at the top level, outside any contract execution (e.g. via `advanceTimestampBy`,
|
|
519
|
-
// `addAuthWitness`, `
|
|
525
|
+
// `addAuthWitness`, `setTaggingSecretStrategies`). The oracle handler is discarded on every state transition,
|
|
520
526
|
// so the session must seed these values into the contexts it creates later.
|
|
521
527
|
// TODO: persisting authwits this way is quite unfortunate: they create a temporary utility context that would
|
|
522
528
|
// otherwise reset them, so we'd not be able to pass more than one per execution. Ideally authwits would be passed
|
|
523
529
|
// alongside a contract call instead of pre-seeded.
|
|
524
|
-
|
|
530
|
+
({ nextBlockTimestamp: this.nextBlockTimestamp, authwits: this.authwits, taggingSecretStrategies: this.taggingSecretStrategies, authorizeAllUtilityCallTargets: this.authorizeAllUtilityCallTargets } = this.oracleHandler.close());
|
|
525
531
|
}
|
|
526
532
|
async exitPrivateState() {
|
|
527
533
|
if (this.state.name != 'PRIVATE') {
|
package/dest/worker.bundle.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createRequire as __txeCreateRequire } from 'node:module';
|
|
2
2
|
const require = __txeCreateRequire(import.meta.url);
|
|
3
|
-
import{TXEDispatcher,activeSessionCount,createLogger}from"./chunk-
|
|
3
|
+
import{TXEDispatcher,activeSessionCount,createLogger}from"./chunk-JHAAHRCL.js";import{__name}from"./chunk-32UHX7YY.js";import{BackendType,Barretenberg,BarretenbergSync}from"@aztec/bb.js";import{parentPort,workerData}from"node:worker_threads";Barretenberg.initSingleton({backend:BackendType.Wasm,skipSrsInit:!0,threads:1});BarretenbergSync.initSingleton({backend:BackendType.Wasm});if(!parentPort)throw new Error("worker.ts must be loaded as a worker_thread");var port=parentPort,logger=createLogger("txe:worker"),dispatcherOpts={contractStoreSourceDir:workerData.contractStoreSourceDir,schnorrClassId:workerData.schnorrClassId},dispatcher=new TXEDispatcher(logger,dispatcherOpts);function serializeError(err){return err instanceof Error?{message:err.message,name:err.name,stack:err.stack}:{message:String(err)}}__name(serializeError,"serializeError");process.env.TXE_WORKER_MEMSTAT==="1"&&setInterval(()=>{let m=process.memoryUsage();port.postMessage({type:"memstat",sessions:activeSessionCount(),rss:m.rss,heapTotal:m.heapTotal,heapUsed:m.heapUsed,external:m.external,arrayBuffers:m.arrayBuffers})},2e3).unref();port.on("message",msg=>{switch(msg.type){case"foreign-call":(async()=>{try{let value=await dispatcher.resolve_foreign_call(msg.callData);port.postMessage({type:"result",requestId:msg.requestId,ok:!0,value})}catch(err){port.postMessage({type:"result",requestId:msg.requestId,ok:!1,error:serializeError(err)})}})();return;case"dispose-session":dispatcher.disposeSession(msg.sessionId).catch(err=>logger.warn("disposeSession failed",err));return}});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/txe",
|
|
3
|
-
"version": "0.0.1-commit.
|
|
3
|
+
"version": "0.0.1-commit.be03c316",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./server": {
|
|
@@ -69,22 +69,22 @@
|
|
|
69
69
|
]
|
|
70
70
|
},
|
|
71
71
|
"dependencies": {
|
|
72
|
-
"@aztec/accounts": "0.0.1-commit.
|
|
73
|
-
"@aztec/archiver": "0.0.1-commit.
|
|
74
|
-
"@aztec/aztec-node": "0.0.1-commit.
|
|
75
|
-
"@aztec/aztec.js": "0.0.1-commit.
|
|
76
|
-
"@aztec/bb-prover": "0.0.1-commit.
|
|
77
|
-
"@aztec/bb.js": "0.0.1-commit.
|
|
78
|
-
"@aztec/constants": "0.0.1-commit.
|
|
79
|
-
"@aztec/foundation": "0.0.1-commit.
|
|
80
|
-
"@aztec/key-store": "0.0.1-commit.
|
|
81
|
-
"@aztec/kv-store": "0.0.1-commit.
|
|
82
|
-
"@aztec/protocol-contracts": "0.0.1-commit.
|
|
83
|
-
"@aztec/pxe": "0.0.1-commit.
|
|
84
|
-
"@aztec/simulator": "0.0.1-commit.
|
|
85
|
-
"@aztec/standard-contracts": "0.0.1-commit.
|
|
86
|
-
"@aztec/stdlib": "0.0.1-commit.
|
|
87
|
-
"@aztec/world-state": "0.0.1-commit.
|
|
72
|
+
"@aztec/accounts": "0.0.1-commit.be03c316",
|
|
73
|
+
"@aztec/archiver": "0.0.1-commit.be03c316",
|
|
74
|
+
"@aztec/aztec-node": "0.0.1-commit.be03c316",
|
|
75
|
+
"@aztec/aztec.js": "0.0.1-commit.be03c316",
|
|
76
|
+
"@aztec/bb-prover": "0.0.1-commit.be03c316",
|
|
77
|
+
"@aztec/bb.js": "0.0.1-commit.be03c316",
|
|
78
|
+
"@aztec/constants": "0.0.1-commit.be03c316",
|
|
79
|
+
"@aztec/foundation": "0.0.1-commit.be03c316",
|
|
80
|
+
"@aztec/key-store": "0.0.1-commit.be03c316",
|
|
81
|
+
"@aztec/kv-store": "0.0.1-commit.be03c316",
|
|
82
|
+
"@aztec/protocol-contracts": "0.0.1-commit.be03c316",
|
|
83
|
+
"@aztec/pxe": "0.0.1-commit.be03c316",
|
|
84
|
+
"@aztec/simulator": "0.0.1-commit.be03c316",
|
|
85
|
+
"@aztec/standard-contracts": "0.0.1-commit.be03c316",
|
|
86
|
+
"@aztec/stdlib": "0.0.1-commit.be03c316",
|
|
87
|
+
"@aztec/world-state": "0.0.1-commit.be03c316",
|
|
88
88
|
"msgpackr": "^1.11.2",
|
|
89
89
|
"zod": "^4"
|
|
90
90
|
},
|
|
@@ -1,32 +1,29 @@
|
|
|
1
1
|
import { keccak256String } from '@aztec/foundation/crypto/keccak';
|
|
2
|
-
import {
|
|
2
|
+
import { getOracleRegistrySignature, readNumericGlobal } from '@aztec/pxe/bin';
|
|
3
|
+
import { ORACLE_REGISTRY, type OracleRegistryEntry } from '@aztec/pxe/simulator';
|
|
3
4
|
|
|
4
5
|
import { dirname, join } from 'path';
|
|
5
6
|
import { fileURLToPath } from 'url';
|
|
6
7
|
|
|
8
|
+
import { TXE_ORACLE_REGISTRY } from '../oracle/txe_oracle_registry.js';
|
|
7
9
|
import { TXE_ORACLE_INTERFACE_HASH, TXE_ORACLE_VERSION_MAJOR } from '../oracle/txe_oracle_version.js';
|
|
8
10
|
|
|
9
11
|
/**
|
|
10
12
|
* Verifies that the TXE oracle interfaces match the expected interface hash.
|
|
11
13
|
*
|
|
12
14
|
* The TXE oracle interfaces need to be versioned to ensure compatibility between Aztec.nr tests and TXE. This function
|
|
13
|
-
* computes a hash of the TXE
|
|
15
|
+
* computes a hash of the TXE-specific entries in `TXE_ORACLE_REGISTRY` (the shared PXE entries are covered by the PXE
|
|
16
|
+
* oracle version check) and compares it against a known hash. If they don't match, it means an
|
|
14
17
|
* interface has changed and the TXE oracle version needs to be bumped:
|
|
15
18
|
* - If the change is backward-breaking (e.g. removing/renaming an oracle), bump TXE_ORACLE_VERSION_MAJOR.
|
|
16
19
|
* - If the change is an oracle addition (non-breaking), bump TXE_ORACLE_VERSION_MINOR.
|
|
17
20
|
*/
|
|
18
21
|
function assertTxeOracleInterfaceMatches(): void {
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const targets = ['IAvmExecutionOracle', 'ITxeExecutionOracle'];
|
|
24
|
-
// Not an oracle foreign call handler (see TODO(F-335) in interfaces.ts).
|
|
25
|
-
const excludedMembers = ['syncContractNonOracleMethod'];
|
|
26
|
-
|
|
27
|
-
const txeOracleInterfaceSignature = getOracleInterfaceSignature(interfacesSourcePath, targets, excludedMembers);
|
|
22
|
+
const txeOnlyEntries: Record<string, OracleRegistryEntry> = Object.fromEntries(
|
|
23
|
+
Object.entries(TXE_ORACLE_REGISTRY).filter(([name]) => !(name in ORACLE_REGISTRY)),
|
|
24
|
+
);
|
|
28
25
|
|
|
29
|
-
const txeOracleInterfaceHash = keccak256String(
|
|
26
|
+
const txeOracleInterfaceHash = keccak256String(getOracleRegistrySignature(txeOnlyEntries));
|
|
30
27
|
if (txeOracleInterfaceHash !== TXE_ORACLE_INTERFACE_HASH) {
|
|
31
28
|
throw new Error(
|
|
32
29
|
`The TXE oracle interface has changed. Update TXE_ORACLE_INTERFACE_HASH to ${txeOracleInterfaceHash} in txe/src/oracle/txe_oracle_version.ts and bump the TXE oracle version (TXE_ORACLE_VERSION_MAJOR for breaking changes, TXE_ORACLE_VERSION_MINOR for oracle additions).`,
|
package/src/oracle/interfaces.ts
CHANGED
|
@@ -69,11 +69,22 @@ export interface ITxeExecutionOracle {
|
|
|
69
69
|
salt: Fr,
|
|
70
70
|
deployer: AztecAddress,
|
|
71
71
|
): Promise<Fr[]>;
|
|
72
|
-
createAccount(secret: Fr): Promise<CompleteAddress>;
|
|
72
|
+
createAccount(secret: Fr, partialAddress: Fr): Promise<CompleteAddress>;
|
|
73
73
|
addAccount(secret: Fr): Promise<CompleteAddress>;
|
|
74
74
|
addAuthWitness(address: AztecAddress, messageHash: Fr): Promise<void>;
|
|
75
75
|
sendL1ToL2Message(content: Fr, secretHash: Fr, sender: EthAddress, recipient: AztecAddress): Promise<Fr>;
|
|
76
|
-
|
|
76
|
+
/**
|
|
77
|
+
* Configures the tagging secret strategy the test's simulated wallet resolves for each delivery mode. A `none`
|
|
78
|
+
* clears that mode, so it falls back to the default strategy (or, when both modes end up unset, to no hook at all).
|
|
79
|
+
*/
|
|
80
|
+
setTaggingSecretStrategies(
|
|
81
|
+
unconstrainedStrategy: Option<TaggingSecretStrategy>,
|
|
82
|
+
constrainedStrategy: Option<TaggingSecretStrategy>,
|
|
83
|
+
): void;
|
|
84
|
+
/**
|
|
85
|
+
* Configures whether the test's simulated wallet authorizes every cross-contract utility call target.
|
|
86
|
+
*/
|
|
87
|
+
setAuthorizeAllUtilityCallTargets(authorizeAll: boolean): void;
|
|
77
88
|
getLastBlockTimestamp(): Promise<bigint>;
|
|
78
89
|
getLastTxEffects(): Promise<{
|
|
79
90
|
txHash: TxHash;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DEFAULT_TAGGING_SECRET_STRATEGY,
|
|
3
|
+
type ResolveTaggingSecretStrategy,
|
|
4
|
+
type TaggingSecretStrategy,
|
|
5
|
+
} from '@aztec/pxe/server';
|
|
6
|
+
import type { AppTaggingSecretKind } from '@aztec/stdlib/logs';
|
|
7
|
+
|
|
8
|
+
/** The tagging secret strategies a TXE test has configured, keyed by delivery mode. Absence means "not configured". */
|
|
9
|
+
export type TXETaggingSecretStrategies = Map<AppTaggingSecretKind, TaggingSecretStrategy>;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Builds the `resolveTaggingSecretStrategy` hook backing the `aztec_txe_setTaggingSecretStrategies` oracle. Returns
|
|
13
|
+
* `undefined` when no strategy is configured, so PXE's own no-hook default path is exercised. When at least one mode
|
|
14
|
+
* is configured, modes without an entry resolve to {@link DEFAULT_TAGGING_SECRET_STRATEGY}, matching what PXE would
|
|
15
|
+
* apply without a hook.
|
|
16
|
+
*/
|
|
17
|
+
export function makeResolveTaggingSecretStrategyHook(
|
|
18
|
+
strategies: TXETaggingSecretStrategies,
|
|
19
|
+
): ResolveTaggingSecretStrategy | undefined {
|
|
20
|
+
if (strategies.size === 0) {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return ({ deliveryMode }) => Promise.resolve(strategies.get(deliveryMode) ?? DEFAULT_TAGGING_SECRET_STRATEGY);
|
|
25
|
+
}
|
|
@@ -8,19 +8,29 @@ import {
|
|
|
8
8
|
BLOCK_HASH,
|
|
9
9
|
BLOCK_NUMBER,
|
|
10
10
|
BOOL,
|
|
11
|
-
BYTE,
|
|
12
11
|
BoundedVec,
|
|
12
|
+
type CompositeMapping,
|
|
13
13
|
DELIVERY_MODE,
|
|
14
14
|
ETH_ADDRESS,
|
|
15
15
|
FIELD,
|
|
16
16
|
FUNCTION_SELECTOR,
|
|
17
|
+
LEAF_INDEX,
|
|
17
18
|
NOTE_SELECTOR,
|
|
18
19
|
Option,
|
|
19
20
|
type OracleRegistryEntry,
|
|
20
21
|
SLOT_NUMBER,
|
|
21
|
-
type
|
|
22
|
+
type StructMapping,
|
|
22
23
|
type TypeMapping,
|
|
24
|
+
U8,
|
|
23
25
|
U32,
|
|
26
|
+
U64,
|
|
27
|
+
U128,
|
|
28
|
+
isArrayMapping,
|
|
29
|
+
isBoundedVecMapping,
|
|
30
|
+
isFixedArrayMapping,
|
|
31
|
+
isFixedBoundedVecMapping,
|
|
32
|
+
isOptionMapping,
|
|
33
|
+
isStructMapping,
|
|
24
34
|
tryFieldWidth,
|
|
25
35
|
} from '@aztec/pxe/simulator';
|
|
26
36
|
import { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
|
|
@@ -50,15 +60,18 @@ export function synthesizeDefaultFixtures(
|
|
|
50
60
|
}
|
|
51
61
|
|
|
52
62
|
/**
|
|
53
|
-
* The test-value implementations,
|
|
54
|
-
* `
|
|
63
|
+
* The scalar test-value implementations, mirroring the Noir synthesizer's `scalars` table in
|
|
64
|
+
* `noir-projects/aztec-nr/.../macros/oracle_testing.nr` exactly.
|
|
55
65
|
*/
|
|
56
|
-
const
|
|
66
|
+
const SCALAR_IMPLS: ScalarImpl[] = [
|
|
57
67
|
scalar(FIELD, seed => new Fr(seed)),
|
|
58
68
|
scalar(U32, seed => seed),
|
|
59
69
|
scalar(BLOCK_NUMBER, seed => BlockNumber(seed)),
|
|
60
70
|
scalar(BIGINT, seed => BigInt(seed)),
|
|
61
|
-
scalar(
|
|
71
|
+
scalar(U64, seed => BigInt(seed)),
|
|
72
|
+
scalar(U128, seed => BigInt(seed)),
|
|
73
|
+
scalar(LEAF_INDEX, seed => seed),
|
|
74
|
+
scalar(U8, seed => seed),
|
|
62
75
|
scalar(BOOL, seed => seed % 2 !== 0),
|
|
63
76
|
scalar(AZTEC_ADDRESS, seed => AztecAddress.fromNumberUnsafe(seed)),
|
|
64
77
|
scalar(ETH_ADDRESS, seed => EthAddress.fromField(new Fr(seed))),
|
|
@@ -70,12 +83,18 @@ const TEST_VALUE_IMPLS: TestValueImpl[] = [
|
|
|
70
83
|
scalar(DELIVERY_MODE, seed =>
|
|
71
84
|
seed % 2 === 0 ? AppTaggingSecretKind.UNCONSTRAINED : AppTaggingSecretKind.CONSTRAINED,
|
|
72
85
|
),
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
86
|
+
];
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* The composite test-value implementations, one per combinator, mirroring the Noir synthesizer's `synthesizers` table.
|
|
90
|
+
*/
|
|
91
|
+
const COMPOSITE_IMPLS: CompositeImpl[] = [
|
|
92
|
+
composite(isOptionMapping, (type, seed) => [
|
|
93
|
+
named(Option.some(testValueFor(type.inner, seed)), 'some'),
|
|
94
|
+
named(Option.none(testValueFor(type.inner, seed)), 'none'),
|
|
76
95
|
]),
|
|
77
|
-
composite(
|
|
78
|
-
composite(
|
|
96
|
+
composite(isArrayMapping, (type, seed) => [unnamed(collectionData(type.inner, seed, DEFAULT_ARRAY_LENGTH))]),
|
|
97
|
+
composite(isBoundedVecMapping, (type, seed) => [
|
|
79
98
|
unnamed(
|
|
80
99
|
BoundedVec.from({
|
|
81
100
|
data: collectionData(type.inner, seed, DEFAULT_ARRAY_LENGTH),
|
|
@@ -83,17 +102,20 @@ const TEST_VALUE_IMPLS: TestValueImpl[] = [
|
|
|
83
102
|
}),
|
|
84
103
|
),
|
|
85
104
|
]),
|
|
86
|
-
composite(
|
|
105
|
+
composite(isStructMapping, (type, seed) => [unnamed(structValue(type, seed))]),
|
|
87
106
|
// A fixed-length array uses its real (signature) length, unlike the generic-length ARRAY which is pinned to
|
|
88
107
|
// DEFAULT_ARRAY_LENGTH.
|
|
89
|
-
composite(
|
|
108
|
+
composite(isFixedArrayMapping, (type, seed) => [unnamed(collectionData(type.inner, seed, type.length))]),
|
|
90
109
|
// Same for a fixed-capacity bounded vec: real capacity, DEFAULT_ARRAY_LENGTH elements (its value type is a plain
|
|
91
110
|
// element array, unlike the two-slot BOUNDED_VEC), clamped to the capacity so small vecs stay valid.
|
|
92
|
-
composite(
|
|
111
|
+
composite(isFixedBoundedVecMapping, (type, seed) => [
|
|
93
112
|
unnamed(collectionData(type.inner, seed, Math.min(DEFAULT_ARRAY_LENGTH, type.maxLength))),
|
|
94
113
|
]),
|
|
95
114
|
];
|
|
96
115
|
|
|
116
|
+
/** The scalar mappings with a registered test-value impl. */
|
|
117
|
+
export const SCALAR_MAPPINGS: TypeMapping<any>[] = SCALAR_IMPLS.map(impl => impl.mapping);
|
|
118
|
+
|
|
97
119
|
/**
|
|
98
120
|
* The base every seed is offset by, applied once where a parameter's position becomes its seed, so generated values
|
|
99
121
|
* stay clear of 0. Must match `SEED_BASE` in the Noir `oracle_testing.nr`.
|
|
@@ -125,32 +147,34 @@ function named(value: unknown, name: string): Scenario {
|
|
|
125
147
|
return { value, name };
|
|
126
148
|
}
|
|
127
149
|
|
|
128
|
-
/**
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
150
|
+
/** An impl for the single scalar `mapping` it synthesizes for. */
|
|
151
|
+
type ScalarImpl = {
|
|
152
|
+
mapping: TypeMapping<any>;
|
|
153
|
+
scenarios: (type: TypeMapping<any>, seed: number) => Scenario[];
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
/** An impl for a whole family of composite mappings, selected by its `kind` type guard. */
|
|
157
|
+
type CompositeImpl = {
|
|
134
158
|
match: (type: TypeMapping<any>) => boolean;
|
|
135
159
|
scenarios: (type: TypeMapping<any>, seed: number) => Scenario[];
|
|
136
|
-
}
|
|
160
|
+
};
|
|
137
161
|
|
|
138
|
-
/** A scalar impl
|
|
139
|
-
function scalar(
|
|
140
|
-
return {
|
|
162
|
+
/** A scalar impl yielding a single unnamed scenario. */
|
|
163
|
+
function scalar(mapping: TypeMapping<any>, value: (seed: number) => unknown): ScalarImpl {
|
|
164
|
+
return { mapping, scenarios: (_type, seed) => [unnamed(value(seed))] };
|
|
141
165
|
}
|
|
142
166
|
|
|
143
|
-
/** A composite impl
|
|
167
|
+
/** A composite impl, recursing through the matched mapping's element/inner mapping. */
|
|
144
168
|
function composite<K extends CompositeMapping>(
|
|
145
169
|
guard: (type: TypeMapping<any>) => type is K,
|
|
146
170
|
scenarios: (type: K, seed: number) => Scenario[],
|
|
147
|
-
):
|
|
171
|
+
): CompositeImpl {
|
|
148
172
|
return { match: guard, scenarios: (type, seed) => scenarios(type as K, seed) };
|
|
149
173
|
}
|
|
150
174
|
|
|
151
175
|
/** Synthesized element values for a collection. */
|
|
152
176
|
function collectionData(element: TypeMapping<any>, seed: number, length: number): unknown[] {
|
|
153
|
-
return Array.from({ length }, (_, i) =>
|
|
177
|
+
return Array.from({ length }, (_, i) => testValueFor(element, seed + i));
|
|
154
178
|
}
|
|
155
179
|
|
|
156
180
|
/**
|
|
@@ -161,7 +185,7 @@ function structValue(type: StructMapping, seed: number): Record<string, unknown>
|
|
|
161
185
|
const value: Record<string, unknown> = {};
|
|
162
186
|
let offset = 0;
|
|
163
187
|
for (const field of type.fields) {
|
|
164
|
-
value[field.name] =
|
|
188
|
+
value[field.name] = testValueFor(field.type, seed + offset);
|
|
165
189
|
const width = tryFieldWidth(field.type.shape);
|
|
166
190
|
if (width === undefined) {
|
|
167
191
|
// A variable-width field has no flat offset to seed the next field at, so only this oracle is unsynthesizable.
|
|
@@ -177,15 +201,18 @@ function structValue(type: StructMapping, seed: number): Record<string, unknown>
|
|
|
177
201
|
* dispatcher. Throws if the type has no matching impl.
|
|
178
202
|
*/
|
|
179
203
|
function scenariosForType(type: TypeMapping<any>, seed: number): Scenario[] {
|
|
180
|
-
const impl =
|
|
204
|
+
const impl = SCALAR_IMPLS.find(i => i.mapping === type) ?? COMPOSITE_IMPLS.find(i => i.match(type));
|
|
181
205
|
if (!impl) {
|
|
182
206
|
throw new UnsynthesizableTypeError(type);
|
|
183
207
|
}
|
|
184
208
|
return impl.scenarios(type, seed);
|
|
185
209
|
}
|
|
186
210
|
|
|
187
|
-
/**
|
|
188
|
-
|
|
211
|
+
/**
|
|
212
|
+
* The test value of `type` at `seed`, matching what the Noir synthesizer produces for the same type and seed. Throws
|
|
213
|
+
* for types without a test-value impl.
|
|
214
|
+
*/
|
|
215
|
+
export function testValueFor(type: TypeMapping<any>, seed: number): unknown {
|
|
189
216
|
return scenariosForType(type, seed)[0].value;
|
|
190
217
|
}
|
|
191
218
|
|
|
@@ -242,41 +269,3 @@ function synthesizeScenariosOrThrow(entry: OracleRegistryEntry): OracleTestScena
|
|
|
242
269
|
}
|
|
243
270
|
return scenarios;
|
|
244
271
|
}
|
|
245
|
-
|
|
246
|
-
/**
|
|
247
|
-
* The composite `TypeMapping`s (`ARRAY`/`BOUNDED_VEC`/`OPTION`/`STRUCT`/`FIXED_ARRAY`/`FIXED_BOUNDED_VEC`),
|
|
248
|
-
* discriminated by `kind`. The combinators attach `kind` plus the inner mapping(s) at construction; the registry
|
|
249
|
-
* erases params to the base `TypeMapping`, so the guards below recover the structure for recursion.
|
|
250
|
-
*/
|
|
251
|
-
type ArrayMapping = TypeMapping & { kind: 'array'; inner: TypeMapping };
|
|
252
|
-
type BoundedVecMapping = TypeMapping & { kind: 'bounded-vec'; inner: TypeMapping };
|
|
253
|
-
type OptionMapping = TypeMapping & { kind: 'option'; inner: TypeMapping };
|
|
254
|
-
type StructMapping = TypeMapping & { kind: 'struct'; fields: readonly StructField[] };
|
|
255
|
-
type FixedArrayMapping = TypeMapping & { kind: 'fixed-array'; inner: TypeMapping; length: number };
|
|
256
|
-
type FixedBoundedVecMapping = TypeMapping & { kind: 'fixed-bounded-vec'; inner: TypeMapping; maxLength: number };
|
|
257
|
-
type CompositeMapping =
|
|
258
|
-
| ArrayMapping
|
|
259
|
-
| BoundedVecMapping
|
|
260
|
-
| OptionMapping
|
|
261
|
-
| StructMapping
|
|
262
|
-
| FixedArrayMapping
|
|
263
|
-
| FixedBoundedVecMapping;
|
|
264
|
-
|
|
265
|
-
function isArray(type: TypeMapping<any>): type is ArrayMapping {
|
|
266
|
-
return 'kind' in type && type.kind === 'array';
|
|
267
|
-
}
|
|
268
|
-
function isBoundedVec(type: TypeMapping<any>): type is BoundedVecMapping {
|
|
269
|
-
return 'kind' in type && type.kind === 'bounded-vec';
|
|
270
|
-
}
|
|
271
|
-
function isOption(type: TypeMapping<any>): type is OptionMapping {
|
|
272
|
-
return 'kind' in type && type.kind === 'option';
|
|
273
|
-
}
|
|
274
|
-
function isStruct(type: TypeMapping<any>): type is StructMapping {
|
|
275
|
-
return 'kind' in type && type.kind === 'struct';
|
|
276
|
-
}
|
|
277
|
-
function isFixedArray(type: TypeMapping<any>): type is FixedArrayMapping {
|
|
278
|
-
return 'kind' in type && type.kind === 'fixed-array';
|
|
279
|
-
}
|
|
280
|
-
function isFixedBoundedVec(type: TypeMapping<any>): type is FixedBoundedVecMapping {
|
|
281
|
-
return 'kind' in type && type.kind === 'fixed-bounded-vec';
|
|
282
|
-
}
|