Merge branch 'main' into pre-release-fixes-v0.8.1

This commit is contained in:
KoalaSat
2025-08-08 22:09:53 +00:00
committed by GitHub
7 changed files with 23 additions and 17 deletions

View File

@ -41,7 +41,7 @@ class WebAppInterface(private val context: MainActivity, private val webView: We
// Security patterns for input validation
private val UUID_PATTERN = Pattern.compile("^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", Pattern.CASE_INSENSITIVE)
private val SAFE_STRING_PATTERN = Pattern.compile("^[a-zA-Z0-9\\s_\\-.,:;!?()\\[\\]{}]*$")
private val SAFE_STRING_PATTERN = Pattern.compile("^[a-zA-Z0-9\s_\-.,:;!?()\[\]{}\"]*$")
// Maximum length for input strings
private val MAX_INPUT_LENGTH = 1000

View File

@ -90,10 +90,10 @@ const BookControl = ({
component = <SendReceiveIcon color='primary' />;
text = t('Buy');
} else if (value === 'swapin') {
component = <SwapCalls color='secondary' />;
component = <SwapCalls color='primary' />;
text = t('Swap In');
} else if (value === 'swapout') {
component = <SwapCalls color='primary' />;
component = <SwapCalls color='secondary' />;
text = t('Swap Out');
}
@ -159,14 +159,6 @@ const BookControl = ({
</Typography>
</div>
</MenuItem>
<MenuItem value='sell' style={{ width: '8em' }}>
<div style={{ display: 'flex', alignItems: 'center', flexWrap: 'wrap' }}>
<SendReceiveIcon color='secondary' sx={{ transform: 'scaleX(-1)' }} />
<Typography sx={{ width: '2em' }} align='right' color='text.secondary'>
{' ' + t('Sell')}
</Typography>
</div>
</MenuItem>
<MenuItem value='buy' style={{ width: '8em' }}>
<div style={{ display: 'flex', alignItems: 'center', flexWrap: 'wrap' }}>
<SendReceiveIcon color='primary' />
@ -175,9 +167,17 @@ const BookControl = ({
</Typography>
</div>
</MenuItem>
<MenuItem value='sell' style={{ width: '8em' }}>
<div style={{ display: 'flex', alignItems: 'center', flexWrap: 'wrap' }}>
<SendReceiveIcon color='secondary' sx={{ transform: 'scaleX(-1)' }} />
<Typography sx={{ width: '2em' }} align='right' color='text.secondary'>
{' ' + t('Sell')}
</Typography>
</div>
</MenuItem>
<MenuItem value='swapin' style={{ width: '8em' }}>
<div style={{ display: 'flex', alignItems: 'center', flexWrap: 'wrap' }}>
<SwapCalls color='secondary' />
<SwapCalls color='primary' />
<Typography sx={{ width: '2em' }} align='right' color='text.secondary'>
{' ' + t('Swap In')}
</Typography>
@ -185,7 +185,7 @@ const BookControl = ({
</MenuItem>
<MenuItem value='swapout' style={{ width: '8em' }}>
<div style={{ display: 'flex', alignItems: 'center', flexWrap: 'wrap' }}>
<SwapCalls color='primary' />
<SwapCalls color='secondary' />
<Typography sx={{ width: '2em' }} align='right' color='text.secondary'>
{' ' + t('Swap Out')}
</Typography>

View File

@ -423,6 +423,11 @@ const icons = {
image:
'data:image/webp;base64,UklGRioEAABXRUJQVlA4WAoAAAAQAAAATwAATwAAQUxQSNsBAAABkIJt21o3b3KuMjN3zLwpBrVUDlTVSHazO7rgxszgeirHoBpXrhozc5nbfKMk//9/38hFxATgP6fTytDRYrURwzZLh0MsHR0uD1fDKmK6St11LteULfG4eItVxYhtTNHMcT7jM9WcI8bnlJSNcBopU3GIWB9SkDfAayAvXB0xrw2V0cWtKyNMlNhHQyR94Pc+KVgVCVgVKO65BM/jgmwlEbcGsO/JcM/220JCbvZrk6LVxyExN/yqUY7GX6wkQVf+dE2SqwAWe5J4i4F6ErUeM8dlGZ9xloQ9+1Gaj8u7ZOlagaWfJPm0DMC8d3K8m4+fZ7yU4uVM/HryYxmeTIZ/yV0J7pUgaH4nv858BM9u4tacjbDpLi83HeGTb3O6kwKViZf5XE6E2rgYl4Y4qI5c5HEpAvX2cQ4nbOi09pq3z4LmatNqoH+PWVGYuMszx9sNM3dMmDKxE6ZWjpkxVglzN46YMLIRJlcM6husgNnr+3T1rYfpy7v0dK2A+Us/6fi0FBznv1P3bj54znip6uVMcJ38WM3jyeBbclfFvRJwzu8M15kP3tlNYZqywT3dDeamg3/y7SC3UyBh4mW/y4mQMS72q4Y4SBm5+NPFCOS0TxCdsCGpVVtr4T8tAFZQOCAoAgAA0A4AnQEqUABQAD6hRJdKv6QiIbrbbAPwFAlmEMA1QSIAKjV9/3bkSw4/NbYDcE/7ffZt5ev0ZjxbCiUpTm7M1M8jmgXOkhc1McDQJF7fFaD6c6HNJCfvu7J/19JPjy+lPwmUlAOoHkGz6k/f5NU2SY933pwaYAV1vDKX/ESgAAD+7zh//s10J9j13i43+RTef33k+ov2tyV0+1RX5GuIQUogOh8VVKSiPbYdUgc3zRYbAF7yq1fwRgiO5Du9PwkNt0cJHoT5wxaIhrH7bdleZ/nYOBT0/b+LJ/vyJh/JS52a/5DwgfDup0WV8RoaQhXTB/7HWvaf5MqgLUsAnkHGjFBKuYdtO66BZotLFZQgvpx4eRbx6ABnt/oT6GCSmR55+DeZWW9uSbD5scKe8WgLzfreJ0HYK7754yiIdrgCjP9oHKo2Hzl09Ok1Z3dYAQbWFPILujp15d3l+MO62uDhrPmV6ZzwvGBx8brIK9uDTK5G20dnbm0X8kMDie/lWOXI462FRifJmUHshb73mvs9A3prCQ/X+80zJP4HLRkHzCWUDSZnFvNJ6UWHcKkRZTzQ/yiCPsR+GUS+d4gKKFWmwwMAoO9JYd9Z4yzfR0cQQVnqEgYDv8LmgCe7+QxtBQ//n73+WDP8ALwvJr+07818/mLU8NcEbgZDxAQp7zeiv+5qAvTT21pfRFBu9BWME0yLIAYoC2RzaQxx7FV55zUni6ZMMfPJH8AA',
},
usdc: {
title: 'usdc',
image:
'data:image/webp;base64,UklGRj4EAABXRUJQVlA4WAoAAAAQAAAATwAATwAAQUxQSBUBAAARJ0AmbZurqr5l5yIiyB2uY9t2kodQAKgFxALSK4Bw+q9Kuedu029E/xm4baQoXTjGoTeUUMfHItXHtiR104p2GfpFq6qNzUGhNn43mtutljoje8IsU5eQq2y1EYtPDZiU0H79HKXUBDM0Kan4KsBFlizVs5SU1Ux59tC6VF/XodWRoDMsNGWtQvS8B9oxStCOiWH/8teQPydIpadorhTtSNFxTBT7meKyUNTPQ39X3/t/Ofvj7Pnz/IjzXy4eYPGFi1dc/OPiKRefsXjP5Q8uH3H5DcuXdP49AOtYfcDVG1j9wtVDXH2F1WtY/QfWk5Fm30JD+sXc1pRYB9tSnGZ2r/ndOSE8I6HbGruS1PGxSPWxLZEKAFZQOCACAwAA0BMAnQEqUABQAD8lfrZULiekoyucawHAJIlsAL6BQX4BzD2REJtaEWfLJ1LwNfRlt4ufI8+C+W79JfjW0ZuzSpBvxGsswfCn3X2ZPwdNvd8RHRuJuC2LUxIuwfA6iCOAKrIBn5PMaDx68Vs2cJW2tqXLoUmGP9ooKKm0BUQvmcpR0XMbTg/K/q5VRFnz0eK5JRvUkMX5wwSfqTR5c2af6g8dVuSpwQAA/tPcNrANNlyRATJIuGE7RMhfErp6jLEAEXTMuyuH4NsKlfHHjVqw+IBjLiqL4ZFkGTz3SuQepslqNAd02f/F8d9woX3/s4ShrlDnkcWbwdooDG9md/PN/rqZ/4Lv/9Rp/8nD//qNbhPOPmYPvoHzm+gSRtHogV5EzDDLlOk3G3m04t7BPZoGAcuaClG3QtlgjMR57vnO9iFy8BfxfW/ToRVrq1N/pHjR5TBY8IwL/RTXQTrBeG53A5C06vZA21gtFlUNe4FkgkZDdjdp1DBjvw/Eo8ry9pwiTt1jPmvwfXZhqyaey47i/Hrj036B2tXUgLcZVVh8rmXNOod1amD7mKYMnsARV4ko/cD7zf5pt+g0jazEDJtvJ3Kta7NM3gwbFGKL8HftZ/Xw9idehc8xQ8KlNjtYWyh+igSpY23IoEPPgt3OKd1GVpWofHpvw+r3FWdb/y+qj0pjW5xXgn49kbT3WjFL3tQOi0rpzzwPVWhzNjLFZcg5VCqSMsH5NisTyn1BXNioMwcGcG/rtovQ4mkCiRFvFjDhbTr2dwjBrRQ6+u105FdYTIXfneCjLaLyETt+ml7tpbpVfTYzeMGCOHCgqBtpbKphhh6jh9RUYtzMZ1F5rX3zGXBK9oVwLwYn8KvOTYSpUKeuaUIMxlRGQqSz/X2CrnBkK56A8xuZTI2Hk+E0OBqAA2haWHmhbxYw1x2P+I6cPlTprxpdjfBIA34pB3gyT++H4hrkotajOh2LBcGQ/SVIXyx4DRDaFZz/gOJ//6jT/5Bf//TphmP9xUl6mg3dZ/gAAAA=',
},
venmo: {
title: 'venmo',
image:

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

View File

@ -60,6 +60,7 @@ export const fiatMethods: PaymentMethod[] = [
{ name: 'Monero', icon: 'monero', reversible: false },
{ name: 'USDT', icon: 'usdt', reversible: false },
{ name: 'L-USDt', icon: 'usdtliquid', reversible: false },
{ name: 'USDC', icon: 'usdc', reversible: false },
{ name: 'Airtel Money', icon: 'airtel', reversible: false },
{ name: 'MTN Money', icon: 'mtn', reversible: false },
{ name: 'M-Pesa', icon: 'mpesa', reversible: false },

View File

@ -33,9 +33,9 @@ const StringAsIcons: React.FC<StringAsIconsProps> = ({
// Adds icons for each PaymentMethod that matches
methods.forEach((method, i) => {
const regex = new RegExp(`\\b${method.name}\\b`, 'g');
const regex = new RegExp(`\\b${method.name.toLowerCase()}\\b`, 'g');
if (regex.test(customMethods)) {
if (regex.test(customMethods.toLowerCase())) {
customMethods = customMethods.replace(regex, '');
rows.push(
<Tooltip

View File

@ -1,5 +1,5 @@
ruff==0.12.5
coverage==7.10.0
ruff==0.12.7
coverage==7.10.1
git+https://github.com/Reckless-Satoshi/drf-openapi-tester.git@soften-django-requirements
pre-commit==4.2.0
python-dotenv[cli]==1.1.1