Skip to content

Commit 675e59e

Browse files
committed
feat: enable switching to newly supported networks
1 parent 413368e commit 675e59e

File tree

3 files changed

+52
-45
lines changed

3 files changed

+52
-45
lines changed

packages/invoice-dashboard/src/lib/dashboard/invoice-view.svelte

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,43 @@
11
<script lang="ts">
2+
import { getPaymentNetworkExtension } from "@requestnetwork/payment-detection";
23
import {
3-
Types,
4-
type RequestNetwork,
5-
} from "@requestnetwork/request-client.js";
6-
import {
7-
payRequest,
84
approveErc20,
95
hasErc20Approval,
6+
payRequest,
107
} from "@requestnetwork/payment-processor";
11-
import { getPaymentNetworkExtension } from "@requestnetwork/payment-detection";
8+
import {
9+
Types,
10+
type RequestNetwork,
11+
} from "@requestnetwork/request-client.js";
1212
import { toast } from "svelte-sonner";
13-
1413
// Components
15-
import Button from "@requestnetwork/shared-components/button.svelte";
1614
import Accordion from "@requestnetwork/shared-components/accordion.svelte";
15+
import Button from "@requestnetwork/shared-components/button.svelte";
1716
import Tooltip from "@requestnetwork/shared-components/tooltip.svelte";
18-
1917
// Icons
2018
import Check from "@requestnetwork/shared-icons/check.svelte";
2119
import Download from "@requestnetwork/shared-icons/download.svelte";
22-
2320
// Utils
2421
import { formatDate } from "@requestnetwork/shared-utils/formatDate";
2522
import { calculateItemTotal } from "@requestnetwork/shared-utils/invoiceTotals";
26-
2723
// Types
2824
import type { WalletState } from "@requestnetwork/shared-types/web3Onboard";
2925
30-
import { walletClientToSigner, exportToPDF } from "../../utils";
31-
import { formatUnits } from "viem";
3226
import { onMount } from "svelte";
27+
import { formatUnits } from "viem";
28+
import { exportToPDF, walletClientToSigner } from "../../utils";
29+
import { getCurrencyFromManager } from "../../utils/getCurrency";
3330
3431
export let config;
3532
export let wallet: WalletState | undefined;
3633
export let requestNetwork: RequestNetwork | null | undefined;
37-
export let request: Types.IRequestDataWithEvents | undefined;
34+
export let request: Types.IRequestDataWithEvents;
3835
export let currencyManager: any;
3936
export let isRequestPayed: boolean;
4037
4138
let network = request?.currencyInfo?.network || "mainnet";
4239
// FIXME: Use a non deprecated function
43-
let currency = currencyManager.from(
44-
request?.currencyInfo.value,
45-
request?.currencyInfo.network
46-
);
40+
let currency = getCurrencyFromManager(request.currencyInfo, currencyManager);
4741
let statuses: any = [];
4842
let isPaid = false;
4943
let loading = false;
@@ -104,10 +98,7 @@
10498
wallet = wallet;
10599
network = request?.currencyInfo?.network || "mainnet";
106100
// FIXME: Use a non deprecated function
107-
currency = currencyManager.from(
108-
request?.currencyInfo.value,
109-
request?.currencyInfo.network
110-
);
101+
currency = getCurrencyFromManager(request.currencyInfo, currencyManager);
111102
}
112103
113104
const checkInvoice = async () => {
@@ -205,8 +196,17 @@
205196
function getNetworkIdFromNetworkName(network: string): string {
206197
const networkIds: { [key: string]: string } = {
207198
mainnet: "0x1",
208-
sepolia: "0xaa36a7",
209199
matic: "0x89",
200+
bsc: "0x38",
201+
xdai: "0x64",
202+
avalanche: "0xa86a",
203+
optimism: "0xa",
204+
moonbeam: "0x504",
205+
sepolia: "0xaa36a7",
206+
fantom: "0xfa",
207+
mantle: "0x1388",
208+
zksyncera: "0x144",
209+
base: "0x2105",
210210
};
211211
return networkIds[network];
212212
}

packages/invoice-dashboard/src/lib/view-requests.svelte

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,37 +5,35 @@
55
<script lang="ts">
66
// Components
77
import Copy from "@requestnetwork/shared-components/copy.svelte";
8-
import Input from "@requestnetwork/shared-components/input.svelte";
98
import Dropdown from "@requestnetwork/shared-components/dropdown.svelte";
10-
import Skeleton from "@requestnetwork/shared-components/skeleton.svelte";
9+
import Input from "@requestnetwork/shared-components/input.svelte";
1110
import PoweredBy from "@requestnetwork/shared-components/powered-by.svelte";
12-
import Tooltip from "@requestnetwork/shared-components/tooltip.svelte";
11+
import Skeleton from "@requestnetwork/shared-components/skeleton.svelte";
1312
import Toaster from "@requestnetwork/shared-components/sonner.svelte";
13+
import Tooltip from "@requestnetwork/shared-components/tooltip.svelte";
1414
import { toast } from "svelte-sonner";
15-
1615
// Icons
17-
import ChevronUp from "@requestnetwork/shared-icons/chevron-up.svelte";
1816
import ChevronDown from "@requestnetwork/shared-icons/chevron-down.svelte";
1917
import ChevronLeft from "@requestnetwork/shared-icons/chevron-left.svelte";
2018
import ChevronRight from "@requestnetwork/shared-icons/chevron-right.svelte";
21-
import Search from "@requestnetwork/shared-icons/search.svelte";
19+
import ChevronUp from "@requestnetwork/shared-icons/chevron-up.svelte";
2220
import Download from "@requestnetwork/shared-icons/download.svelte";
23-
21+
import Search from "@requestnetwork/shared-icons/search.svelte";
2422
// Types
2523
import type { IConfig } from "@requestnetwork/shared-types";
2624
import type { WalletState } from "@requestnetwork/shared-types/web3Onboard";
27-
2825
// Utils
2926
import { config as defaultConfig } from "@requestnetwork/shared-utils/config";
3027
import { initializeCurrencyManager } from "@requestnetwork/shared-utils/initCurrencyManager";
3128
29+
import { CurrencyManager } from "@requestnetwork/currency";
30+
import type { RequestNetwork } from "@requestnetwork/request-client.js";
31+
import { Types } from "@requestnetwork/request-client.js";
3232
import { onMount } from "svelte";
3333
import { formatUnits } from "viem";
34-
import { Drawer, InvoiceView } from "./dashboard";
35-
import { Types } from "@requestnetwork/request-client.js";
36-
import type { RequestNetwork } from "@requestnetwork/request-client.js";
3734
import { debounce, exportToPDF, formatAddress } from "../utils";
38-
import { CurrencyManager } from "@requestnetwork/currency";
35+
import { getCurrencyFromManager } from "../utils/getCurrency";
36+
import { Drawer, InvoiceView } from "./dashboard";
3937
4038
export let config: IConfig;
4139
export let wallet: WalletState;
@@ -206,16 +204,11 @@
206204
formattedAmount: string;
207205
currencySymbol: string;
208206
} => {
209-
const currencyInfo =
210-
request.currencyInfo.type === Types.RequestLogic.CURRENCY.ETH
211-
? currencyManager.getNativeCurrency(
212-
request.currencyInfo.type,
213-
request.currencyInfo.network!
214-
)
215-
: currencyManager.fromAddress(
216-
request.currencyInfo.value,
217-
request.currencyInfo.network
218-
);
207+
const currencyInfo = getCurrencyFromManager(
208+
request.currencyInfo,
209+
currencyManager
210+
);
211+
219212
return {
220213
...request,
221214
formattedAmount: formatUnits(
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import type { CurrencyManager } from "@requestnetwork/currency";
2+
import { Types } from "@requestnetwork/request-client.js";
3+
4+
export const getCurrencyFromManager = (
5+
currency: Types.RequestLogic.ICurrency,
6+
currencyManager: CurrencyManager
7+
) => {
8+
const currencyResult =
9+
currency.type === Types.RequestLogic.CURRENCY.ETH
10+
? currencyManager.getNativeCurrency(currency.type, currency.network!)
11+
: currencyManager.fromAddress(currency.value, currency.network);
12+
13+
return currencyResult;
14+
};

0 commit comments

Comments
 (0)