Skip to content
This repository was archived by the owner on Nov 5, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
8c56e2f
feat: introduce DeadLine model
jtourkos Aug 12, 2025
e8f3533
feat: implement RepoDeadlineDriver account ID utils
jtourkos Aug 12, 2025
e581e69
build: generate RepoDeadlineDriver client
jtourkos Aug 12, 2025
42ca356
feat: implement AccountSeen event handler for deadline management
jtourkos Aug 13, 2025
8c9a55c
Merge branch 'ecosystems' into deadlines
jtourkos Aug 14, 2025
c6d0c9d
Merge branch 'ecosystems' into deadlines
jtourkos Aug 15, 2025
68fbe12
refactor: isValid & isValid flag updates
jtourkos Aug 18, 2025
ab9dba1
refactor: apply PR comments
jtourkos Aug 18, 2025
eb29fd9
Merge branch 'ecosystems' into deadlines
jtourkos Aug 19, 2025
17787c4
Merge branch 'main' into deadlines
jtourkos Sep 2, 2025
2444915
Merge branch 'main' into deadlines
jtourkos Sep 2, 2025
ae97662
Merge branch 'main' into deadlines
jtourkos Sep 8, 2025
49f3775
Merge branch 'main' into deadlines
jtourkos Sep 16, 2025
b9feb4b
refactor: await async call
jtourkos Sep 24, 2025
fdc1a1a
refactor: upgrade metadata to include deadlines
jtourkos Sep 24, 2025
be822b6
refactor: solve merge conflicts
jtourkos Sep 24, 2025
93ad45c
refactor: improve project validation utils
jtourkos Sep 24, 2025
30c515e
feat: create deadlines from project metadata
jtourkos Sep 25, 2025
c33c7e9
feat: create deadlines from drip list metadata
jtourkos Sep 26, 2025
11d7f65
feat: create deadlines from ecosystem and sublist metadata
jtourkos Sep 26, 2025
41428eb
refactor: simplify Deadline creation
jtourkos Sep 29, 2025
f25cee7
refactor: support allowExternalDonations in metadata
jtourkos Oct 2, 2025
d887dbb
refactor: update metadata and contract addresses
jtourkos Oct 7, 2025
9641aef
fix: compilation error
jtourkos Oct 7, 2025
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
27 changes: 14 additions & 13 deletions .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,26 @@
"env": {
"es2021": true,
"node": true,
"jest": true
"jest": true,
},
"globals": {
"NodeJS": true
"NodeJS": true,
},
"extends": ["airbnb-base", "plugin:import/typescript", "prettier"],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": "latest"
"ecmaVersion": "latest",
},
"plugins": ["@typescript-eslint"],
"rules": {
"object-shorthand": ["error", "always"],
"no-await-in-loop": "off",
"no-restricted-syntax": [
"off",
{
"selector": "ForOfStatement",
"message": "for...of statements are allowed"
}
"message": "for...of statements are allowed",
},
],
"max-classes-per-file": "off",
"camelcase": "off",
Expand All @@ -33,8 +34,8 @@
"no-empty-function": [
"error",
{
"allow": ["constructors"]
}
"allow": ["constructors"],
},
],
"padding-line-between-statements": "off",
"lines-between-class-members": "off",
Expand All @@ -43,17 +44,17 @@
"@typescript-eslint/no-use-before-define": [
"error",
{
"functions": false
}
"functions": false,
},
],
"@typescript-eslint/no-unused-vars": [
"error",
{
"args": "after-used",
"argsIgnorePattern": "^_"
}
"argsIgnorePattern": "^_",
},
],
"no-plusplus": "off",
"@typescript-eslint/consistent-type-imports": "error"
}
"@typescript-eslint/consistent-type-imports": "error",
},
}
10 changes: 9 additions & 1 deletion scripts/codegen-any-chain-types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ function generateTypeImports(chainNames: string[]) {
import { Drips as ${chainName}Drips } from './${chainName}/';
import { NftDriver as ${chainName}NftDriver } from './${chainName}/';
import { RepoDriver as ${chainName}RepoDriver } from './${chainName}/';
import { RepoDeadlineDriver as ${chainName}RepoDeadlineDriver } from './${chainName}/';
import { RepoSubAccountDriver as ${chainName}RepoSubAccountDriver } from './${chainName}/';
import { AddressDriver as ${chainName}AddressDriver } from './${chainName}/';
import { ImmutableSplitsDriver as ${chainName}ImmutableSplitsDriver } from './${chainName}/';
Expand All @@ -55,13 +56,15 @@ function generateAnyChainTypes(chainNames: string[]) {
export type AnyChainDrips = ${chainNames.map((name) => `${name}Drips`).join(' | ')};
export type AnyChainNftDriver = ${chainNames.map((name) => `${name}NftDriver`).join(' | ')};
export type AnyChainRepoDriver = ${chainNames.map((name) => `${name}RepoDriver`).join(' | ')};
export type AnyChainRepoDeadlineDriver = ${chainNames.map((name) => `${name}RepoDeadlineDriver`).join(' | ')};
export type AnyChainRepoSubAccountDriver = ${chainNames.map((name) => `${name}RepoSubAccountDriver`).join(' | ')};
export type AnyChainAddressDriver = ${chainNames.map((name) => `${name}AddressDriver`).join(' | ')};
export type AnyChainImmutableSplitsDriver = ${chainNames.map((name) => `${name}ImmutableSplitsDriver`).join(' | ')};

export type AnyChainDripsFilters = ${chainNames.map((name) => `${name}Drips['filters']`).join(' & ')};
export type AnyChainNftDriverFilters = ${chainNames.map((name) => `${name}NftDriver['filters']`).join(' & ')};
export type AnyChainRepoDriverFilters = ${chainNames.map((name) => `${name}RepoDriver['filters']`).join(' & ')};
export type AnyChainRepoDeadlineDriverFilters = ${chainNames.map((name) => `${name}RepoDeadlineDriver['filters']`).join(' & ')};
export type AnyChainRepoSubAccountDriverFilters = ${chainNames.map((name) => `${name}RepoSubAccountDriver['filters']`).join(' & ')};
export type AnyChainAddressDriverFilters = ${chainNames.map((name) => `${name}AddressDriver['filters']`).join(' & ')};
export type AnyChainImmutableSplitsDriverFilters = ${chainNames.map((name) => `${name}ImmutableSplitsDriver['filters']`).join(' & ')};
Expand All @@ -76,7 +79,7 @@ function generateContractGetters() {
return `
import type { Provider } from 'ethers';

import { Drips__factory, NftDriver__factory, RepoDriver__factory, AddressDriver__factory, ImmutableSplitsDriver__factory, RepoSubAccountDriver__factory } from './${process.env.NETWORK}';
import { Drips__factory, NftDriver__factory, RepoDriver__factory, RepoDeadlineDriver__factory, AddressDriver__factory, ImmutableSplitsDriver__factory, RepoSubAccountDriver__factory } from './${process.env.NETWORK}';

export const getDripsContract: (contractAddress: string, provider: Provider) => AnyChainDrips = (contractAddress, provider) => Drips__factory.connect(
contractAddress,
Expand All @@ -93,6 +96,11 @@ export const getRepoDriverContract: (contractAddress: string, provider: Provider
provider
);

export const getRepoDeadlineDriverContract: (contractAddress: string, provider: Provider) => AnyChainRepoDeadlineDriver = (contractAddress, provider) => RepoDeadlineDriver__factory.connect(
contractAddress,
provider
);

export const getRepoSubAccountDriverContract: (contractAddress: string, provider: Provider) => AnyChainRepoSubAccountDriver = (contractAddress, provider) => RepoSubAccountDriver__factory.connect(
contractAddress,
provider
Expand Down
Loading