Skip to content

Commit

Permalink
feat: add IVotingReputationClientV12
Browse files Browse the repository at this point in the history
  • Loading branch information
chmanie committed Jul 24, 2024
1 parent f3acbf1 commit 4fc6d31
Show file tree
Hide file tree
Showing 10 changed files with 88 additions and 57 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import type { AugmentedIColony } from '../../Core/augments/commonAugments.js';
import type { IVotingReputation } from '../../../contracts/IVotingReputation/12/IVotingReputation.js';

import { IVotingReputation__factory as VotingReputationFactory } from '../../../contracts/IVotingReputation/12/factories/IVotingReputation__factory.js';
import { ClientType } from '../../../constants.js';
import {
AugmentedEstimate,
AugmentedVotingReputation,
} from './augments/commonAugments.js';
import { AugmentedEstimateV2, AugmentsV2 } from './augments/augmentsV2.js';
import {
addAugments as addAugmentsV3,
AugmentedEstimateV3,
AugmentsV3,
} from './augments/augmentsV3.js';

interface VotingReputationEstimate
extends AugmentedEstimate<IVotingReputation>,
AugmentedEstimateV2,
AugmentedEstimateV3 {}

export interface VotingReputationClientV12
extends AugmentedVotingReputation<IVotingReputation>,
AugmentsV2<IVotingReputation>,
AugmentsV3<IVotingReputation> {
clientVersion: 12;
estimateGas: VotingReputationEstimate;
}

export default function getVotingReputationClient(
colonyClient: AugmentedIColony,
address: string,
): VotingReputationClientV12 {
const votingReputationClient = VotingReputationFactory.connect(
address,
colonyClient.signer || colonyClient.provider,
) as VotingReputationClientV12;

votingReputationClient.clientType = ClientType.VotingReputationClient;
votingReputationClient.clientVersion = 12;

addAugmentsV3(votingReputationClient, colonyClient);

return votingReputationClient;
}
Original file line number Diff line number Diff line change
@@ -1,44 +1,19 @@
import type { AugmentedIColony } from '../../Core/augments/commonAugments.js';
import type { IVotingReputation } from '../../../contracts/IVotingReputation/6/IVotingReputation.js';

import { IVotingReputation__factory as VotingReputationFactory } from '../../../contracts/IVotingReputation/6/factories/IVotingReputation__factory.js';
import { ClientType } from '../../../constants.js';
import {
AugmentedEstimate,
AugmentedVotingReputation,
} from './augments/commonAugments.js';
import {
addAugments,
AugmentedEstimateV2,
AugmentsV2,
} from './augments/augmentsV2.js';
import {
addAugments as addCreateDomainMotionAugments,
CreateDomainMotionAugments,
CreateDomainMotionEstimateGas,
} from './augments/CreateDomainMotion.js';

interface VotingReputationEstimate
extends AugmentedEstimate<IVotingReputation>,
AugmentedEstimateV2,
CreateDomainMotionEstimateGas {}

export interface VotingReputationClientV6
extends AugmentedVotingReputation<IVotingReputation>,
AugmentsV2<IVotingReputation>,
CreateDomainMotionAugments<IVotingReputation> {
clientVersion: 6;
estimateGas: VotingReputationEstimate;
}
import { UnkonwnVotingReputationClient } from './augments/commonAugments.js';
import { addAugments } from './augments/augmentsV2.js';
import { addAugments as addCreateDomainMotionAugments } from './augments/CreateDomainMotion.js';

export default function getVotingReputationClient(
colonyClient: AugmentedIColony,
address: string,
): VotingReputationClientV6 {
) {
const votingReputationClient = VotingReputationFactory.connect(
address,
colonyClient.signer || colonyClient.provider,
) as VotingReputationClientV6;
) as UnkonwnVotingReputationClient;

votingReputationClient.clientType = ClientType.VotingReputationClient;
votingReputationClient.clientVersion = 6;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ import {
parsePermissionedAction,
} from '@colony/core';

