Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: add sign and submit with passwoard #2663

Merged
merged 118 commits into from
Sep 15, 2023
Merged
Show file tree
Hide file tree
Changes from 116 commits
Commits
Show all changes
118 commits
Select commit Hold shift + click to select a range
35a1902
chore: add sign and submit with passwoard
SorinC6 Sep 6, 2023
9013cb1
Merge branch 'chore/swap-unsignedtx' into chore/sign-and-submit-tx
SorinC6 Sep 7, 2023
cd4f82f
add open order args
SorinC6 Sep 7, 2023
1efa224
add batcherFee
SorinC6 Sep 8, 2023
835a66a
fixes/refactor
SorinC6 Sep 8, 2023
0eeaff6
Merge branch 'chore/swap-unsignedtx' into chore/sign-and-submit-tx
SorinC6 Sep 8, 2023
555bc37
Merge branch 'develop' into chore/sign-and-submit-tx
SorinC6 Sep 8, 2023
8021e9c
fix requests
SorinC6 Sep 8, 2023
442e4ce
added mocks for confirmTX
SorinC6 Sep 8, 2023
5851614
Update initial state check
michaeljscript Sep 8, 2023
04ff941
remove unused styles
SorinC6 Sep 8, 2023
dc03aa2
Merge remote-tracking branch 'origin/chore/swap-unsignedtx' into chor…
SorinC6 Sep 8, 2023
214f953
add sign with biometrics
SorinC6 Sep 8, 2023
99becc7
add ledger signing
SorinC6 Sep 11, 2023
8cd2e56
Merge branch 'develop' into chore/sign-and-submit-tx
SorinC6 Sep 11, 2023
223a0df
merge chore/swap-unsignedtx
SorinC6 Sep 11, 2023
97a5e19
Merge branch 'chore/swap-unsignedtx' into chore/sign-and-submit-tx
SorinC6 Sep 11, 2023
6e4ccd5
refactor TransactionSummary
SorinC6 Sep 11, 2023
5519e2f
move strings
SorinC6 Sep 11, 2023
fe2083a
add story for transaction summary
SorinC6 Sep 11, 2023
2f31332
fix styles on ledger
SorinC6 Sep 11, 2023
bfdd5ce
Merge branch 'chore/swap-unsignedtx' into chore/sign-and-submit-tx
SorinC6 Sep 11, 2023
9fbb4cc
wip
SorinC6 Sep 11, 2023
4d61ba7
add component and storybook for transaction signed
SorinC6 Sep 11, 2023
73ed97d
New translations en-US.json (French)
vsubhuman Sep 11, 2023
e50c3b4
New translations en-US.json (Spanish)
vsubhuman Sep 11, 2023
b313ea4
New translations en-US.json (Czech)
vsubhuman Sep 11, 2023
6b5c6c5
New translations en-US.json (German)
vsubhuman Sep 11, 2023
efa31c0
New translations en-US.json (Greek)
vsubhuman Sep 11, 2023
e1805a1
New translations en-US.json (Hungarian)
vsubhuman Sep 11, 2023
7de209b
New translations en-US.json (Italian)
vsubhuman Sep 11, 2023
73d2954
New translations en-US.json (Japanese)
vsubhuman Sep 11, 2023
1747796
New translations en-US.json (Korean)
vsubhuman Sep 11, 2023
642a9f0
New translations en-US.json (Dutch)
vsubhuman Sep 11, 2023
7c1d909
New translations en-US.json (Polish)
vsubhuman Sep 11, 2023
5bc67ee
New translations en-US.json (Russian)
vsubhuman Sep 11, 2023
94839ac
New translations en-US.json (Slovak)
vsubhuman Sep 11, 2023
9920d2e
New translations en-US.json (Slovenian)
vsubhuman Sep 11, 2023
17b52b0
New translations en-US.json (Swedish)
vsubhuman Sep 11, 2023
3899582
New translations en-US.json (Turkish)
vsubhuman Sep 11, 2023
5700d80
New translations en-US.json (Ukrainian)
vsubhuman Sep 11, 2023
b13fce4
New translations en-US.json (Chinese Simplified)
vsubhuman Sep 11, 2023
4d91271
New translations en-US.json (Chinese Traditional)
vsubhuman Sep 11, 2023
2956684
New translations en-US.json (Vietnamese)
vsubhuman Sep 11, 2023
17b26bb
New translations en-US.json (Portuguese, Brazilian)
vsubhuman Sep 11, 2023
275026c
New translations en-US.json (Indonesian)
vsubhuman Sep 11, 2023
0e93b22
New translations en-US.json (Bengali)
vsubhuman Sep 11, 2023
d0ecb36
New translations en-US.json (Croatian)
vsubhuman Sep 11, 2023
5dcb7e2
New translations en-US.json (Filipino)
vsubhuman Sep 11, 2023
dfed5d5
New translations en-US.json (Swahili, Kenya)
vsubhuman Sep 11, 2023
a4f07fd
New translations en-US.json (Russian)
vsubhuman Sep 11, 2023
37ed4a6
(auto) should be shown only for the default liquidity pool
jorbuedo Sep 11, 2023
0762618
Fix PR comments
jorbuedo Sep 11, 2023
6556c2f
Merge branch 'develop' into chore/sign-and-submit-tx
SorinC6 Sep 11, 2023
c7cc841
New translations en-US.json (Russian)
vsubhuman Sep 11, 2023
4b7ea2c
New translations en-US.json (Russian)
vsubhuman Sep 11, 2023
e7d8126
(auto) should be shown only for the default liquidity pool
jorbuedo Sep 11, 2023
3dc8ca8
Fix PR comments
jorbuedo Sep 11, 2023
528a833
New translations en-US.json (Russian)
vsubhuman Sep 11, 2023
3746960
New translations en-US.json (Russian)
vsubhuman Sep 11, 2023
98c0973
(auto) should be shown only for the default liquidity pool
jorbuedo Sep 11, 2023
c4e648d
Fix PR comments
jorbuedo Sep 11, 2023
48d2c2a
CR: update
banklesss Sep 11, 2023
2207636
Fix pool provider key
jorbuedo Sep 11, 2023
7b17dee
Reset auto
jorbuedo Sep 11, 2023
617b7e6
Rename poolDefaulted
jorbuedo Sep 11, 2023
c68c31c
CR: update
banklesss Sep 11, 2023
2c15c7f
CR: update
banklesss Sep 11, 2023
7b43a8d
chore(settings): improvements
banklesss Sep 11, 2023
f3ca35a
feature(settings): wallet settings revamp
banklesss Sep 11, 2023
66f0092
feature(settings): wallet settings revamp
banklesss Sep 11, 2023
8586ef4
CR: update
banklesss Sep 11, 2023
59d2a22
CR: update
banklesss Sep 11, 2023
d536c00
CR: update
banklesss Sep 11, 2023
3e7ee6f
CR: update
banklesss Sep 11, 2023
491f9ae
CR: update
banklesss Sep 11, 2023
0e92ce6
CR: update
banklesss Sep 11, 2023
fe9619a
New translations en-US.json (Spanish)
vsubhuman Sep 11, 2023
bbd542a
New translations en-US.json (Czech)
vsubhuman Sep 11, 2023
b36ec21
New translations en-US.json (German)
vsubhuman Sep 11, 2023
84028f3
New translations en-US.json (Greek)
vsubhuman Sep 11, 2023
599a9af
New translations en-US.json (Hungarian)
vsubhuman Sep 11, 2023
01e8579
New translations en-US.json (Italian)
vsubhuman Sep 11, 2023
08b634d
New translations en-US.json (Japanese)
vsubhuman Sep 11, 2023
c57c30f
New translations en-US.json (Korean)
vsubhuman Sep 11, 2023
e62574b
New translations en-US.json (Dutch)
vsubhuman Sep 11, 2023
a70e157
New translations en-US.json (Polish)
vsubhuman Sep 11, 2023
5bbdd4d
New translations en-US.json (Russian)
vsubhuman Sep 11, 2023
75565e9
New translations en-US.json (Slovak)
vsubhuman Sep 11, 2023
5a000d6
New translations en-US.json (Slovenian)
vsubhuman Sep 11, 2023
603e715
New translations en-US.json (Swedish)
vsubhuman Sep 11, 2023
8142917
New translations en-US.json (Turkish)
vsubhuman Sep 11, 2023
4638540
New translations en-US.json (Ukrainian)
vsubhuman Sep 11, 2023
4c1bfff
New translations en-US.json (Chinese Simplified)
vsubhuman Sep 11, 2023
24fafc2
New translations en-US.json (Chinese Traditional)
vsubhuman Sep 11, 2023
e8a1ffe
New translations en-US.json (Vietnamese)
vsubhuman Sep 11, 2023
0bc0650
New translations en-US.json (Portuguese, Brazilian)
vsubhuman Sep 11, 2023
fb33f07
New translations en-US.json (Indonesian)
vsubhuman Sep 11, 2023
a1c7601
New translations en-US.json (Bengali)
vsubhuman Sep 11, 2023
65fb297
New translations en-US.json (Croatian)
vsubhuman Sep 11, 2023
0669465
New translations en-US.json (Filipino)
vsubhuman Sep 11, 2023
352ca2f
New translations en-US.json (Swahili, Kenya)
vsubhuman Sep 11, 2023
aff0675
fixed import
SorinC6 Sep 12, 2023
afec953
Merge remote-tracking branch 'origin/develop' into chore/sign-and-sub…
SorinC6 Sep 12, 2023
98d6cc1
fixed ts issue
SorinC6 Sep 12, 2023
7203748
fix: remove hardcoded values, reuse component
SorinC6 Sep 12, 2023
24163d3
Merge branch 'develop' into chore/sign-and-submit-tx
SorinC6 Sep 12, 2023
1fd316a
wip
SorinC6 Sep 13, 2023
f93f2bb
add datum on signTx
SorinC6 Sep 13, 2023
bb421e9
add helper
SorinC6 Sep 13, 2023
31f22c2
fix unsigned tx
SorinC6 Sep 14, 2023
2dd8d06
Merge branch 'develop' into chore/sign-and-submit-tx
SorinC6 Sep 14, 2023
15298f6
fix ts
SorinC6 Sep 14, 2023
708cade
Merge branch 'develop' into chore/sign-and-submit-tx
SorinC6 Sep 14, 2023
14ad667
fix mocks types
SorinC6 Sep 14, 2023
28c23d5
refactor EditLimitPrice
SorinC6 Sep 14, 2023
150e195
Merge branch 'develop' into chore/sign-and-submit-tx
stackchain Sep 15, 2023
9cbce1e
fix types
SorinC6 Sep 15, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion apps/wallet-mobile/.storybook/storybook.requires.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions apps/wallet-mobile/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -99,12 +99,12 @@
"@cardano-foundation/ledgerjs-hw-app-cardano": "^6.0.0",
"@emurgo/cip14-js": "^3.0.1",
"@emurgo/cip4-js": "1.0.7",
"@emurgo/cross-csl-core": "^2.6.0",
"@emurgo/cross-csl-mobile": "^2.6.0",
"@emurgo/cross-csl-core": "^2.7.0",
"@emurgo/cross-csl-mobile": "^2.7.0",
"@emurgo/csl-mobile-bridge": "^5.1.2",
"@emurgo/react-native-blockies-svg": "^0.0.2",
"@emurgo/react-native-hid": "^5.15.6",
"@emurgo/yoroi-lib": "^0.7.0",
"@emurgo/yoroi-lib": "^0.8.0",
"@formatjs/intl-datetimeformat": "^6.7.0",
"@formatjs/intl-getcanonicallocales": "^2.1.0",
"@formatjs/intl-locale": "^3.2.1",
Expand Down Expand Up @@ -205,7 +205,7 @@
"@babel/runtime": "^7.20.0",
"@config-plugins/detox": "^5.0.1",
"@emurgo/cardano-serialization-lib-nodejs": "^9.1.4",
"@emurgo/cross-csl-nodejs": "^2.6.0",
"@emurgo/cross-csl-nodejs": "^2.7.0",
"@formatjs/cli": "^6.1.0",
"@formatjs/ts-transformer": "^3.13.0",
"@react-navigation/devtools": "^6.0.13",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ type Props = {
onSelectBLE: () => void
}

