diff --git a/apps/mobile/package.json b/apps/mobile/package.json index 48e3d8278..7ed12fe23 100644 --- a/apps/mobile/package.json +++ b/apps/mobile/package.json @@ -67,7 +67,7 @@ "@rabby-wallet/gnosis-sdk": "1.3.8", "@rabby-wallet/object-multiplex": "workspace:^", "@rabby-wallet/persist-store": "workspace:^", - "@rabby-wallet/rabby-action": "0.1.3", + "@rabby-wallet/rabby-action": "0.1.4", "@rabby-wallet/rabby-api": "0.8.3", "@rabby-wallet/rabby-security-engine": "2.0.7", "@rabby-wallet/rabby-sign-bvm": "0.1.0", diff --git a/apps/mobile/src/components/Approval/components/Actions/ApproveNFT.tsx b/apps/mobile/src/components/Approval/components/Actions/ApproveNFT.tsx index f212213d2..07b006557 100644 --- a/apps/mobile/src/components/Approval/components/Actions/ApproveNFT.tsx +++ b/apps/mobile/src/components/Approval/components/Actions/ApproveNFT.tsx @@ -103,6 +103,17 @@ const ApproveNFT = ({ + + + + {t('page.signTx.interacted')} + + + + + + + + + + + {t('page.signTx.interacted')} + + + + + + + @@ -102,7 +103,16 @@ const ContractCall = ({ /> - + + + + {t('page.signTx.interacted')} + + + + + + {isInWhitelist && ( diff --git a/apps/mobile/src/components/Approval/components/Actions/CrossSwapToken.tsx b/apps/mobile/src/components/Approval/components/Actions/CrossSwapToken.tsx index 786e0d699..355cd1157 100644 --- a/apps/mobile/src/components/Approval/components/Actions/CrossSwapToken.tsx +++ b/apps/mobile/src/components/Approval/components/Actions/CrossSwapToken.tsx @@ -251,13 +251,21 @@ const CrossSwapToken = ({ {!engineResultMap['1096'] && ( <> - {t('page.signTx.address')} + + + {t('page.signTx.address')} + + - {t('page.addressDetail.source')} + + + {t('page.addressDetail.source')} + + @@ -282,6 +290,7 @@ const CrossSwapToken = ({ rank: requireData.rank, address: requireData.id, chain, + hasInteraction: requireData.hasInteraction, }}> @@ -303,6 +312,16 @@ const CrossSwapToken = ({ /> + + + + {t('page.signTx.interacted')} + + + + + + {isInWhitelist && ( diff --git a/apps/mobile/src/components/Approval/components/Actions/CrossToken.tsx b/apps/mobile/src/components/Approval/components/Actions/CrossToken.tsx index a25af8f27..d2dd52721 100644 --- a/apps/mobile/src/components/Approval/components/Actions/CrossToken.tsx +++ b/apps/mobile/src/components/Approval/components/Actions/CrossToken.tsx @@ -242,13 +242,21 @@ const Swap = ({ {!engineResultMap['1103'] && ( <> - {t('page.signTx.address')} + + + {t('page.signTx.address')} + + - {t('page.addressDetail.source')} + + + {t('page.addressDetail.source')} + + @@ -272,6 +280,7 @@ const Swap = ({ protocol: requireData.protocol, rank: requireData.rank, address: requireData.id, + hasInteraction: requireData.hasInteraction, chain, }}> diff --git a/apps/mobile/src/components/Approval/components/Actions/MultiSwap.tsx b/apps/mobile/src/components/Approval/components/Actions/MultiSwap.tsx index 0fa1a00a0..1a50847dd 100644 --- a/apps/mobile/src/components/Approval/components/Actions/MultiSwap.tsx +++ b/apps/mobile/src/components/Approval/components/Actions/MultiSwap.tsx @@ -196,7 +196,16 @@ const MultiSwap = ({ - + + + + {t('page.signTx.interacted')} + + + + + + {isInWhitelist && ( diff --git a/apps/mobile/src/components/Approval/components/Actions/Send.tsx b/apps/mobile/src/components/Approval/components/Actions/Send.tsx index 5707a6e44..d624c8303 100644 --- a/apps/mobile/src/components/Approval/components/Actions/Send.tsx +++ b/apps/mobile/src/components/Approval/components/Actions/Send.tsx @@ -128,6 +128,18 @@ const Send = ({ /> + {requireData.protocol && ( + + + + {t('page.signTx.protocol')} + + + + + + + )} {!!requireData.contract && ( diff --git a/apps/mobile/src/components/Approval/components/Actions/SendNFT.tsx b/apps/mobile/src/components/Approval/components/Actions/SendNFT.tsx index f6b337a87..023dacaa2 100644 --- a/apps/mobile/src/components/Approval/components/Actions/SendNFT.tsx +++ b/apps/mobile/src/components/Approval/components/Actions/SendNFT.tsx @@ -154,7 +154,9 @@ const SendNFT = ({ )} {!!requireData.name && ( - {isLabelAddress ? t('page.signTx.label') : ' '} + + {isLabelAddress ? t('page.signTx.label') : ' '} + {isLabelAddress ? ( - {t('page.signTx.address')} + + + {t('page.signTx.address')} + + - {t('page.addressDetail.source')} + + + {t('page.addressDetail.source')} + + @@ -360,6 +368,7 @@ const Swap = ({ protocol: requireData.protocol, rank: requireData.rank, address: requireData.id, + hasInteraction: requireData.hasInteraction, chain, }}> @@ -382,6 +391,16 @@ const Swap = ({ /> + + + + {t('page.signTx.hasInteraction')} + + + + + + {isInWhitelist && ( diff --git a/apps/mobile/src/components/Approval/components/Actions/SwapLimitPay.tsx b/apps/mobile/src/components/Approval/components/Actions/SwapLimitPay.tsx index 9e2484f35..00335e7ed 100644 --- a/apps/mobile/src/components/Approval/components/Actions/SwapLimitPay.tsx +++ b/apps/mobile/src/components/Approval/components/Actions/SwapLimitPay.tsx @@ -178,6 +178,16 @@ const SwapLimitPay = ({ + + + + {t('page.signTx.hasInteraction')} + + + + + + {isInWhitelist && ( diff --git a/apps/mobile/src/components/Approval/components/Actions/TokenApprove.tsx b/apps/mobile/src/components/Approval/components/Actions/TokenApprove.tsx index c5ff90a3c..80e3be35f 100644 --- a/apps/mobile/src/components/Approval/components/Actions/TokenApprove.tsx +++ b/apps/mobile/src/components/Approval/components/Actions/TokenApprove.tsx @@ -363,6 +363,16 @@ const TokenApprove = ({ /> + + + + {t('page.signTx.hasInteraction')} + + + + + + - {t('page.signTx.address')} + + + {t('page.signTx.address')} + + - {t('page.addressDetail.source')} + + + {t('page.addressDetail.source')} + + @@ -191,6 +199,7 @@ const UnWrapToken = ({ protocol: requireData.protocol, rank: requireData.rank, address: requireData.id, + hasInteraction: requireData.hasInteraction, chain, }}> @@ -213,6 +222,16 @@ const UnWrapToken = ({ /> + + + + {t('page.signTx.hasInteraction')} + + + + + + {isInWhitelist && ( diff --git a/apps/mobile/src/components/Approval/components/Actions/WrapToken.tsx b/apps/mobile/src/components/Approval/components/Actions/WrapToken.tsx index bc60cb9bc..b3004e8c9 100644 --- a/apps/mobile/src/components/Approval/components/Actions/WrapToken.tsx +++ b/apps/mobile/src/components/Approval/components/Actions/WrapToken.tsx @@ -169,13 +169,21 @@ const WrapToken = ({ {!engineResultMap['1093'] && ( <> - {t('page.signTx.address')} + + + {t('page.signTx.address')} + + - {t('page.addressDetail.source')} + + + {t('page.addressDetail.source')} + + @@ -199,6 +207,7 @@ const WrapToken = ({ protocol: requireData.protocol, rank: requireData.rank, address: requireData.id, + hasInteraction: requireData.hasInteraction, chain, }}> @@ -221,6 +230,16 @@ const WrapToken = ({ /> + + + + {t('page.signTx.hasInteraction')} + + + + + + {isInWhitelist && ( diff --git a/apps/mobile/src/components/Approval/components/Actions/components/UserListDrawer.tsx b/apps/mobile/src/components/Approval/components/Actions/components/UserListDrawer.tsx index d61ca7adf..463f189c9 100644 --- a/apps/mobile/src/components/Approval/components/Actions/components/UserListDrawer.tsx +++ b/apps/mobile/src/components/Approval/components/Actions/components/UserListDrawer.tsx @@ -70,7 +70,7 @@ const getStyles = (colors: AppColorsVariants) => interface Props { address: string; - chain: Chain; + chain?: Chain; onWhitelist: boolean; onBlacklist: boolean; visible: boolean; @@ -113,7 +113,7 @@ const UserListDrawer = ({ diff --git a/apps/mobile/src/components/Approval/components/Actions/components/Values.tsx b/apps/mobile/src/components/Approval/components/Actions/components/Values.tsx index 769947915..92a481b75 100644 --- a/apps/mobile/src/components/Approval/components/Actions/components/Values.tsx +++ b/apps/mobile/src/components/Approval/components/Actions/components/Values.tsx @@ -174,12 +174,12 @@ const AddressMark = ({ onWhitelist: boolean; onBlacklist: boolean; address: string; - chain: Chain; + chain?: Chain; isContract?: boolean; textStyle?: TextStyle; onChange(): void; }) => { - const chainId = chain.serverId; + const chainId = chain?.serverId; const { t } = useTranslation(); const { init } = useApprovalSecurityEngine(); const [visible, setVisible] = React.useState(false); diff --git a/apps/mobile/src/components/Approval/components/Actions/components/ViewMorePopup/ContractPopup.tsx b/apps/mobile/src/components/Approval/components/Actions/components/ViewMorePopup/ContractPopup.tsx index 5cf984f43..1e463147d 100644 --- a/apps/mobile/src/components/Approval/components/Actions/components/ViewMorePopup/ContractPopup.tsx +++ b/apps/mobile/src/components/Approval/components/Actions/components/ViewMorePopup/ContractPopup.tsx @@ -22,6 +22,7 @@ interface ContractData { bornAt: number | null; rank: number | null; title?: string; + hasInteraction: boolean; } export interface Props { @@ -81,6 +82,16 @@ export const ContractPopup: React.FC = ({ data }) => { /> + + + + {t('page.signTx.interacted')} + + + + + + diff --git a/apps/mobile/src/components/Approval/components/Actions/components/ViewMorePopup/NFTSpenderPopup.tsx b/apps/mobile/src/components/Approval/components/Actions/components/ViewMorePopup/NFTSpenderPopup.tsx index 8a3d4a895..c44f8171a 100644 --- a/apps/mobile/src/components/Approval/components/Actions/components/ViewMorePopup/NFTSpenderPopup.tsx +++ b/apps/mobile/src/components/Approval/components/Actions/components/ViewMorePopup/NFTSpenderPopup.tsx @@ -151,6 +151,16 @@ export const NFTSpenderPopup: React.FC = ({ data }) => { + + + + {t('page.signTx.interacted')} + + + + + + diff --git a/apps/mobile/src/components/Approval/components/Actions/components/ViewMorePopup/SpenderPopup.tsx b/apps/mobile/src/components/Approval/components/Actions/components/ViewMorePopup/SpenderPopup.tsx index 42f6b9a1c..5b88544d0 100644 --- a/apps/mobile/src/components/Approval/components/Actions/components/ViewMorePopup/SpenderPopup.tsx +++ b/apps/mobile/src/components/Approval/components/Actions/components/ViewMorePopup/SpenderPopup.tsx @@ -14,7 +14,7 @@ const { isSameAddress } = addressUtils; interface SpenderData { spender: string; - chain: Chain; + chain?: Chain; protocol: { name: string; logo_url: string; @@ -49,12 +49,12 @@ export const SpenderPopup: React.FC = ({ data }) => { isInBlackList: contractBlacklist.some( ({ address, chainId }) => isSameAddress(address, data.spender) && - chainId === data.chain.serverId, + chainId === data.chain?.serverId, ), isInWhiteList: contractWhitelist.some( ({ address, chainId }) => isSameAddress(address, data.spender) && - chainId === data.chain.serverId, + chainId === data.chain?.serverId, ), }; }, [data.spender, data.chain, contractBlacklist, contractWhitelist]); @@ -146,12 +146,22 @@ export const SpenderPopup: React.FC = ({ data }) => { ? // @ts-ignore t('page.signTx.contractPopularity', [ data.rank, - data.chain.name, + data.chain?.name, ]) : '-'} + + + + {t('page.signTx.interacted')} + + + + + + diff --git a/apps/mobile/src/components/Approval/components/Actions/index.tsx b/apps/mobile/src/components/Approval/components/Actions/index.tsx index e7ab2eb9f..7c55bcbed 100644 --- a/apps/mobile/src/components/Approval/components/Actions/index.tsx +++ b/apps/mobile/src/components/Approval/components/Actions/index.tsx @@ -197,7 +197,7 @@ const Actions = ({ balanceChange.receive_nft_list.length + balanceChange.receive_token_list.length + balanceChange.send_nft_list.length + - balanceChange.send_nft_list.length <= + balanceChange.send_token_list.length <= 0 ) { return true; diff --git a/apps/mobile/src/components/Approval/components/CommonAction.tsx b/apps/mobile/src/components/Approval/components/CommonAction.tsx index 6addc0f79..2b7132a1b 100644 --- a/apps/mobile/src/components/Approval/components/CommonAction.tsx +++ b/apps/mobile/src/components/Approval/components/CommonAction.tsx @@ -103,6 +103,7 @@ export const CommonAction = ({ protocol: requireData.protocol, rank: requireData.rank, address: requireData.id, + hasInteraction: requireData.hasInteraction, chain, }}> diff --git a/apps/mobile/src/components/Approval/components/TypedDataActions/BatchPermit2.tsx b/apps/mobile/src/components/Approval/components/TypedDataActions/BatchPermit2.tsx index bfa54f5f4..2329ac065 100644 --- a/apps/mobile/src/components/Approval/components/TypedDataActions/BatchPermit2.tsx +++ b/apps/mobile/src/components/Approval/components/TypedDataActions/BatchPermit2.tsx @@ -174,6 +174,16 @@ const Permit2 = ({ /> + + + + {t('page.signTx.hasInteraction')} + + + + + + @@ -107,6 +108,16 @@ const ContractCall = ({ /> + + + + {t('page.signTx.hasInteraction')} + + + + + + {isInWhitelist && ( diff --git a/apps/mobile/src/components/Approval/components/TypedDataActions/Permit.tsx b/apps/mobile/src/components/Approval/components/TypedDataActions/Permit.tsx index 0459cd2d2..a079658d7 100644 --- a/apps/mobile/src/components/Approval/components/TypedDataActions/Permit.tsx +++ b/apps/mobile/src/components/Approval/components/TypedDataActions/Permit.tsx @@ -149,6 +149,17 @@ const Permit = ({ + + + + {t('page.signTx.hasInteraction')} + + + + + + + + + + + {t('page.signTx.hasInteraction')} + + + + + + +