Skip to content

Commit 5a8bb43

Browse files
authored
Merge pull request #5592 from EdgeApp/matthew/thorchain-segwit
Add Thorchain Savers bech32 detection
2 parents bbb0cde + 7f9de03 commit 5a8bb43

File tree

7 files changed

+1646
-22
lines changed

7 files changed

+1646
-22
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
- changed: Auto launch QR scanner for multi-out payments if previously used
99
- changed: Auto populate amount for multi-out payments if prior amounts are similar
1010
- changed: Auto scroll to end of `SendScene2` when addresses or amounts change
11+
- changed: Show Thorchain Savers positions associated with bech32 addresses
12+
- fixed: Show deprecated stake policies with allocations
1113
- fixed: No longer show FIO onboarding modal while in Duress Mode.
1214
- fixed: Prevent pin changes which match duress pin.
1315

src/components/scenes/Staking/StakeOptionsScene.tsx

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { StakePolicy } from '../../../plugins/stake-plugins/types'
1313
import { useSelector } from '../../../types/reactRedux'
1414
import { EdgeAppSceneProps } from '../../../types/routerTypes'
1515
import { getTokenIdForced } from '../../../util/CurrencyInfoHelpers'
16-
import { getPluginFromPolicyId, getPolicyAssetName, getPolicyIconUris, getPolicyTitleName } from '../../../util/stakeUtils'
16+
import { getPluginFromPolicyId, getPoliciesFromPlugins, getPolicyAssetName, getPolicyIconUris, getPolicyTitleName } from '../../../util/stakeUtils'
1717
import { darkenHexColor } from '../../../util/utils'
1818
import { StakingOptionCard } from '../../cards/StakingOptionCard'
1919
import { AccentColors } from '../../common/DotsBackground'
@@ -39,16 +39,8 @@ const StakeOptionsSceneComponent = (props: Props) => {
3939
const { navigation, route, wallet } = props
4040
const { currencyCode } = route.params
4141
const [stakePlugins = []] = useAsyncValue(async () => await getStakePlugins(wallet.currencyInfo.pluginId))
42-
const stakePolicies = stakePlugins.flatMap(stakePlugin =>
43-
stakePlugin
44-
.getPolicies({ pluginId })
45-
.filter(
46-
stakePolicy =>
47-
!stakePolicy.deprecated &&
48-
stakePolicy.stakeAssets.some(asset => asset.pluginId === wallet.currencyInfo.pluginId && asset.currencyCode === currencyCode)
49-
)
50-
)
5142
const stakePositionMap = useSelector(state => state.staking.walletStakingMap[wallet.id]?.stakePositionMap ?? {})
43+
const stakePolicies = getPoliciesFromPlugins(stakePlugins, stakePositionMap, wallet, currencyCode)
5244
const theme = useTheme()
5345

5446
const account = useSelector(state => state.core.account)

src/components/themed/TransactionListTop.tsx

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,14 @@ import { GuiExchangeRates } from '../../types/types'
3434
import { CryptoAmount } from '../../util/CryptoAmount'
3535
import { isKeysOnlyPlugin } from '../../util/CurrencyInfoHelpers'
3636
import { triggerHaptic } from '../../util/haptic'
37-
import { getBestApyText, getFioStakingBalances, getPluginFromPolicyId, getPositionAllocations, isStakingSupported } from '../../util/stakeUtils'
37+
import {
38+
getBestApyText,
39+
getFioStakingBalances,
40+
getPluginFromPolicyId,
41+
getPoliciesFromPlugins,
42+
getPositionAllocations,
43+
isStakingSupported
44+
} from '../../util/stakeUtils'
3845
import { getUkCompliantString } from '../../util/ukComplianceUtils'
3946
import { convertNativeToDenomination, DECIMAL_PRECISION, removeIsoPrefix, zeroString } from '../../util/utils'
4047
import { IconButton } from '../buttons/IconButton'
@@ -738,15 +745,7 @@ export function TransactionListTop(props: OwnProps) {
738745
const { currencyCode } = tokenId == null ? wallet.currencyInfo : wallet.currencyConfig.allTokens[tokenId]
739746

740747
const [stakePlugins = []] = useAsyncValue<StakePlugin[]>(async () => await getStakePlugins(wallet.currencyInfo.pluginId))
741-
const stakePolicies = stakePlugins.flatMap(stakePlugin =>
742-
stakePlugin
743-
.getPolicies({ wallet, pluginId: wallet.currencyInfo.pluginId, currencyCode })
744-
.filter(
745-
stakePolicy =>
746-
!stakePolicy.deprecated &&
747-
stakePolicy.stakeAssets.some(asset => asset.pluginId === wallet.currencyInfo.pluginId && asset.currencyCode === currencyCode)
748-
)
749-
)
748+
const stakePolicies = getPoliciesFromPlugins(stakePlugins, stakePositionMap, wallet, currencyCode)
750749

751750
const displayDenomination = useSelector(state => selectDisplayDenomByCurrencyCode(state, wallet.currencyConfig, currencyCode))
752751
const exchangeDenomination = getExchangeDenomByCurrencyCode(wallet.currencyConfig, currencyCode)

src/plugins/stake-plugins/stakePlugins.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { makeTronStakePlugin } from './currency/tronStakePlugin'
33
import { makeGenericStakePlugin } from './generic/GenericStakePlugin'
44
import { genericPlugins } from './generic/pluginInfo'
55
import { makeTcSaversPlugin } from './thorchainSavers/tcSaversPlugin'
6+
import { makeTcSaversPluginSegwit } from './thorchainSavers/tcSaversPluginSegwit'
67
import { StakePlugin } from './types'
78
import { makeUniV2StakePlugin } from './uniswapV2/uniV2Plugin'
89

@@ -22,6 +23,9 @@ export const getStakePlugins = async (pluginId: string): Promise<StakePlugin[]>
2223
makeTcSaversPlugin(pluginId, { initOptions: tcInitOptions }).catch(e => {
2324
console.warn(e.message)
2425
}),
26+
makeTcSaversPluginSegwit(pluginId, { initOptions: tcInitOptions }).catch(e => {
27+
console.warn(e.message)
28+
}),
2529
makeTronStakePlugin(pluginId).catch(e => {
2630
console.warn(e.message)
2731
}),

src/plugins/stake-plugins/thorchainSavers/tcSaversPlugin.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,8 @@ export const makeTcSaversPlugin = async (pluginId: string, opts: EdgeGuiPluginOp
288288
...policyDefault,
289289
stakePolicyId: `tcsavers/${pluginId}:${lowerCc}=${pluginId}:${lowerCc}`,
290290
rewardAssets: [{ pluginId: 'thorchainrune', currencyCode: 'TCY' }],
291-
stakeAssets: [{ pluginId, currencyCode }]
291+
stakeAssets: [{ pluginId, currencyCode }],
292+
deprecated: true
292293
})
293294
}
294295
})

0 commit comments

Comments
 (0)