diff --git a/api/src/core/database/database.service.ts b/api/src/core/database/database.service.ts
index 8ca42d97e..eb82457d2 100644
--- a/api/src/core/database/database.service.ts
+++ b/api/src/core/database/database.service.ts
@@ -26,7 +26,7 @@ export class DatabaseService implements OnModuleInit {
.withConfig({
allow_user_specified_id: true /* Required for account insertion */,
})
- .withRetryOptions({ attempts: 7 });
+ .withRetryOptions({ attempts: 10 });
this.DANGEROUS_superuserClient = this.__client.withConfig({ apply_access_policies: false });
}
diff --git a/app/src/app/(nav)/[account]/(home)/send.tsx b/app/src/app/(nav)/[account]/(home)/send.tsx
index 5fbb69383..149b8e192 100644
--- a/app/src/app/(nav)/[account]/(home)/send.tsx
+++ b/app/src/app/(nav)/[account]/(home)/send.tsx
@@ -103,9 +103,6 @@ function SendScreen() {
.with('transfer', () => (
))
- .with('transferFrom', () => (
-
- ))
.exhaustive()}
diff --git a/app/src/components/send/SendModeChips.tsx b/app/src/components/send/SendModeChips.tsx
index 1b69a1558..b5219ed8b 100644
--- a/app/src/components/send/SendModeChips.tsx
+++ b/app/src/components/send/SendModeChips.tsx
@@ -3,7 +3,7 @@ import { Scrollable } from '#/Scrollable';
import { CheckAllIcon, ContactsOutlineIcon, DataIcon, OutboundIcon } from '@theme/icons';
import { createStyles, useStyles } from '@theme/styles';
-export type SendMode = 'transfer' | 'transferFrom'; // | 'approve' | 'data';
+export type SendMode = 'transfer'; // | 'transferFrom' | 'approve' | 'data';
export interface SendModeChipsProps {
mode: SendMode;
diff --git a/app/src/components/send/TransferMode.tsx b/app/src/components/send/TransferMode.tsx
index 2c7b7abc0..1495945c8 100644
--- a/app/src/components/send/TransferMode.tsx
+++ b/app/src/components/send/TransferMode.tsx
@@ -1,4 +1,4 @@
-import { asAddress, asFp, UAddress } from 'lib';
+import { asAddress, asFp, isEthToken, UAddress } from 'lib';
import { Actions } from '#/layout/Actions';
import { Button } from '#/Button';
import { graphql } from 'relay-runtime';
@@ -11,7 +11,6 @@ import Decimal from 'decimal.js';
import { CheckAllIcon } from '@theme/icons';
import { useRouter } from 'expo-router';
import { ampli } from '~/lib/ampli';
-import { useMemo } from 'react';
import { usePreparedTransaction } from '~/hooks/mutations/usePreparedTransaction';
const Account = graphql`
@@ -40,15 +39,21 @@ export function TransferMode({ to, amount, ...props }: TransferModeProps) {
const token = useFragment(Token, props.token);
const router = useRouter();
+ const amountFp = asFp(amount, token.decimals, Decimal.ROUND_DOWN);
const operations = to && [
- {
- to: asAddress(token.address),
- data: encodeFunctionData({
- abi: ERC20,
- functionName: 'transfer',
- args: [asAddress(to), asFp(amount, token.decimals, Decimal.ROUND_DOWN)],
- }),
- },
+ isEthToken(asAddress(token.address))
+ ? {
+ to: asAddress(to),
+ value: amountFp,
+ }
+ : {
+ to: asAddress(token.address),
+ data: encodeFunctionData({
+ abi: ERC20,
+ functionName: 'transfer',
+ args: [asAddress(to), amountFp],
+ }),
+ },
];
const propose = usePreparedTransaction({
account,
diff --git a/packages/lib/src/contract.ts b/packages/lib/src/contract.ts
index 9fe86d40b..b87bb018c 100644
--- a/packages/lib/src/contract.ts
+++ b/packages/lib/src/contract.ts
@@ -35,8 +35,8 @@ export const PAYMASTER = {
};
export const UPGRADE_APPROVER = addresses({
- zksync: '0x006629B301Ce7EF02ff2622e99752B2b2695B167',
- 'zksync-sepolia': '0x70fa585aFdbe80Ad4619bcCec17B86d31f017a23',
+ zksync: '0x34c1ADDf5BbF24a76b3968Ec9B6f9FEd75159AAf',
+ 'zksync-sepolia': '0x64Ce53387A29fa667e3E99f576e7718CdfAB6DBa',
});
function addresses(