Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
110 commits
Select commit Hold shift + click to select a range
72f4990
BrowserManager
knightsforce Feb 12, 2025
f1b9b02
FaviconManager
knightsforce Feb 14, 2025
b3a1d70
HistoryManager
knightsforce Feb 14, 2025
5ca8ef5
BrowserManager
knightsforce Feb 14, 2025
e66035a
BrowserService
knightsforce Feb 15, 2025
6e7d8d4
Elementary BrowserBookmarkBottomSheet
knightsforce Feb 16, 2025
79bd483
Elementary BrowserBookmarkRenameBottomSheet
knightsforce Feb 16, 2025
a3548c1
Elementary BookmarksScreen
knightsforce Feb 16, 2025
25c25a6
Remove browser_bookmarks_bloc.dart
knightsforce Feb 16, 2025
31120ba
Remove browser_favicons_bloc.dart
knightsforce Feb 16, 2025
2f72473
Elementary HistoryScreen
knightsforce Feb 17, 2025
94c3618
Remove old import
knightsforce Feb 17, 2025
919840f
Create BrowserTabsScreen
knightsforce Feb 18, 2025
0f86c6a
Browser logic beta
knightsforce Feb 20, 2025
6bae455
Fixes
knightsforce Feb 21, 2025
2697404
feat: browser tabs (#808)
knightsforce Mar 11, 2025
3bda1a1
fix: Clear storage (#713)
knightsforce Mar 17, 2025
3afe03e
EWM-453. Clear cache assets if manifestUrl not exist (#716)
knightsforce Mar 17, 2025
2476de3
refactor: EWM-444, EWM-439 (#730)
Odrin Mar 17, 2025
5a2af41
fix: ms deployment fee; contract version check; (#786)
Odrin Mar 17, 2025
c66c0f4
fix(SPARX-CK): dont throw exception if cache is null; + improve log (…
Odrin Mar 17, 2025
cd88275
feat: update nekoton_repository to 0.56.0 and add currency decimals f…
Odrin Mar 17, 2025
ac52f09
BootstrapFailedRerunView contact us button (#743)
knightsforce Mar 17, 2025
62d8fcc
refactor: EWM-424. TokenWalletOrdinaryTransactionDetails on Elementar…
knightsforce Mar 17, 2025
f079233
refactor: EWM-421. NewAccountScreen Elementary (#737)
knightsforce Mar 17, 2025
a1a069d
chore: merge fix
Mar 17, 2025
a41e7da
refactor: simplify & unify widget model factory initialization
Mar 17, 2025
6f5867d
refactor: Ewm 446 ton wallet multisig expired transaction details pag…
knightsforce Mar 17, 2025
d10041d
refactor: update TonWalletMultisigExpiredTransactionWidget constructo…
Mar 17, 2025
a95c264
feat: Browser modals (#816)
knightsforce Mar 19, 2025
79605a0
Fix bottom navigation size
knightsforce Mar 19, 2025
abd9d8e
feat(EWM-484): add wallet V3R1/V3R2 support
Mar 19, 2025
f92622a
fix(EWM-485): add account and public key null checks in inpage provid…
Mar 19, 2025
df5f04a
Update bookmark bottomsheet
knightsforce Mar 19, 2025
1e03aa1
Remove not used code
knightsforce Mar 20, 2025
91f96a6
setClipBoardData
knightsforce Mar 20, 2025
846e0d0
fix(EWM-488): wait for network switch; refactor service import/export;
Mar 20, 2025
a3d6d3e
Merge branch 'refs/heads/predev' into feat/browser
knightsforce Mar 21, 2025
6029e8f
After merge
knightsforce Mar 21, 2025
f4cd71e
Handle App links in BrowserService
knightsforce Mar 21, 2025
2a81195
Feat/browser tab animate (#817)
knightsforce Mar 23, 2025
6d7d7f2
Browser loading favicon
knightsforce Mar 24, 2025
9dc2253
fetchFavicon -> getFavicon
knightsforce Mar 25, 2025
801b83b
Replace FaviconData on HashMap
knightsforce Mar 25, 2025
c37c736
Past nad go
knightsforce Mar 25, 2025
e7a0ab3
tooltip.svg
knightsforce Mar 25, 2025
392b656
fix: browser fixes (#831)
knightsforce Apr 1, 2025
8463470
fix: browser fixes2 (#835)
knightsforce Apr 3, 2025
c6127a3
EWM-501 fix undo (#837)
knightsforce Apr 5, 2025
6466591
Center past outside PastGoButton widget
knightsforce Apr 5, 2025
3f1fb88
BrowserManagerScreenshotHelper -> BrowserManagerScreenShooter
knightsforce Apr 5, 2025
94bdf4e
BrowserPageWidget rename WebView methods and add comments
knightsforce Apr 5, 2025
453ab23
BrowserPageScrollDelegate
knightsforce Apr 5, 2025
a0c2ced
TabMenuDelegate
knightsforce Apr 5, 2025
f6bc960
BrowserPastGoDelegate
knightsforce Apr 5, 2025
a291b62
PageSlideDelegate
knightsforce Apr 5, 2025
9d66f81
PstGoDelegate move notifier inside
knightsforce Apr 5, 2025
3c2c66a
BrowserSizesDelegate
knightsforce Apr 5, 2025
13c9e95
BrowserKeysDelegate
knightsforce Apr 5, 2025
9505ad6
MenuAnimationDelegate
knightsforce Apr 5, 2025
4c67cbc
MenuAnimationDelegate rename to BrowserMenuAnimationDelegate
knightsforce Apr 5, 2025
1950c8b
BrowserProgressIndicatorDelegate
knightsforce Apr 5, 2025
ac365d5
BrowserTabsDelegate
knightsforce Apr 5, 2025
887f33e
Browser delegate add ui interface
knightsforce Apr 5, 2025
01df710
Merge branch 'refs/heads/dev' into feat/browser
knightsforce Apr 7, 2025
d9eca64
After merge
knightsforce Apr 7, 2025
1cfe8c4
Move MessengerService into domain
knightsforce Apr 8, 2025
03528a7
Browser. Fix slideTo
knightsforce Apr 10, 2025
14fd2f4
Browser. resetVerticalScroll
knightsforce Apr 10, 2025
9a507da
Browser. Wrap search text in Flexible
knightsforce Apr 10, 2025
6ba30f3
Browser. BrowserTabsDelegate onUpdateActiveTab Future wrapper
knightsforce Apr 10, 2025
ef6884b
Browser. Update BrowserMenuBackgroundBlur for impeller
knightsforce Apr 10, 2025
0f89ee9
Browser. UrlValidator
knightsforce Apr 10, 2025
844a14e
Browser. Remove _handleUrl
knightsforce Apr 10, 2025
e0738c5
Browser. UrlValidator test
knightsforce Apr 10, 2025
6cdd68f
Browser. Move take screenshot callback to BrowserPageWidgetModel
knightsforce Apr 10, 2025
4c40c7a
Browser. DimensSizeV2.d207
knightsforce Apr 10, 2025
a5b4098
Browser. BrowserBookmarksStorageService clear use tryWrapper and log
knightsforce Apr 10, 2025
848957a
fix: Browser. Page padding (#851)
knightsforce Apr 14, 2025
e53a914
Browser. Use diff pointer for check scroll page
knightsforce Apr 14, 2025
2087577
Browser. typedef ImageCache
knightsforce Apr 15, 2025
fc7a57c
Browser. Refactor FaviconManager
knightsforce Apr 15, 2025
b64c364
Browser. HistoryManager remove sort
knightsforce Apr 15, 2025
827e8d8
Browser. PermissionsManager using ValueStream
knightsforce Apr 15, 2025
7a15a08
Merge branch 'refs/heads/dev' into feat/browser
knightsforce Apr 23, 2025
969c9fa
After merge
knightsforce Apr 23, 2025
9990c4b
fix: browser fixes (#863)
knightsforce Apr 23, 2025
ec1ba7c
fix: browser fixes menu (#866)
knightsforce Apr 24, 2025
474c3d8
Merge branch 'refs/heads/dev' into feat/browser
knightsforce Apr 28, 2025
4688fd0
fix: browser fixes 3 (#868)
knightsforce Apr 29, 2025
b4b12f6
Merge branch 'refs/heads/dev' into feat/browser
knightsforce May 1, 2025
7ec422f
Browser. After merge
knightsforce May 1, 2025
59ab7a8
EWM-497. Anti phishing logic
knightsforce May 5, 2025
20c03a4
EWM-497. BrowserPage refactor widget.some fields
knightsforce May 5, 2025
f196819
EWM-497. Ci update blacklists
knightsforce May 6, 2025
08b0d32
Merge branch 'refs/heads/dev' into EWM-497
knightsforce May 6, 2025
e9ed123
EWM-497. After analyze
knightsforce May 6, 2025
e260ac8
EWM-497. actions/upload-artifact v4
knightsforce May 6, 2025
f47d1d3
EWM-497. Flutter 3.29.3
knightsforce May 6, 2025
71b428c
EWM-497. Update fetch anti-phishing lists
knightsforce May 7, 2025
e19c49c
EWM-497. Temp Download anti-phishing file
knightsforce May 7, 2025
3dc14c3
EWM-497. Touch asset to bump timestamp
knightsforce May 7, 2025
0b737fb
EWM-497. Refresh Flutter assets manifest
knightsforce May 7, 2025
5bce71c
Merge branch 'dev' into EWM-497
Odrin May 8, 2025
c366d61
Merge branch 'refs/heads/dev' into EWM-497
knightsforce Jun 25, 2025
994e50c
refactor/EWM-497: anti_phishing logic
knightsforce Jun 26, 2025
e364ab7
refactor/EWM-497: clean cache for use new anti_phishing file
knightsforce Jun 27, 2025
fe173cb
refactor/EWM-497: check link pattern
knightsforce Jun 30, 2025
322e5ce
refactor/EWM-497: Add Create Release yaml
knightsforce Jun 30, 2025
ea9e2f8
refactor/EWM-497: rename to Create release brunch
knightsforce Jun 30, 2025
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
33 changes: 31 additions & 2 deletions .github/workflows/app-deploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@ on:
required: true
default: release
type: choice
options: [release, debug]
options: [ release, debug ]
flavor:
description: 'Target flavor:'
required: true
default: staging
type: choice
options: [development, staging, production]
options: [ development, staging, production ]

jobs:
setup:
Expand Down Expand Up @@ -155,6 +155,16 @@ jobs:
echo "ios_target is set to = ${{ env.ios_target }}"
echo "build_mode is set to = ${{ inputs.build_mode }}"

- name: Remove default anti_phishing.json
run: |
rm -f assets/config/anti_phishing.json

- name: Download anti-phishing file
uses: actions/download-artifact@v4
with:
name: anti-phishing-json
path: assets/config

- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
Expand Down Expand Up @@ -281,6 +291,25 @@ jobs:
- name: Display flavor target
run: echo "Flavor target is = ${{ inputs.flavor }}"

- name: Fetch & merge anti-phishing lists
run: |
curl -s https://raw.githubusercontent.com/broxus/ever-wallet-anti-phishing/master/blacklist.json \
-o /tmp/blacklist1.json
curl -s https://raw.githubusercontent.com/MetaMask/eth-phishing-detect/refs/heads/main/src/config.json \
-o /tmp/config.json
mkdir -p assets/config
jq -s '(.[0] + .[1].blacklist) | unique | { blacklist: . }' \
/tmp/blacklist1.json /tmp/config.json \
> assets/config/anti_phishing.json
echo "→ New anti_phishing.json:"
head -n 5 assets/config/anti_phishing.json

- name: Flutter clean
run: flutter clean

- name: Get Flutter packages
run: dart pub get

- name: Build and deploy
run: |
bash scripts/build.sh \
Expand Down
142 changes: 142 additions & 0 deletions .github/workflows/create-release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
name: Create release brunch

on:
workflow_dispatch:
inputs:
version_type:
description: 'Version bump'
required: true
default: 'patch'
type: choice
options:
- patch
- minor
- major

jobs:
start-release:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}

- name: Download and merge anti-phishing blacklists
run: |
mkdir -p temp

echo "Downloading Broxus blacklist..."
curl -s https://raw.githubusercontent.com/broxus/ever-wallet-anti-phishing/master/blacklist.json -o temp/broxus_blacklist.json || exit 1

echo "Downloading MetaMask blacklist..."
curl -s https://raw.githubusercontent.com/MetaMask/eth-phishing-detect/refs/heads/main/src/config.json -o temp/metamask_config.json

cat temp/broxus_blacklist.json | jq -r '.[]' > temp/broxus_entries.txt

cat temp/metamask_config.json | jq -r '.blacklist[]' > temp/metamask_entries.txt

broxus_count=$(wc -l < temp/broxus_entries.txt)
metamask_count=$(wc -l < temp/metamask_entries.txt)

cat temp/broxus_entries.txt temp/metamask_entries.txt | sort -u > temp/merged_entries.txt

final_count=$(wc -l < temp/merged_entries.txt)

echo "[" > assets/configs/anti_phishing.json

while IFS= read -r line; do
# Escape special characters for JSON
escaped_line=$(echo "$line" | sed 's/\\/\\\\/g; s/"/\\"/g')
echo " \"$escaped_line\"," >> assets/configs/anti_phishing.json
done < temp/merged_entries.txt

sed -i '$s/,$//' assets/configs/anti_phishing.json
echo "]" >> assets/configs/anti_phishing.json

echo "Merged $broxus_count Broxus entries and $metamask_count MetaMask entries into $final_count unique entries"

rm -rf temp

- name: Update version in pubspec.yaml
run: |
current_version=$(grep '^version:' pubspec.yaml | sed 's/version: //')
echo "Current version: $current_version"

IFS='.' read -r major minor patch <<< "$current_version"

case "${{ github.event.inputs.version_type }}" in
major)
major=$((major + 1))
minor=0
patch=0
;;
minor)
minor=$((minor + 1))
patch=0
;;
patch)
patch=$((patch + 1))
;;
esac

new_version="$major.$minor.$patch"
echo "New version: $new_version"

sed -i "s/^version: .*/version: $new_version/" pubspec.yaml

# Store version for next steps
echo "NEW_VERSION=$new_version" >> $GITHUB_ENV

- name: Create release branch and commit
run: |
branch_name="release/v${{ env.NEW_VERSION }}"
git checkout -b "$branch_name"

git config --local user.email "[email protected]"
git config --local user.name "GitHub Action"

git add assets/configs/anti_phishing.json pubspec.yaml

git commit -m "chore(release): start release v${{ env.NEW_VERSION }}

- Update anti-phishing blacklist from upstream sources
- Bump version to ${{ env.NEW_VERSION }} (${{ github.event.inputs.version_type }})

Sources:
- Broxus ever-wallet-anti-phishing
- MetaMask eth-phishing-detect"

git push origin "$branch_name"

- name: Create Pull Request
run: |
gh pr create \
--title "chore(release): start release v${{ env.NEW_VERSION }}" \
--body "$(cat <<EOF

- Start release process for version ${{ env.NEW_VERSION }}
- Updated anti-phishing blacklist from upstream sources
- Bumped version (${{ github.event.inputs.version_type }}) in pubspec.yaml

- \`assets/configs/anti_phishing.json\`: Updated with latest blacklist entries
- \`pubspec.yaml\`: Version bumped to ${{ env.NEW_VERSION }}

- Type: **${{ github.event.inputs.version_type }}**
- New version: **${{ env.NEW_VERSION }}**

- [Broxus ever-wallet-anti-phishing](https://github.com/broxus/ever-wallet-anti-phishing)
- [MetaMask eth-phishing-detect](https://github.com/MetaMask/eth-phishing-detect)

- [ ] Review and test changes
- [ ] Merge to dev when ready
- [ ] Create release tag and deploy

🤖 This release PR was created manually via GitHub Actions
EOF
)" \
--base dev \
--head "release/v${{ env.NEW_VERSION }}" \
--label "🚀 release"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
16 changes: 16 additions & 0 deletions assets/configs/anti_phishing.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"blacklist": [
"everscan.com",
"octsubridge.io",
"octus-bridge.com",
"protocoloctusbridge.com",
"octlusbridge.com",
"bridge-octus.org",
"internal-meeting.online",
"pancake-ever.com",
"gravixguard.github.io",
"gravixguard.web.app",
"broxus.net",
"chainconnect.app"
]
}
76 changes: 76 additions & 0 deletions assets/html/anti_phishing.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>SparX Wallet Phishing Detection</title>
<style>
body {
margin: 0;
padding: 20px;
background-color: #f0f0f0;
font-family: Arial, sans-serif;
color: #333;
}
.container {
max-width: 800px;
margin: 0 auto;
background-color: #fff;
border-radius: 4px;
box-shadow: 0 2px 6px rgba(0,0,0,0.1);
padding: 24px;
}
h1 {
margin-top: 0;
font-size: 1.8rem;
}
p {
line-height: 1.6;
margin-bottom: 1em;
}
a {
color: #0066cc;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
</style>
</head>
<body>
<div class="container">
<h1>SparX Wallet Phishing Detection</h1>
<p>
This domain is currently on the SparX Wallet domain warning list. This means
that based on information available to us, SparX Wallet believes this domain
could currently compromise your security and, as an added safety feature,
SparX Wallet has restricted access to the site. To override this, please read
the rest of this warning for instructions on how to continue at your own risk.
</p>
<p>
There are many reasons sites can appear on our warning list, and our warning
list compiles from other widely used industry lists. Such reasons can include
known fraud or security risks, such as domains that test positive on the
SparX Wallet Phishing Detection. Domains on these warning lists may include
outright malicious websites and legitimate websites that have been compromised
by a malicious actor.
</p>
<p>
To read more about this site please
<a href="https://cryptoscamdb.org/search">
search for the domain on CryptoScamDB
</a>.
</p>
<p>
Note that this warning list is compiled on a voluntary basis. This list may be
inaccurate or incomplete. Just because a domain does not appear on this list is
not an implicit guarantee of that domain's safety. As always, your transactions
are your own responsibility. If you wish to interact with any domain on our
warning list, you can do so by
<a href="{PHISHING_ORIGINAL_SITE}">
continuing at your own risk
</a>.
</p>
</div>
</body>
</html>

This file was deleted.

This file was deleted.

This file was deleted.

37 changes: 21 additions & 16 deletions lib/di/di.config.dart

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

Loading