Skip to content

Commit 5baec94

Browse files
feat: unify metadata information
Renamed `originSettler` in Hyperlane7683 to `intentSources` and moved the type definition to the `BaseMetadataSchema`. Co-authored-by: Lisandro Corbalan <lisandro@bootnode.dev>
1 parent c2615aa commit 5baec94

File tree

5 files changed

+27
-51
lines changed

5 files changed

+27
-51
lines changed

typescript/solver/solvers/eco/types.ts

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,36 +5,12 @@ import type { IntentCreatedEventObject } from "../../typechain/eco/contracts/Int
55
import { BaseMetadataSchema } from "../types.js";
66

77
export const EcoMetadataSchema = BaseMetadataSchema.extend({
8-
protocolName: z.string(),
9-
intentSources: z.array(
10-
z.object({
11-
address: addressSchema,
12-
chainName: z.string().refine((name) => chainNames.includes(name), {
13-
message: "Invalid chainName",
14-
}),
15-
pollInterval: z.number().optional(),
16-
confirmationBlocks: z.number().optional(),
17-
initialBlock: z.number().optional(),
18-
processedIds: z.array(z.string()).optional(),
19-
}),
20-
),
218
adapters: z.record(
229
z.string().refine((name) => chainNames.includes(name), {
2310
message: "Invalid chainName",
2411
}),
2512
addressSchema,
2613
),
27-
customRules: z
28-
.object({
29-
rules: z.array(
30-
z.object({
31-
name: z.string(),
32-
args: z.array(z.any()).optional(),
33-
}),
34-
),
35-
keepBaseRules: z.boolean().optional(),
36-
})
37-
.optional(),
3814
});
3915

4016
export type EcoMetadata = z.infer<typeof EcoMetadataSchema>;

typescript/solver/solvers/hyperlane7683/config/metadata.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55

66
const metadata: Hyperlane7683Metadata = {
77
protocolName: "Hyperlane7683",
8-
originSettlers: [
8+
intentSources: [
99
// mainnet
1010
// {
1111
// address: "0x5F69f9aeEB44e713fBFBeb136d712b22ce49eb88",

typescript/solver/solvers/hyperlane7683/listener.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ export class Hyperlane7683Listener extends BaseListener<
1717
OpenEventArgs
1818
> {
1919
constructor(metadata: Hyperlane7683Metadata) {
20-
const { originSettlers, protocolName } = metadata;
21-
const hyperlane7683Metadata = { contracts: originSettlers, protocolName };
20+
const { intentSources, protocolName } = metadata;
21+
const hyperlane7683Metadata = { contracts: intentSources, protocolName };
2222

2323
super(Hyperlane7683__factory, "Open", hyperlane7683Metadata, log);
2424
}
@@ -40,24 +40,24 @@ export class Hyperlane7683Listener extends BaseListener<
4040
}
4141

4242
export const create = async () => {
43-
const { originSettlers } = metadata;
43+
const { intentSources } = metadata;
4444
const blocksByChain = await getLastIndexedBlocks();
4545

46-
metadata.originSettlers = originSettlers.map((originSettler) => {
46+
metadata.intentSources = intentSources.map((intentSource) => {
4747
const chainBlockNumber =
48-
blocksByChain[originSettler.chainName]?.blockNumber;
48+
blocksByChain[intentSource.chainName]?.blockNumber;
4949

5050
if (
5151
chainBlockNumber &&
52-
chainBlockNumber >= (originSettler.initialBlock ?? 0)
52+
chainBlockNumber >= (intentSource.initialBlock ?? 0)
5353
) {
5454
return {
55-
...originSettler,
56-
initialBlock: blocksByChain[originSettler.chainName].blockNumber,
57-
processedIds: blocksByChain[originSettler.chainName].processedIds,
55+
...intentSource,
56+
initialBlock: blocksByChain[intentSource.chainName].blockNumber,
57+
processedIds: blocksByChain[intentSource.chainName].processedIds,
5858
};
5959
}
60-
return originSettler;
60+
return intentSource;
6161
});
6262

6363
return new Hyperlane7683Listener(metadata).create();

typescript/solver/solvers/hyperlane7683/types.ts

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import type { BigNumber } from "ethers";
22
import z from "zod";
3-
import { chainNames } from "../../config/index.js";
4-
import { addressSchema } from "../../config/types.js";
3+
54
import type { OpenEventObject } from "../../typechain/hyperlane7683/contracts/Hyperlane7683.js";
65
import { BaseMetadataSchema } from "../types.js";
76

@@ -42,19 +41,6 @@ export type IntentData = {
4241
maxSpent: ResolvedCrossChainOrder["maxSpent"];
4342
};
4443

45-
export const Hyperlane7683MetadataSchema = BaseMetadataSchema.extend({
46-
originSettlers: z.array(
47-
z.object({
48-
address: addressSchema,
49-
chainName: z.string().refine((name) => chainNames.includes(name), {
50-
message: "Invalid chainName",
51-
}),
52-
pollInterval: z.number().optional(),
53-
confirmationBlocks: z.number().optional(),
54-
initialBlock: z.number().optional(),
55-
processedIds: z.array(z.string()).optional(),
56-
}),
57-
),
58-
});
44+
export const Hyperlane7683MetadataSchema = BaseMetadataSchema.extend({});
5945

6046
export type Hyperlane7683Metadata = z.infer<typeof Hyperlane7683MetadataSchema>;

typescript/solver/solvers/types.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import { isValidAddress } from "@hyperlane-xyz/utils";
22
import z from "zod";
33

4+
import { chainNames } from "../config/index.js";
5+
46
export const addressSchema = z
57
.string()
68
.refine((address) => isValidAddress(address), {
@@ -9,6 +11,18 @@ export const addressSchema = z
911

1012
export const BaseMetadataSchema = z.object({
1113
protocolName: z.string(),
14+
intentSources: z.array(
15+
z.object({
16+
address: addressSchema,
17+
chainName: z.string().refine((name) => chainNames.includes(name), {
18+
message: "Invalid chainName",
19+
}),
20+
pollInterval: z.number().optional(),
21+
confirmationBlocks: z.number().optional(),
22+
initialBlock: z.number().optional(),
23+
processedIds: z.array(z.string()).optional(),
24+
}),
25+
),
1226
customRules: z
1327
.object({
1428
rules: z.array(

0 commit comments

Comments
 (0)