diff --git a/src/server/middleware/open-api.ts b/src/server/middleware/open-api.ts index 7bb4eb98f..d32143564 100644 --- a/src/server/middleware/open-api.ts +++ b/src/server/middleware/open-api.ts @@ -29,6 +29,11 @@ export const withOpenApi = async (server: FastifyInstance) => { }, ], }, + refResolver: { + buildLocalReference(json, baseUri, fragment, i) { + return json.$id || `def-${i}`; + }, + }, }); // Exports the /json endpoint without the Swagger UI. diff --git a/src/server/routes/contract/write/write.ts b/src/server/routes/contract/write/write.ts index a6033f614..7843bf791 100644 --- a/src/server/routes/contract/write/write.ts +++ b/src/server/routes/contract/write/write.ts @@ -29,7 +29,31 @@ const writeRequestBodySchema = Type.Object({ description: "The arguments to call on the function", }), ...txOverridesWithValueSchema.properties, - abi: Type.Optional(Type.Array(abiSchema)), + abi: Type.Optional(Type.Array(Type.Object({ + type: Type.String(), + name: Type.Optional(Type.String()), + inputs: Type.Optional(Type.Array(Type.Object({ + type: Type.Optional(Type.String()), + name: Type.Optional(Type.String()), + stateMutability: Type.Optional(Type.String()), + components: Type.Optional(Type.Array(Type.Object({ + type: Type.Optional(Type.String()), + name: Type.Optional(Type.String()), + internalType: Type.Optional(Type.String()), + }))), + }))), + outputs: Type.Optional(Type.Array(Type.Object({ + type: Type.Optional(Type.String()), + name: Type.Optional(Type.String()), + stateMutability: Type.Optional(Type.String()), + components: Type.Optional(Type.Array(Type.Object({ + type: Type.Optional(Type.String()), + name: Type.Optional(Type.String()), + internalType: Type.Optional(Type.String()), + }))), + }))), + stateMutability: Type.Optional(Type.String()), + }))), }); // LOGIC diff --git a/src/server/schemas/contract/index.ts b/src/server/schemas/contract/index.ts index 243b876d6..e70d70e3e 100644 --- a/src/server/schemas/contract/index.ts +++ b/src/server/schemas/contract/index.ts @@ -17,6 +17,9 @@ export const readRequestQuerySchema = Type.Object({ ), }); +//make the type interface support a generic dictionary +export interface readResponseSchema {} + export interface readSchema extends contractSchemaTypes { Querystring: Static; }