const useIsUsbSupported = () => {
export const useIsUsbSupported = () => {
const [isUSBSupported, setUSBSupported] = React.useState(false)
React.useEffect(() => {
DeviceInfo.getApiLevel().then((sdk) =>
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import {storiesOf} from '@storybook/react-native'
import React from 'react'
import {StyleSheet, View} from 'react-native'

import {TransactionSigned} from './TransactionSigned'

const styles = StyleSheet.create({
container: {
flex: 1,
padding: 16,
},
})

storiesOf('SWAP TransactionSigned', module) //
.add('success', () => {
return (
<View style={styles.container}>
<TransactionSigned />
</View>
)
})
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import React from 'react'
import {Image, StyleSheet, Text, TouchableOpacity, View} from 'react-native'

import TxSuccess from '../../../../assets/img//transaction-success.png'
import {Button} from '../../../../components'
import {useNavigateTo} from '../navigation'
import {useStrings} from '../strings'

export const TransactionSigned = () => {
const strings = useStrings()
const navigate = useNavigateTo()

return (
<View style={styles.container}>
<View>
<Image source={TxSuccess} />
</View>

<Text style={styles.title}>{strings.transactionSigned}</Text>

<Text style={styles.text}>{strings.transactionDisplay}</Text>

<TouchableOpacity style={styles.button}>
<Text>{strings.seeOnExplorer}</Text>
</TouchableOpacity>

<Button shelleyTheme title={strings.goToOrders} onPress={() => navigate.startSwap()} />
</View>
)
}

const styles = StyleSheet.create({
container: {
flexDirection: 'column',
alignItems: 'center',
justifyContent: 'center',
height: '100%',
},
title: {
fontWeight: '500',
fontSize: 20,
paddingBottom: 4,
},
text: {
color: '#6B7384',
fontSize: 16,
},
button: {
paddingVertical: 16,
},
})
12 changes: 9 additions & 3 deletions apps/wallet-mobile/src/features/Swap/common/helpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import {Swap} from '@yoroi/types'
import {BalanceQuantity} from '@yoroi/types/lib/balance/token'
import BigNumber from 'bignumber.js'

import {YoroiWallet} from '../../../yoroi-wallets/cardano/types'
import {YoroiEntry} from '../../../yoroi-wallets/types'
import {Quantities} from '../../../yoroi-wallets/utils'

Expand Down Expand Up @@ -35,21 +36,26 @@ export const getSellQuantityForLimitOrder = (
).toString() as BalanceQuantity
}

export const createYoroiEntry = (createOrder: Swap.CreateOrderData, address: string): YoroiEntry => {
export const createYoroiEntry = (
createOrder: Swap.CreateOrderData,
address: string,
wallet: YoroiWallet,
): YoroiEntry => {
const amountEntry = {}

const tokenId = createOrder?.amounts?.sell.tokenId
if (tokenId != null && createOrder.amounts.sell.quantity !== undefined) {
if (createOrder?.amounts?.sell.tokenId === '') {
if (tokenId === wallet.primaryTokenInfo.id) {
amountEntry[tokenId] = Quantities.sum([
createOrder.selectedPool.deposit.quantity,
createOrder.selectedPool.batcherFee.quantity,
createOrder.amounts.sell.quantity,
])
} else {
amountEntry[''] = createOrder.selectedPool.deposit.quantity
amountEntry[tokenId] = createOrder.amounts.sell.quantity
}
}

return {
address: address,
amounts: amountEntry,
Expand Down
47 changes: 47 additions & 0 deletions apps/wallet-mobile/src/features/Swap/common/mocks.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
import {mockSwapStateDefault} from '@yoroi/swap'

import {mocks as walletMocks} from '../../../yoroi-wallets/mocks/wallet'
import {asQuantity} from '../../../yoroi-wallets/utils'

type ProviderType = 'sundaeswap' | 'minswap' | 'wingriders' | 'muesliswap_v1' | 'muesliswap_v2' | 'muesliswap_v3'
type Type = 'market' | 'limit'

export const mocks = {
confirmTx: {
...mockSwapStateDefault,
yoroiUnsignedTx: walletMocks.yoroiUnsignedTx,
createOrder: {
address: '',
amounts: {
buy: {
quantity: asQuantity(20467572) as `${number}`,
tokenId: '208a2ca888886921513cb777bb832a8dc685c04de990480151f12150.53484942414441',
},
sell: {quantity: asQuantity(2000000), tokenId: ''},
},
datum: '',
datumHash: '',
limitPrice: undefined,
selectedPool: {
batcherFee: {quantity: asQuantity(2500000), tokenId: ''},
deposit: {quantity: asQuantity(2000000), tokenId: ''},
fee: '0.05',
lastUpdate: '2023-09-08 09:56:13',
lpToken: {
quantity: asQuantity(68917682),
tokenId: '0029cb7c88c7567b63d1a512c0ed626aa169688ec980730c0473b913.6c702083',
},
poolId: '0029cb7c88c7567b63d1a512c0ed626aa169688ec980730c0473b913.702083',
price: 0.0890390378168252,
provider: 'sundaeswap' as ProviderType,
tokenA: {quantity: asQuantity(20630071), tokenId: ''},
tokenB: {
quantity: asQuantity(231696922),
tokenId: '208a2ca888886921513cb777bb832a8dc685c04de990480151f12150.53484942414441',
},
},
slippage: 1,
type: 'market' as Type,
},
},
}
58 changes: 58 additions & 0 deletions apps/wallet-mobile/src/features/Swap/common/strings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ export const useStrings = () => {
sign: intl.formatMessage(messages.sign),
searchTokens: intl.formatMessage(messages.searchTokens),
confirm: intl.formatMessage(messages.confirm),
chooseConnectionMethod: intl.formatMessage(messages.chooseConnectionMethod),
selecteAssetTitle: intl.formatMessage(messages.selectAssetTitle),
tokens: (qty: number) => intl.formatMessage(globalMessages.tokens, {qty}),
apply: intl.formatMessage(globalMessages.apply),
Expand Down Expand Up @@ -85,6 +86,17 @@ export const useStrings = () => {
limitPriceWarningMarketPrice: intl.formatMessage(messages.limitPriceWarningMarketPrice),
limitPriceWarningBack: intl.formatMessage(messages.limitPriceWarningBack),
limitPriceWarningConfirm: intl.formatMessage(messages.limitPriceWarningConfirm),
error: intl.formatMessage(globalMessages.error),
usbExplanation: intl.formatMessage(messages.usbExplanation),
usbButton: intl.formatMessage(messages.usbButton),
usbConnectionIsBlocked: intl.formatMessage(messages.usbConnectionIsBlocked),
bluetoothExplanation: intl.formatMessage(messages.bluetoothExplanation),
bluetoothButton: intl.formatMessage(messages.bluetoothButton),
bluetoothError: intl.formatMessage(messages.bluetoothError),
transactionSigned: intl.formatMessage(messages.transactionSigned),
transactionDisplay: intl.formatMessage(messages.transactionDisplay),
seeOnExplorer: intl.formatMessage(messages.seeOnExplorer),
goToOrders: intl.formatMessage(messages.goToOrders),
}
}

Expand Down Expand Up @@ -279,6 +291,22 @@ export const messages = defineMessages({
id: 'swap.swapScreen.limitPriceWarningConfirm',
defaultMessage: '!!!Swap',
},
transactionSigned: {
id: 'swap.swapScreen.transactionSigned',
defaultMessage: '!!!Transaction signed',
},
transactionDisplay: {
id: 'swap.swapScreen.transactionDisplay',
defaultMessage: '!!!Your transactions will be displayed both in the list of transaction and Open swap orders',
},
seeOnExplorer: {
id: 'swap.swapScreen.seeOnExplorer',
defaultMessage: '!!!see on explorer',
},
goToOrders: {
id: 'swap.swapScreen.goToOrders',
defaultMessage: '!!!GO to Orders',
},
asset: {
id: 'global.assets.assetLabel',
defaultMessage: '!!!Asset',
Expand Down Expand Up @@ -371,6 +399,36 @@ export const messages = defineMessages({
id: 'swap.listOrders.txId',
defaultMessage: '!!!Transaction ID',
},
chooseConnectionMethod: {
id: 'components.ledger.ledgertransportswitchmodal.title',
defaultMessage: '!!!Choose Connection Method',
},
usbExplanation: {
id: 'components.ledger.ledgertransportswitchmodal.usbExplanation',
defaultMessage:
'!!!Choose this option if you want to connect to a Ledger Nano model X ' +
'or S using an on-the-go USB cable adaptor:',
},
usbButton: {
id: 'components.ledger.ledgertransportswitchmodal.usbButton',
defaultMessage: '!!!Connect with USB',
},
usbConnectionIsBlocked: {
id: 'components.ledger.ledgertransportswitchmodal.usbConnectionIsBlocked',
defaultMessage: '!!! USB connection is blocked by iOS devices',
},
bluetoothExplanation: {
id: 'components.ledger.ledgertransportswitchmodal.bluetoothExplanation',
defaultMessage: '!!!Choose this option if you want to connect to a Ledger Nano model X through Bluetooth:',
},
bluetoothButton: {
id: 'components.ledger.ledgertransportswitchmodal.bluetoothButton',
defaultMessage: '!!!Connect with Bluetooth',
},
bluetoothError: {
id: 'global.ledgerMessages.bluetoothDisabledError',
defaultMessage: '!!!Connect with Bluetooth',
},
// TODO check this and change if necessary

youHave: {
Expand Down
11 changes: 6 additions & 5 deletions apps/wallet-mobile/src/features/Swap/common/useSwapTx.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
import {Datum} from '@emurgo/yoroi-lib'
import {useSwap} from '@yoroi/swap'
import {UseMutationOptions} from 'react-query'

import {useSelectedWallet} from '../../../SelectedWallet'
import {useMutationWithInvalidations} from '../../../yoroi-wallets/hooks'
import {YoroiEntry, YoroiUnsignedTx} from '../../../yoroi-wallets/types'

export const useSwapTx = (
options?: UseMutationOptions<YoroiUnsignedTx, Error, {entry: YoroiEntry; datum: {hash: string}}>,
) => {
export const useSwapTx = (options?: UseMutationOptions<YoroiUnsignedTx, Error, {entry: YoroiEntry; datum: Datum}>) => {
const {createOrder} = useSwap()
const metadata = [
{
label: 'Yoroi-Swap',
data: {msg: ['Yoroi: Swap B for A Order Request']},
label: '674',
data: {msg: [`${createOrder.selectedPool?.provider}: Swap B for A Order Request`]},
},
]
const wallet = useSelectedWallet()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import {Datum} from '@emurgo/yoroi-lib'
import React from 'react'

import {YoroiWallet} from '../../../../yoroi-wallets/cardano/types'
import {YoroiUnsignedTx} from '../../../../yoroi-wallets/types'
import {ConfirmTxWithHW} from './ConfirmTxWithHW'
import {ConfirmTxWithPassword} from './ConfirmTxWithPassword'

type Props = {
wallet: YoroiWallet
unsignedTx: YoroiUnsignedTx
onCancel: () => void
onSuccess: () => void
datum: Datum
}

export const ConfirmTx = ({wallet, onSuccess, onCancel, unsignedTx, datum}: Props) => {
return wallet.isHW ? (
<ConfirmTxWithHW //
wallet={wallet}
unsignedTx={unsignedTx}
onSuccess={onSuccess}
onCancel={onCancel}
/>
) : (
<ConfirmTxWithPassword //
wallet={wallet}
unsignedTx={unsignedTx}
datum={datum}
onSuccess={onSuccess}
onCancel={onCancel}
/>
)
}
Loading