diff --git a/yarn-project/aztec-rpc/src/aztec_rpc_server/aztec_rpc_server.ts b/yarn-project/aztec-rpc/src/aztec_rpc_server/aztec_rpc_server.ts index cd51cd006c27..fe754f7c6521 100644 --- a/yarn-project/aztec-rpc/src/aztec_rpc_server/aztec_rpc_server.ts +++ b/yarn-project/aztec-rpc/src/aztec_rpc_server/aztec_rpc_server.ts @@ -68,7 +68,7 @@ export class AztecRPCServer implements AztecRPC { private contractDataOracle: ContractDataOracle; private simulator: AcirSimulator; private log: DebugLogger; - private clientInfo: string; + private sandboxVersion: string; constructor( private keyStore: KeyStore, @@ -82,8 +82,7 @@ export class AztecRPCServer implements AztecRPC { this.contractDataOracle = new ContractDataOracle(db, node); this.simulator = getAcirSimulator(db, node, node, node, keyStore, this.contractDataOracle); - const { version, name } = getPackageInfo(); - this.clientInfo = `${name.split('/')[name.split('/').length - 1]}@${version}`; + this.sandboxVersion = getPackageInfo().version; } /** @@ -94,7 +93,7 @@ export class AztecRPCServer implements AztecRPC { public async start() { await this.synchroniser.start(INITIAL_L2_BLOCK_NUM, 1, this.config.l2BlockPollingIntervalMS); const info = await this.getNodeInfo(); - this.log.info(`Started RPC server connected to chain ${info.chainId} version ${info.version}`); + this.log.info(`Started RPC server connected to chain ${info.chainId} version ${info.protocolVersion}`); } /** @@ -345,11 +344,11 @@ export class AztecRPCServer implements AztecRPC { ]); return { - version, + sandboxVersion: this.sandboxVersion, + compatibleNargoVersion: NoirVersion.tag, chainId, + protocolVersion: version, rollupAddress, - client: this.clientInfo, - compatibleNargoVersion: NoirVersion.tag, }; } diff --git a/yarn-project/aztec-rpc/src/aztec_rpc_server/test/aztec_rpc_test_suite.ts b/yarn-project/aztec-rpc/src/aztec_rpc_server/test/aztec_rpc_test_suite.ts index 1ebf9aea8af7..79f68176cb02 100644 --- a/yarn-project/aztec-rpc/src/aztec_rpc_server/test/aztec_rpc_test_suite.ts +++ b/yarn-project/aztec-rpc/src/aztec_rpc_server/test/aztec_rpc_test_suite.ts @@ -133,7 +133,7 @@ export const aztecRpcTestSuite = (testName: string, aztecRpcSetup: () => Promise it('successfully gets node info', async () => { const nodeInfo = await rpc.getNodeInfo(); - expect(typeof nodeInfo.version).toEqual('number'); + expect(typeof nodeInfo.protocolVersion).toEqual('number'); expect(typeof nodeInfo.chainId).toEqual('number'); expect(nodeInfo.rollupAddress.toString()).toMatch(/0x[a-fA-F0-9]+/); }); diff --git a/yarn-project/aztec.js/src/account/defaults/default_interface.ts b/yarn-project/aztec.js/src/account/defaults/default_interface.ts index 515216ba3266..f59bbdf7daef 100644 --- a/yarn-project/aztec.js/src/account/defaults/default_interface.ts +++ b/yarn-project/aztec.js/src/account/defaults/default_interface.ts @@ -14,13 +14,13 @@ export class DefaultAccountInterface implements AccountInterface { constructor( private authWitnessProvider: AuthWitnessProvider, private address: CompleteAddress, - nodeInfo: Pick, + nodeInfo: Pick, ) { this.entrypoint = new DefaultAccountEntrypoint( address.address, authWitnessProvider, nodeInfo.chainId, - nodeInfo.version, + nodeInfo.protocolVersion, ); } diff --git a/yarn-project/aztec.js/src/contract/contract.test.ts b/yarn-project/aztec.js/src/contract/contract.test.ts index 8c450c7429c0..1df16e7de1f8 100644 --- a/yarn-project/aztec.js/src/contract/contract.test.ts +++ b/yarn-project/aztec.js/src/contract/contract.test.ts @@ -29,11 +29,11 @@ describe('Contract Class', () => { const mockTxReceipt = { type: 'TxReceipt' } as any as TxReceipt; const mockViewResultValue = 1; const mockNodeInfo: NodeInfo = { - version: 1, + sandboxVersion: 'vx.x.x', + compatibleNargoVersion: 'vx.x.x-aztec.x', + protocolVersion: 1, chainId: 2, rollupAddress: EthAddress.random(), - client: '', - compatibleNargoVersion: 'vx.x.x-aztec.x', }; const defaultAbi: ContractAbi = { diff --git a/yarn-project/aztec.js/src/contract_deployer/deploy_method.ts b/yarn-project/aztec.js/src/contract_deployer/deploy_method.ts index 34ad5bf71d4c..9e80b8d45a02 100644 --- a/yarn-project/aztec.js/src/contract_deployer/deploy_method.ts +++ b/yarn-project/aztec.js/src/contract_deployer/deploy_method.ts @@ -60,7 +60,7 @@ export class DeployMethod extends Bas const portalContract = options.portalContract ?? EthAddress.ZERO; const contractAddressSalt = options.contractAddressSalt ?? Fr.random(); - const { chainId, version } = await this.rpc.getNodeInfo(); + const { chainId, protocolVersion } = await this.rpc.getNodeInfo(); const { completeAddress, constructorHash, functionTreeRoot } = await getContractDeploymentInfo( this.abi, @@ -77,7 +77,14 @@ export class DeployMethod extends Bas portalContract, ); - const txContext = new TxContext(false, false, true, contractDeploymentData, new Fr(chainId), new Fr(version)); + const txContext = new TxContext( + false, + false, + true, + contractDeploymentData, + new Fr(chainId), + new Fr(protocolVersion), + ); const args = encodeArguments(this.constructorAbi, this.args); const functionData = FunctionData.fromAbi(this.constructorAbi); const execution = { args, functionData, to: completeAddress.address }; diff --git a/yarn-project/aztec.js/src/wallet/signerless_wallet.ts b/yarn-project/aztec.js/src/wallet/signerless_wallet.ts index 6f98f8f9498c..6de0eec702e2 100644 --- a/yarn-project/aztec.js/src/wallet/signerless_wallet.ts +++ b/yarn-project/aztec.js/src/wallet/signerless_wallet.ts @@ -15,8 +15,8 @@ export class SignerlessWallet extends BaseWallet { const [execution] = executions; const wasm = await CircuitsWasm.get(); const packedArguments = await PackedArguments.fromArgs(execution.args, wasm); - const { chainId, version } = await this.rpc.getNodeInfo(); - const txContext = TxContext.empty(chainId, version); + const { chainId, protocolVersion } = await this.rpc.getNodeInfo(); + const txContext = TxContext.empty(chainId, protocolVersion); return Promise.resolve( new TxExecutionRequest( execution.to, diff --git a/yarn-project/cli/src/client.test.ts b/yarn-project/cli/src/client.test.ts index d4e6de3fdb94..10a8445acf93 100644 --- a/yarn-project/cli/src/client.test.ts +++ b/yarn-project/cli/src/client.test.ts @@ -13,19 +13,19 @@ describe('client', () => { }); it('checks versions match', async () => { - rpc.getNodeInfo.mockResolvedValue({ client: 'rpc@0.1.0-alpha47' } as NodeInfo); + rpc.getNodeInfo.mockResolvedValue({ sandboxVersion: '0.1.0-alpha47' } as NodeInfo); await checkServerVersion(rpc, '0.1.0-alpha47'); }); it('reports mismatch on older rpc version', async () => { - rpc.getNodeInfo.mockResolvedValue({ client: 'rpc@0.1.0-alpha47' } as NodeInfo); + rpc.getNodeInfo.mockResolvedValue({ sandboxVersion: '0.1.0-alpha47' } as NodeInfo); await expect(checkServerVersion(rpc, '0.1.0-alpha48')).rejects.toThrowError( /is older than the expected by this CLI/, ); }); it('reports mismatch on newer rpc version', async () => { - rpc.getNodeInfo.mockResolvedValue({ client: 'rpc@0.1.0-alpha48' } as NodeInfo); + rpc.getNodeInfo.mockResolvedValue({ sandboxVersion: '0.1.0-alpha48' } as NodeInfo); await expect(checkServerVersion(rpc, '0.1.0-alpha47')).rejects.toThrowError( /is newer than the expected by this CLI/, ); diff --git a/yarn-project/cli/src/client.ts b/yarn-project/cli/src/client.ts index 26dd39a44312..d2a297580a7e 100644 --- a/yarn-project/cli/src/client.ts +++ b/yarn-project/cli/src/client.ts @@ -51,25 +51,26 @@ class VersionMismatchError extends Error {} */ export async function checkServerVersion(rpc: AztecRPC, expectedVersionRange: string) { const serverName = 'Aztec Sandbox'; - const { client } = await rpc.getNodeInfo(); - if (!client) { + const { sandboxVersion } = await rpc.getNodeInfo(); + if (!sandboxVersion) { throw new VersionMismatchError(`Couldn't determine ${serverName} version. You may run into issues.`); } - const version = client.split('@')[1]; - if (!version || !valid(version)) { - throw new VersionMismatchError(`Missing or invalid version identifier for ${serverName} (${version ?? 'empty'}).`); - } else if (!satisfies(version, expectedVersionRange)) { - if (gtr(version, expectedVersionRange)) { + if (!sandboxVersion || !valid(sandboxVersion)) { + throw new VersionMismatchError( + `Missing or invalid version identifier for ${serverName} (${sandboxVersion ?? 'empty'}).`, + ); + } else if (!satisfies(sandboxVersion, expectedVersionRange)) { + if (gtr(sandboxVersion, expectedVersionRange)) { throw new VersionMismatchError( - `${serverName} is running version ${version} which is newer than the expected by this CLI (${expectedVersionRange}). Consider upgrading your CLI to a newer version.`, + `${serverName} is running version ${sandboxVersion} which is newer than the expected by this CLI (${expectedVersionRange}). Consider upgrading your CLI to a newer version.`, ); - } else if (ltr(version, expectedVersionRange)) { + } else if (ltr(sandboxVersion, expectedVersionRange)) { throw new VersionMismatchError( - `${serverName} is running version ${version} which is older than the expected by this CLI (${expectedVersionRange}). Consider upgrading your ${serverName} to a newer version.`, + `${serverName} is running version ${sandboxVersion} which is older than the expected by this CLI (${expectedVersionRange}). Consider upgrading your ${serverName} to a newer version.`, ); } else { throw new VersionMismatchError( - `${serverName} is running version ${version} which does not match the expected by this CLI (${expectedVersionRange}).`, + `${serverName} is running version ${sandboxVersion} which does not match the expected by this CLI (${expectedVersionRange}).`, ); } } diff --git a/yarn-project/end-to-end/src/e2e_sandbox_example.test.ts b/yarn-project/end-to-end/src/e2e_sandbox_example.test.ts index e2258de2ca85..6c0a91ce9b77 100644 --- a/yarn-project/end-to-end/src/e2e_sandbox_example.test.ts +++ b/yarn-project/end-to-end/src/e2e_sandbox_example.test.ts @@ -30,7 +30,7 @@ describe('e2e_sandbox_example', () => { logger('Aztec Sandbox Info ', nodeInfo); // docs:end:setup - expect(typeof nodeInfo.version).toBe('number'); + expect(typeof nodeInfo.protocolVersion).toBe('number'); expect(typeof nodeInfo.chainId).toBe('number'); expect(typeof nodeInfo.rollupAddress).toBe('object'); diff --git a/yarn-project/types/src/interfaces/aztec_rpc.ts b/yarn-project/types/src/interfaces/aztec_rpc.ts index fbd009689252..775ad61c6e09 100644 --- a/yarn-project/types/src/interfaces/aztec_rpc.ts +++ b/yarn-project/types/src/interfaces/aztec_rpc.ts @@ -37,25 +37,25 @@ export interface DeployedContract { */ export type NodeInfo = { /** - * The version number of the node. + * Version as tracked in the aztec-packages repository. */ - version: number; + sandboxVersion: string; /** - * The network's chain id. + * The nargo version compatible with this sandbox version */ - chainId: number; + compatibleNargoVersion: string; /** - * The rollup contract address + * L1 chain id. */ - rollupAddress: EthAddress; + chainId: number; /** - * Identifier of the client software. + * Protocol version. */ - client: string; + protocolVersion: number; /** - * The nargo version compatible with this node. + * The rollup contract address */ - compatibleNargoVersion: string; + rollupAddress: EthAddress; }; /** Provides up to which block has been synced by different components. */