import { VotingReputationV6, VotingReputationV7 } from '../contracts.js';
import { VotingReputationV7 } from '../contracts.js';
import { AugmentedVotingReputation } from './commonAugments.js';

// VotingReputation versions that support this method
type ValidVotingReputation = VotingReputationV6 | VotingReputationV7;
type ValidVotingReputation = VotingReputationV7;

const { MaxUint256 } = constants;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ import { type TxOverrides, getCreateMotionProofs } from '@colony/core';

import { AugmentedIColony } from '../../../Core/augments/commonAugments.js';
import {
VotingReputationV6,
VotingReputationV7,
VotingReputationV8,
VotingReputationV9,
VotingReputationV10,
VotingReputationV11,
VotingReputationV12,
} from '../contracts.js';
import { AnyVotingReputationClient } from '../exports.js';
import {
Expand All @@ -22,12 +22,12 @@ import {
} from './commonAugments.js';

type ValidVotingReputation =
| VotingReputationV6
| VotingReputationV7
| VotingReputationV8
| VotingReputationV9
| VotingReputationV10
| VotingReputationV11;
| VotingReputationV11
| VotingReputationV12;

export interface AugmentedEstimateV2 {
/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import {
VotingReputationV9,
VotingReputationV10,
VotingReputationV11,
VotingReputationV12,
} from '../contracts.js';
import { AugmentedVotingReputation } from './commonAugments.js';
import { addAugments as addAugmentsV2, AugmentsV2 } from './augmentsV2.js';
Expand All @@ -21,7 +22,8 @@ type ValidVotingReputation =
| VotingReputationV8
| VotingReputationV9
| VotingReputationV10
| VotingReputationV11;
| VotingReputationV11
| VotingReputationV12;

export interface AugmentedEstimateV3 {
/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@ import type { IVotingReputation as VotingReputation8 } from '../../../contracts/
import type { IVotingReputation as VotingReputation9 } from '../../../contracts/IVotingReputation/9/index.js';
import type { IVotingReputation as VotingReputation10 } from '../../../contracts/IVotingReputation/10/index.js';
import type { IVotingReputation as VotingReputation11 } from '../../../contracts/IVotingReputation/11/index.js';
import type { IVotingReputation as VotingReputation12 } from '../../../contracts/IVotingReputation/12/index.js';

export { IVotingReputation__factory as VotingReputationFactory } from '../../../contracts/IVotingReputation/11/factories/IVotingReputation__factory.js';
export { IVotingReputation__factory as VotingReputationFactory } from '../../../contracts/IVotingReputation/12/factories/IVotingReputation__factory.js';

export type VotingReputationV1 = VotingReputation1;
export type VotingReputationV2 = VotingReputation2;
Expand All @@ -24,11 +25,12 @@ export type VotingReputationV8 = VotingReputation8;
export type VotingReputationV9 = VotingReputation9;
export type VotingReputationV10 = VotingReputation10;
export type VotingReputationV11 = VotingReputation11;
export type VotingReputationV12 = VotingReputation12;

export type AnyVotingReputation =
| VotingReputation6
| VotingReputation7
| VotingReputation8
| VotingReputation9
| VotingReputation10
| VotingReputation11;
| VotingReputation11
| VotingReputation12;
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@ import getVotingReputationClientV2 from './VotingReputationClientV2.js';
import getVotingReputationClientV3 from './VotingReputationClientV3.js';
import getVotingReputationClientV4 from './VotingReputationClientV4.js';
import getVotingReputationClientV5 from './VotingReputationClientV5.js';
import getVotingReputationClientV6, {
VotingReputationClientV6,
} from './VotingReputationClientV6.js';
import getVotingReputationClientV6 from './VotingReputationClientV6.js';
import getVotingReputationClientV7, {
VotingReputationClientV7,
} from './VotingReputationClientV7.js';
Expand All @@ -27,21 +25,24 @@ import getVotingReputationClientV10, {
import getVotingReputationClientV11, {
VotingReputationClientV11,
} from './VotingReputationClientV11.js';
import getVotingReputationClientV12, {
VotingReputationClientV12,
} from './VotingReputationClientV12.js';

export { VotingReputationClientV6 } from './VotingReputationClientV6.js';
export { VotingReputationClientV7 } from './VotingReputationClientV7.js';
export { VotingReputationClientV8 } from './VotingReputationClientV8.js';
export { VotingReputationClientV9 } from './VotingReputationClientV9.js';
export { VotingReputationClientV10 } from './VotingReputationClientV10.js';
export { VotingReputationClientV11 } from './VotingReputationClientV11.js';
export { VotingReputationClientV12 } from './VotingReputationClientV12.js';

export type AnyVotingReputationClient =
| VotingReputationClientV6
| VotingReputationClientV7
| VotingReputationClientV8
| VotingReputationClientV9
| VotingReputationClientV10
| VotingReputationClientV11;
| VotingReputationClientV11
| VotingReputationClientV12;

/** @internal */
export function getVotingReputationClient(
Expand All @@ -54,29 +55,32 @@ export function getVotingReputationClient(
return getVotingReputationClientV1(
colonyClient,
address,
) as VotingReputationClientV6;
) as VotingReputationClientV7;
case 2:
return getVotingReputationClientV2(
colonyClient,
address,
) as VotingReputationClientV6;
) as VotingReputationClientV7;
case 3:
return getVotingReputationClientV3(
colonyClient,
address,
) as VotingReputationClientV6;
) as VotingReputationClientV7;
case 4:
return getVotingReputationClientV4(
colonyClient,
address,
) as VotingReputationClientV6;
) as VotingReputationClientV7;
case 5:
return getVotingReputationClientV5(
colonyClient,
address,
) as VotingReputationClientV6;
) as VotingReputationClientV7;
case 6:
return getVotingReputationClientV6(colonyClient, address);
return getVotingReputationClientV6(
colonyClient,
address,
) as VotingReputationClientV7;
case 7:
return getVotingReputationClientV7(colonyClient, address);
case 8:
Expand All @@ -87,6 +91,8 @@ export function getVotingReputationClient(
return getVotingReputationClientV10(colonyClient, address);
case 11:
return getVotingReputationClientV11(colonyClient, address);
case 12:
return getVotingReputationClientV12(colonyClient, address);
default:
return assertExhaustiveSwitch(
version,
Expand Down
2 changes: 1 addition & 1 deletion packages/contractor/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
},
"homepage": "https://docs.colony.io/develop",
"dependencies": {
"@colony/abis": "0.0.0-snapshot-next-b8f19a6-1ea75dc3-20240717122511",
"@colony/abis": "0.0.0-snapshot-next-8f62df3-e0fd1a8f-20240724094300",
"@typechain/ethers-v5": "^11.1.0",
"@typechain/ethers-v6": "^0.4.2",
"@types/mkdirp": "^1.0.2",
Expand Down
3 changes: 2 additions & 1 deletion packages/core/src/versions/VotingReputation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import type { ColonyVersion } from './IColony.js';

import { createContractVersionArray } from './utils.js';

const VOTING_REPUTATION_VERSION_NEXT = 12;
const VOTING_REPUTATION_VERSION_NEXT = 13;

/** @internal */
export const VOTING_REPUTATION_VERSIONS = createContractVersionArray(
Expand All @@ -28,6 +28,7 @@ export const votingReputationIncompatibilityMap: Record<
9: [1, 2, 3, 4, 5, 6],
10: [1, 2, 3, 4, 5, 6],
11: [1, 2, 3, 4, 5, 6],
12: [1, 2, 3, 4, 5, 6],
};

/** @internal */
Expand Down
8 changes: 4 additions & 4 deletions pnpm-lock.yaml

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

0 comments on commit 4fc6d31

Please sign in to comment.