Skip to content

Commit 919a956

Browse files
committed
refactor(types): major types refactor to use new api returns and unified nance-sdk
1 parent fe33963 commit 919a956

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+214
-625
lines changed

components/ActionLabel/ActionLabel.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {
44
Payout,
55
CustomTransaction,
66
Reserve,
7-
} from "@/models/NanceTypes";
7+
} from "@nance/nance-sdk";
88
import CustomTransactionActionLabel from "./CustomTransactionActionLabel";
99
import PayoutActionLabel from "./PayoutActionLabel";
1010
import { ReserveActionLabel } from "./ReserveActionLabel";

components/ActionLabel/CustomTransactionActionLabel.tsx

+2-3
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@ import { BigNumber } from "ethers";
33
import { NANCE_API_URL } from "@/constants/Nance";
44
import {
55
CustomTransaction,
6-
extractFunctionName,
7-
parseFunctionAbiWithNamedArgs,
8-
} from "@/models/NanceTypes";
6+
} from "@nance/nance-sdk";
7+
import { extractFunctionName, parseFunctionAbiWithNamedArgs } from "@/utils/functions/nance";
98
import ResolvedContract from "../AddressCard/ResolvedContract";
109

1110
export default function CustomTransactionActionLabel({

components/ActionLabel/PayoutActionLabel.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { payout2JBSplit } from "@/utils/functions/juicebox";
2-
import { Payout } from "@/models/NanceTypes";
2+
import { Payout } from "@nance/nance-sdk";
33
import JBSplitEntry from "@/components/JuiceboxCard/JBSplitEntry";
44
import { useContext } from "react";
55
import { ProposalContext } from "../Proposal/context/ProposalContext";

components/ActionLabel/ReserveActionLabel.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import { Reserve } from "../../models/NanceTypes";
1+
import { Reserve } from "@nance/nance-sdk";
22
import JBSplitEntryDetailed from "@/components/JuiceboxCard/JBSplitEntryDetailed";
33

44
export function ReserveActionLabel({ reserve }: { reserve: Reserve }) {
55
return (
66
<div className="flex flex-col">
77
{reserve.splits
8-
.sort((a, b) => b.percent - a.percent)
8+
.sort((a, b) => Number(b.percent) - Number(a.percent))
99
.map((split, index) => (
1010
<JBSplitEntryDetailed
1111
key={index}

components/ActionLabel/TransferActionLabel.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { numToPrettyString } from "@/utils/functions/NumberFormatter";
2-
import { Transfer } from "@/models/NanceTypes";
2+
import { Transfer } from "@nance/nance-sdk";
33
import FormattedAddress from "@/components/AddressCard/FormattedAddress";
44
import { useToken } from "wagmi";
55
import { getChainById } from "config/custom-chains";

components/CreateSpace/TextForm.tsx

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { Tooltip } from "flowbite-react";
2-
import { CreateFormKeys } from "../../models/NanceTypes";
32
import { ErrorMessage } from "@hookform/error-message";
43
import { useFormContext } from "react-hook-form";
54

components/Landing/StatsSection.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { SpaceInfo } from "@/models/NanceTypes";
1+
import { SpaceInfo } from "@nance/nance-sdk";
22

33
export default function StatsSection({ data }: { data?: SpaceInfo[] }) {
44

components/Proposal/ProposalContent.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export default function ProposalContent({ body }: { body: string }) {
1515
const proposalId = commonProps.proposalId;
1616
const sourceSnapshot = commonProps.uuid === "snapshot"; // hack
1717
const proposalIdSpacer = proposalId ? ": " : "";
18-
18+
console.log(commonProps);
1919
return (
2020
<div className="">
2121
<div className="flex flex-col px-4 py-5 sm:px-6">

components/Proposal/ProposalSidebar.tsx

+15-12
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@ import { SnapshotProposal } from "@/models/SnapshotTypes";
1515
import {
1616
Proposal,
1717
ProposalDeleteRequest,
18+
ProposalUpdateRequest,
1819
ProposalUploadRequest,
19-
} from "@/models/NanceTypes";
20+
} from "@nance/nance-sdk";
2021
import { useProposalUpload, useProposalDelete } from "@/utils/hooks/NanceHooks";
2122
import { openInDiscord } from "@/utils/functions/discord";
2223
import { useRouter } from "next/router";
@@ -55,7 +56,7 @@ export default function ProposalSidebar({
5556
filterBy: withDefault(createEnumParam(["for", "against"]), ""),
5657
});
5758
const editPageQuery = {
58-
proposalId: proposal?.hash,
59+
proposalId: proposal?.uuid,
5960
};
6061

6162
const [nanceAPILoading, setNanceAPILoading] = useState(false);
@@ -71,12 +72,12 @@ export default function ProposalSidebar({
7172
error: uploadError,
7273
trigger,
7374
reset,
74-
} = useProposalUpload(space, proposal?.hash, router.isReady);
75+
} = useProposalUpload(space, proposal?.uuid, router.isReady);
7576
const {
7677
trigger: deleteTrigger,
7778
reset: deleteReset,
7879
error: deleteError,
79-
} = useProposalDelete(space, proposal?.hash, router.isReady);
80+
} = useProposalDelete(space, proposal?.uuid, router.isReady);
8081
const error = uploadError || deleteError;
8182

8283
const archiveProposal = async () => {
@@ -89,12 +90,13 @@ export default function ProposalSidebar({
8990

9091
// send to API endpoint
9192
reset();
92-
const req: ProposalUploadRequest = {
93-
proposal: payload,
93+
const req: ProposalUpdateRequest = {
94+
proposal: payload as Proposal,
95+
space
9496
};
9597
console.debug("📗 Nance.archiveProposal.submit ->", req);
9698
trigger(req)
97-
.then((res) => router.push(`/s/${space}/${res?.data.hash}`))
99+
.then((res) => router.push(`/s/${space}/${res?.data.uuid}`))
98100
.catch((err) => {
99101
console.warn("📗 Nance.archiveProposal.onUploadError ->", err);
100102
})
@@ -105,11 +107,11 @@ export default function ProposalSidebar({
105107

106108
const deleteProposal = async () => {
107109
setNanceAPILoading(true);
108-
const hash = proposal?.hash;
110+
const uuid = proposal?.uuid;
109111
deleteReset();
110-
if (hash) {
112+
if (uuid) {
111113
const req: ProposalDeleteRequest = {
112-
hash,
114+
uuid,
113115
};
114116
console.debug("📗 Nance.deleteProposal.onDelete ->", req);
115117
deleteTrigger(req)
@@ -133,12 +135,13 @@ export default function ProposalSidebar({
133135

134136
// send to API endpoint
135137
reset();
136-
const req: ProposalUploadRequest = {
138+
const req: ProposalUpdateRequest = {
137139
proposal: payload,
140+
space,
138141
};
139142
console.debug("📗 Nance.archiveProposal.submit ->", req);
140143
trigger(req)
141-
.then((res) => router.push(`/s/${space}/${res?.data.hash}`))
144+
.then((res) => router.push(`/s/${space}/${res?.data.uuid}`))
142145
.catch((err) => {
143146
console.warn("📗 Nance.archiveProposal.onUploadError ->", err);
144147
})

components/Proposal/context/ProposalContext.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Action } from "@/models/NanceTypes";
1+
import { Action } from "@nance/nance-sdk";
22
import { SnapshotProposal } from "@/models/SnapshotTypes";
33
import { createContext } from "react";
44

components/ProposalEdit/Actions.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { utils } from "ethers";
44
import { useState, useContext, useEffect } from "react";
55
import { useFormContext, useFieldArray } from "react-hook-form";
66
import useProjectInfo from "@/utils/hooks/juicebox/ProjectInfo";
7-
import { Action } from "@/models/NanceTypes";
7+
import { Action } from "@nance/nance-sdk";
88
import ActionPalettes, { ActionItem } from "./ActionPalettes";
99
import CustomTransactionActionForm from "./CustomTransactionActionForm";
1010
import PayoutActionForm from "./PayoutActionForm";

components/ProposalEdit/CustomTransactionActionForm.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import BooleanForm from "../form/BooleanForm";
1515
import SafeInjectIframeCard from "../SafeInjectIframeCard";
1616
import { useSafeInject } from "../SafeInjectIframeCard/context/SafeInjectedContext";
1717
import { BigNumber } from "ethers";
18-
import { CustomTransactionArg } from "@/models/NanceTypes";
18+
import { CustomTransactionArg } from "@nance/nance-sdk";
1919
import { NetworkContext } from "@/context/NetworkContext";
2020
import { getChainByNetworkName } from "config/custom-chains";
2121

components/ProposalEdit/ProposalEditForm.tsx

+7-6
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import {
1616
Controller,
1717
} from "react-hook-form";
1818
import { useProposalUpload } from "@/utils/hooks/NanceHooks";
19-
import { CustomTransaction, ProposalUploadRequest } from "@/models/NanceTypes";
19+
import { CustomTransaction, ProposalUploadRequest } from "@nance/nance-sdk";
2020
import MiddleStepModal from "../modal/MiddleStepModal";
2121
import Actions from "./Actions";
2222
import { driverSteps } from "./GuideSteps";
@@ -89,7 +89,7 @@ export default function ProposalEditForm({ space }: { space: string }) {
8989
reset,
9090
} = useProposalUpload(
9191
space,
92-
(!metadata.fork && metadata.loadedProposal?.hash) || undefined,
92+
(!metadata.fork && metadata.loadedProposal?.uuid) || undefined,
9393
router.isReady,
9494
);
9595

@@ -112,7 +112,7 @@ export default function ProposalEditForm({ space }: { space: string }) {
112112
const onSubmit: SubmitHandler<ProposalFormValues> = async (formData) => {
113113
// check if actions all passed simulation
114114
const _allSimulated =
115-
getValues("proposal.actions").filter(
115+
getValues("proposal.actions")?.filter(
116116
(a) =>
117117
a.type === "Custom Transaction" &&
118118
(a.payload as CustomTransaction).tenderlyStatus !== "true",
@@ -143,7 +143,7 @@ export default function ProposalEditForm({ space }: { space: string }) {
143143
) => {
144144
let hash;
145145
if (!metadata.fork && metadata?.loadedProposal) {
146-
hash = metadata.loadedProposal.hash;
146+
hash = metadata.loadedProposal.uuid;
147147
}
148148

149149
const payload = {
@@ -160,6 +160,7 @@ export default function ProposalEditForm({ space }: { space: string }) {
160160

161161
const req: ProposalUploadRequest = {
162162
proposal: payload as any,
163+
space,
163164
};
164165
console.debug("📗 Nance.editProposal.submit ->", req);
165166
trigger(req)
@@ -173,8 +174,8 @@ export default function ProposalEditForm({ space }: { space: string }) {
173174
timestamp: 0,
174175
});
175176
console.debug("📗 Nance.editProposal.onSignSuccess ->", res);
176-
if (res?.data && res.data.hash) {
177-
router.push(`/s/${space}/${res.data.hash}`);
177+
if (res?.data && res.data.uuid) {
178+
router.push(`/s/${space}/${res.data.uuid}`);
178179
}
179180
})
180181
.catch((err) => {

components/ProposalEdit/ReserveActionForm.tsx

+10-10
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { useSpaceInfo } from "@/utils/hooks/NanceHooks";
77
import { useCurrentFundingCycle } from "@/utils/hooks/juicebox/CurrentFundingCycle";
88
import { useCurrentSplits } from "@/utils/hooks/juicebox/CurrentSplits";
99
import { JBConstants } from "@/models/JuiceboxTypes";
10-
import { JBSplitNanceStruct } from "@/models/NanceTypes";
10+
import { JBSplitStruct } from "@nance/nance-sdk";
1111
import AddressForm from "../form/AddressForm";
1212
import BooleanForm from "../form/BooleanForm";
1313
import UIntForm from "../form/UIntForm";
@@ -28,7 +28,7 @@ export default function ReserveActionForm({
2828
formState: { errors },
2929
} = useFormContext();
3030
const { fields, append, remove, prepend } = useFieldArray<{
31-
splits: JBSplitNanceStruct[];
31+
splits: JBSplitStruct[];
3232
[key: string]: any;
3333
}>({ name: genFieldName("splits") });
3434

@@ -50,13 +50,13 @@ export default function ReserveActionForm({
5050
const arr = ticketMods ? [...ticketMods] : [];
5151
arr.sort((a, b) => b.percent.sub(a.percent).toNumber());
5252
arr.forEach((ticket) => {
53-
const split: JBSplitNanceStruct = {
53+
const split: JBSplitStruct = {
5454
preferClaimed: ticket.preferClaimed,
5555
preferAddToBalance: ticket.preferAddToBalance,
56-
percent: ticket.percent.toNumber(),
57-
projectId: ticket.projectId.toNumber(),
56+
percent: ticket.percent.toString(),
57+
projectId: ticket.projectId.toString(),
5858
beneficiary: ticket.beneficiary,
59-
lockedUntil: ticket.lockedUntil.toNumber(),
59+
lockedUntil: ticket.lockedUntil.toString(),
6060
allocator: ticket.allocator || "",
6161
};
6262
append(split);
@@ -93,7 +93,7 @@ export default function ReserveActionForm({
9393
)}
9494

9595
{(fields as any)?.map(
96-
(field: JBSplitNanceStruct & { id: string }, index: number) => (
96+
(field: JBSplitStruct & { id: string }, index: number) => (
9797
<Disclosure
9898
key={field.id}
9999
as="div"
@@ -151,15 +151,15 @@ export default function ReserveActionForm({
151151
fieldName={genFieldName(`splits.${index}.percent`)}
152152
fieldType="per billion"
153153
decimal={9}
154-
defaultValue={field.percent}
154+
defaultValue={Number(field.percent)}
155155
/>
156156
</div>
157157

158158
<div className="col-span-4 sm:col-span-2">
159159
<ProjectForm
160160
label="Project ID"
161161
fieldName={genFieldName(`splits.${index}.projectId`)}
162-
defaultValue={field.projectId}
162+
defaultValue={Number(field.projectId)}
163163
/>
164164
</div>
165165
<div className="col-span-4 sm:col-span-2">
@@ -176,7 +176,7 @@ export default function ReserveActionForm({
176176
label="lockedUntil"
177177
fieldName={genFieldName(`splits.${index}.lockedUntil`)}
178178
fieldType="timestamp"
179-
defaultValue={field.lockedUntil}
179+
defaultValue={Number(field.lockedUntil)}
180180
/>
181181
</div>
182182
<div className="col-span-4 sm:col-span-1">

components/ProposalEdit/context/ProposalMetadataContext.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Proposal } from "@/models/NanceTypes";
1+
import { Proposal } from "@nance/nance-sdk";
22
import { createContext } from "react";
33

44
export const ProposalMetadataContext = createContext({

components/Space/Settings/SpaceSettings.tsx

+11-12
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
import {
22
IdentificationIcon,
33
ChatBubbleOvalLeftIcon,
4-
BuildingLibraryIcon,
54
KeyIcon,
65
CalendarDaysIcon,
76
HandRaisedIcon,
87
} from "@heroicons/react/20/solid";
98
import { useEffect, useState } from "react";
109
import SettingsNav from "./SettingsNav";
11-
import { CreateFormValues, SpaceConfig } from "@/models/NanceTypes";
10+
import { CreateFormValues, SpaceConfig } from "@nance/nance-sdk";
1211
import { FormProvider, SubmitHandler, useForm } from "react-hook-form";
1312
import General from "./sub/General";
1413
import Tasks from "./sub/Tasks";
@@ -53,33 +52,33 @@ export default function SpaceSettings({
5352
// reset form to current config when edit is toggled
5453
useEffect(() => {
5554
const currentEvent = getCurrentEvent(
56-
spaceConfig.calendar,
57-
spaceConfig.cycleStageLengths,
55+
spaceConfig.calendar!,
56+
spaceConfig.cycleStageLengths as number[],
5857
new Date(),
5958
);
6059
const currentGovernanceCycleDay = getCurrentGovernanceCycleDay(
6160
currentEvent,
62-
spaceConfig.cycleStageLengths,
61+
spaceConfig.cycleStageLengths as number[],
6362
new Date(),
6463
);
6564
// keep this in mind: our date variable is actually split into two parts, the date and the time (TimePicker)
6665
// so remember to set the date and time separately
6766
// here we use start of currentEvent to set time properly
6867
const startOfCycle = new Date(
69-
currentEvent.start.setDate(
68+
new Date(currentEvent.start).setDate(
7069
new Date().getDate() - currentGovernanceCycleDay,
7170
),
7271
);
7372
methods.reset({
7473
config: spaceConfig.config,
75-
spaceOwners: spaceOwners.map((address) => ({ address })),
74+
// spaceOwners: spaceOwners.map((address) => ({ address })),
7675
governanceCycleForm: {
7776
// subtract currentGovernanceCycleDay from today
7877
startDate: startOfCycle,
79-
temperatureCheckLength: spaceConfig.cycleStageLengths[0],
80-
voteLength: spaceConfig.cycleStageLengths[1],
81-
executionLength: spaceConfig.cycleStageLengths[2],
82-
delayLength: spaceConfig.cycleStageLengths[3],
78+
temperatureCheckLength: spaceConfig.cycleStageLengths?.[0],
79+
voteLength: spaceConfig.cycleStageLengths?.[1],
80+
executionLength: spaceConfig.cycleStageLengths?.[2],
81+
delayLength: spaceConfig.cycleStageLengths?.[3],
8382
// here's form values for TimePicker
8483
time: {
8584
ampm: startOfCycle.getHours() > 12 ? "PM" : "AM",
@@ -100,7 +99,7 @@ export default function SpaceSettings({
10099
const { handleSubmit } = methods;
101100
const onSubmit: SubmitHandler<CreateFormValues> = async (formData) => {
102101
trigger(formData).then((res) => {
103-
if (res?.data) setSpaceOwners(res.data.spaceOwners);
102+
// if (res?.data) setSpaceOwners(res.data.spaceOwners);
104103
setEditMode(false);
105104
setIsLoading(false);
106105
});

components/Space/Settings/sub/Dialog.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { SpaceConfig } from "@/models/NanceTypes";
1+
import { SpaceConfig } from "@nance/nance-sdk";
22
import { useSession } from "next-auth/react";
33
import ConnectWalletButton from "@/components/common/ConnectWalletButton";
44
import DiscordUser from "@/components/CreateSpace/sub/DiscordUser";

components/Space/Settings/sub/Execution.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import FormattedAddress from "@/components/AddressCard/FormattedAddress";
2-
import { SpaceConfig } from "@/models/NanceTypes";
2+
import { SpaceConfig } from "@nance/nance-sdk";
33
import { getChainByNetworkName } from "config/custom-chains";
44
import Image from "next/image";
55
import SafeAddressForm from "@/components/form/SafeAddressForm";

components/Space/Settings/sub/General.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import SpaceOwnersForm from "@/components/CreateSpace/SpaceOwnersForm";
2-
import { SpaceConfig } from "@/models/NanceTypes";
2+
import { SpaceConfig } from "@nance/nance-sdk";
33

44
export default function General({ spaceConfig, edit }: { spaceConfig: SpaceConfig; edit: boolean }) {
55
return (

0 commit comments

Comments
 (0)