Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
a375d29
infra: add TypeScript and CSS Modules support
owlsua Apr 27, 2026
a1c7fa8
assets: update and add SVG icons
owlsua Apr 27, 2026
1b50f0a
styles: update global CSS variables and base styles
owlsua Apr 27, 2026
facfd34
Button: migrate to TypeScript and CSS Modules
owlsua Apr 27, 2026
7d49d2b
Input: migrate to TypeScript and CSS Modules
owlsua Apr 27, 2026
1617fdd
Error: migrate to TypeScript and CSS Modules
owlsua Apr 27, 2026
8dd97b8
BrandPanel: add new component
owlsua Apr 27, 2026
de2e162
PageWrapper: add new component
owlsua Apr 27, 2026
7d72363
OptionCard: add new component
owlsua Apr 27, 2026
66d31b7
basic components: update Arc, Line, Logo, SkeletonLoader, Svg and index
owlsua Apr 27, 2026
91f67fa
Header: migrate to TypeScript and CSS Modules
owlsua Apr 27, 2026
0a33a2e
Loading: migrate to TypeScript and CSS Modules
owlsua Apr 27, 2026
55b51ae
Navigation: migrate to TypeScript and CSS Modules
owlsua Apr 27, 2026
eecdd45
TextField: migrate to TypeScript and CSS Modules
owlsua Apr 27, 2026
d2bed4c
AddressList: migrate to CSS Modules and update tests
owlsua Apr 27, 2026
8548bbf
SwapInterface: migrate to CSS Modules
owlsua Apr 27, 2026
926f8b7
composed: update Balance, CryptoFiatField, PopUp, SliderMenu and othe…
owlsua Apr 27, 2026
7839cc8
composed: add Sidebar, WalletHeader and update index
owlsua Apr 27, 2026
2e013e7
Login: migrate to TypeScript and CSS Modules, add AccountCard
owlsua Apr 27, 2026
ea9a260
containers: update DeleteAccount, Settings, Dashboard, Wallet and others
owlsua Apr 27, 2026
0951834
Login page: migrate to TypeScript and CSS Modules
owlsua Apr 27, 2026
ff8967e
Settings page: migrate to TypeScript and CSS Modules
owlsua Apr 27, 2026
3dd207f
RestoreAccount page: migrate to TypeScript and CSS Modules
owlsua Apr 27, 2026
2945c30
pages: migrate AddressPage, CreateRestore, OrderSwap, SignInternalTra…
owlsua Apr 27, 2026
d2f01a1
pages: update Dashboard, Wallet, SignBitcoinTransaction, SignExternal…
owlsua Apr 27, 2026
c1093ab
pages: update transaction, delegation, NFT, and utility pages
owlsua Apr 27, 2026
4cd94b9
pages: update index exports
owlsua Apr 27, 2026
2578dec
contexts: update AccountProvider, ExchangeRatesProvider, MintlayerPro…
owlsua Apr 27, 2026
92f86b8
utils: update ExchangeRates service, BTC and Number helpers
owlsua Apr 27, 2026
90ccefa
app: update entry point routing and layout
owlsua Apr 27, 2026
2ae89ee
chore: update base styles, icons, and settings components
owlsua May 10, 2026
d70a56e
refactor: migrate composed components to CSS Modules
owlsua May 10, 2026
a3c6bff
refactor: migrate InputList, ProgressTracker to TypeScript, add SendP…
owlsua May 10, 2026
22c0be7
refactor: migrate CreateAccount to TypeScript, extract RestoreAccount…
owlsua May 10, 2026
3696fa9
refactor: migrate SendTransaction components to CSS Modules
owlsua May 10, 2026
88da227
refactor: migrate Delegation components to CSS Modules, update index …
owlsua May 10, 2026
16786c8
feat: redesign TransactionDetails with banner layout, swap and token …
owlsua May 10, 2026
a1d3c27
chore: remove old InputList JS and CSS files replaced by TypeScript
owlsua May 10, 2026
95f7c8e
feat: add TypeScript ESLint support
owlsua May 20, 2026
a8da743
refactor: extract CopyButton as shared CSS Modules component
owlsua May 20, 2026
8985a56
feat: redesign DelegationDetails with banner layout and custom skeleton
owlsua May 20, 2026
436e87c
refactor: replace useEffect with derived state in components
owlsua May 20, 2026
3c9534c
fix: clear delegation data on network/account switch
owlsua May 20, 2026
ca66f40
feat: add ExchangeRates server env var
owlsua May 20, 2026
b937148
chore: remove unused SettingsAPI component
owlsua May 20, 2026
df9d341
style: UI tweaks and spacing fixes
owlsua May 20, 2026
21a7799
chore: code cleanup, remove unused imports and lint comments
owlsua May 20, 2026
c8789cc
chore: move exchange rates address to env
owlsua May 21, 2026
b4810ee
feat: update UI components, refactor BTC transaction flow, bump to v1…
owlsua May 27, 2026
37b651f
fix: update e2e test helpers for new UI selectors
owlsua May 27, 2026
07a0807
fix: update e2e tests 01-06 for new UI components and selectors
owlsua May 27, 2026
659ee2a
fix: renumber and rewrite e2e tests 07-13
owlsua May 27, 2026
e381ad0
chore: set playwright workers to 1 for stable test execution
owlsua May 27, 2026
d81a78a
chore: remove unused CSP meta tag and outdated README section
owlsua May 27, 2026
cc984e7
chore: update package-lock.json for v1.6.0
owlsua May 27, 2026
87bf1ad
chore: bump @mintlayer/sdk from 1.0.30 to 1.0.35
owlsua Jun 1, 2026
298a191
style: reformat manifest JSON files
owlsua Jun 1, 2026
659bc29
style: adjust CreateRestore heading font-size to 30px
owlsua Jun 1, 2026
a23f3b3
fix: remove UTXO mock from delegation e2e test
owlsua Jun 1, 2026
8ca7129
chore: bump @mintlayer/sdk from 1.0.35 to 1.0.37
owlsua Jun 4, 2026
01e42d7
fix: replace unload with pagehide event for session timeout
owlsua Jun 4, 2026
51e8192
fix: optimize locked UTXOs fetch and deduplicate delegations
owlsua Jun 4, 2026
7495df3
style: adjust Balance locked button and chart layout
owlsua Jun 4, 2026
ff1230b
feat: add fee loading animation and error handling to ML send
owlsua Jun 4, 2026
6666cf4
refactor: redesign LockedBalanceList with card layout and CSS modules
owlsua Jun 4, 2026
573f9cc
test: add unit tests
owlsua Jun 4, 2026
9e81578
temporarily disable external connection
owlsua Jun 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .env
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ MAINNET_ELECTRUM_SERVERS='https://mojito-api.mintlayer.org/bitcoin/mainnet'
TESTNET_ELECTRUM_SERVERS='https://mojito-api.mintlayer.org/bitcoin/testnet'
TESTNET_MINTLAYER_SERVERS='https://mojito-api.mintlayer.org/mintlayer/testnet'
MAINNET_MINTLAYER_SERVERS='https://mojito-api.mintlayer.org/mintlayer/mainnet'
EXCHANGE_RATES_SERVER='https://rates-api.mintlayer.org'
3 changes: 2 additions & 1 deletion .env.production
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ GENERATE_SOURCEMAP=false
MAINNET_ELECTRUM_SERVERS='https://mojito-api.mintlayer.org/bitcoin/mainnet'
TESTNET_ELECTRUM_SERVERS='https://mojito-api.mintlayer.org/bitcoin/testnet'
TESTNET_MINTLAYER_SERVERS='https://mojito-api.mintlayer.org/mintlayer/testnet'
MAINNET_MINTLAYER_SERVERS='https://mojito-api.mintlayer.org/mintlayer/mainnet'
MAINNET_MINTLAYER_SERVERS='https://mojito-api.mintlayer.org/mintlayer/mainnet'
EXCHANGE_RATES_SERVER='https://rates-api.mintlayer.org'
1 change: 1 addition & 0 deletions .env.staging
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ MAINNET_ELECTRUM_SERVERS='https://mojito-api.mintlayer.org/bitcoin/mainnet'
TESTNET_ELECTRUM_SERVERS='https://mojito-api.mintlayer.org/bitcoin/testnet'
TESTNET_MINTLAYER_SERVERS='https://mojito-api.mintlayer.org/mintlayer/testnet'
MAINNET_MINTLAYER_SERVERS='https://mojito-api.mintlayer.org/mintlayer/mainnet'
EXCHANGE_RATES_SERVER='https://rates-api.mintlayer.org'
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,6 @@ yarn-error.log*
/playwright-report/
/blob-report/
/playwright/.cache/

