diff --git a/.circleci/config.yml b/.circleci/config.yml
index c84aa80a44f..f26e9a60318 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -1305,8 +1305,6 @@ workflows:
when:
equal: [system, << pipeline.parameters.workflow >>]
jobs:
- - build-docs: *defaults
-
# Barretenberg
- barretenberg-x86_64-linux-gcc: *defaults
- barretenberg-x86_64-linux-clang: *defaults
@@ -1399,7 +1397,8 @@ workflows:
- l1-contracts
- noir-contracts-build
<<: *defaults
-
+
+ - build-docs: *yarn_project
- aztec-js: *yarn_project
- end-to-end: *yarn_project
- ethereum: *yarn_project
diff --git a/docs/Dockerfile b/docs/Dockerfile
index 572658476eb..eb5071dc4f2 100644
--- a/docs/Dockerfile
+++ b/docs/Dockerfile
@@ -1,10 +1,14 @@
-FROM node:18-alpine
-RUN apk update
+FROM 278380418400.dkr.ecr.eu-west-2.amazonaws.com/yarn-project-base AS builder
WORKDIR /usr/src
COPY . .
+WORKDIR /usr/src/yarn-project
+
+RUN yarn build
+
WORKDIR /usr/src/docs
-RUN yarn && yarn build
\ No newline at end of file
+RUN yarn && yarn build
+
diff --git a/docs/docs/.gitignore b/docs/docs/.gitignore
new file mode 100644
index 00000000000..6fa7731468d
--- /dev/null
+++ b/docs/docs/.gitignore
@@ -0,0 +1 @@
+/apis
diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js
index ab4487d3d6c..61bd461fb2c 100644
--- a/docs/docusaurus.config.js
+++ b/docs/docusaurus.config.js
@@ -112,6 +112,18 @@ const config = {
disableInDev: false,
},
],
+ [
+ "@spalladino/docusaurus-plugin-typedoc",
+ {
+ id: "apis/aztec-rpc",
+ entryPoints: ["../yarn-project/types/src/interfaces/aztec_rpc.ts"],
+ tsconfig: "../yarn-project/types/tsconfig.json",
+ entryPointStrategy: "expand",
+ out: "apis/aztec-rpc",
+ disableSources: true,
+ frontmatter: { sidebar_label: "Aztec RPC Server" },
+ },
+ ],
// ["./src/plugins/plugin-embed-code", {}],
],
themeConfig:
diff --git a/docs/package.json b/docs/package.json
index b3017e9b2b2..1b7e465a791 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -4,16 +4,19 @@
"private": true,
"scripts": {
"docusaurus": "docusaurus",
- "start": "docusaurus start",
- "start:dev": "concurrently \"yarn preprocess:dev\" \"docusaurus start --host 0.0.0.0\"",
- "start:dev:local": "concurrently \"yarn preprocess:dev\" \"docusaurus start\"",
- "build": "yarn preprocess && docusaurus build",
+ "start": "yarn prebuild && docusaurus start",
+ "start:dev": "concurrently \"yarn preprocess:dev\" \"yarn typedoc:dev\" \"sleep 2 && docusaurus start --host 0.0.0.0\"",
+ "start:dev:local": "concurrently \"yarn preprocess:dev\" \"yarn typedoc:dev\" \"sleep 2 && docusaurus start\"",
+ "prebuild": "yarn preprocess && yarn typedoc",
+ "build": "docusaurus build",
"swizzle": "docusaurus swizzle",
"deploy": "docusaurus deploy",
- "clear": "rm -rf 'processed-docs' 'processed-docs-cache' && docusaurus clear",
+ "clear": "rm -rf 'processed-docs' 'processed-docs-cache' docs/apis && docusaurus clear",
"serve": "docusaurus serve",
"preprocess": "yarn node ./src/preprocess/index.js",
"preprocess:dev": "nodemon --config nodemon.json ./src/preprocess/index.js",
+ "typedoc": "docusaurus generate-typedoc && cp -a docs/apis processed-docs/",
+ "typedoc:dev": "nodemon -w ../yarn-project -e '*.js,*.ts,*.nr,*.md' --exec \"yarn docusaurus generate-typedoc && cp -a docs/apis processed-docs/\"",
"write-translations": "docusaurus write-translations",
"write-heading-ids": "docusaurus write-heading-ids",
"update-specs": "./scripts/update_specs.sh"
@@ -36,9 +39,12 @@
},
"devDependencies": {
"@docusaurus/module-type-aliases": "^2.4.1",
+ "@spalladino/docusaurus-plugin-typedoc": "^0.20.3",
"@tsconfig/docusaurus": "^1.0.5",
"concurrently": "^8.0.1",
"nodemon": "^3.0.1",
+ "typedoc": "^0.25.1",
+ "typedoc-plugin-markdown": "^3.16.0",
"typescript": "^4.7.2"
},
"browserslist": {
diff --git a/docs/sidebars.js b/docs/sidebars.js
index 585b1d947e3..e453a528903 100644
--- a/docs/sidebars.js
+++ b/docs/sidebars.js
@@ -371,6 +371,26 @@ const sidebars = {
value: '',
},
+ // API
+
+ {
+ type: "html",
+ className: "sidebar-title",
+ value: "API Reference",
+ defaultStyle: true,
+ },
+
+ {
+ label: "Aztec RPC Server",
+ type: "doc",
+ id: "apis/aztec-rpc/interfaces/AztecRPC",
+ },
+
+ {
+ type: "html",
+ value: '',
+ },
+
// MISCELLANEOUS
{
diff --git a/docs/yarn.lock b/docs/yarn.lock
index 6b47a036522..3057a40b1e8 100644
--- a/docs/yarn.lock
+++ b/docs/yarn.lock
@@ -1875,6 +1875,11 @@
p-map "^4.0.0"
webpack-sources "^3.2.2"
+"@spalladino/docusaurus-plugin-typedoc@^0.20.3":
+ version "0.20.3"
+ resolved "https://registry.yarnpkg.com/@spalladino/docusaurus-plugin-typedoc/-/docusaurus-plugin-typedoc-0.20.3.tgz#04e0f8db61b8328ab0b8d6d4bd43a59fb0cdbbdd"
+ integrity sha512-LufWGbOUbyztOgJY42UDeQ0bnpTqZBtdIL1duTaIMpNj1MM2N9F3QqQhmQY3J9SnqCnkMjZu13RnK/ninWbLLg==
+
"@svgr/babel-plugin-add-jsx-attribute@^6.5.1":
version "6.5.1"
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz#74a5d648bd0347bda99d82409d87b8ca80b9a1ba"
@@ -2531,6 +2536,11 @@ ansi-regex@^6.0.1:
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a"
integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==
+ansi-sequence-parser@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz#e0aa1cdcbc8f8bb0b5bca625aac41f5f056973cf"
+ integrity sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==
+
ansi-styles@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
@@ -2802,6 +2812,13 @@ brace-expansion@^1.1.7:
balanced-match "^1.0.0"
concat-map "0.0.1"
+brace-expansion@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae"
+ integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
+ dependencies:
+ balanced-match "^1.0.0"
+
braces@^3.0.2, braces@~3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
@@ -4693,6 +4710,18 @@ handle-thing@^2.0.0:
resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e"
integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==
+handlebars@^4.7.7:
+ version "4.7.8"
+ resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9"
+ integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==
+ dependencies:
+ minimist "^1.2.5"
+ neo-async "^2.6.2"
+ source-map "^0.6.1"
+ wordwrap "^1.0.0"
+ optionalDependencies:
+ uglify-js "^3.1.4"
+
has-flag@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
@@ -5402,6 +5431,11 @@ json5@^2.1.2, json5@^2.2.2:
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
+jsonc-parser@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76"
+ integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==
+
jsonfile@^6.0.1:
version "6.1.0"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
@@ -5596,6 +5630,11 @@ lru-cache@^6.0.0:
dependencies:
yallist "^4.0.0"
+lunr@^2.3.9:
+ version "2.3.9"
+ resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1"
+ integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==
+
make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
@@ -5608,6 +5647,11 @@ markdown-escapes@^1.0.0:
resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535"
integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==
+marked@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/marked/-/marked-4.3.0.tgz#796362821b019f734054582038b116481b456cf3"
+ integrity sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==
+
mdast-squeeze-paragraphs@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz#7c4c114679c3bee27ef10b58e2e015be79f1ef97"
@@ -5781,6 +5825,13 @@ minimatch@3.1.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch
dependencies:
brace-expansion "^1.1.7"
+minimatch@^9.0.3:
+ version "9.0.3"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825"
+ integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==
+ dependencies:
+ brace-expansion "^2.0.1"
+
minimist@^1.2.0, minimist@^1.2.5:
version "1.2.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
@@ -7474,6 +7525,16 @@ shelljs@^0.8.5:
interpret "^1.0.0"
rechoir "^0.6.2"
+shiki@^0.14.1:
+ version "0.14.4"
+ resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.14.4.tgz#2454969b466a5f75067d0f2fa0d7426d32881b20"
+ integrity sha512-IXCRip2IQzKwxArNNq1S+On4KPML3Yyn8Zzs/xRgcgOWIr8ntIK3IKzjFPfjy/7kt9ZMjc+FItfqHRBg8b6tNQ==
+ dependencies:
+ ansi-sequence-parser "^1.1.0"
+ jsonc-parser "^3.2.0"
+ vscode-oniguruma "^1.7.0"
+ vscode-textmate "^8.0.0"
+
side-channel@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
@@ -7962,6 +8023,23 @@ typedarray-to-buffer@^3.1.5:
dependencies:
is-typedarray "^1.0.0"
+typedoc-plugin-markdown@^3.16.0:
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.16.0.tgz#98da250271aafade8b6740a8116a97cd3941abcd"
+ integrity sha512-eeiC78fDNGFwemPIHiwRC+mEC7W5jwt3fceUev2gJ2nFnXpVHo8eRrpC9BLWZDee6ehnz/sPmNjizbXwpfaTBw==
+ dependencies:
+ handlebars "^4.7.7"
+
+typedoc@^0.25.1:
+ version "0.25.1"
+ resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.25.1.tgz#50de2d8fb93623fbfb59e2fa6407ff40e3d3f438"
+ integrity sha512-c2ye3YUtGIadxN2O6YwPEXgrZcvhlZ6HlhWZ8jQRNzwLPn2ylhdGqdR8HbyDRyALP8J6lmSANILCkkIdNPFxqA==
+ dependencies:
+ lunr "^2.3.9"
+ marked "^4.3.0"
+ minimatch "^9.0.3"
+ shiki "^0.14.1"
+
typescript@^4.7.2:
version "4.9.4"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78"
@@ -7972,6 +8050,11 @@ ua-parser-js@^0.7.30:
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.32.tgz#cd8c639cdca949e30fa68c44b7813ef13e36d211"
integrity sha512-f9BESNVhzlhEFf2CHMSj40NWOjYPl1YKYbrvIr/hFTDEmLq7SRbWvm7FcdcpCYT95zrOhC7gZSxjdnnTpBcwVw==
+uglify-js@^3.1.4:
+ version "3.17.4"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c"
+ integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==
+
undefsafe@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c"
@@ -8250,6 +8333,16 @@ vfile@^4.0.0:
unist-util-stringify-position "^2.0.0"
vfile-message "^2.0.0"
+vscode-oniguruma@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz#439bfad8fe71abd7798338d1cd3dc53a8beea94b"
+ integrity sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==
+
+vscode-textmate@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-8.0.0.tgz#2c7a3b1163ef0441097e0b5d6389cd5504b59e5d"
+ integrity sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==
+
wait-on@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-6.0.1.tgz#16bbc4d1e4ebdd41c5b4e63a2e16dbd1f4e5601e"
@@ -8461,6 +8554,11 @@ wildcard@^2.0.0:
resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec"
integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==
+wordwrap@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
+ integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==
+
wrap-ansi@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
diff --git a/yarn-project/types/src/interfaces/aztec_rpc.ts b/yarn-project/types/src/interfaces/aztec_rpc.ts
index 775ad61c6e0..f5d54fab34c 100644
--- a/yarn-project/types/src/interfaces/aztec_rpc.ts
+++ b/yarn-project/types/src/interfaces/aztec_rpc.ts
@@ -1,5 +1,4 @@
-import { AztecAddress, EthAddress, Fr, GrumpkinPrivateKey, PartialAddress } from '@aztec/circuits.js';
-import { ContractAbi } from '@aztec/foundation/abi';
+import { AztecAddress, Fr, GrumpkinPrivateKey, PartialAddress } from '@aztec/circuits.js';
import {
AuthWitness,
CompleteAddress,
@@ -13,58 +12,9 @@ import {
TxReceipt,
} from '@aztec/types';
-/**
- * Represents a deployed contract on the Aztec network.
- * Contains the contract ABI, address, and associated portal contract address.
- */
-export interface DeployedContract {
- /**
- * The Application Binary Interface of the deployed contract.
- */
- abi: ContractAbi;
- /**
- * The complete address representing the contract on L2.
- */
- completeAddress: CompleteAddress;
- /**
- * The Ethereum address of the L1 portal contract.
- */
- portalContract: EthAddress;
-}
-
-/**
- * Provides basic information about the running node.
- */
-export type NodeInfo = {
- /**
- * Version as tracked in the aztec-packages repository.
- */
- sandboxVersion: string;
- /**
- * The nargo version compatible with this sandbox version
- */
- compatibleNargoVersion: string;
- /**
- * L1 chain id.
- */
- chainId: number;
- /**
- * Protocol version.
- */
- protocolVersion: number;
- /**
- * The rollup contract address
- */
- rollupAddress: EthAddress;
-};
-
-/** Provides up to which block has been synced by different components. */
-export type SyncStatus = {
- /** Up to which block has been synched for blocks and txs. */
- blocks: number;
- /** Up to which block has been synched for notes, indexed by each public key being monitored. */
- notes: Record;
-};
+import { DeployedContract } from './deployed-contract.js';
+import { NodeInfo } from './node-info.js';
+import { SyncStatus } from './sync-status.js';
// docs:start:rpc-interface
/**
@@ -253,8 +203,7 @@ export interface AztecRPC {
/**
* Checks whether all the blocks were processed (tree roots updated, txs updated with block info, etc.).
* @returns True if there are no outstanding blocks to be synched.
- * @remarks This indicates that blocks and transactions are synched even if notes are not.
- * @remarks Compares local block number with the block number from aztec node.
+ * @remarks This indicates that blocks and transactions are synched even if notes are not. Compares local block number with the block number from aztec node.
*/
isGlobalStateSynchronised(): Promise;
diff --git a/yarn-project/types/src/interfaces/deployed-contract.ts b/yarn-project/types/src/interfaces/deployed-contract.ts
new file mode 100644
index 00000000000..6afa2d285e4
--- /dev/null
+++ b/yarn-project/types/src/interfaces/deployed-contract.ts
@@ -0,0 +1,22 @@
+import { EthAddress } from '@aztec/circuits.js';
+import { ContractAbi } from '@aztec/foundation/abi';
+import { CompleteAddress } from '@aztec/types';
+
+/**
+ * Represents a deployed contract on the Aztec network.
+ * Contains the contract ABI, address, and associated portal contract address.
+ */
+export interface DeployedContract {
+ /**
+ * The Application Binary Interface of the deployed contract.
+ */
+ abi: ContractAbi;
+ /**
+ * The complete address representing the contract on L2.
+ */
+ completeAddress: CompleteAddress;
+ /**
+ * The Ethereum address of the L1 portal contract.
+ */
+ portalContract: EthAddress;
+}
diff --git a/yarn-project/types/src/interfaces/index.ts b/yarn-project/types/src/interfaces/index.ts
index bc3101ac116..d53098ad94c 100644
--- a/yarn-project/types/src/interfaces/index.ts
+++ b/yarn-project/types/src/interfaces/index.ts
@@ -4,3 +4,6 @@ export * from './data_commitment_provider.js';
export * from './l1_l2_message_provider.js';
export * from './aztec-node.js';
export * from './aztec_rpc.js';
+export * from './deployed-contract.js';
+export * from './node-info.js';
+export * from './sync-status.js';
diff --git a/yarn-project/types/src/interfaces/node-info.ts b/yarn-project/types/src/interfaces/node-info.ts
new file mode 100644
index 00000000000..4037d4917ed
--- /dev/null
+++ b/yarn-project/types/src/interfaces/node-info.ts
@@ -0,0 +1,27 @@
+import { EthAddress } from '@aztec/circuits.js';
+
+/**
+ * Provides basic information about the running node.
+ */
+export type NodeInfo = {
+ /**
+ * Version as tracked in the aztec-packages repository.
+ */
+ sandboxVersion: string;
+ /**
+ * The nargo version compatible with this sandbox version
+ */
+ compatibleNargoVersion: string;
+ /**
+ * L1 chain id.
+ */
+ chainId: number;
+ /**
+ * Protocol version.
+ */
+ protocolVersion: number;
+ /**
+ * The rollup contract address
+ */
+ rollupAddress: EthAddress;
+};
diff --git a/yarn-project/types/src/interfaces/sync-status.ts b/yarn-project/types/src/interfaces/sync-status.ts
new file mode 100644
index 00000000000..75770ffe14b
--- /dev/null
+++ b/yarn-project/types/src/interfaces/sync-status.ts
@@ -0,0 +1,7 @@
+/** Provides up to which block has been synced by different components. */
+export type SyncStatus = {
+ /** Up to which block has been synched for blocks and txs. */
+ blocks: number;
+ /** Up to which block has been synched for notes, indexed by each public key being monitored. */
+ notes: Record;
+};