Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 3.5 #659

Closed
wants to merge 73 commits into from
Closed
Show file tree
Hide file tree
Changes from 70 commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
ded52c2
fix(mobile): keep bounce flag from user input
voloshinskii Oct 27, 2023
0af8495
fix(mobile): browser crash without wallet
voloshinskii Oct 30, 2023
2c3c4ca
wip
voloshinskii Oct 31, 2023
23a3d1d
Update signRawCalculateAmount.ts
voloshinskii Oct 31, 2023
d18252e
fix(mobile): Exclude unverified pools
voloshinskii Nov 1, 2023
4538bfa
Merge pull request #623 from tonkeeper/fix/browser-crash-without-wallet
voloshinskii Nov 1, 2023
941ad06
Merge pull request #621 from tonkeeper/fix/keep-bounce-flag
voloshinskii Nov 1, 2023
8019e76
Merge pull request #624 from tonkeeper/fix/exclude-unverified-pools
voloshinskii Nov 1, 2023
d4bf61c
feature(mobile): Switch locale button
voloshinskii Nov 1, 2023
335652b
feat(mobile): add new domain for applinks
bogoslavskiy Nov 1, 2023
f151e55
fix(mobile): Remove legacy NFT modals
voloshinskii Nov 2, 2023
940f5c0
Merge branch 'develop' into fix/sign-raw-for-all-actions
voloshinskii Nov 2, 2023
af7526a
fix(mobile): Implement LockupContract
voloshinskii Nov 2, 2023
b7826a0
fix(mobile): Lockup fixes
voloshinskii Nov 2, 2023
0fe4206
Update wallet.ts
voloshinskii Nov 2, 2023
08a6c21
Update LockupContractV1.ts
voloshinskii Nov 2, 2023
fa1b48e
chore(mobile): rename legacy contracts dir
voloshinskii Nov 2, 2023
b8a8609
Merge pull request #625 from tonkeeper/feature/switch-locale-button
voloshinskii Nov 3, 2023
65b976f
feat(mobile): update exchange UI (#629)
sorokin0andrey Nov 6, 2023
318a227
fix(mobile): Fix lockup contract
voloshinskii Nov 7, 2023
f14d4c7
Apple cd workflow (#631)
KuznetsovNikita Nov 7, 2023
e0c9cb1
fix(mobile): exchange UI fixes (#632)
sorokin0andrey Nov 13, 2023
dde6c29
feat(mobile): iOS CD workflow (#633)
KuznetsovNikita Nov 13, 2023
45074fe
bump(mobile): 3.5 (398) (#630)
sorokin0andrey Nov 13, 2023
3cbbcdd
fix(mobile): check correct address (#636)
voloshinskii Nov 20, 2023
b8bb607
fix(mobile): exchange design review fixes (#638)
sorokin0andrey Nov 23, 2023
79dd5b6
fix(mobile): disable redirect for transfers inside browser (#637)
sorokin0andrey Nov 23, 2023
834bb29
Merge pull request #626 from tonkeeper/feat/add-new-domain
bogoslavskiy Nov 24, 2023
74f0476
Android cd
KuznetsovNikita Nov 13, 2023
254f8a3
Update site and google play releases
KuznetsovNikita Nov 18, 2023
886abcb
Only Google Play version
KuznetsovNikita Nov 18, 2023
759ab66
Fix command
KuznetsovNikita Nov 20, 2023
223965d
Android publish
KuznetsovNikita Nov 22, 2023
7c93d24
Fastlane
KuznetsovNikita Nov 22, 2023
5d58084
Join jobs
KuznetsovNikita Nov 23, 2023
db9cb3a
Add log for build number
KuznetsovNikita Nov 27, 2023
5c751e8
Android APK
KuznetsovNikita Nov 27, 2023
c4daf0e
Add code version
KuznetsovNikita Nov 27, 2023
61121b4
Update ENVFILE for site
KuznetsovNikita Nov 27, 2023
dd686c5
Update name for a file
KuznetsovNikita Nov 27, 2023
bf01b8f
Update names
KuznetsovNikita Nov 27, 2023
ff35738
Build APK
KuznetsovNikita Nov 27, 2023
d0dd257
Remove puts
KuznetsovNikita Nov 27, 2023
a97c1f7
Merge pull request #639 from tonkeeper/feature/ci-cd-android
KuznetsovNikita Nov 27, 2023
807a055
feat(mobile): staking improvements (#640)
sorokin0andrey Nov 30, 2023
d146632
fix(mobile): stateInit for sign-raw messages
voloshinskii Dec 1, 2023
fcdc431
fix(mobile): insufficientFunds check
voloshinskii Dec 1, 2023
2d39ae8
fix(mobile): exchanges fixes (#641)
sorokin0andrey Dec 4, 2023
d49ac0b
Merge pull request #627 from tonkeeper/fix/sign-raw-for-all-actions
voloshinskii Dec 4, 2023
a353b75
feature(mobile): Add signRaw send_success event
voloshinskii Dec 6, 2023
2f428e8
feat(mobile): persist wallet state (#642)
sorokin0andrey Dec 6, 2023
bd58ce7
fix(mobile): exchanges fixes (#644)
sorokin0andrey Dec 7, 2023
2198d92
fix(mobile) offline status time format (#645)
sorokin0andrey Dec 7, 2023
5ce461e
fix(mobile): staking qa fixes (#646)
sorokin0andrey Dec 7, 2023
ab9f6b5
Merge pull request #643 from tonkeeper/feature/sign-raw-send-success-…
voloshinskii Dec 7, 2023
43bf6c4
Add yarn retry steps
KuznetsovNikita Dec 7, 2023
e0364a1
duration: 500
KuznetsovNikita Dec 7, 2023
78227c9
timeout_minutes: 10
KuznetsovNikita Dec 7, 2023
9ee64a2
fix(mobile): dismiss addressUpdate banner for new wallets
voloshinskii Dec 7, 2023
47c4178
fix(mobile): remove import
voloshinskii Dec 7, 2023
7e4ab48
Merge pull request #648 from tonkeeper/fix/dismiss-address-update-banner
voloshinskii Dec 7, 2023
d903dec
Merge pull request #647 from tonkeeper/feature/yarn-retry
KuznetsovNikita Dec 7, 2023
1403215
fix(mobile): fetching balances for created wallet (#649)
sorokin0andrey Dec 7, 2023
8a0621e
bump(mobile): 3.5 (423)
sorokin0andrey Dec 7, 2023
722d842
fix(mobile): release QA fixes (#651)
sorokin0andrey Dec 12, 2023
a21ecdd
fix(mobile): Dismiss address update properly (#653)
voloshinskii Dec 13, 2023
f58a924
fix(mobile): sign-raw when wallet contract is uninit (#652)
voloshinskii Dec 13, 2023
1107bbb
fix(mobile): Increase timeout (#655)
voloshinskii Dec 13, 2023
785d320
fix(mobile): Bounceable raw address on send (#654)
voloshinskii Dec 13, 2023
e1d68db
fix(mobile): add ton.app to deeplinking resolvers (#656)
sorokin0andrey Dec 15, 2023
1d83972
build bump to re-submit for more platforms -> 424
oleganza Dec 20, 2023
6cb856b
fix(mobile): Modify script to build aab
voloshinskii Dec 21, 2023
f9f7df9
remove soloader meta data from manifest
Dec 21, 2023
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
220 changes: 220 additions & 0 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,220 @@
name: Mobile CD
on:
# Allows you to run this workflow manually from the Actions a tab
workflow_dispatch:

jobs:
ios-testflight-build:
name: ios-testflight-build
strategy:
matrix:
os: [macos-13]
node-version: [18.18.0]
ruby-version: [3.2]
xcode: [15.0.1]

runs-on: ${{ matrix.os }}

steps:
- name: Checkout to git repository
uses: actions/checkout@v4

- name: Set up Node
uses: actions/setup-node@v3
with:
cache: 'yarn'
node-version: ${{ matrix.node-version }}

- name: Install yarn dependencies
uses: nick-fields/retry@v2
with:
timeout_minutes: 10
max_attempts: 3
command: yarn

- name: Install pods dependencies
run: yarn pods

- name: Set up Ruby and Gemfile dependencies
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version }}
bundler-cache: true
working-directory: './packages/mobile'

- name: Decode signing certificate into a file
working-directory: './packages/mobile/ios'
env:
CERTIFICATE_BASE64: ${{ secrets.IOS_DIST_SIGNING_KEY }}
run: |
echo $CERTIFICATE_BASE64 | base64 --decode > signing-cert.p12

- name: Build & upload iOS binary
working-directory: './packages/mobile/ios'
run: bundle exec fastlane ios beta
env:
X_CODE: ${{ matrix.xcode }}
DEVELOPER_APP_IDENTIFIER: ${{ secrets.DEVELOPER_APP_IDENTIFIER }}
DEVELOPER_TEAM_ID: ${{ secrets.DEVELOPER_TEAM_ID }}
ASC_KEY_ID: ${{ secrets.APPLE_KEY_ID }}
ASC_ISSUER_ID: ${{ secrets.APPLE_ISSUER_ID }}
ASC_KEY: ${{ secrets.APPLE_KEY_CONTENT }}
SIGNING_KEY_PASSWORD: ${{ secrets.IOS_DIST_SIGNING_KEY_PASSWORD }}
SIGNING_KEY_FILE_PATH: signing-cert.p12

- name: Upload logs to artifacts
uses: actions/upload-artifact@v3
if: failure()
with:
name: gum-logs
path: /Users/runner/Library/Logs/gym/ton_keeper-ton_keeper.log

- name: Upload app-store ipa and dsyms to artifacts
uses: actions/upload-artifact@v3
with:
name: Tonkeeper ipa & dsyms ${{ env.VERSION_CODE }}
path: |
./packages/mobile/ios/ton_keeper.ipa
./packages/mobile/ios/*.app.dSYM.zip

android-store-build:
name: android-store-build
strategy:
matrix:
os: [macos-13]
node-version: [18.18.0]

runs-on: ${{ matrix.os }}

steps:
- name: Checkout to git repository
uses: actions/checkout@v4

- name: Set up Node
uses: actions/setup-node@v3
with:
cache: 'yarn'
node-version: ${{ matrix.node-version }}

- name: Install yarn dependencies
uses: nick-fields/retry@v2
with:
timeout_minutes: 10
max_attempts: 3
command: yarn

- name: Set up Ruby and Gemfile dependencies
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version }}
bundler-cache: true
working-directory: './packages/mobile'

- name: Update Java home to 11 version
run: export JAVA_HOME=$JAVA_HOME_11_X64

- name: Decode signing certificate into a file
working-directory: './packages/mobile/android/app'
env:
CERTIFICATE_BASE64: ${{ secrets.ANDROID_DIST_SIGNING_KEY }}
run: |
echo $CERTIFICATE_BASE64 | base64 --decode > google-release.keystore

- name: Decode service account into a file
working-directory: './packages/mobile/android'
env:
CREDENTIALS: ${{ secrets.ANDROID_PUBLISHER_CREDENTIALS }}
run: |
echo $CREDENTIALS > service-account.json

- name: Patch for Google Play (remove REQUEST_INSTALL_PACKAGES)
run: |
git apply ./patches/google-play-release.patch

- name: Build & deploy Android release
working-directory: './packages/mobile/android'
run: bundle exec fastlane android beta
env:
KEYSTORE_FILE: ${{ github.workspace }}/packages/mobile/android/app/google-release.keystore
KEYSTORE_PASSWORD: ${{ secrets.TONKEEPER_UPLOAD_STORE_PASSWORD }}
KEY_ALIAS: ${{ secrets.TONKEEPER_UPLOAD_KEY_ALIAS}}
KEY_PASSWORD: ${{ secrets.TONKEEPER_UPLOAD_KEY_PASSWORD }}
ANDROID_JSON_KEY_FILE: service-account.json

- name: Upload android google play release to artifacts
uses: actions/upload-artifact@v3
with:
name: Tonkeeper aab ${{ env.VERSION_CODE }}
path: |
${{ github.workspace }}/packages/mobile/android/app/build/outputs

android-site-build:
name: android-site-build
strategy:
matrix:
os: [macos-13]
node-version: [18.18.0]

runs-on: ${{ matrix.os }}

steps:
- name: Checkout to git repository
uses: actions/checkout@v4

- name: Set up Node
uses: actions/setup-node@v3
with:
cache: 'yarn'
node-version: ${{ matrix.node-version }}

- name: Install yarn dependencies
uses: nick-fields/retry@v2
with:
timeout_minutes: 10
max_attempts: 3
command: yarn

- name: Set up Ruby and Gemfile dependencies
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version }}
bundler-cache: true
working-directory: './packages/mobile'

- name: Update Java home to 11 version
run: export JAVA_HOME=$JAVA_HOME_11_X64

- name: Update ENVFILE for site
working-directory: './packages/mobile'
run: cp .env.site .env

- name: Decode signing certificate into a file
working-directory: './packages/mobile/android/app'
env:
CERTIFICATE_BASE64: ${{ secrets.ANDROID_DIST_SIGNING_KEY }}
run: |
echo $CERTIFICATE_BASE64 | base64 --decode > google-release.keystore

- name: Decode service account into a file
working-directory: './packages/mobile/android'
env:
CREDENTIALS: ${{ secrets.ANDROID_PUBLISHER_CREDENTIALS }}
run: |
echo $CREDENTIALS > service-account.json

- name: Build android apk
working-directory: './packages/mobile/android'
run: bundle exec fastlane android apk
env:
KEYSTORE_FILE: ${{ github.workspace }}/packages/mobile/android/app/google-release.keystore
KEYSTORE_PASSWORD: ${{ secrets.TONKEEPER_UPLOAD_STORE_PASSWORD }}
KEY_ALIAS: ${{ secrets.TONKEEPER_UPLOAD_KEY_ALIAS}}
KEY_PASSWORD: ${{ secrets.TONKEEPER_UPLOAD_KEY_PASSWORD }}
ANDROID_JSON_KEY_FILE: service-account.json

- name: Upload android apk to artifacts
uses: actions/upload-artifact@v3
with:
name: Tonkeeper apk ${{ env.VERSION_CODE }}
path: |
${{ github.workspace }}/packages/mobile/android/app/build/outputs
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
#
.DS_Store
.env
signing-cert.p12
*.dSYM.zip

bridge.html

Expand Down
8 changes: 4 additions & 4 deletions packages/@core-js/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@
"@aws-crypto/sha256-js": "^3.0.0",
"@ethersproject/shims": "^5.7.0",
"@noble/ed25519": "1.7.3",
"@ton/core": "^0.53.0",
"@ton/crypto": "^3.2.0",
"@ton/ton": "^13.9.0",
"aes-js": "3.1.2",
"bignumber.js": "^9.1.1",
"ethers": "^6.7.1",
"isomorphic-webcrypto": "^2.3.8",
"nanoid": "^5.0.1",
"ton": "^13.5.0",
"ton-core": "^0.50.0",
"ton-crypto": "^3.2.0"
"nanoid": "^5.0.1"
}
}
5 changes: 5 additions & 0 deletions packages/@core-js/src/formatters/Address.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,11 @@ export class Address {
return TonWeb.Address.isValid(address);
}

static isBounceable(address: string) {
const addr = new TonWeb.Address(address);
return !addr.isUserFriendly || addr.isBounceable;
}

static compare(adr1?: string, adr2?: string) {
if (adr1 === undefined || adr2 === undefined) {
return false;
Expand Down
1 change: 1 addition & 0 deletions packages/@core-js/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ export * from './formatters/DNS';
export * from './utils/AmountFormatter/FiatCurrencyConfig';
export * from './utils/AmountFormatter';
export * from './utils/network';
export * from './utils/tonapiUtils';

export * from './useWallet';
export * from './Tonkeeper';
Expand Down
Loading