Skip to content

Commit b2b0c19

Browse files
authored
Merge pull request #506 from BitGo/WIN-3470-sui-token-recovery
feat(sui): add sui token support
2 parents 3a6e523 + 01a6de6 commit b2b0c19

File tree

10 files changed

+422
-49
lines changed

10 files changed

+422
-49
lines changed

electron/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { Dot, Tdot } from '@bitgo/sdk-coin-dot';
77
import { Sol, Tsol } from '@bitgo/sdk-coin-sol';
88
import { Hbar, Thbar } from '@bitgo/sdk-coin-hbar';
99
import { Algo, Talgo } from '@bitgo/sdk-coin-algo';
10-
import { Sui, Tsui } from '@bitgo-beta/sdk-coin-sui';
10+
import { Sui, Tsui } from '@bitgo/sdk-coin-sui';
1111

1212
export type createAdaBroadcastableSweepTransactionParameters =
1313
| Parameters<Ada['createBroadcastableSweepTransaction']>[0]

package-lock.json

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

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
"dependencies": {
1212
"@bitgo/abstract-cosmos": "11.0.5",
1313
"@bitgo/abstract-utxo": "8.14.2",
14-
"@bitgo/sdk-opensslbytes": "^2.0.0",
1514
"@bitgo/sdk-api": "1.54.1",
1615
"@bitgo/sdk-coin-ada": "4.2.14",
1716
"@bitgo/sdk-coin-algo": "2.1.34",
@@ -44,13 +43,14 @@
4443
"@bitgo/sdk-coin-polygon": "21.0.5",
4544
"@bitgo/sdk-coin-sei": "3.0.5",
4645
"@bitgo/sdk-coin-sol": "4.5.2",
47-
"@bitgo/sdk-coin-sui": "5.6.4",
46+
"@bitgo/sdk-coin-sui": "5.7.0",
4847
"@bitgo/sdk-coin-tia": "3.0.5",
4948
"@bitgo/sdk-coin-trx": "2.0.36",
5049
"@bitgo/sdk-coin-xlm": "3.2.10",
5150
"@bitgo/sdk-coin-xrp": "2.1.17",
5251
"@bitgo/sdk-coin-zec": "2.0.36",
5352
"@bitgo/sdk-coin-zeta": "3.0.5",
53+
"@bitgo/sdk-opensslbytes": "^2.0.0",
5454
"@bitgo/utxo-lib": "10.3.0",
5555
"@ethereumjs/common": "2.6.5",
5656
"@lottiefiles/react-lottie-player": "3.4.9",

src/containers/BuildUnsignedConsolidation/BuildUnsignedConsolidationCoin.tsx

Lines changed: 58 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,14 @@ import {
99
import { TronForm } from '~/containers/BuildUnsignedConsolidation/TronForm';
1010
import { TronTokenForm } from '~/containers/BuildUnsignedConsolidation/TronTokenForm';
1111
import { CoinsSelectAutocomplete } from '~/components';
12-
import { buildUnsignedConsolidationCoins } from '~/helpers/config';
12+
import { buildUnsignedConsolidationCoins, tokenParentCoins } from '~/helpers/config';
1313
import { BackToHomeHelperText } from '~/components/BackToHomeHelperText';
1414
import { ConsolidationRecoveryBatch } from '@bitgo/sdk-coin-trx';
1515
import { useAlertBanner } from '~/contexts';
1616
import { GenericEcdsaForm } from '~/containers/BuildUnsignedConsolidation/GenericEcdsaForm';
1717
import { SolForm } from '~/containers/BuildUnsignedConsolidation/SolForm';
1818
import { SolTokenForm } from '~/containers/BuildUnsignedConsolidation/SolTokenForm';
19+
import { SuiTokenForm } from '~/containers/BuildUnsignedConsolidation/SuiTokenForm';
1920

2021
type ConsolidationFormProps = {
2122
coin?: string;
@@ -25,10 +26,9 @@ type ConsolidationFormProps = {
2526
function isRecoveryConsolidationTransaction(
2627
result: any
2728
): result is ConsolidationRecoveryBatch {
28-
const consolidationRecoveryBatch = result as ConsolidationRecoveryBatch;
2929
return (
30-
consolidationRecoveryBatch &&
31-
consolidationRecoveryBatch.transactions !== undefined
30+
('txRequests' in result && !!result['txRequests']) ||
31+
('transactions' in result && !!result['transactions'])
3232
);
3333
}
3434

@@ -343,6 +343,60 @@ function ConsolidationForm({ coin, environment }: ConsolidationFormProps) {
343343
console.log(e);
344344
}
345345

346+
setSubmitting(false);
347+
}
348+
}}
349+
/>
350+
);
351+
case 'suiToken':
352+
case 'tsuiToken':
353+
return (
354+
<SuiTokenForm
355+
onSubmit={async (values, { setSubmitting }) => {
356+
setSubmitting(true);
357+
try {
358+
await window.commands.setBitGoEnvironment(environment);
359+
const parentCoin = tokenParentCoins[coin];
360+
const chainData = await window.queries.getChain(parentCoin);
361+
const consolidateData = await window.commands.recoverConsolidations(parentCoin, {
362+
...(await updateKeysFromIds(parentCoin, values)),
363+
bitgoKey: values.bitgoKey.replace(/\s+/g, ''),
364+
tokenContractAddress: values.packageId,
365+
seed: values.seed,
366+
});
367+
368+
if (consolidateData instanceof Error) {
369+
throw consolidateData;
370+
}
371+
372+
const showSaveDialogData = await window.commands.showSaveDialog({
373+
filters: [
374+
{
375+
name: 'Custom File Type',
376+
extensions: ['json'],
377+
},
378+
],
379+
defaultPath: `~/${chainData}-unsigned-consolidation-${Date.now()}.json`,
380+
});
381+
if (!showSaveDialogData.filePath) {
382+
throw new Error('No file path selected');
383+
}
384+
385+
await window.commands.writeFile(
386+
showSaveDialogData.filePath,
387+
JSON.stringify(consolidateData, null, 2),
388+
{ encoding: 'utf8' }
389+
);
390+
navigate(
391+
`/${environment}/build-unsigned-consolidation/${coin}/success`
392+
);
393+
} catch (e) {
394+
if (e instanceof Error) {
395+
setAlert(e.message);
396+
} else {
397+
console.log(e);
398+
}
399+
346400
setSubmitting(false);
347401
}
348402
}}

0 commit comments

Comments
 (0)