Skip to content

Commit 2118432

Browse files
committed
enterprisee tokens
1 parent ff5e067 commit 2118432

3 files changed

Lines changed: 38 additions & 1 deletion

File tree

src/components/VaultSignRequest/VaultSignRequest.tsx

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@ interface VaultSignRequestProps {
4343
vaultName?: string;
4444
orgName?: string;
4545
actionStatus: (status: boolean) => void;
46+
// ERC-20 token metadata (EVM only, omit for native currency)
47+
tokenContract?: string;
48+
tokenSymbol?: string;
49+
tokenDecimals?: number;
4650
}
4751

4852
const VaultSignRequest: React.FC<VaultSignRequestProps> = ({
@@ -55,6 +59,9 @@ const VaultSignRequest: React.FC<VaultSignRequestProps> = ({
5559
vaultName,
5660
orgName,
5761
actionStatus,
62+
tokenContract,
63+
tokenSymbol,
64+
tokenDecimals,
5865
}) => {
5966
const { t } = useTranslation(['home', 'common']);
6067
const { Fonts, Gutters, Layout, Colors, Common } = useTheme();
@@ -65,6 +72,9 @@ const VaultSignRequest: React.FC<VaultSignRequestProps> = ({
6572
: chain;
6673
const chainDecimals = chainConfig?.decimals ?? 8;
6774
const chainSymbol = chainConfig?.symbol ?? chain.toUpperCase();
75+
// For token transfers, use token decimals/symbol for amounts; fee always uses chain decimals/symbol
76+
const amountDecimals = tokenDecimals != null ? tokenDecimals : chainDecimals;
77+
const amountSymbol = tokenSymbol || chainSymbol;
6878

6979
const approve = () => {
7080
console.log('Approve vault signing request');
@@ -262,7 +272,7 @@ const VaultSignRequest: React.FC<VaultSignRequestProps> = ({
262272
{ marginTop: 2 },
263273
]}
264274
>
265-
{formatAmount(recipient.amount, chainDecimals)} {chainSymbol}
275+
{formatAmount(recipient.amount, amountDecimals)} {amountSymbol}
266276
</Text>
267277
</View>
268278
))}

src/screens/Home/Home.tsx

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1361,6 +1361,26 @@ function Home({ navigation }: Props) {
13611361
} else if (result.data.action === 'enterprisevaultsign') {
13621362
try {
13631363
const vaultSignData = JSON.parse(result.data.payload);
1364+
// Defensively parse fields that may arrive as JSON strings instead of arrays
1365+
// (e.g. from older wallet versions that double-stringified the payload)
1366+
if (typeof vaultSignData.recipients === 'string') {
1367+
vaultSignData.recipients = JSON.parse(vaultSignData.recipients);
1368+
}
1369+
if (typeof vaultSignData.inputDetails === 'string') {
1370+
vaultSignData.inputDetails = JSON.parse(
1371+
vaultSignData.inputDetails,
1372+
);
1373+
}
1374+
if (typeof vaultSignData.allSignerKeys === 'string') {
1375+
vaultSignData.allSignerKeys = JSON.parse(
1376+
vaultSignData.allSignerKeys,
1377+
);
1378+
}
1379+
if (typeof vaultSignData.allSignerNonces === 'string') {
1380+
vaultSignData.allSignerNonces = JSON.parse(
1381+
vaultSignData.allSignerNonces,
1382+
);
1383+
}
13641384
setVaultSigningData(vaultSignData);
13651385
} catch {
13661386
displayMessage('error', t('home:err_invalid_request'));
@@ -2509,6 +2529,9 @@ function Home({ navigation }: Props) {
25092529
vaultName={vaultSigningData.vaultName}
25102530
orgName={vaultSigningData.orgName}
25112531
actionStatus={handleVaultSigningRequestAction}
2532+
tokenContract={vaultSigningData.tokenContract}
2533+
tokenSymbol={vaultSigningData.tokenSymbol}
2534+
tokenDecimals={vaultSigningData.tokenDecimals}
25122535
/>
25132536
)}
25142537
{txid && (

src/types.d.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -636,4 +636,8 @@ interface vaultSigningRequest {
636636
kPublic: string;
637637
kTwoPublic: string;
638638
}>;
639+
// ERC-20 token metadata (EVM only, omit for native currency)
640+
tokenContract?: string;
641+
tokenSymbol?: string;
642+
tokenDecimals?: number;
639643
}

0 commit comments

Comments
 (0)