diff --git a/packages/desktop/components/popups/ActivityDetailsPopup.svelte b/packages/desktop/components/popups/ActivityDetailsPopup.svelte index 8e67ac01dfb..ad912b5c4bb 100644 --- a/packages/desktop/components/popups/ActivityDetailsPopup.svelte +++ b/packages/desktop/components/popups/ActivityDetailsPopup.svelte @@ -11,6 +11,7 @@ ActivityDirection, ActivityType, claimActivity, + getAccountTransactionOptions, hasWalletMainAccountNegativeBIC, ignoreActivity, selectedWallet, @@ -81,7 +82,10 @@ async function prepareClaimOutput(): Promise { try { - transactionInfo.preparedTransaction = await $selectedWallet?.prepareClaimOutputs([activity.outputId]) + transactionInfo.preparedTransaction = await $selectedWallet?.prepareClaimOutputs( + [activity.outputId], + getAccountTransactionOptions() + ) } catch (error) { transactionInfo.preparedTransactionError = error } diff --git a/packages/desktop/components/popups/AllotManaPopup.svelte b/packages/desktop/components/popups/AllotManaPopup.svelte index 70d72f84c60..b92ccaa95c7 100644 --- a/packages/desktop/components/popups/AllotManaPopup.svelte +++ b/packages/desktop/components/popups/AllotManaPopup.svelte @@ -91,7 +91,7 @@ getDefaultTransactionOptions() ) transactionInfo.preparedTransaction = await $selectedWallet.prepareSendOutputs([prepareOutput], { - ...getDefaultTransactionOptions(accountId), + ...getDefaultTransactionOptions(), manaAllotments: { [accountId]: Number(rawAmount) }, }) } catch (err) { @@ -108,7 +108,7 @@ getDefaultTransactionOptions() ) await $selectedWallet.sendOutputs([prepareOutput], { - ...getDefaultTransactionOptions(accountId), + ...getDefaultTransactionOptions(), manaAllotments: { [accountId]: Number(rawAmount) }, // if manaAllotments amount passed as bigint it is transformed to string in the sdk }) closePopup() diff --git a/packages/shared/lib/core/wallet/actions/claimActivity.ts b/packages/shared/lib/core/wallet/actions/claimActivity.ts index 49805bde032..a891d71bc81 100644 --- a/packages/shared/lib/core/wallet/actions/claimActivity.ts +++ b/packages/shared/lib/core/wallet/actions/claimActivity.ts @@ -7,6 +7,7 @@ import { updateAsyncDataByActivityId, } from '../stores' import { Activity } from '../types' +import { getAccountTransactionOptions } from '../utils' export async function claimActivity(activity: Activity): Promise { const wallet = getSelectedWallet() @@ -17,7 +18,7 @@ export async function claimActivity(activity: Activity): Promise { } updateAsyncDataByActivityId(wallet.id, activity.id, { isClaiming: true }) - const result = await wallet.claimOutputs([activity.outputId]) + const result = await wallet.claimOutputs([activity.outputId], getAccountTransactionOptions()) const transactionId = result.transactionId updateAsyncDataByActivityId(wallet.id, activity.id, { claimingTransactionId: transactionId }) } catch (err) { diff --git a/packages/shared/lib/core/wallet/actions/events-handlers/handleNewOutputEvent.ts b/packages/shared/lib/core/wallet/actions/events-handlers/handleNewOutputEvent.ts index 0a1c42c00ef..6978b148cba 100644 --- a/packages/shared/lib/core/wallet/actions/events-handlers/handleNewOutputEvent.ts +++ b/packages/shared/lib/core/wallet/actions/events-handlers/handleNewOutputEvent.ts @@ -43,16 +43,9 @@ export async function handleNewOutputEventInternal(walletId: string, payload: Ne const isNftOutput = output.type === OutputType.Nft const _isDelegationOutput = isDelegationOutput(outputData) - const address = outputData.address ? AddressConverter.addressToBech32(outputData.address) : undefined - // The basic outputs of the faucet dont have an address const isBasicOutput = output.type === OutputType.Basic - if ( - (address && wallet?.depositAddress === address && !outputData?.remainder) || - isAccountOutput(outputData) || - isDelegationOutput(outputData) || - isBasicOutput - ) { + if (!outputData?.remainder || isAccountOutput(outputData) || isDelegationOutput(outputData) || isBasicOutput) { await syncBalance(wallet.id, true) const walletOutputs = await wallet.outputs() const walletUnspentOutputs = await wallet.unspentOutputs() diff --git a/packages/shared/lib/core/wallet/utils/getAccountTransactionOptions.ts b/packages/shared/lib/core/wallet/utils/getAccountTransactionOptions.ts new file mode 100644 index 00000000000..f01ac322693 --- /dev/null +++ b/packages/shared/lib/core/wallet/utils/getAccountTransactionOptions.ts @@ -0,0 +1,17 @@ +import { AccountAddress, TransactionOptions } from '@iota/sdk/out/types' +import { getSelectedWallet } from '../stores' + +export function getAccountTransactionOptions( + accountId: string | undefined = getSelectedWallet()?.mainAccountId +): TransactionOptions | undefined { + if (!accountId) return + return { + remainderValueStrategy: { + /** The name of the strategy. */ + strategy: 'CustomAddress', + /** Only required for `CustomAddress`. */ + value: new AccountAddress(accountId), + }, + allowMicroAmount: true, + } +} diff --git a/packages/shared/lib/core/wallet/utils/getDefaultTransactionOptions.ts b/packages/shared/lib/core/wallet/utils/getDefaultTransactionOptions.ts index 29ff3c0cd02..39b919f0fc3 100644 --- a/packages/shared/lib/core/wallet/utils/getDefaultTransactionOptions.ts +++ b/packages/shared/lib/core/wallet/utils/getDefaultTransactionOptions.ts @@ -1,10 +1,6 @@ import { TransactionOptions } from '@iota/sdk/out/types' -import { getSelectedWallet } from '../stores' -export function getDefaultTransactionOptions( - accountId: string | undefined = getSelectedWallet()?.mainAccountId -): TransactionOptions | undefined { - if (!accountId) return +export function getDefaultTransactionOptions(): TransactionOptions { return { remainderValueStrategy: { /** The name of the strategy. */ diff --git a/packages/shared/lib/core/wallet/utils/index.ts b/packages/shared/lib/core/wallet/utils/index.ts index 49f34ec89c7..aa5d5011adf 100644 --- a/packages/shared/lib/core/wallet/utils/index.ts +++ b/packages/shared/lib/core/wallet/utils/index.ts @@ -42,6 +42,7 @@ export * from './isVisibleActivity' export * from './isOutputUnlockedByAddress' export * from './hasWalletMainAccountNegativeBIC' export * from './getInvolvedAddresses' +export * from './getAccountTransactionOptions' // Folders export * from './generateActivity' diff --git a/packages/shared/package.json b/packages/shared/package.json index 178524f0ad8..dde2822b9a0 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -5,7 +5,7 @@ "license": "Apache-2.0", "dependencies": { "@iota/crypto.js": "^1.8.6", - "@iota/sdk": "2.0.0-alpha.8", + "@iota/sdk": "2.0.0-alpha.9", "@iota/unit-converter": "^1.0.0-beta.30", "@iota/util.js": "^2.0.0-rc.1", "@sveltejs/svelte-virtual-list": "^3.0.1", diff --git a/yarn.lock b/yarn.lock index 6c46db325c3..938b230f657 100644 --- a/yarn.lock +++ b/yarn.lock @@ -712,10 +712,10 @@ "@iota/util.js" "^1.8.6" big-integer "^1.6.51" -"@iota/sdk@2.0.0-alpha.8": - version "2.0.0-alpha.8" - resolved "https://registry.yarnpkg.com/@iota/sdk/-/sdk-2.0.0-alpha.8.tgz#f93504179a170b6c13a1e188a73087514e3a4160" - integrity sha512-slvpu3l/r4SllE+c0EQOZwNEX4LkxKS/mihNtVVeV8vK8ppetAx0gOKjInrZoDBAQk4uZgHgD7+PhTnOBg1reQ== +"@iota/sdk@2.0.0-alpha.9": + version "2.0.0-alpha.9" + resolved "https://registry.yarnpkg.com/@iota/sdk/-/sdk-2.0.0-alpha.9.tgz#79d44f851b25d43fddf33fdffe634e8e434a8827" + integrity sha512-0ovOJ3q6EQ12ZhEVsNKng7bWCA66+qsat3Y+mH4RnoQYnHQQ65DsOvkgJkpiMxorsn9IjrQGCSrk0/tHRhFvEA== dependencies: class-transformer "^0.5.1" prebuild-install "^7.1.1"