# llm
.claude
10 changes: 0 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,16 +55,6 @@ The build process generates a `ext.zip` and a `extFF.zip` files in the project's

They can be imported in the browser as a developer extension on Mozilla Firefox. To test in Chomium-based browsers, you can point the `build` directory as the `unpacked extension`.

### Build specificities

### CSP HTML meta tag

On `public/index.html` there is a `meta` tag named `CSP`. This is tags render just in DEVELOPMENT mode. But it has no use in delevelopment mode.

The only purpose of that tag is to serve as a placeholder to the real `Content-Security-Policy` meta tag, which will be inserted just on the build process for the final packages and the `build` path.

This meta tag is needed to load properly all the external scripts, stylesheets, fonts, and images on the final product.

## How to Contribute

[Check here](./CONTRIBUTING.md) what you should do, and the rules you should follow, to contribute to this project.
1 change: 1 addition & 0 deletions babel.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@ module.exports = {
presets: [
['@babel/preset-env', { targets: { node: 'current' } }],
['@babel/preset-react', { runtime: 'automatic' }],
'@babel/preset-typescript',
],
}
111 changes: 77 additions & 34 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -1,12 +1,57 @@
import js from '@eslint/js'
import tseslint from 'typescript-eslint'
import reactPlugin from 'eslint-plugin-react'
import reactHooksPlugin from 'eslint-plugin-react-hooks'
import globals from 'globals'

