diff --git a/packages/round-manager/src/features/round/__tests__/ApplicationsToApproveReject.test.tsx b/packages/round-manager/src/features/round/__tests__/ApplicationsToApproveReject.test.tsx
index a2ab2cdab..7a8cf3969 100644
--- a/packages/round-manager/src/features/round/__tests__/ApplicationsToApproveReject.test.tsx
+++ b/packages/round-manager/src/features/round/__tests__/ApplicationsToApproveReject.test.tsx
@@ -29,10 +29,11 @@ jest.mock("wagmi", () => ({
useAccount: () => ({
chainId: 1,
}),
+ createConfig: jest.fn(),
}));
jest.mock("@rainbow-me/rainbowkit", () => ({
ConnectButton: jest.fn(),
- getDefaultConfig: jest.fn(),
+ connectorsForWallets: jest.fn(),
}));
jest.mock("../../api/application");
jest.mock("../../common/Auth", () => ({
diff --git a/packages/round-manager/src/features/round/__tests__/ApplicationsToReview.test.tsx b/packages/round-manager/src/features/round/__tests__/ApplicationsToReview.test.tsx
index 36508e5fb..878a5b6dd 100644
--- a/packages/round-manager/src/features/round/__tests__/ApplicationsToReview.test.tsx
+++ b/packages/round-manager/src/features/round/__tests__/ApplicationsToReview.test.tsx
@@ -30,11 +30,12 @@ jest.mock("wagmi", () => ({
useAccount: () => ({
chainId: 1,
}),
+ createConfig: jest.fn(),
}));
jest.mock("@rainbow-me/rainbowkit", () => ({
ConnectButton: jest.fn(),
- getDefaultConfig: jest.fn(),
+ connectorsForWallets: jest.fn(),
}));
jest.mock("common/src/allo/backends/allo-v1");
diff --git a/packages/round-manager/src/features/round/__tests__/CreateRoundPage.test.tsx b/packages/round-manager/src/features/round/__tests__/CreateRoundPage.test.tsx
index 6b6a8dd51..211fb517c 100644
--- a/packages/round-manager/src/features/round/__tests__/CreateRoundPage.test.tsx
+++ b/packages/round-manager/src/features/round/__tests__/CreateRoundPage.test.tsx
@@ -12,10 +12,11 @@ jest.mock("wagmi", () => ({
useAccount: () => ({
chainId: 1,
}),
+ createConfig: jest.fn(),
}));
jest.mock("@rainbow-me/rainbowkit", () => ({
ConnectButton: jest.fn(),
- getDefaultConfig: jest.fn(),
+ connectorsForWallets: jest.fn(),
}));
jest.mock("../../common/Navbar");
jest.mock("../../common/Auth");
@@ -33,9 +34,7 @@ jest.mock("react-router-dom", () => ({
}));
describe("
", () => {
- beforeEach(() => {
-
- });
+ beforeEach(() => {});
it("sends program to form wizard", () => {
const programs = [makeProgramData({ id: programId })];
diff --git a/packages/round-manager/src/features/round/__tests__/FundContract.test.tsx b/packages/round-manager/src/features/round/__tests__/FundContract.test.tsx
index 910faf94d..b85851a19 100644
--- a/packages/round-manager/src/features/round/__tests__/FundContract.test.tsx
+++ b/packages/round-manager/src/features/round/__tests__/FundContract.test.tsx
@@ -37,7 +37,7 @@ jest.mock("../../../app/wagmi", () => ({
}));
jest.mock("@rainbow-me/rainbowkit", () => ({
ConnectButton: jest.fn(),
- getDefaultConfig: jest.fn(),
+ connectorsForWallets: jest.fn(),
}));
jest.mock("react-router-dom", () => ({
@@ -105,18 +105,14 @@ describe("fund contract tabr", () => {
// )
// )
// );
-
// const fundContractTab = screen.getByTestId("fund-contract");
// fireEvent.click(fundContractTab);
-
// expect(screen.getByText("Details")).toBeInTheDocument();
-
// if (process.env.REACT_APP_ALLO_VERSION === "allo-v1") {
// expect(screen.getByText("Contract Address:")).toBeInTheDocument();
// expect(screen.getByTestId("fund-contract-btn")).toBeInTheDocument();
// expect(screen.getByTestId("view-contract-btn")).toBeInTheDocument();
// }
-
// expect(screen.getByText("Payout token:")).toBeInTheDocument();
// expect(screen.getByText("Matching pool size:")).toBeInTheDocument();
// expect(screen.getByText("Protocol fee:")).toBeInTheDocument();
diff --git a/packages/round-manager/src/features/round/__tests__/QuadraticFundingForm.test.tsx b/packages/round-manager/src/features/round/__tests__/QuadraticFundingForm.test.tsx
index 427649a95..0c377c920 100644
--- a/packages/round-manager/src/features/round/__tests__/QuadraticFundingForm.test.tsx
+++ b/packages/round-manager/src/features/round/__tests__/QuadraticFundingForm.test.tsx
@@ -9,12 +9,13 @@ import QuadraticFundingForm from "../QuadraticFundingForm";
jest.mock("../../common/Auth");
jest.mock("@rainbow-me/rainbowkit", () => ({
ConnectButton: jest.fn(),
- getDefaultConfig: jest.fn(),
+ connectorsForWallets: jest.fn(),
}));
jest.mock("wagmi", () => ({
useAccount: () => ({
chainId: 10,
}),
+ createConfig: jest.fn(),
}));
jest.mock("../../../constants", () => ({
...jest.requireActual("../../../constants"),
diff --git a/packages/round-manager/src/features/round/__tests__/ReclaimFunds.test.tsx b/packages/round-manager/src/features/round/__tests__/ReclaimFunds.test.tsx
index ba47112f8..059fe0ca0 100644
--- a/packages/round-manager/src/features/round/__tests__/ReclaimFunds.test.tsx
+++ b/packages/round-manager/src/features/round/__tests__/ReclaimFunds.test.tsx
@@ -32,7 +32,7 @@ jest.mock("../../common/Auth");
jest.mock("@rainbow-me/rainbowkit", () => ({
ConnectButton: jest.fn(),
- getDefaultConfig: jest.fn(),
+ connectorsForWallets: jest.fn(),
}));
jest.mock("../../../app/wagmi", () => ({
diff --git a/packages/round-manager/src/features/round/__tests__/RoundApplicationForm.test.tsx b/packages/round-manager/src/features/round/__tests__/RoundApplicationForm.test.tsx
index ed635e1fe..504959aa9 100644
--- a/packages/round-manager/src/features/round/__tests__/RoundApplicationForm.test.tsx
+++ b/packages/round-manager/src/features/round/__tests__/RoundApplicationForm.test.tsx
@@ -14,10 +14,7 @@ import { RoundCategory } from "data-layer";
import { errorModalDelayMs } from "../../../constants";
import { useCreateRoundStore } from "../../../stores/createRoundStore";
import { saveToIPFS } from "../../api/ipfs";
-import {
- ApplicationMetadata,
- ProgressStatus,
-} from "../../api/types";
+import { ApplicationMetadata, ProgressStatus } from "../../api/types";
import { FormStepper } from "../../common/FormStepper";
import { FormContext } from "../../common/FormWizard";
import {
@@ -31,7 +28,7 @@ jest.mock("../../common/Auth");
jest.mock("../../api/payoutStrategy/payoutStrategy");
jest.mock("@rainbow-me/rainbowkit", () => ({
ConnectButton: jest.fn(),
- getDefaultConfig: jest.fn(),
+ connectorsForWallets: jest.fn(),
}));
jest.mock("wagmi", () => ({
useAccount: () => ({
@@ -48,6 +45,7 @@ jest.mock("wagmi", () => ({
],
}),
useProvider: () => ({}),
+ createConfig: jest.fn(),
}));
jest.mock("../../../constants", () => ({
...jest.requireActual("../../../constants"),
@@ -193,7 +191,6 @@ describe("
", () => {
});
describe("Application Form Builder", () => {
-
it("displays the four default questions", () => {
renderWithContext(
{
});
});
describe("Project Socials", () => {
-
it("displays the Project Socials", () => {
renderWithContext(
({
ConnectButton: jest.fn(),
- getDefaultConfig: jest.fn(),
+ connectorsForWallets: jest.fn(),
}));
jest.mock("../../../constants", () => ({
@@ -20,7 +20,6 @@ jest.mock("../../../constants", () => ({
errorModalDelayMs: 0, // NB: use smaller delay for faster tests
}));
-
describe("", () => {
it("renders round name input", async () => {
renderWrapped();
diff --git a/packages/round-manager/src/features/round/__tests__/ViewApplicationPage.test.tsx b/packages/round-manager/src/features/round/__tests__/ViewApplicationPage.test.tsx
index 55bc9da22..1428179bc 100644
--- a/packages/round-manager/src/features/round/__tests__/ViewApplicationPage.test.tsx
+++ b/packages/round-manager/src/features/round/__tests__/ViewApplicationPage.test.tsx
@@ -94,7 +94,7 @@ jest.mock("react-router-dom", () => ({
jest.mock("@rainbow-me/rainbowkit", () => ({
ConnectButton: jest.fn(),
- getDefaultConfig: jest.fn(),
+ connectorsForWallets: jest.fn(),
}));
jest.mock("../../common/useApplicationsByRoundId");
diff --git a/packages/round-manager/src/features/round/__tests__/ViewFundGrantees.test.tsx b/packages/round-manager/src/features/round/__tests__/ViewFundGrantees.test.tsx
index 127ae5c3c..9cd2fdda7 100644
--- a/packages/round-manager/src/features/round/__tests__/ViewFundGrantees.test.tsx
+++ b/packages/round-manager/src/features/round/__tests__/ViewFundGrantees.test.tsx
@@ -28,11 +28,12 @@ jest.mock("wagmi", () => ({
useAccount: () => ({
chainId: 1,
}),
+ createConfig: jest.fn(),
}));
jest.mock("@rainbow-me/rainbowkit", () => ({
ConnectButton: jest.fn(),
- getDefaultConfig: jest.fn(),
+ connectorsForWallets: jest.fn(),
}));
Object.assign(navigator, {
diff --git a/packages/round-manager/src/features/round/__tests__/ViewRoundPage.test.tsx b/packages/round-manager/src/features/round/__tests__/ViewRoundPage.test.tsx
index 2613135a3..e5720b7c7 100644
--- a/packages/round-manager/src/features/round/__tests__/ViewRoundPage.test.tsx
+++ b/packages/round-manager/src/features/round/__tests__/ViewRoundPage.test.tsx
@@ -42,7 +42,7 @@ jest.mock("../../../app/wagmi", () => ({
jest.mock("@rainbow-me/rainbowkit", () => ({
ConnectButton: jest.fn(),
- getDefaultConfig: jest.fn(),
+ connectorsForWallets: jest.fn(),
}));
jest.mock("data-layer", () => ({
diff --git a/packages/round-manager/src/features/round/__tests__/ViewRoundResults.test.tsx b/packages/round-manager/src/features/round/__tests__/ViewRoundResults.test.tsx
index ad31c727c..ad5c37d6a 100644
--- a/packages/round-manager/src/features/round/__tests__/ViewRoundResults.test.tsx
+++ b/packages/round-manager/src/features/round/__tests__/ViewRoundResults.test.tsx
@@ -26,7 +26,7 @@ jest.mock("../../api/round");
jest.mock("@rainbow-me/rainbowkit", () => ({
ConnectButton: jest.fn(),
- getDefaultConfig: jest.fn(),
+ connectorsForWallets: jest.fn(),
}));
const mockNetwork = {
diff --git a/packages/round-manager/src/features/round/__tests__/ViewRoundSettings.test.tsx b/packages/round-manager/src/features/round/__tests__/ViewRoundSettings.test.tsx
index 222f64a54..9fe83c466 100644
--- a/packages/round-manager/src/features/round/__tests__/ViewRoundSettings.test.tsx
+++ b/packages/round-manager/src/features/round/__tests__/ViewRoundSettings.test.tsx
@@ -44,7 +44,7 @@ jest.mock("../../../app/wagmi", () => ({
jest.mock("@rainbow-me/rainbowkit", () => ({
ConnectButton: jest.fn(),
- getDefaultConfig: jest.fn(),
+ connectorsForWallets: jest.fn(),
}));
jest.mock("../../common/Auth", () => ({
diff --git a/packages/round-manager/src/index.tsx b/packages/round-manager/src/index.tsx
index 7b12e1b20..1252fc064 100644
--- a/packages/round-manager/src/index.tsx
+++ b/packages/round-manager/src/index.tsx
@@ -35,6 +35,7 @@ import { UpdateRoundProvider } from "./context/round/UpdateRoundContext";
import { UpdateRolesProvider } from "./context/round/UpdateRolesContext";
import { UpdateRolesProvider as UpdateRolesProviderProgram } from "./context/program/UpdateRolesContext";
import AlloWrapper from "./features/api/AlloWrapper";
+import { SafeAutoConnect } from "./features/api/SafeAutoConnect";
import { DataLayer, DataLayerProvider } from "data-layer";
import { getConfig } from "common/src/config";
import { initPosthog } from "./posthog";
@@ -126,59 +127,64 @@ root.render(
},
}}
>
-
-
-
-
- {/* Protected Routes */}
- }>
- {/* Default Route */}
-
-
- {/* Round Routes */}
-
-
-
- }
- />
-
-
-
-
-
- {/* Program Routes */}
- }
- />
-
-
-
- {/* Access Denied */}
- } />
-
- {/* 404 */}
- } />
-
-
-
-
-
+
+
+
+
+
+ {/* Protected Routes */}
+ }>
+ {/* Default Route */}
+
+
+ {/* Round Routes */}
+
+
+
+ }
+ />
+
+
+
+
+
+ {/* Program Routes */}
+ }
+ />
+
+
+
+ {/* Access Denied */}
+ }
+ />
+
+ {/* 404 */}
+ } />
+
+
+
+
+
+
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 3128a2b5b..436bbd00c 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1030,6 +1030,12 @@ importers:
'@reduxjs/toolkit':
specifier: ^1.8.1
version: 1.9.7(react-redux@8.1.3(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react-native@0.76.1(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.12)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(redux@4.2.1))(react@18.3.1)
+ '@safe-global/safe-apps-provider':
+ specifier: ^0.18.5
+ version: 0.18.5(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+ '@safe-global/safe-apps-react-sdk':
+ specifier: ^4.7.2
+ version: 4.7.2(bufferutil@4.0.8)(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
'@sentry/integrations':
specifier: ^7.28.0
version: 7.114.0
@@ -4757,6 +4763,14 @@ packages:
'@safe-global/safe-apps-provider@0.18.1':
resolution: {integrity: sha512-V4a05A3EgJcriqtDoJklDz1BOinWhC6P0hjUSxshA4KOZM7rGPCTto/usXs09zr1vvL28evl/NldSTv97j2bmg==}
+ '@safe-global/safe-apps-provider@0.18.5':
+ resolution: {integrity: sha512-9v9wjBi3TwLsEJ3C2ujYoexp3pFJ0omDLH/GX91e2QB+uwCKTBYyhxFSrTQ9qzoyQd+bfsk4gjOGW87QcJhf7g==}
+
+ '@safe-global/safe-apps-react-sdk@4.7.2':
+ resolution: {integrity: sha512-du7Bp3yPT2nQ8HhbfiyGit/ItcYwZ1tLEG5fbajMe8tjgr2D2YQMgNcNFmBpgHFyq+FpoA4a+toEKMEifQCMPg==}
+ peerDependencies:
+ react: 16.x.x || 17.x.x || 18.x.x
+
'@safe-global/safe-apps-sdk@7.11.0':
resolution: {integrity: sha512-RDamzPM1Lhhiiz0O+Dn6FkFqIh47jmZX+HCV/BBnBBOSKfBJE//IGD3+02zMgojXHTikQAburdPes9qmH1SA1A==}
@@ -4766,6 +4780,9 @@ packages:
'@safe-global/safe-apps-sdk@8.1.0':
resolution: {integrity: sha512-XJbEPuaVc7b9n23MqlF6c+ToYIS3f7P2Sel8f3cSBQ9WORE4xrSuvhMpK9fDSFqJ7by/brc+rmJR/5HViRr0/w==}
+ '@safe-global/safe-apps-sdk@9.1.0':
+ resolution: {integrity: sha512-N5p/ulfnnA2Pi2M3YeWjULeWbjo7ei22JwU/IXnhoHzKq3pYCN6ynL9mJBOlvDVv892EgLPCWCOwQk/uBT2v0Q==}
+
'@safe-global/safe-gateway-typescript-sdk@3.22.2':
resolution: {integrity: sha512-Y0yAxRaB98LFp2Dm+ACZqBSdAmI3FlpH/LjxOZ94g/ouuDJecSq0iR26XZ5QDuEL8Rf+L4jBJaoDC08CD0KkJw==}
engines: {node: '>=16'}
@@ -21655,6 +21672,26 @@ snapshots:
- utf-8-validate
- zod
+ '@safe-global/safe-apps-provider@0.18.5(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)':
+ dependencies:
+ '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+ events: 3.3.0
+ transitivePeerDependencies:
+ - bufferutil
+ - typescript
+ - utf-8-validate
+ - zod
+
+ '@safe-global/safe-apps-react-sdk@4.7.2(bufferutil@4.0.8)(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)':
+ dependencies:
+ '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+ react: 18.3.1
+ transitivePeerDependencies:
+ - bufferutil
+ - typescript
+ - utf-8-validate
+ - zod
+
'@safe-global/safe-apps-sdk@7.11.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
dependencies:
'@safe-global/safe-gateway-typescript-sdk': 3.22.2
@@ -21681,6 +21718,16 @@ snapshots:
- utf-8-validate
- zod
+ '@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)':
+ dependencies:
+ '@safe-global/safe-gateway-typescript-sdk': 3.22.2
+ viem: 2.13.10(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+ transitivePeerDependencies:
+ - bufferutil
+ - typescript
+ - utf-8-validate
+ - zod
+
'@safe-global/safe-gateway-typescript-sdk@3.22.2': {}
'@scure/base@1.1.9': {}