Skip to content

Commit fee1377

Browse files
committed
Merge branch 'main' into feat/conversion
2 parents 450453d + 949d045 commit fee1377

File tree

8 files changed

+50
-19
lines changed

8 files changed

+50
-19
lines changed

package-lock.json

Lines changed: 18 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/create-invoice-form/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,12 @@
3636
"@requestnetwork/data-format": "0.19.1",
3737
"@requestnetwork/request-client.js": "0.50.0",
3838
"@wagmi/core": "^2.13.8",
39+
"validator": "^13.12.0",
3940
"viem": "^2.9.15"
4041
},
4142
"devDependencies": {
4243
"@sveltejs/vite-plugin-svelte": "^2.5.2",
44+
"@types/validator": "^13.12.2",
4345
"svelte": "^4.0.5",
4446
"svelte-check": "^3.6.0",
4547
"typescript": "^5.0.0",

packages/create-invoice-form/src/lib/invoice/form-view.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,7 @@
458458
}
459459
460460
.invoice-note-content {
461-
width: 620px;
461+
max-width: 620px;
462462
word-break: break-all;
463463
}
464464

packages/create-invoice-form/src/lib/invoice/form.svelte

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import { inputDateFormat } from "@requestnetwork/shared-utils/formatDate";
2020
import { Types } from "@requestnetwork/request-client.js";
2121
import { CurrencyTypes } from "@requestnetwork/types";
22+
import isEmail from "validator/es/lib/isEmail";
2223
2324
export let config: IConfig;
2425
export const invoiceNumber: number = 1;
@@ -55,8 +56,7 @@
5556
}
5657
5758
const validateEmail = (email: string, type: "sellerInfo" | "buyerInfo") => {
58-
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
59-
validationErrors[`${type}`].email = !emailRegex.test(email);
59+
validationErrors[`${type}`].email = !isEmail(email);
6060
};
6161
6262
const checkPayeeAddress = () => {

packages/create-invoice-form/src/lib/utils/prepareRequest.ts

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1+
import { parseUnits, zeroAddress, getAddress } from "viem";
12
import { Types, Utils } from "@requestnetwork/request-client.js";
23
import type { CustomFormData } from "@requestnetwork/shared-types";
3-
import { parseUnits, zeroAddress } from "viem";
44
import { CurrencyTypes } from "@requestnetwork/types";
55

66
interface IRequestParams {
@@ -24,7 +24,7 @@ const getPaymentNetwork = (invoiceCurrency: CurrencyTypes.CurrencyDefinition, cu
2424
id: Types.Extension.PAYMENT_NETWORK_ID.ANY_TO_ETH_PROXY,
2525
parameters: {
2626
network: currency.network,
27-
paymentAddress: formData.payeeAddress,
27+
paymentAddress: getAddress(formData.payeeAddress),
2828
feeAddress: zeroAddress,
2929
feeAmount: "0",
3030
},
@@ -37,32 +37,34 @@ const getPaymentNetwork = (invoiceCurrency: CurrencyTypes.CurrencyDefinition, cu
3737
id: Types.Extension.PAYMENT_NETWORK_ID.ANY_TO_ERC20_PROXY,
3838
parameters: {
3939
network: currency.network,
40-
paymentAddress: formData.payeeAddress,
40+
paymentAddress: getAddress(formData.payeeAddress),
4141
feeAddress: zeroAddress,
4242
feeAmount: "0",
43-
acceptedTokens: [currency.address],
43+
acceptedTokens: [getAddress(currency.address)],
4444
},
4545
};
4646
} else if (currency.type === Types.RequestLogic.CURRENCY.ETH) {
4747
return {
4848
id: Types.Extension.PAYMENT_NETWORK_ID.ETH_FEE_PROXY_CONTRACT,
4949
parameters: {
5050
paymentNetworkName: currency.network,
51-
paymentAddress: formData.payeeAddress,
51+
paymentAddress: getAddress(formData.payeeAddress),
5252
feeAddress: zeroAddress,
5353
feeAmount: "0",
5454
},
5555
}
56-
} else {
56+
} else if (currency.type === Types.RequestLogic.CURRENCY.ERC20) {
5757
return {
5858
id: Types.Extension.PAYMENT_NETWORK_ID.ERC20_FEE_PROXY_CONTRACT,
5959
parameters: {
6060
paymentNetworkName: currency.network,
61-
paymentAddress: formData.payeeAddress,
61+
paymentAddress: getAddress(formData.payeeAddress),
6262
feeAddress: zeroAddress,
6363
feeAmount: "0",
6464
},
6565
}
66+
} else {
67+
throw new Error("Unsupported payment network");
6668
}
6769
};
6870

@@ -88,16 +90,16 @@ export const prepareRequestParams = ({
8890
).toString(),
8991
payee: {
9092
type: Types.Identity.TYPE.ETHEREUM_ADDRESS,
91-
value: formData.creatorId,
93+
value: getAddress(formData.creatorId),
9294
},
9395
payer: {
9496
type: Types.Identity.TYPE.ETHEREUM_ADDRESS,
95-
value: formData.payerAddress,
97+
value: getAddress(formData.payerAddress),
9698
},
9799
timestamp: Utils.getCurrentTimestampInSecond(),
98100
},
99101
paymentNetwork: getPaymentNetwork(invoiceCurrency, currency, formData),
100-
paymentCurrency: isERC20 ? currency.address : currency.symbol,
102+
paymentCurrency: isERC20 ? getAddress(currency.address) : currency.symbol,
101103
contentData: {
102104
meta: {
103105
format: "rnf_invoice",
@@ -170,7 +172,7 @@ export const prepareRequestParams = ({
170172
},
171173
signer: {
172174
type: Types.Identity.TYPE.ETHEREUM_ADDRESS,
173-
value: address as string,
175+
value: getAddress(address as string),
174176
},
175177
};
176178
};

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@
208208
undefined,
209209
paymentSettings
210210
);
211-
await paymentTx.wait(2);
211+
await paymentTx.wait();
212212
213213
statuses = [...statuses, "Payment detected"];
214214
while (requestData.balance?.balance! < requestData.expectedAmount) {
@@ -261,7 +261,7 @@
261261
[Types.Extension.PAYMENT_NETWORK_ID.ERC20_FEE_PROXY_CONTRACT]:
262262
async () => {
263263
const approvalTx = await approveErc20(requestData!, signer);
264-
await approvalTx.wait(2);
264+
await approvalTx.wait();
265265
approved = true;
266266
},
267267
[Types.Extension.PAYMENT_NETWORK_ID.ANY_TO_ERC20_PROXY]: async () => {
@@ -270,7 +270,7 @@
270270
paymentCurrencies[0]?.address,
271271
signer
272272
);
273-
await approvalTx.wait(2);
273+
await approvalTx.wait();
274274
approved = true;
275275
},
276276
};

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -614,7 +614,13 @@
614614
</td>
615615
{/if}
616616
<td>
617-
{request.formattedAmount}
617+
{#if request.formattedAmount.includes(".") && request.formattedAmount.split(".")[1].length > 5}
618+
<Tooltip text={request.formattedAmount}>
619+
{Number(request.formattedAmount).toFixed(5)}
620+
</Tooltip>
621+
{:else}
622+
{request.formattedAmount}
623+
{/if}
618624
{request.currencySymbol}
619625
</td>
620626
<td> {checkStatus(request)}</td>

packages/invoice-dashboard/src/utils/formatAddress.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { getAddress } from "viem";
12
import { checkAddress } from "@requestnetwork/shared-utils/checkEthAddress";
23

34
export const formatAddress = (
@@ -9,5 +10,7 @@ export const formatAddress = (
910
console.error("Invalid address!");
1011
}
1112

12-
return `${address.slice(0, first)}...${address.slice(-last)}`;
13+
const checksumAddress = getAddress(address);
14+
15+
return `${checksumAddress.slice(0, first)}...${checksumAddress.slice(-last)}`;
1316
};

0 commit comments

Comments
 (0)