Skip to content

Commit

Permalink
fix: update ordhook URLs on typescript client
Browse files Browse the repository at this point in the history
  • Loading branch information
rafaelcr committed Nov 29, 2023
1 parent 2973c22 commit 9462ae3
Showing 1 changed file with 25 additions and 22 deletions.
47 changes: 25 additions & 22 deletions components/client/typescript/src/server.ts
Expand Up @@ -30,6 +30,12 @@ const ServerOptionsSchema = Type.Object({
validate_chainhook_payloads: Type.Optional(Type.Boolean({ default: false })),
/** Size limit for received chainhook payloads (default 40MB) */
body_limit: Type.Optional(Type.Number({ default: 41943040 })),
/** Node type: `chainhook` or `ordhook` */
node_type: Type.Optional(
Type.Union([Type.Literal('chainhook'), Type.Literal('ordhook')], {
default: 'chainhook',
})
),
});
/** Local event server connection and authentication options */
export type ServerOptions = Static<typeof ServerOptionsSchema>;
Expand Down Expand Up @@ -115,22 +121,22 @@ export async function buildServer(
logger.info(`ChainhookEventObserver does not have predicates to register`);
return;
}
logger.info(
predicates,
`ChainhookEventObserver registering predicates at ${chainhookOpts.base_url}`
);
const nodeType = serverOpts.node_type ?? 'chainhook';
const path = nodeType === 'chainhook' ? `/v1/chainhooks` : `/v1/observers`;
const registerUrl = `${chainhookOpts.base_url}${path}`;
logger.info(predicates, `ChainhookEventObserver registering predicates at ${registerUrl}`);
for (const predicate of predicates) {
const thenThat: ThenThatHttpPost = {
http_post: {
url: `${serverOpts.external_base_url}/chainhook/${encodeURIComponent(predicate.uuid)}`,
url: `${serverOpts.external_base_url}/payload`,
authorization_header: `Bearer ${serverOpts.auth_token}`,
},
};
try {
const body = predicate as Predicate;
if ('mainnet' in body.networks) body.networks.mainnet.then_that = thenThat;
if ('testnet' in body.networks) body.networks.testnet.then_that = thenThat;
await request(`${chainhookOpts.base_url}/v1/chainhooks`, {
await request(registerUrl, {
method: 'POST',
body: JSON.stringify(body),
headers: { 'content-type': 'application/json' },
Expand All @@ -151,19 +157,19 @@ export async function buildServer(
return;
}
logger.info(`ChainhookEventObserver closing predicates at ${chainhookOpts.base_url}`);
const nodeType = serverOpts.node_type ?? 'chainhook';
const removals = predicates.map(
predicate =>
new Promise<void>((resolve, reject) => {
request(
`${chainhookOpts.base_url}/v1/chainhooks/${predicate.chain}/${encodeURIComponent(
predicate.uuid
)}`,
{
method: 'DELETE',
headers: { 'content-type': 'application/json' },
throwOnError: true,
}
)
const path =
nodeType === 'chainhook'
? `/v1/chainhooks/${predicate.chain}/${encodeURIComponent(predicate.uuid)}`
: `/v1/observers/${encodeURIComponent(predicate.uuid)}`;
request(`${chainhookOpts.base_url}${path}`, {
method: 'DELETE',
headers: { 'content-type': 'application/json' },
throwOnError: true,
})
.then(() => {
logger.info(
`ChainhookEventObserver removed '${predicate.name}' predicate (${predicate.uuid})`
Expand Down Expand Up @@ -195,12 +201,9 @@ export async function buildServer(
const compiledPayloadSchema = TypeCompiler.Compile(PayloadSchema);
fastify.addHook('preHandler', isEventAuthorized);
fastify.post(
'/chainhook/:uuid',
'/payload',
{
schema: {
params: Type.Object({
uuid: Type.String({ format: 'uuid' }),
}),
body: PayloadSchema,
},
},
Expand All @@ -217,7 +220,7 @@ export async function buildServer(
return;
}
try {
await callback(request.params.uuid, request.body);
await callback(request.body.chainhook.uuid, request.body);
await reply.code(200).send();
} catch (error) {
if (error instanceof BadPayloadRequestError) {
Expand All @@ -237,7 +240,7 @@ export async function buildServer(
trustProxy: true,
logger: PINO_CONFIG,
pluginTimeout: 0, // Disable so ping can retry indefinitely
bodyLimit: serverOpts.body_limit ?? 41943040, // 40MB
bodyLimit: serverOpts.body_limit ?? 41943040, // 40MB default
}).withTypeProvider<TypeBoxTypeProvider>();

if (serverOpts.wait_for_chainhook_node ?? true) {
Expand Down

0 comments on commit 9462ae3

Please sign in to comment.