Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
510cc9f
sample implementation
simsonraj Feb 25, 2025
68efb67
Pulling the x-error-groups from open-rpc package
simsonraj Apr 20, 2025
b7da3a7
updated gastsby & docs generator
simsonraj Apr 27, 2025
46a9906
few fixes
simsonraj May 10, 2025
623c57a
Merge pull request #1 from simsonraj/error_groups
simsonraj May 10, 2025
2500734
Merge branch 'ethereum:main' into main
simsonraj May 10, 2025
721f190
Update scripts/build.js
simsonraj May 13, 2025
3bd6d47
meta data extension
simsonraj Jun 29, 2025
4eacff2
Merge pull request #2 from simsonraj/error_groups
simsonraj Jun 29, 2025
53d5577
sample implementation
simsonraj Feb 25, 2025
554443e
Pulling the x-error-groups from open-rpc package
simsonraj Apr 20, 2025
d3f6f22
updated gastsby & docs generator
simsonraj Apr 27, 2025
8d1dd3c
few fixes
simsonraj May 10, 2025
50113ef
Update scripts/build.js
simsonraj May 13, 2025
fc8aacc
meta data extension
simsonraj Jun 29, 2025
1ded1ed
Merge pull request #4 from simsonraj/sync_main_again
simsonraj Aug 29, 2025
019a359
fix package conflicts
simsonraj Aug 29, 2025
2b7da45
fix packages
simsonraj Aug 29, 2025
9b06027
Merge pull request #5 from simsonraj/sync_main_again
simsonraj Aug 29, 2025
5c8daea
extended error categories & code ranges implementation
simsonraj Sep 1, 2025
4019acd
Added TXPOOL errors, README file and fixes
simsonraj Sep 26, 2025
527bb9a
Added context in README
simsonraj Sep 26, 2025
89f012f
Update src/extensions/components/txpool-errors.yaml
simsonraj Oct 19, 2025
75fb065
Update src/extensions/components/txpool-errors.yaml
simsonraj Oct 19, 2025
d3948f7
Update src/extensions/components/txpool-errors.yaml
simsonraj Oct 19, 2025
490218e
Update src/extensions/components/txpool-errors.yaml
simsonraj Oct 19, 2025
8ab56cf
updated & re-organized error ranges & codes after review
simsonraj Oct 25, 2025
bc78032
fix ranges
simsonraj Oct 27, 2025
f77a8f7
Removed Data & Updated Message for errors
simsonraj Nov 7, 2025
99c9171
Merge remote-tracking branch 'upstream'
simsonraj Jan 26, 2026
d1aff3f
fix conflicts
simsonraj Jan 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 10 additions & 28 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@
"@open-rpc/schema-utils-js": "^2.1.2",
"clsx": "^2.1.1",
"docusaurus-plugin-copy-page-button": "^0.3.5",
"@open-rpc/extensions": "^0.0.2",
"@open-rpc/meta-schema": "^1.14.2",
"@open-rpc/specification-extension-spec": "^1.0.2",
"graphql": "~16.3.0",
"graphql-request": "~4.1.0",
"js-yaml": "~4.1.0",
Expand Down
34 changes: 34 additions & 0 deletions scripts/build.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import fs from "fs";
import yaml from "js-yaml";
import mergeAllOf from "json-schema-merge-allof";
import { dereferenceDocument } from "@open-rpc/schema-utils-js";
import { XErrorGroupsJSON } from "@open-rpc/extensions";

function sortByMethodName(methods) {
return methods.slice().sort((a, b) => {
Expand Down Expand Up @@ -79,6 +80,37 @@ schemaFiles.forEach(file => {
};
});

let extensionSpecs = [];

// Enhance the existing XErrorGroupsJSON extension with conditional validation for different error categories
const enhancedErrorGroupSchema = JSON.parse(fs.readFileSync('src/extensions/schemas/x-error-category-ranges.json', 'utf8'));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just going to write this here for tracking purposes, that this works as a stopgap until we on the OpenRPC side have a better story for being able to apply extensions to json pointer references. If we have that then there's no need to overwrite the error group spec. You'll able to just push the two specs, here but we're still a little ways from that.

XErrorGroupsJSON.schema = enhancedErrorGroupSchema;

extensionSpecs.push(XErrorGroupsJSON);

let extensions = [];
let extensionsBase = "src/extensions/components/"
let extensionsFiles = fs.readdirSync(extensionsBase);
extensionsFiles.forEach(file => {
console.log(file);
let raw = fs.readFileSync(extensionsBase + file);
let parsed = yaml.load(raw);
extensions.push(parsed);
});

// if extensions key matches with extensionSpecs name, then add it to an array of extensionSpec name
let extensionsDef = {};
extensionSpecs.forEach((extensionSpec) => {
extensions.forEach((extension) => {
if (extension.hasOwnProperty(extensionSpec.name)) {
extensionsDef[extensionSpec.name] ={
...extensionsDef[extensionSpec.name],
...extension[extensionSpec.name]
}
}
});
});

const doc = {
openrpc: "1.2.4",
info: {
Expand All @@ -91,7 +123,9 @@ const doc = {
version: "0.0.0"
},
methods: sortByMethodName(methods),
"x-extensions": extensionSpecs,
components: {
...extensionsDef,
schemas: schemas
}
}
Expand Down
8 changes: 7 additions & 1 deletion scripts/validate.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,19 @@
import fs from "fs";
import {
parseOpenRPCDocument,
dereferenceDocument,
validateOpenRPCDocument
} from "@open-rpc/schema-utils-js";
import OpenrpcDocument from "@open-rpc/meta-schema";

let rawdata = fs.readFileSync("openrpc.json");
let openrpc = JSON.parse(rawdata);

const error = validateOpenRPCDocument(openrpc);
/** @type {OpenrpcDocument} */
const document = openrpc;
const dereffed = await dereferenceDocument(document);

const error = validateOpenRPCDocument(dereffed);
if (error != true) {
console.log(error.name);
console.log(error.message);
Expand Down
14 changes: 14 additions & 0 deletions src/eth/submit.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,13 @@
required: true
schema:
$ref: '#/components/schemas/GenericTransaction'
x-error-group:
- $ref: '#/components/x-error-group/JSONRPCNonStandardErrors'
- $ref: '#/components/x-error-group/JSONRPCStandardErrors'
- $ref: '#/components/x-error-group/GasErrors'
- $ref: '#/components/x-error-group/ExecutionErrors'
- $ref: '#/components/x-error-group/TxPoolErrors'
- $ref: '#/components/x-error-group/ZKExecutionErrors'
result:
name: Transaction hash
schema:
Expand Down Expand Up @@ -45,6 +52,13 @@
required: true
schema:
$ref: '#/components/schemas/bytes'
x-error-group:
- $ref: '#/components/x-error-group/JSONRPCNonStandardErrors'
- $ref: '#/components/x-error-group/JSONRPCStandardErrors'
- $ref: '#/components/x-error-group/GasErrors'
- $ref: '#/components/x-error-group/ExecutionErrors'
- $ref: '#/components/x-error-group/TxPoolErrors'
- $ref: '#/components/x-error-group/ZKExecutionErrors'
result:
name: Transaction hash
schema:
Expand Down
Loading