Skip to content

Commit

Permalink
Release TokenCoreX Upgrade (#52)
Browse files Browse the repository at this point in the history
* feat: modify the struct of identity remove api

* bug: fix tx_type conversion bug

* chore: pr review question optimization

* feat: token-core merge review problem optimization

* chore: clear build warnings

* chore: the source field is restored from enum to string

* chore: clean warning info

* feat: common algorithm sample

* feat: add aes-128-ctr encrypt/decrypt no padding sample

* feat: add cosmos eos chains

* feat: add eth keystore v3 import and export feature

* feat: add cosmos eos chains (#42)

Co-authored-by: sun <tyrone98@users.noreply.github.com>

* Feature/support btc (#43)

* pin to Rust version 1.71.1

* rename WifDisplay to WIFDisplay

* add bitcoin segwit address

* add bitcoin tests

* fix!: wrong change address

* refactor bitcoin to support P2WPKH, P2SH-P2WPKH, P2PKH

* fix tests

* refactor: rename tcx-btc-fork to tcx-btc-kin

* refactor: simplify BtcForkNetwork and rename it to BtcKinNetwork

* add implemention for Native SegWit and Taproot

* derive the address based on the input's address type when signing

* add p2tr and p2wpkh tests

* use sig.verify for schnorr signature

* refactor: define const BTC_KIN_NETWORKS

---------

Co-authored-by: tyrone <2125081@qq.com>

* feat: migration mnemonic keystore

* refactor: Address.from_public_key returning Result<Self,Err>

* fix keystore tests

* refactor: generate chain scaffolding code using use_chain macro in tcx

* migrate eos,bitcoin,ethereum,cosmos wallet to HdKeystore

* add merge function for Keystore

* refactor: rename crypto.generate_derived_key to crypto.derive_key

* refactor: reduce kdf executed times

* keep the derived key unchanged during the migration

* add migration for identity wallets

* rename Fake... in macros to Unsupported...

* add encryption and decryption for IPFS files

* merge tcx-bch into tcx-btc-kin

* remove tcx-bch

* remove tcx-bch

* fix: ethereum address

* refactor the definition of sign_message into the packages of each chain

* discard the imToken v3 format and merge it into the tcx_chain.Keystore

* fix ethereum tests in tcx

* fix the encryption and decryption of ipfs

* add sign_authentication_message

* bump rust edition to 2021

* fix tcx-chain tests

* rename tcx-wallet to tcx-identity

* fix build fail on tcx_wallet

* chore: update version

* feat: add backup keystore dir

* merge ec_sign and personal_sign into sign_message

* separate the identity operations from the handler.rs file to identity.rs

* remove the isHex flag and consider strings starting with 0x as hexadecimal

* refactor: store encoded public key instead of account name in eos

* refactor: use tcx-common::keccak256 instead of sha3::keccak

* dk keystore migrate feature (#47)

* feat: add calc external address

* feat: add keystore dk migration

* fix: ios and android keystore inconsistency

* feat: integrate ios dk keystore migration

* feat: implement the functions about identity

* chore: rename tcx_chain to tcx_keystore

* optimize: fixed all compile warnings for token-core

* format codes

* Add get_private_key_by_derivation_path tests

* Change Snake Case to Camel Case in api.proto

* Remove active accounts in keystore and refactor tcx-eth, tcx-eos...

* fix sign_transaction

* feat: add identity to private keystore

* feat: fix api, cosmos, eth2 build error

* Fixed tcx-eth, keystore unit tests

* Fixed eos unit tests

* fix: fix filecoin and tron unit tests

* feat: add the get_public_key and sign_hases api

* Fix bitcoin unit tests

* Fixed btc-kin unit tests

* Fixed tcx-eth ec_sign unit tests

* feat: add bls_sign method implement

* refactor: ChainType, Curve, DerivationPath, Network etc (#50)

* Revert "refactor: ChainType, Curve, DerivationPath, Network etc (#50)"

This reverts commit 3162cd4.

* fix: api and ckb build error

* fix: fix calc external address

* refactor: refactor the api crate

* refactor: remove the encoder trait

* feat: remove eth2 crate、 sign_hashes interface supports BLS algorithm

* refactor: Standardize all function names in the format of verb + noun

* feat: add the exists_* api

* fix: fix failed case cause by init dir changed

* refactor: clean warning info

* refactor: clean unit test build warning

* Upgrade keystore to enable it to generate identity

* add keystore upgrade unit tests

* Add the upgrade of the existing keystore in the migrate_keystore api

* Replace KEYSTORE with KEYSTORE_V3 in imTokenMeta

* feat: add the exists_* api

* refactor: clean warning info

* Method to eliminate duplicate implementiations and unify the processing of hex in tcx_common

* fix: fix unit test error

* feat: add the import json

* Remove unused enable_account function in every chain

* fix: Hex utils build error

* Fixed tcx-primitive unit tests

* fix: crypto miss sha256d

* feat: change derive sub accounts to accept raw xpub

* Removed unused CacheDeriveKey in tcx-crypto

* Recover CacheDerivedKey

* Fixed tcx-ckb unit tests

* feat: derive multi sub accounts

* fix: fix test_create_identity_from_private_key

* ut: add derive_sub_accounts test

* feat: add mnemonic_to_public api

* fix: fix migration unit test error

* typo: remove some todo

* test: add atom unit test

* refactor: remove some comments

* feat: add bitcoincash derive

* To increase test coverage, add more tests

* test: add ckb unit test

* test: add tcx-constants test case

* test: add tcx-eos test case

* test: add tcx-filecoin test case

* feat: add import private key and key hash

* test: add tcx-primitive test case

* fix: fix import private key

* fix: fix private_key* and json* api

* feat: revert ETH2 bls_to_execution_change sign feature

* Rename key_hash to fingerprint

* Add unit tests in tcx-keystore for test coverage

* Add unit tests in tcx-crypto for 100% test coverage

* Add unit tests in tcx-btc-kin for test coverage

* Add unit tests in tcx-keystore

* Add more unit tests in tcx-migrate to achieve 100% coverage

* Add more unit tests in tcx-constants to achieve 100% coverage

* feat: add more derive test

* fix: hd cannot export json

* Fixed ckb sign_transaction

* unittest: fix most tcx test

* Add more unit tests in tcx-migration

* Remove the relevant code of ChainFactory

* feat: return fingerprint

* fix: cannot export polkadot json

* data: add ios test keystore

* data: add btc, bch, ltc keystore

* Add android migrate unit tests

* test: add test case

* refactor: rename the curve name

* Add integration tests for migration

* refactor: remove unused identity and zksync

* chore: unify dependencies library version numbers

* Fixed unit tests of eos keystore migration

* chore: add test case

* Fixed migrate unit tests

* Add serial_test to tcx for sequential execution of unit tests

* refactor: remove some todo

* Use derived key in tcx-migrate unit tests for reducing test times

* Use derived key for tests performance

* refactor: replace test mnemonic str to TEST_MNEMONIC

* fix: cargo merge error

* chore: fixed dependencies version number

* chore: recover from_str_name function

* format: ios online test keystore

* chore: upgrade num_bigint_chainsafe to 0.1.4

* refactor: optimization of clippy code check issues

* chore: remove iop-keyvault library reference

* chore: remove rust-crypto library reference

* Use the enumerated values of segwit VERSION_0, VERSION_1

* feat: delete remove_wallets  function

* optimization of clippy code check issues

* chore: clippy check optimization、upgrade forest_message and forest_crypto version

* feat: add public key encoder

* chore: optimization cargo clippy check problem

* fix: ikc build error

* refactor: replace iop-keyvault with ed25519-dalek-bip32

* feat: add curve field to keystore

* Fixed unit tests in tcx-keystore

* Fixed unit tests in tcx-migration

* Add sign unit tests in tcx-eth and tcx-tron

* Encode extend public key with base58check

* feat: add scan_keystores api

* test: add tcx-primitive test case

* fix: source fingerprint camelcase error

* feat: flush migrated keystore to walletsv2

* unittest: add migration source and curve test

* add a 'derived_key' parameter to all operations that require authorization verification

* add a 'derived_key' to derived_accounts api

* add derivedKey parameters to export_mnemonic

* add derivedKey parameter to tcx-eth2

* chore: add more hash tests

* chore:use aes to replace aes-ctr

* chore: remove useless and unsafe dependencies

* chore: remove aes-soft and  block-modes dependencies

* chore: remove ring dependencies

* chore: remove  block-modes dependencies

* backup & scan_keystores API (#60)

* feat: add enc_origin filed

* feat: add scan_legacy_keystores

* feat: add backup api

* feat: add mismatch network check when import private

* feat: add scan_keystores

* cache the master private to achieve higher performance

* add benchmark tests to tcx and tcx-keystore

* test: add api test case

get_extended_public_keys、sign_authentication_message、
ipfs_encrypt_and_decrypt、eth_recover_address

* test: fix error test case

* fix: revert substrate export error

* feat: imKey support subaddress feature[R2D2-10114] (#58)

* feat: imKey support subaddress feature

* chore:remove useless test code

* chore: optimization path length check

* chore: imKey subaddress review modify

* chore: remove unused import and clean warning

* fix: remove 01 tx_type in eth tx

* fix: merge error

* fix: fix review issue by labs

* remove the dependency on ethers

* test: add trust wallet cross test

* test: add cross test

* test: add bip32/44/49/84 spec test

* bump tiny-bip39 to 1.0.0 and use anyhow instead of failure

* feat: update some error msg key

* fix: fix binding invalid_key_iv_length error

* chore:  ikc upgrade tiny-bip39 to 1.0.0 and use anyhow instead of failure

* test: add polkadot.js corss test

* fix: imKey DeriveAccountsParam tag

* fix: fix nervos and eth derive account error

* fix: substrate path regex is not right

* feat: allow using empty string as substrate derivation path

* use fixed xpub version

* test: fix tron test case error

* fixed broken unit tests

* add eth ec recover

* Remove incorrect comment in the tcx-btc-kin test

* refactor TypePrivateKey signature

* fix: fix review issue by labs

* feat: sign eos using rfc6979+nonce (#62)

* fix: btc address todos

* feat: ikc add derive_sub_accounts api[R2D2-10266] (#61)

* feat: ikc add derive_sub_account feat

* test: add exception test case and code optimization

* chore: remove envdot lib 、unused impore and fix clippy error

* fix: modify polkadot and kusama path in coin_info

* fix: fix polkadot and kusama curve type in coin_info

* feat: add  pull request template

* feat: add reimport unittest

* fix: delete unused testcase

* fix: some missing issue review by labs

* fix: fix all warnings

* feat: add sr25519 derive child test

* fix: cannot backup mnemonic

* Add derived key param to more api (#63)

* feat: add biometric to more api

* feat: remove password required in backup

* fix: remove dbg!

* feat: remove 0x form tron, eth private key

* feat: add eth_batch_personal_sign api (#64)

* Keep duplicate keystore in memory (#65)

* feat: keep old fileid and keystore in memory

* feat: split test cases

* chore: format code

* feat: retur all k1 chain_types (#67)

* delete all associated keystore when delete_keystore is called (#69)

Co-authored-by: tyrone <2125081@qq.com>

* feat: ikc add get_extended_public_key api [R2D2-10567] (#70)

* feat: add ikc get_extended_public_key api

* fix: derive_sub_accounts returns data and adds path field

* fix: modify GetExtendedPublicKeysParam proto message tag number

* chore: modify pr reivew problem

* feat: add get_public_keys api and code optimization

1. add  get_public_keys api
2. remove btc_get_xpub api
3. get_extended_public_key interface removes ed25519 curve support

* feat: migrate add network field (#71)

* feat: MigrateKeystoreParam adds network field

* test: add migrate mainnet test case

* fix: fix eth_batch_personal_sign signature verification failure

* fix: fix batch_personal_sign test case failed

* Export v3 keystore using lower address (#72)

* feat: export with lower address

* testcase: change import v3 keystore json with loweraddress

* fix: sign eth empty address (#73)

* fix: using legacy enc key (#74)

* fix: cannot migrate old private key eos keystore (#75)

* fix: cannot migrate old private key ios eos keystore (#76)

* fix: return error ks id when import multi times a same mnemonic (#77)

* fix: eth_sign is signing arbitrary data (#78)

* fix:fix imKey standard edition btc import error

* chore: modify the createat type of LegacyKeystoreResult to string

* chore: modify btc、ltc、bch transaction utxo path to full path for ikc (#79)

* chore: modify btc transaction utxo path to full path

* chore: modify bch and ltc transaction utxo to full path

* fix: remove old ks in memory (#80)

* fix: fix identity keystore delete bug[R2D2-10888] (#81)

* fix: fix identity keystore deletion bug after migration

* test: otpimization test case

* revert: eth_sign sign hashed message (#82)

* Revert "fix: eth_sign is signing arbitrary data (#78)"

This reverts commit 938b4ab.

* fix: eth_sign cannot sign string begin with 0x

* fix: fix add eth error after upgrade (#84)

* feat: mark identity wallet ids (#83)

* feat: mark identity wallet ids

* feat: add read_keystore_menmonic_path api

* build: upgrade CI gradle-build-action version v2 to v3

* chore: add checksum to the eth address returned by the scan_legacy_keystores interface (#86)

* fix: metadata missing password_hint error (#88)

* fix: metadata missing password_hint error

* feat: make the password_hint is option

* fix: fix ikc cosmos signature error (#89)

* fix: fix imKey standard version call get_public_keys interface error (#90)

---------

Co-authored-by: xiaoguang <xiaoguang101010@163.com>
Co-authored-by: sun <tyrone98@users.noreply.github.com>
Co-authored-by: tyrone <2125081@qq.com>
Co-authored-by: changwu <changwu.me@gmail.com>
Co-authored-by: xiaoguang1010 <40228114+xiaoguang1010@users.noreply.github.com>
  • Loading branch information
6 people committed May 8, 2024
1 parent 95072ed commit 03b5cad
Show file tree
Hide file tree
Showing 432 changed files with 31,393 additions and 16,615 deletions.
49 changes: 49 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,49 @@
## Summary of Changes

<!--
Required:
- Enter a jira link for this PR.
-->

## Motivation and Context

<!--- Why is this change required? What problem does it solve? -->
<!--- If it fixes an open issue, please link to the issue here. -->

## How Has This Been Tested? (Test Plan)

<!--
Required:
- Please describe in detail how you tested your changes.
- Include details of your testing environment, and the tests you ran to
- See how your change affects other areas of the code, etc. -
- Any useful notes explaining how best to test and verify.
- Bonus points for screenshots and videos!
-->

## Other information

<!-- Any useful information. -->

## Screenshots (if appropriate):

## Final checklist

- [ ] Did you test both iOS and Android(if applicable)?
- [ ] Is a security review needed(consenlabs/security)?

## Security checklist (only for leader check)

- [ ] No backdoor risk
- Check for unknown network request urls, and script/shell files with unclear purposes,
- The backend service cannot expose leaked data interfaces for various reasons (even for testing purposes)
- [ ] No network communication protocol risk
- Check whether to introduce unsafe network calls such as http/ws
- [ ] No import potentially risk 3rd library
- Check whether 3rd dependent library is import
- Don't use an unknown third-party library
- Check the 3rd library sources are fetched from normal sources, such as npm, gomodule, maven, cocoapod, Do not use unknown sources
- Check github Dependabot alerts, Whether to add new issues
- [ ] Private data not exposed
- Check whether there are exclusive ApiKey, privatekey and other private information uploaded to git
- Check if the packaged keystore has been uploaded to git
2 changes: 1 addition & 1 deletion .github/workflows/build-release-android.yml
Expand Up @@ -92,7 +92,7 @@ jobs:
popd
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
uses: gradle/gradle-build-action@v3
with:
gradle-version: 7.0.1

Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Expand Up @@ -92,5 +92,8 @@ imkey-core/ikc-tools/android-debug.sh
imkey-core/ikc-tools/build-android-linux.sh
imkey-core/ios-release/**
imkey-core/mobile-sdk/imKeyCoreX/Products/
imkey-core/mobile-sdk/imKeyCoreX/imKeyCoreX/libconnector.a

script/*-local.sh

ios-*.zip

0 comments on commit 03b5cad

Please sign in to comment.