const sharedRules = {
...reactPlugin.configs.recommended.rules,
semi: ['error', 'never'],
'react/jsx-no-target-blank': 'off',
'react/react-in-jsx-scope': 'off',
'react/prop-types': 'off',
quotes: ['error', 'single'],
'no-const-assign': 'error',
'prefer-const': 'error',
'no-new-object': 'error',
'quote-props': ['error', 'as-needed'],
'no-array-constructor': 'error',
'no-eval': 'error',
'no-trailing-spaces': 'error',
'max-params': ['error', 4],
'max-depth': ['error', 3],
'eol-last': ['error', 'always'],
'testing-library/no-unnecessary-act': 'off',
...reactHooksPlugin.configs.recommended.rules,
}

const sharedLanguageOptions = {
ecmaVersion: 2020,
sourceType: 'module',
globals: {
...globals.browser,
...globals.es2020,
...globals.jest,
Buffer: 'readonly',
process: 'readonly',
},
parserOptions: {
ecmaFeatures: {
jsx: true,
},
},
}

export default [
js.configs.recommended,
{
ignores: ['src/commons/utils/main.js', 'tests/**', 'src/**/*.test.js'],
ignores: [
'src/commons/utils/main.js',
'tests/**',
'src/**/*.test.js',
'src/services/Crypto/Mintlayer/@mintlayerlib-js/**',
'src/tests/mock/wasmCrypro/**',
],
},
{
files: ['*.js', '*.mjs'],
Expand All @@ -24,54 +69,52 @@ export default [
},
},
},
{
files: ['src/tests/mock/**/*.js'],
languageOptions: {
globals: {
...globals.node,
},
},
},
{
files: ['src/**/*.js'],
ignores: ['src/version/*.js'],
plugins: {
react: reactPlugin,
'react-hooks': reactHooksPlugin,
},
languageOptions: {
ecmaVersion: 2020,
sourceType: 'module',
globals: {
...globals.browser,
...globals.es2020,
...globals.jest,
Buffer: 'readonly',
process: 'readonly',
},
parserOptions: {
ecmaFeatures: {
jsx: true,
},
languageOptions: sharedLanguageOptions,
settings: {
react: {
version: 'detect',
},
},
rules: {
...sharedRules,
'no-unused-vars': 'error',
},
},
{
files: ['src/**/*.ts', 'src/**/*.tsx'],
plugins: {
react: reactPlugin,
'react-hooks': reactHooksPlugin,
'@typescript-eslint': tseslint.plugin,
},
languageOptions: {
...sharedLanguageOptions,
parser: tseslint.parser,
},
settings: {
react: {
version: 'detect',
},
},
rules: {
...reactPlugin.configs.recommended.rules,
semi: ['error', 'never'],
'react/jsx-no-target-blank': 'off',
'react/react-in-jsx-scope': 'off',
'react/prop-types': 'off',
quotes: ['error', 'single'],
'no-const-assign': 'error',
'no-unused-vars': 'error',
'prefer-const': 'error',
'no-new-object': 'error',
'quote-props': ['error', 'as-needed'],
'no-array-constructor': 'error',
'no-eval': 'error',
'no-trailing-spaces': 'error',
'max-params': ['error', 4],
'max-depth': ['error', 3],
'eol-last': ['error', 'always'],
'testing-library/no-unnecessary-act': 'off',
...reactHooksPlugin.configs.recommended.rules,
...sharedRules,
'no-unused-vars': 'off',
'@typescript-eslint/no-unused-vars': 'error',
},
},
]
3 changes: 3 additions & 0 deletions jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ module.exports = {
testEnvironment: 'jsdom',
setupFilesAfterEnv: ['<rootDir>/src/setupTests.js'],
testPathIgnorePatterns: ['/node_modules/', '/tests/', 'src/pages'],
transform: {
'\\.[jt]sx?$': 'babel-jest',
},
transformIgnorePatterns: [
'node_modules/(?!(react-router|react-router-dom|@remix-run|date-fns|konva|react-konva|@mintlayer)/)',
],
Expand Down
Loading
Loading