Compare commits

...

382 Commits

Author SHA1 Message Date
poka 68c8a61939 add gdev.p2p.legal endpoint 2022-11-27 03:30:27 +01:00
poka 1878ea5f63 bump v0.0.12 2022-11-27 02:10:00 +01:00
poka 41b9db0dfb Gecko is now pluggued to indexer v0.3.0 with g1 history data 2022-11-27 01:59:58 +01:00
poka 61d28e79d6 flutter: upgrade to 3.3.9 2022-11-27 01:39:59 +01:00
pokapow 4f07c390bd Merge branch 'fix_anErrorOccured' into 'master'
Fix typo: anErrorOccurred

See merge request clients/gecko!36
2022-11-26 16:38:05 +01:00
Eloi Torrents 58c82069d4 Fix typo: anErrorOccurred 2022-11-24 10:08:02 +01:00
pokapow e0d1d3a085 Merge branch 'es_translations' into 'master'
Es translations

See merge request clients/gecko!35
2022-11-24 01:22:41 +01:00
Eloi Torrents 66dca555ab Add es translations 2022-11-24 00:19:22 +00:00
pokapow 54b721627b Merge branch 'fix_typos' into 'master'
Fix typos

See merge request clients/gecko!34
2022-11-24 01:18:22 +01:00
Eloi Torrents 985c888a47 Fix typos 2022-11-23 14:13:26 +01:00
guenoel cbeaacfca8 Merge branch 'ios-integration' into 'master'
Ios integration

See merge request clients/gecko!33
2022-11-16 15:54:34 +01:00
guenoel 32beb33be4 remove macos and windows deps 2022-11-16 15:50:18 +01:00
guenoel 459a76452b update ios deps 2022-11-16 15:49:49 +01:00
guenoel 57d68e012d update gitignore again 2022-11-16 15:47:38 +01:00
guenoel ae30355b9b gitignore mac, ios & windows 2022-11-16 15:30:49 +01:00
pokapow ebc69445ed Merge branch 'calculTxFees' into 'master'
Calcul tx fees

See merge request clients/gecko!32
2022-11-16 15:18:37 +01:00
poka be52158959 fix: unused method 2022-11-16 14:30:09 +01:00
poka 228e556198 fix: flutter format 2022-11-16 13:49:13 +01:00
poka 2c7dcd0ee6 try to fix drag feedback offset again 2022-11-16 13:39:42 +01:00
poka aa917b1c25 try to fix drag feedback offset 2022-09-23 21:41:41 +02:00
poka a0b0423856 estimate fees are ok and diplayed to user 2022-09-14 15:57:18 +02:00
poka 6443e04191 apply const colors 2022-09-12 12:38:32 +02:00
poka bf58e8e3d1 refactor Ud ratio compute 2022-09-12 12:04:08 +02:00
poka a0d6bfaf22 Merge branch 'codemetrics' 2022-09-12 11:35:24 +02:00
poka 0728bc6aba codemetrics: apply check-unused-files and check-unused-code 2022-09-12 11:32:41 +02:00
poka d927ccea39 install codemetric; apply changes for check-unnecessary-nullable 2022-09-12 11:22:26 +02:00
poka 2b0a0428a0 hot fix: bad UD ratio 2022-09-12 08:52:27 +02:00
poka eb9275fa84 bump v0.0.11+30 2022-09-12 08:36:59 +02:00
pokapow 09e1592f55 Merge branch 'dragNDropWalletsTransfert' into 'master'
Drag n drop wallets transfert

See merge request clients/gecko!31
2022-09-12 08:36:12 +02:00
poka a432db334d remove unused commented code 2022-09-12 08:28:19 +02:00
poka ad0019522f improve payment popup 2022-09-12 08:24:13 +02:00
poka d76ad9b7e3 improve dargndrop UX 2022-09-12 07:26:13 +02:00
poka 8b32bb8e26 payment inter wallets is working; bug with feedback position 2022-09-12 04:52:34 +02:00
poka edbe1d8b5c bump v0.0.11+28 2022-09-11 15:07:27 +02:00
pokapow 7f5dbf04ee Merge branch 'implementUdUnit' into 'master'
Implement ud unit

See merge request clients/gecko!30
2022-09-11 14:10:31 +02:00
poka 57cdc23436 fix bad balance displayed 2022-09-11 14:04:52 +02:00
poka 0233816f68 implement UD unit view 2022-09-11 13:14:52 +02:00
poka 776a0f8c75 improve migration text infos 2022-09-11 07:53:34 +02:00
pokapow 164fc16ed8 Merge branch 'revocation-mechanisme' into 'master'
Revocation mechanisme

See merge request clients/gecko!29
2022-09-10 06:35:22 +02:00
poka 83189990c6 test: verify you cannot revoke a smith member 2022-09-10 06:27:27 +02:00
poka 0d54030c1a can't revoke if smith member and explain why 2022-09-10 06:26:49 +02:00
poka 147557f545 increase transaction timeout to 18s 2022-09-09 10:41:53 +02:00
poka fd281ad822 add script to launch all tests 2022-09-09 01:39:11 +02:00
poka f7e3066352 fix test revocation 2022-09-09 01:12:17 +02:00
poka e2ed9c5c98 fix identity revocation call 2022-09-08 20:52:43 +02:00
poka 3825bf0488 fix revocation payload 2022-09-08 20:15:19 +02:00
poka e752de474d fix some tx bad status 2022-09-08 20:14:45 +02:00
poka 23b6858a60 add test: identity revocation 2022-09-08 14:37:00 +02:00
poka 8663186a4a wip: prepare extrinsic revocation 2022-09-06 12:14:50 +02:00
poka f46acb23e4 setSender methode 2022-09-06 09:29:29 +02:00
pokapow 549996578b Merge branch 'end2EndTests' into 'master'
End2end tests

See merge request clients/gecko!28
2022-09-05 09:47:27 +02:00
poka 34c69b64ee bump CI v0.0.11 2022-09-05 09:42:44 +02:00
poka 0fe0c4d3c5 remove unused deps 2022-09-05 08:35:24 +02:00
poka 03a9f1ea19 fix flutter format 2022-09-05 08:12:24 +02:00
poka d9222fe6ba add todo fix random bad widget ancestor after onboarding 2022-09-05 08:09:12 +02:00
poka 58572a5e0e migrate flutter 3.3.0 2022-09-05 04:15:27 +02:00
Hugo Trentesaux 7491b9b489 Migration docker compose 2022-09-01 16:43:55 +02:00
poka ad9ee382d3 wip: test onboarding 2022-09-01 04:51:51 +02:00
pokapow e01dea9329 Mettre à jour integration_test/README.md 2022-08-31 23:22:23 +02:00
poka 425677827c Add readme fo integration_tests 2022-08-31 23:21:11 +02:00
poka a8dbf79eaa improve test migrate Cesium wallet identity: check if balance is well transfered 2022-08-29 20:51:45 +02:00
poka 37dee7f866 fix: transferAll in batch for identity migration 2022-08-29 20:50:43 +02:00
poka 9301eaf1a7 add test: migrate Cesium wallet identity 2022-08-29 06:03:05 +02:00
poka 939c6b3108 remove old integration test bash script 2022-08-28 05:15:58 +02:00
poka 03ab85a282 refactor test utility; add ud creation state test 2022-08-28 05:08:41 +02:00
poka 525c375c71 add test: certs state on wallet view 2022-08-27 23:27:02 +02:00
poka 18743c871b fix: set good sender for cert action 2022-08-27 23:26:37 +02:00
poka 3761494606 refactor tests env 2022-08-27 05:43:43 +02:00
poka aa7bc74645 add .env to git repository with default value 2022-08-27 00:31:19 +02:00
poka 05f41e16a9 improve test speed 2022-08-25 00:34:27 +02:00
poka c060c85df8 flutter format 2022-08-24 23:59:51 +02:00
poka 27e4de7254 add coments to importChest test 2022-08-24 23:09:56 +02:00
poka a03f711539 add certtification workflow test 2022-08-24 21:53:16 +02:00
poka fbc8cbd0d9 improve spawnBlock in tests 2022-08-24 06:44:40 +02:00
poka 5744155400 can spawn new block just after transactions 2022-08-24 06:36:26 +02:00
poka afae4130a6 add script to launch duniter local node before integration tests 2022-08-23 23:46:01 +02:00
poka fc80f5693c test: execute a transaction to ChristCosmic 2022-08-23 02:13:54 +02:00
poka cbbd4eee34 refactoring: Declare keys for all widgets int widgets_keys.dart 2022-08-23 00:25:16 +02:00
poka dcb64c74b6 test integration is upgrade and working for restore chest 2022-08-22 22:58:54 +02:00
poka 9239901608 build: fix publish 2022-08-21 06:52:31 +02:00
poka 3abf2666ba can copy address from generated Cesium salt/password 2022-08-21 06:35:36 +02:00
poka ebc33e4f6c can auto push release with forum message 2022-08-21 06:35:06 +02:00
poka 2facd8cd7f lock identity name format on confirmation 2022-08-21 01:30:26 +02:00
poka dd49e76fa1 improve UX identity confirmation action 2022-08-21 00:44:23 +02:00
pokapow 5369599b20 Merge branch 'importCsAccounts' into 'master'
Import cs accounts

See merge request clients/gecko!27
2022-08-20 23:22:38 +02:00
poka ae5fe3b128 fix: flutter format 2022-08-20 23:18:59 +02:00
poka 3100dc5126 fix: bad rendering canCert if identity is created 2022-08-20 22:46:21 +02:00
poka 92992c2f69 fix cesium account import 2022-08-20 20:40:33 +02:00
poka ad601be19c can migrate identity from standart mnemonic derivation 2022-08-20 20:08:02 +02:00
poka c840753f4a identity migration is working 2022-08-20 16:55:55 +02:00
poka 99f939d5a2 WIP: message to sign is ok, but bad use of Uint8List signature 2022-08-19 23:15:41 +02:00
poka 506110cfc8 use binary concatenation instead of string 2022-08-19 19:23:38 +02:00
poka d42e715482 WIP: continue digging identity migration 2022-08-19 14:10:27 +02:00
poka 237e581d0f Ready to migrate identity, wait for signMessage methode in sdk
https://github.com/polkawallet-io/sdk/issues/31
2022-08-18 18:22:36 +02:00
poka 1b896960ea can migrate GD from Cesium wallets 2022-08-18 14:26:12 +02:00
poka dbfd033fba new screen for g1V1 salt/password import 2022-08-18 01:31:47 +02:00
poka 5ce381b174 fix: can't cert if identity is not confirmed 2022-08-17 23:28:19 +02:00
poka 0983c1d01e add messages about offline status in onboarding screens 2022-08-17 23:01:20 +02:00
poka 0687ae072f get onchain consts; fix batch validate membership 2022-08-17 17:50:05 +02:00
poka e8acb59f3e add ss58 test 2022-08-16 21:50:35 +02:00
poka 1995aaf4fb bump 0.0.9+22 2022-08-16 20:00:22 +02:00
poka 4a7f68626d fix: batch cert and validate membership 2022-08-16 19:59:53 +02:00
poka 4d027e0555 fix: import scanned wallets 2022-08-16 16:13:11 +02:00
poka 6af9199a76 add methode to import Cs account 2022-08-16 01:44:45 +02:00
poka 8a30ba70d7 wip: fix used chest import 2022-08-15 18:54:11 +02:00
poka 9a645e3733 bump v0.0.9+21 2022-08-15 18:09:03 +02:00
poka 1ed9f3d460 remove gd1 bootstrap endpoints 2022-08-15 18:05:07 +02:00
poka b546078c8f fix: sentry 3334937784 2022-08-15 17:59:12 +02:00
poka eaf81aa701 fix: sentry 3491636110 2022-08-15 17:31:17 +02:00
poka 3fad0f03f0 Add infos about current scan in last import screen 2022-08-15 12:58:47 +02:00
poka edb8735109 fix: scan derivation balances check 2022-08-15 12:35:19 +02:00
poka 5b0ea1b2af bump 0.0.9+19 2022-08-14 22:26:53 +02:00
poka d9aa66e1ec order contacts by usernames 2022-08-14 22:16:46 +02:00
poka c6d5b30090 add contacts management 2022-08-14 20:02:02 +02:00
poka 7fd82df733 remove unused sandbox screen 2022-08-14 18:10:03 +02:00
pokapow 6d55b551b1 Merge branch 'featuresGdev2' into 'master'
Features gdev2

See merge request clients/gecko!26
2022-08-14 17:04:37 +02:00
poka 7b778a74b1 check if node is connected before check balances 2022-08-14 16:34:24 +02:00
poka c603d2b201 fix: can delete wallet just after set it to default 2022-08-13 13:45:43 +02:00
poka 2d1b3731bb batch call is working for claimUd 2022-08-12 10:04:55 +02:00
poka 99c559d38c improve balance results; workaround batch (wip) 2022-08-11 19:19:50 +02:00
poka cd91ea838b refactor substrate_sdk.dart provider file; Add local node entry in settings 2022-08-11 15:47:08 +02:00
poka c487749f52 improve batch meca 2022-08-10 07:18:04 +02:00
poka 2526f382f1 type and lock balance computing 2022-08-09 12:02:02 +02:00
poka 2677cb8eb8 displayed balances are now transferabledBalances with unclaimed UDs 2022-08-09 11:26:45 +02:00
poka d71261d0ec WIP: unclaimed UD are almost calculated 2022-08-09 10:19:16 +02:00
poka 29754e23b5 prepare to implement unclaimedUd evaluation 2022-08-08 19:40:24 +02:00
poka 175334457a Add dead methode to get ss58 prefix from const storage; remove unused comments 2022-08-08 18:56:59 +02:00
poka a88034b206 Use certsByReceiver to gets certValidityPeriod instead of obsolete certsByReceiver call 2022-08-08 17:03:34 +02:00
poka 81772f923a implement batch for membership validation 2022-08-08 16:29:43 +02:00
poka d8f3936e20 fix: ignore certs state if dest identity is null 2022-08-08 15:03:22 +02:00
poka ef3ae9db4a upgrade to gradle 7.2.2 2022-08-08 13:43:49 +02:00
poka 68175924cb upgrade deps 2022-08-06 02:46:53 +02:00
poka dce9fc2117 fix gradle with new version 2022-08-06 02:40:26 +02:00
poka fad6ebd878 Upgrade dependencies; apply new lints infos 2022-08-06 02:22:41 +02:00
poka 4fb40ff3f1 fallback to english if user lang is not supported in debug mode 2022-08-06 01:45:06 +02:00
poka f44dd4aa76 add current bloc number in settings; remove Substrate debug menu 2022-07-22 22:36:11 +02:00
poka 10eeeba601 UI: Improve align of endpoints selection elements 2022-07-22 22:24:42 +02:00
poka a7d2e9a5d2 UI: Move QRCode to appbar in wallet option screen 2022-07-22 22:18:03 +02:00
poka c203364dc3 improve design of name + balance on wallet_home screen 2022-07-22 22:08:41 +02:00
poka 90f91be987 don't reset graphql cache on startup 2022-07-22 20:55:42 +02:00
pokapow f3cb9faca7 Merge branch 'manualNodeChange' into 'master'
wip: use dropdown to chose auto or manual endpoints

See merge request clients/gecko!25
2022-07-16 21:39:53 +02:00
poka e5ea67b6d0 bump +15 2022-07-16 21:25:08 +02:00
poka c5960f8376 can set custom indexer endpoint 2022-07-16 21:22:12 +02:00
poka b975061a67 change indexer endpoint in settings 2022-07-16 21:03:40 +02:00
poka 0f43100969 workflow for auto and custom endpoint is OK 2022-07-16 17:25:58 +02:00
poka c07cc9049b workaround dropdown 2022-07-14 18:18:19 +02:00
poka 5e5e6ee437 wip: use dropdown to chose auto or manual endpoints 2022-07-14 15:20:57 +02:00
pokapow b2af9daa3b Merge branch 'feature/publish-gecko-for-ios' into 'master'
Feature/publish gecko for ios

See merge request clients/gecko!24
2022-07-12 19:34:44 +02:00
poka d1976db24a add NSPhotoLibraryUsageDescription 2022-07-12 19:28:08 +02:00
cgeek ec953b380a feature(#27): add TeamID + `ITSAppUsesNonExemptEncryption` property 2022-07-12 19:28:03 +02:00
poka 183e89e32b fix: android theme 2022-07-09 00:00:37 +02:00
poka 366d2712fa bump +14 2022-07-08 23:48:49 +02:00
poka 39d87c765a fix: show no data message if history profile is empty 2022-07-08 23:48:07 +02:00
poka d25ad55b02 rollback to previous main.js version 2022-07-08 23:45:46 +02:00
poka 80ccc1f766 change github https sdk dependency 2022-07-08 20:18:34 +02:00
poka af3451b662 increase indexer timeout 2022-06-28 12:56:13 +02:00
poka c58d859d07 fix: Use _removableOn instead of _renewableOn for certification renewale delay (#13) 2022-06-28 12:23:14 +02:00
poka fd9467ef79 fix: cast double to int before sign and send transcation (#14) 2022-06-24 23:32:13 +02:00
poka e9c9019b50 remove todo 2022-06-18 16:39:40 +02:00
poka 51894fe6be flutter format 2022-06-18 03:21:54 +02:00
poka f02cd7d192 Merge branch 'easyLocalization' 2022-06-18 03:19:01 +02:00
poka b7b01bc45f bump version 2022-06-18 03:18:21 +02:00
poka a64a3c6948 Add Spanish template with a few translated sentences 2022-06-18 03:13:12 +02:00
poka e71e00c995 App is fully translate en/fr ! 2022-06-18 03:01:22 +02:00
Hugo Trentesaux 87a6f444b3 translation 4 2022-06-18 01:50:06 +02:00
Hugo Trentesaux c04416ae0e onboarding translation 3 2022-06-18 00:48:07 +02:00
Hugo Trentesaux c62c63f064 onboarding translation 2 2022-06-17 23:10:01 +02:00
Hugo Trentesaux f688bc39c7 onboarding translation 2022-06-17 22:19:14 +02:00
poka a4d72d036f factorize isMd text 2022-06-17 21:50:18 +02:00
poka 6f7dd4e413 cosmetic 2022-06-17 21:40:08 +02:00
poka 65f6f0a237 replace Multiple TextSpan for bold words by Markdown widget in onboarding 2022-06-17 21:34:47 +02:00
poka ad1a517553 fix flutter format 2022-06-17 20:18:54 +02:00
Hugo Trentesaux 8555c579bd welcome multilang! 2022-06-17 01:13:14 +02:00
poka b89de85e90 hello multilang ! 2022-06-16 22:29:42 +02:00
poka 1c3aa6997b change history to activity 2022-06-16 20:16:32 +02:00
poka 431089f42e Merge branch 'activityScreen' 2022-06-16 20:10:01 +02:00
poka b03a280356 improve headerProfileView: move to provider 2022-06-16 20:09:35 +02:00
poka a4f5b44a13 Hello Activity screen; paged history works for all profiles 2022-06-16 19:45:34 +02:00
poka 1c4da17db9 WIP: Refactore history screen to new activity screen 2022-06-16 02:43:30 +02:00
poka 4e9e2d40d1 change gif 3 2022-06-16 01:40:47 +02:00
poka 31619359d5 change gif demo2 2022-06-16 01:35:22 +02:00
poka e62f8fa69e change demo gif 2022-06-16 01:34:05 +02:00
poka f509703084 fix: deps for CI 2022-06-15 02:03:07 +02:00
poka 0781f26bc1 Merge branch 'implementIndexer' 2022-06-15 01:15:04 +02:00
poka 0ada1635c6 can search username in indexer 2022-06-15 01:14:23 +02:00
poka e90e3063ae fix flutter format 2022-06-14 22:10:35 +02:00
poka 58b6fba7ef gitlab-ci.yml; try to fix 2 2022-06-14 22:08:52 +02:00
poka 64e9ff1b44 gitlab-ci.yml; try to fix 2022-06-14 22:06:34 +02:00
poka d59d0c015a gitlab-ci.yml: remove comment 2022-06-14 22:00:15 +02:00
poka 05a7c82871 gitlab-ci.yml: remove space vefore comment 2022-06-14 21:59:32 +02:00
poka b196ed2bf1 check online indexer on startup^in bootstrap nodes; Don't use it in app if offline 2022-06-14 21:55:33 +02:00
poka 2ea2eeb255 wip indexer 2 2022-06-14 19:35:54 +02:00
poka d38cabe1eb wip indexer 2022-06-14 19:35:54 +02:00
poka 7f83965a8b Indexer client implemented; Display identity name when exist 2022-06-14 19:35:54 +02:00
poka cdfa62aad5 update CI image version; ignore build.gradle changes 2022-06-14 19:35:29 +02:00
poka 86e2f3b2d7 feat: crop circle avatar on import 2022-06-12 22:12:00 +02:00
poka 5ee80a5af4 feat: ask password for mnemonic display even if it's cached 2022-06-12 21:26:16 +02:00
poka 63c71fed01 feat: Edit wallet name in popup 2022-06-12 21:19:05 +02:00
poka 9ec7a6594d can't pay if offline 2022-06-12 19:56:43 +02:00
poka 1a49035cbf fix: bad parent widget in search; improve lost connection info 2022-06-12 19:43:13 +02:00
poka 7cbf328123 fix: check if node is connected before chest creation/import; Do not allow wallet generation if node is disconnected; live check 2022-06-12 19:20:15 +02:00
poka 7c11146278 Check network state, try to reconnect if network up, display message if offline 2022-06-12 18:03:17 +02:00
poka 29505ad1be update README: change roadmap 2022-06-10 23:16:42 +02:00
poka d62691d6f9 fix: null balance deleting check 2022-06-10 19:26:54 +02:00
poka fd5504eadd fix: paymentPopup: do not allow '.' or ',' in first 2022-06-10 18:07:30 +02:00
poka ed16565535 fix: allow comma in payment pop, replaced by point 2022-06-10 15:30:10 +02:00
poka 71d321700b restore chest: can use space to go next case 2022-06-10 01:24:50 +02:00
poka 4e69b945ed fix: can certify after renewable spend time 2022-06-09 23:42:20 +02:00
poka eeb7b03259 fix: change cacheBalance type 2022-06-09 23:08:28 +02:00
poka aebcbc6bdf add timeout to scanDerivation 2022-06-09 01:28:02 +02:00
poka 89b6527d10 bump polkawallet-sdk to change webview port from 8080 to 6234 2022-06-08 20:37:28 +02:00
poka 9962160608 set release keys 2022-06-08 15:32:44 +02:00
poka 69122f1d59 canDelete if balance == 0 or > 2 2022-06-08 04:52:20 +02:00
poka 89c52ab8d7 Delete wallet only if has no consumers 2022-06-08 04:24:06 +02:00
poka 20c5ebafcc canPay: detect creations fees if needed; can't empty your own wallet 2022-06-08 03:14:08 +02:00
poka 55f08dddd6 transferKeepAlive for all payments; transferAll to defaultWallet when deleting wallet with non null balance 2022-06-08 02:30:19 +02:00
poka 86467c06f3 Merge branch 'derivationsDetection' 2022-06-07 22:17:48 +02:00
poka b7817a3299 improve paste mnemonic button; set numberScan to 20 2022-06-07 22:16:56 +02:00
poka 263b99fb95 Scan derivation on import is OK 2022-06-07 21:36:57 +02:00
poka 4625fa1d70 fix the fix 2022-06-07 19:15:11 +02:00
poka 3f75fa5c20 fix: do not valid mnemonic word if others exist in import 2022-06-07 19:06:46 +02:00
poka d7fcf0636f wip: try to import existing wallets 2022-06-07 01:10:40 +02:00
poka a1767d289f improve member status view 2022-06-06 17:52:42 +02:00
poka 48e2b09b22 fix: layout cert message; show renewable message before cert delay 2022-06-06 17:05:35 +02:00
poka 5c49be4f12 bump v0.0.8+0 dataVersion 4 2022-06-05 21:28:16 +02:00
poka c82700a45f show cert state on profile view 2022-06-05 19:58:04 +02:00
poka bd87aee7ec fix: check if nextIssuableOn < blocNumber 2022-06-05 14:44:18 +02:00
poka 684974cd59 manage membership revoke 2022-06-05 02:22:22 +02:00
poka 36bc2f571f improve idty confirmation 2022-06-04 23:32:44 +02:00
poka 9eacbef2a8 feat: detect if a wallet can cert an address; improve errors view; 2022-06-04 17:24:33 +02:00
poka 6280517f8d improve certs view 2022-06-04 15:08:22 +02:00
poka 1cd3f74c6c feat: add certifications up and down; Check if wallet exist in wallet_view 2022-06-03 18:15:45 +02:00
poka 1eb966046c WIP: get received/sent certs 2022-06-02 19:58:23 +02:00
poka e7e4bca4e3 fix: no need of nullable defaultWallet 2022-06-02 15:43:22 +02:00
poka 6143a05596 fix: go gack to search list after cert 2022-06-02 13:19:32 +02:00
poka 7a9f2442e2 Change qrscan package with updtated API, compatible with iOS 2022-06-01 23:59:56 +02:00
poka 93f041eed8 upgrade dependencies 2022-06-01 22:49:35 +02:00
poka 6a57572434 Improve home message style 2022-06-01 21:00:17 +02:00
poka 8e49ac73ff fix: chest change not consistent; feat: Can create custom derivation number, and root wallet 2022-06-01 15:17:07 +02:00
poka 51182efe97 fix: isCacheChecked is false if null 2022-06-01 09:54:12 +02:00
poka 09116b956b fix: lowercase for mnemonic words; set pin cache choice to false as default 2022-06-01 07:33:56 +02:00
poka 86931bab5b add lock pin state 2022-05-31 18:58:44 +02:00
poka 8c1383bdd4 Complete refactoring of unlocking chests; Can cache pin code 15 minutes 2022-05-31 18:23:56 +02:00
poka d91d2cddb3 bump v7 2022-05-31 13:56:22 +02:00
poka 7c29bdc73c try release publish key 2022-05-31 11:44:36 +02:00
poka 19020f93f6 gradle 2022-05-30 20:30:06 +02:00
poka 15d0046e18 Don't load Cs+ image on wallet_view 2022-05-30 15:39:23 +02:00
poka 1a6dfdd617 Disconnect completly GVA and Cs+ 2022-05-30 15:32:00 +02:00
poka 7bef4a9cd3 bugs fix 2022-05-30 14:48:12 +02:00
poka 1a7224fd57 fix: no delay needed anymore in importKeyStore (good address rendering) 2022-05-30 06:22:43 +02:00
poka 54bc774aa3 Add todo comment about address delayed 2022-05-30 05:31:33 +02:00
poka cd6c3e9c70 Dynamic home message; improve node statut UX 2022-05-29 04:30:03 +02:00
poka 488435405c fix: no chest address anymore; Delete all wallet on startup if bad dataVersion 2022-05-29 01:38:27 +02:00
poka 98bb94ab78 Add screen to show chest mnemonic 2022-05-29 00:00:57 +02:00
poka 10f04c1a5a balanceBuilder on choose_wallets; bugs fix 2022-05-28 21:48:04 +02:00
poka f5c14e8924 fix: refresh bugs 2022-05-28 21:15:47 +02:00
poka f535bea932 Persitents profiles images; bugs fix; balances on wallets_home 2022-05-28 19:13:30 +02:00
poka df84eb7a48 cleaning code 2022-05-28 06:12:39 +02:00
poka 5aab5bb385 Use 'AAAAA' password even in production mode for tests 2022-05-28 05:59:56 +02:00
poka 104d00ff7e feat: Change short pubkey format 2022-05-28 00:17:50 +02:00
poka 2a4b54d9eb Merge branch 'bottomBar' 2022-05-28 00:04:59 +02:00
poka 3b0a49f216 fix: reponsive; Add 2 bootstrap endpoints 2022-05-28 00:04:37 +02:00
poka 7ae1d2ecd2 fix: Expanded flex bottomBar 2022-05-27 17:49:02 +02:00
poka 79e0773820 Add optionnal bottomAppBar 2022-05-27 16:58:03 +02:00
poka 459b3f0c29 More debug in snackBar 2022-05-27 12:54:25 +02:00
poka 8c390e511e fix: empty endpoint text if node not connected 2022-05-27 11:22:43 +02:00
poka 05b425c3d2 Set gdev first bootstrap; Can create idty, can cert; 2022-05-27 08:54:29 +02:00
poka 1227e15fa2 Set first gdev endpoint in bootstrap list; fix: default wallet on stratup 2022-05-27 06:11:09 +02:00
poka 6cbe5b2fd6 fix: responsive balance text 2022-05-26 02:35:29 +02:00
poka a6c9947b32 Merge branch 'improvePaymentUX' 2022-05-26 02:20:06 +02:00
poka 3672f4cd94 Refactoring of payment workflow UX 2022-05-26 02:19:29 +02:00
poka 0009fc4009 WIP: refactor payment UX workflow 2022-05-25 20:40:55 +02:00
poka e9291d9277 improve responsive; skip tuto after onboarding 2022-05-25 20:40:25 +02:00
poka 16d42d7f5f fix: Android 12 compatibility; Remove late cesiumSeed; 2022-05-25 09:41:48 +02:00
poka 047720e65f Merge branch 'paymentEndingRefactor' 2022-05-24 18:47:04 +02:00
poka 04ffabf052 fix: bad cache on balances 2022-05-24 18:31:41 +02:00
poka 14f784fdc9 Implement identity workflow 2022-05-24 16:51:40 +02:00
poka adcb876203 Add commented code to test endpoint connection 2022-05-23 12:39:01 +02:00
poka 7a6bda3545 Merge branch 'substrate-sdk' 2022-05-23 11:08:24 +02:00
poka f65106e798 onboarding: change pages size 2022-05-23 11:08:07 +02:00
poka ed734e271e Refactoring onboarding 2022-05-23 10:53:44 +02:00
poka 847619bef0 fix: organisation name 2022-05-22 01:42:43 +02:00
poka 5472a03bf3 fix: debug name 2022-05-21 06:52:30 +02:00
poka 3df8b44d67 so much UI changes/refacto 2022-05-21 06:47:26 +02:00
poka 81d1b7dd30 WIP: Bad icon 2022-05-20 16:02:42 +02:00
poka c5317f984d Improve wallet generation; Add menu to change endpoint; 2022-05-20 15:15:29 +02:00
poka 345a600599 Change derivation %3 to %2; Harden derivation 2022-05-20 07:22:57 +02:00
poka d53facca05 Can pay with substrate 2022-05-19 13:44:22 +02:00
poka 48d997c835 Globalized done 2022-05-19 09:07:26 +02:00
poka a72390f428 WIP: Continue digging global substratization 2022-05-19 07:00:25 +02:00
poka b1b27743a0 Upgrade to flutter 3 2022-05-16 22:27:25 +02:00
poka 88b3e9fb9b WIP: globalize changes 2022-05-04 19:00:09 +02:00
poka 370dabc01b Move sandbox button on setting tab 2022-05-04 16:41:08 +02:00
poka 4389f65ee0 Decompose seed getting 2022-03-02 22:21:53 +01:00
poka 4d06c74cab Derive mnemonic keystore 2022-02-22 10:39:45 +01:00
poka 3bec56fc09 Fix bug importAccount on SDK: https://github.com/polkawallet-io/sdk/pull/19 2022-02-22 09:27:10 +01:00
poka 981094ab0e WIP: Work about derivation: Can't get seed from stored keypair 2022-02-20 20:49:05 +01:00
poka 90c0765c91 fix ios icon 2022-02-20 13:27:47 +01:00
poka fa31a2d4d8 Import mnemonic; can pay; 2022-02-19 23:51:12 +01:00
poka d2c89b1f14 Improve keystore import 2022-02-18 19:49:37 +01:00
poka 900c4d2418 Begin to manage keystores 2022-02-18 18:57:03 +01:00
poka 1f1f7a3e85 WIP: Manage keystore 2022-02-18 02:19:08 +01:00
poka 3513b0440d Hello substrate sandbox: Successfully connected to local duniter v2s node; Best bloc realtime subscription 2022-02-18 00:20:21 +01:00
poka acf0e8f29b Fix mnemonic non initialized from first chest generation 2022-02-16 16:46:24 +01:00
poka c6203cced7 Fix AndroidActivity obsolete version; Fix dependencies versions 2022-02-16 16:29:08 +01:00
poka 0b3f082447 Merge branch 'byebyeRust' 2021-12-30 00:51:49 +01:00
poka 24d2ca5d0a Optimize payments: Use direct mnemonic or cesium seed instead of dewif unlocking; Add screen to choose a wallet other than default wallet for payment; Can restore chest from settings 2021-12-30 00:51:04 +01:00
poka f05c335073 Fix payments from HDWallets 2021-12-27 20:15:12 +01:00
poka cd71b0eb3d Fix pubkey derivations and few things 2021-12-24 15:27:38 +01:00
poka 7bdd564a91 Adapt to large screen 2021-12-23 21:44:24 +01:00
poka 33c1149987 use Durt 0.1.5; Split files between models and proviers; Use new appVersion getter for all plateform 2021-12-23 15:13:58 +01:00
poka bb090b62ce Migrate to null safety 2021-12-23 12:36:09 +01:00
poka 148302d509 Add back button to pdf print view 2021-12-21 16:10:33 +01:00
poka 224016d39e Upgrade gradle version 2021-12-21 13:35:25 +01:00
poka 7c7f604585 Fix: reload home page after cesium wallet creation 2021-12-21 11:06:11 +01:00
poka de18062b7a Gecko is working on web 2021-12-21 06:56:42 +01:00
poka 323d1ebee7 Fix most of bugs, still some 2021-12-20 21:33:03 +01:00
poka 2c67307399 WIP: A few bugs, Dewif unencryption very slow 2021-12-19 21:05:04 +01:00
poka ca812123a5 First try: Delete all rust dependencies, replaced by durt lib 2021-12-19 14:55:47 +01:00
poka be4337939a Remove unused custom asset folder 2021-12-19 12:06:28 +01:00
poka d6fb620f16 Remove no required packages from imports 2021-12-14 08:10:50 +01:00
poka 4bef232002 Merge branch 'implementFigma' 2021-12-05 06:24:01 +01:00
poka 0dbe559391 OnBoarding: Fix printer icon size 2021-12-05 06:15:57 +01:00
poka 819d5a4b9b Implement new payment view 2021-12-03 10:25:36 +01:00
poka d4e715e01a Reset nPage as well; increase nRepository 2021-12-02 07:57:05 +01:00
poka a0a5d02212 Improve performance of history explorer 2021-12-02 07:23:12 +01:00
poka 46bfb61391 Fix a few bugs 2021-12-01 08:39:59 +01:00
poka 8f0018e326 New history screen 2021-11-30 10:28:13 +01:00
poka bd87ea5ab8 Optimize profile view 2021-11-30 01:25:48 +01:00
poka 39881ba136 Add blockchain username in wallet view; Can open avatar fullscreen; Fix HD assets size in mywallets view 2021-11-29 05:53:21 +01:00
poka 300a6ce5cc Remake watch wallet view; improve search list results view 2021-11-29 04:05:08 +01:00
poka 77a15338ea Fix bad ssl certificate even in release mode...; Search non case sensitive for username 2021-11-27 08:04:58 +01:00
poka 012cd31daf Remove trace of gva search adapter 2021-11-27 07:48:35 +01:00
poka 48a04866b5 Improve search compute 2021-11-27 06:51:24 +01:00
poka 616801e6fe Search is working (WIP performance improvements) 2021-11-26 08:56:20 +01:00
poka 2ecf10eb03 Implement search view 2021-11-23 04:11:45 +01:00
poka d5aba0e7d1 Fix reload bugs when create or delete all wallets; Fix bug when changing chest secret code 2021-11-22 18:45:59 +01:00
poka 7eceac3f66 Fix UTF-8 accent support 2021-11-22 06:11:42 +01:00
poka fbff8a6a91 New import Chest screen 2021-11-21 06:36:20 +01:00
poka b24211e43d Text formatting 2021-11-21 02:52:01 +01:00
poka eceb2e3253 Implement welcome home screen; improve assets quality 2021-11-21 02:45:51 +01:00
poka c0c82734f4 Improve home responsive 2021-11-19 03:18:39 +01:00
poka 9d5c71b857 New home style 2021-11-19 00:17:00 +01:00
poka 679d1511c1 Merge branch 'multiChest' 2021-11-18 19:11:27 +01:00
poka 8cef9be7fe Fix integration testy 2021-11-18 05:00:03 +01:00
poka f36529819c Add chest options for standart chests: Can change pin code and delete chest 2021-11-18 04:41:45 +01:00
poka dfbab5a219 Can change pin code of Cesium chest 2021-11-18 02:37:46 +01:00
poka 106fcf2835 Implemente cesium wallet view 2021-11-17 06:20:23 +01:00
poka 4f316c40f5 Fix bad certificat for Duniter node on old Android version 2021-11-15 21:04:06 +01:00
poka 6d69d039d1 Improve responsive 2021-11-15 18:05:08 +01:00
poka 1b7c01bfe1 Increase AppBar height 2021-11-15 04:16:25 +01:00
poka 162bd0a730 Can change chest on unloncking screen 2021-11-15 04:10:03 +01:00
poka f15306e083 Fix: crash when try to open camera on Android 6 2021-11-15 02:28:15 +01:00
poka 30d5cd2e31 Improve choose_chest and unlocking_wallet screens 2021-11-15 00:54:30 +01:00
poka 97f20bafe5 Apply linter 2021-11-14 19:21:20 +01:00
poka 44eaee89a7 WIP: Make Cesium great again 2021-11-14 04:33:59 +01:00
poka f2055d1737 Gecko is now realy multiChest, with slideshow choice 2021-11-14 03:12:07 +01:00
poka 694437b188 WIP: Change defaultWallet Methode 2021-11-12 01:35:38 +01:00
poka d9417be1bf Continue design of chest choosing screen 2021-11-12 01:34:08 +01:00
poka d6cc44f623 Change launcher icon, remove shadow 2021-11-12 01:31:30 +01:00
poka 6bc09fa79a Improve chest screen 2021-11-11 22:38:28 +01:00
poka 6b146d7917 Fix: Show keyboard when renaming a wallet (thx Boris) 2021-11-11 22:37:27 +01:00
poka a417f9e0d3 Improve walletHome view: Custom avatars and options buttons 2021-11-11 14:45:12 +01:00
poka 4a6bc55fc3 WIP: Can change chest 2021-11-09 04:22:04 +01:00
poka f9bb49b3d0 Globalise colors 2021-11-08 23:12:25 +01:00
poka de4e0b5457 Merge branch 'HiveStorage' 2021-11-08 22:29:22 +01:00
poka 8963b50def ci: version 0.0.8, switch to stable channel 2021-11-08 18:29:55 +01:00
poka e4296bedd2 Fix: State refresh when changing default wallet; State refresh whern deleting all wallets; Tests are OK 2021-11-07 07:30:09 +01:00
poka 6c1fb47799 Hive migration complete (a few refresh state bugs to fix) 2021-11-07 06:50:09 +01:00
poka 0c55cdc141 WIP: remplace file storage with Hive boxes storage 2021-11-07 05:33:21 +01:00
poka 5296ab107b dubp: ignore classes with only static members 2021-11-07 04:23:34 +01:00
poka e14f55746e Fix appbar color 2021-11-06 20:19:27 +01:00
poka 574cb50f82 WIP: Migrate test_driver to integration_test 2021-11-06 03:34:48 +01:00
poka b3efa766d6 Fix renamming first derivation 2021-11-05 19:37:19 +01:00
poka d1ffe2a5dc Add test for renaming first created derivation: failed state 2021-11-05 18:25:21 +01:00
poka 1e728418a1 Start hive integration 2021-09-12 07:41:20 +02:00
poka be01b23901 Change to mono gva endpoint (not enough GVA endpoints available, and there probably won't be more given the substrate migration) 2021-09-12 07:41:01 +02:00
poka 9c52097e5b Upgrade package and adapat code 2021-09-12 07:40:20 +02:00
poka ca9d8ab4d6 Adapt to Flutter 2.5.0 2021-09-12 06:52:18 +02:00
poka 7b88d34fdb Remove ok sound on startup 2021-09-12 06:47:50 +02:00
pokapow 32ae4952cc Update README.md 2021-06-08 17:39:31 +00:00
pokapow d0d1f7b81f Update README.md with roadmap 2021-05-31 20:00:27 +00:00
285 changed files with 19447 additions and 13535 deletions

View File

@ -1,3 +0,0 @@
[alias]
bd = "make android-dev32"
br = "make"

1
.env Normal file
View File

@ -0,0 +1 @@
ip_address=127.0.0.1

23
.gitignore vendored
View File

@ -44,15 +44,20 @@ android/key.properties
# Exceptions to above rules.
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
# Autogenerated dart/rust binding code
native/dubp_rs/binding.h
packages/dubp_rs/lib/ffi.dart
# Rust compiled libs for android or ios
**/*.a
**/*.so
# Rust things
/target
pubkeys.txt
# Linux builds
linux/
# Custom
scripts/private/
AppDir/
appimage-builder-cache/
AppImageBuilder.yml
android/app/build.gradle
integration_test/duniter/data/chains/
# Ignore PC deps
macos/
windows/

View File

@ -5,12 +5,9 @@ stages:
- package
.env:
image: axiomteam/gecko-ci:v0.0.7
image: axiomteam/gecko-ci:v0.0.11
tags:
- redshift
before_script:
- rustup show
- rustc --version && cargo --version
format:
extends: .env
@ -21,9 +18,7 @@ format:
- when: manual
stage: format
script:
- cargo fmt -- --version
- cargo fmt -- --check
- flutter format --set-exit-if-changed lib packages/dubp_rs/lib/dubp.dart
- flutter format --set-exit-if-changed lib
build_and_test:
extends: .env
@ -35,36 +30,8 @@ build_and_test:
stage: build_and_test
tags:
- redshift
script:
- RUSTFLAGS="-D warnings" cargo make
- cd packages/dubp_rs && flutter pub get && cd ../..
script:
- flutter analyze
- cargo test
# - flutter test
lint:
extends: .env
rules:
- if: $CI_COMMIT_REF_NAME =~ /^wip*$/
when: manual
- if: $CI_COMMIT_TAG || $CI_MERGE_REQUEST_ID
- when: manual
stage: quality
script:
- cargo clippy -- -V
- cargo clippy --all --tests -- -D warnings --verbose
audit_dependencies:
extends: .env
rules:
- if: $CI_COMMIT_REF_NAME =~ /^wip*$/
when: manual
- if: $CI_COMMIT_TAG || $CI_MERGE_REQUEST_ID
- when: manual
stage: quality
script:
- cargo deny -V
- cargo deny check
releases:test:
extends: .env

View File

@ -1,10 +1,30 @@
# This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc.
#
# This file should be version controlled and should not be manually edited.
# This file should be version controlled.
version:
revision: 1aafb3a8b9b0c36241c5f5b34ee914770f015818
revision: 85684f9300908116a78138ea4c6036c35c9a1236
channel: stable
project_type: app
# Tracks metadata for the flutter migrate command
migration:
platforms:
- platform: root
create_revision: 85684f9300908116a78138ea4c6036c35c9a1236
base_revision: 85684f9300908116a78138ea4c6036c35c9a1236
- platform: android
create_revision: 85684f9300908116a78138ea4c6036c35c9a1236
base_revision: 85684f9300908116a78138ea4c6036c35c9a1236
# User provided section
# List of Local paths (relative to this file) that should be
# ignored by the migrate tool.
#
# Files that are not part of the templates will be ignored by default.
unmanaged_files:
- 'lib/main.dart'
- 'ios/Runner.xcodeproj/project.pbxproj'

View File

@ -1,5 +0,0 @@
[hooks]
pre-commit = "cargo fmt -- --check && flutter format --set-exit-if-changed lib packages/dubp_rs/lib/dubp.dart"
[logging]
verbose = true

2026
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +0,0 @@
[workspace]
members = ["native/dubp_rs"]
[profile.release]
lto = true
codegen-units = 1
debug = true
[patch.crates-io]
#dup-crypto = { path = "/home/elois/dev/duniter/libs/dubp-rs-libs/crypto" }

View File

@ -1,369 +0,0 @@
[env]
CARGO_MAKE_EXTEND_WORKSPACE_MAKEFILE = true
CARGO_MAKE_WORKSPACE_INCLUDE_MEMBERS = ["native/dubp_rs"]
ANDROID_PLATFORM_VERSION = "21"
TARGET_OS = "unknown"
RELEASE = true
DEV = false
LIB_OUT_DIR = "release"
[env.debug]
DEV = true
RELEASE = false
LIB_OUT_DIR = "debug"
[tasks.test-flow]
disabled = true
[tasks.android-dev32]
description = "development android i686 emulator"
category = "Build"
dependencies = [
"setup-crate-type-android",
"pre-android",
"android-i686",
"android-i686-release",
"post-android-i686",
"post-android",
]
[tasks.android-dev]
description = "development android x86_64 emulator"
category = "Build"
dependencies = [
"setup-crate-type-android",
"pre-android",
"android-x86_64",
"android-x86_64-release",
"post-android-x86_64",
"post-android",
]
[tasks.android-arm]
description = "build android ARM64 for actual device"
category = "Build"
dependencies = [
"setup-crate-type-android",
"pre-android",
"android-aarch64",
"android-aarch64-release",
"post-android-aarch64",
"post-android",
]
[tasks.build]
description = "Runs the rust compiler."
category = "Build"
dependencies = ["android"]
[tasks.build.mac]
description = "Runs the rust compiler."
category = "Build"
dependencies = ["android", "ios"]
# ANDROID
[tasks.android]
description = "Build android targets."
category = "Build"
dependencies = [
"setup-crate-type-android",
"pre-android",
"android-aarch64",
"android-aarch64-release",
"post-android-aarch64",
"android-armv7",
"android-armv7-release",
"post-android-armv7",
#"android-i686",
#"android-i686-release",
#"post-android-i686",
#"android-x86_64",
#"android-x86_64-release",
#"post-android-x86_64",
"post-android"
]
[tasks.android-build]
private = true
condition = { env_true = ["DEV"], env_set = ["ANDROID_TARGET"] }
command = "cargo"
args = [
"ndk",
"--platform",
"${ANDROID_PLATFORM_VERSION}",
"--target",
"${ANDROID_TARGET}",
"build",
]
[tasks.android-build-release]
private = true
condition = { env_true = ["RELEASE"], env_set = ["ANDROID_TARGET"] }
command = "cargo"
args = [
"ndk",
"--platform",
"${ANDROID_PLATFORM_VERSION}",
"--target",
"${ANDROID_TARGET}",
"build",
"--release"
]
[tasks.android-aarch64]
private = true
condition = { env_true = ["DEV"] }
env = { ANDROID_TARGET = "aarch64-linux-android" }
run_task = "android-build"
[tasks.android-armv7]
private = true
condition = { env_true = ["DEV"] }
env = { ANDROID_TARGET = "armv7-linux-androideabi" }
run_task = "android-build"
[tasks.android-i686]
private = true
condition = { env_true = ["DEV"] }
env = { ANDROID_TARGET = "i686-linux-android" }
run_task = "android-build"
[tasks.android-x86_64]
private = true
condition = { env_true = ["DEV"] }
env = { ANDROID_TARGET = "x86_64-linux-android" }
run_task = "android-build"
[tasks.android-aarch64-release]
private = true
condition = { env_true = ["RELEASE"] }
env = { ANDROID_TARGET = "aarch64-linux-android" }
run_task = "android-build-release"
[tasks.android-armv7-release]
private = true
condition = { env_true = ["RELEASE"] }
env = { ANDROID_TARGET = "armv7-linux-androideabi" }
run_task = "android-build-release"
[tasks.android-i686-release]
private = true
condition = { env_true = ["RELEASE"] }
env = { ANDROID_TARGET = "i686-linux-android" }
run_task = "android-build-release"
[tasks.android-x86_64-release]
private = true
condition = { env_true = ["RELEASE"] }
env = { ANDROID_TARGET = "x86_64-linux-android" }
run_task = "android-build-release"
[tasks.pre-android]
private = true
script_runner = "@duckscript"
script = [
"mkdir ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/packages/${CARGO_MAKE_CRATE_FS_NAME}/android/src/main/jniLibs/arm64-v8a",
"mkdir ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/packages/${CARGO_MAKE_CRATE_FS_NAME}/android/src/main/jniLibs/armeabi-v7a",
"mkdir ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/packages/${CARGO_MAKE_CRATE_FS_NAME}/android/src/main/jniLibs/x86",
"mkdir ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/packages/${CARGO_MAKE_CRATE_FS_NAME}/android/src/main/jniLibs/x86_64",
]
[tasks.android-copy-lib]
private = true
condition = { env_set = ["ANDROID_TARGET", "JNI_LIB_DIR"] }
script_runner = "@duckscript"
script = [
"""
cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/target/${ANDROID_TARGET}/${LIB_OUT_DIR}/lib${CARGO_MAKE_CRATE_FS_NAME}.so \
${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/packages/${CARGO_MAKE_CRATE_FS_NAME}/android/src/main/jniLibs/${JNI_LIB_DIR}/lib${CARGO_MAKE_CRATE_FS_NAME}.so
""",
]
[tasks.post-android-aarch64]
private = true
env = { ANDROID_TARGET = "aarch64-linux-android", JNI_LIB_DIR = "arm64-v8a" }
run_task = "android-copy-lib"
[tasks.post-android-armv7]
private = true
env = { ANDROID_TARGET = "armv7-linux-androideabi", JNI_LIB_DIR = "armeabi-v7a" }
run_task = "android-copy-lib"
[tasks.post-android-i686]
private = true
env = { ANDROID_TARGET = "i686-linux-android", JNI_LIB_DIR = "x86" }
run_task = "android-copy-lib"
[tasks.post-android-x86_64]
private = true
env = { ANDROID_TARGET = "x86_64-linux-android", JNI_LIB_DIR = "x86_64" }
run_task = "android-copy-lib"
[tasks.post-android]
dependencies = ["restore-crate-type"]
# IOS
[tasks.ios]
description = "build iOS targets"
category = "Build"
dependencies = ["ios-build", "ios-release", "post-ios"]
[tasks.ios-build]
condition = { platforms = ["mac"], env_true = ["DEV"] }
description = "Build ios targets."
category = "Build"
command = "cargo"
args = ["lipo"]
dependencies = [
"setup-crate-type-ios",
]
[tasks.ios-release]
condition = { platforms = ["mac"], env_true = ["RELEASE"] }
description = "Build ios targets."
category = "Build"
command = "cargo"
args = ["lipo", "--release"]
dependencies = [
"setup-crate-type-ios",
]
[tasks.post-ios]
script_runner = "@duckscript"
condition = { platforms = ["mac"] }
script = [
"""
cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/target/universal/${LIB_OUT_DIR}/lib${CARGO_MAKE_CRATE_FS_NAME}.a \
${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/packages/${CARGO_MAKE_CRATE_FS_NAME}/ios/lib${CARGO_MAKE_CRATE_FS_NAME}.a
""",
"""
cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/native/${CARGO_MAKE_CRATE_CURRENT_WORKSPACE_MEMBER}/binding.h \
${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/packages/${CARGO_MAKE_CRATE_FS_NAME}/ios/Classes/binding.h
""",
]
dependencies = ["restore-crate-type"]
# LINUX
[tasks.linux]
description = "Build linux targets."
category = "Build"
dependencies = [
"setup-crate-type-linux",
"pre-linux",
"linux-x86_64-release",
"linux-copy-lib",
"post-linux"
]
[tasks.pre-linux]
private = true
script_runner = "@duckscript"
script = [
"mkdir ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/packages/${CARGO_MAKE_CRATE_FS_NAME}/linux",
]
[tasks.linux-x86_64-release]
private = true
condition = { env_true = ["RELEASE"] }
env = { LINUX_TARGET = "x86_64-unknown-linux-gnu" }
run_task = "linux-build-release"
[tasks.linux-build-release]
private = true
condition = { env_true = ["RELEASE"], env_set = ["LINUX_TARGET"] }
command = "cargo"
args = [
"build",
"--release",
"--target",
"${LINUX_TARGET}"
]
[tasks.linux-copy-lib]
private = true
condition = { env_set = ["LINUX_TARGET"] }
script_runner = "@duckscript"
script = [
"""
cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/target/${LINUX_TARGET}/${LIB_OUT_DIR}/lib${CARGO_MAKE_CRATE_FS_NAME}.so \
${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/packages/${CARGO_MAKE_CRATE_FS_NAME}/linux/lib${CARGO_MAKE_CRATE_FS_NAME}.so
""",
]
[tasks.post-linux]
dependencies = ["restore-crate-type"]
# SETUP CRATE TYPE
[tasks.setup-crate-type-android]
private = true
env = { TARGET_OS = "android" }
run_task = "setup-crate-type"
[tasks.setup-crate-type-ios]
private = true
env = { TARGET_OS = "ios" }
run_task = "setup-crate-type"
[tasks.setup-crate-type-linux]
private = true
env = { TARGET_OS = "linux" }
run_task = "setup-crate-type"
[tasks.setup-crate-type]
private = true
script_runner = "@duckscript"
script = [
"""
toml = readfile ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/native/${CARGO_MAKE_CRATE_CURRENT_WORKSPACE_MEMBER}/Cargo.toml
crate_type = set ""
os = get_env TARGET_OS
is_android = eq ${os} "android"
is_ios = eq ${os} "ios"
is_linux = eq ${os} "linux"
if ${is_android}
crate_type = set "cdylib"
elseif ${is_ios}
crate_type = set "staticlib"
elseif ${is_linux}
crate_type = set "cdylib"
else
crate_type = set "rlib"
end
val = replace ${toml} "rlib" ${crate_type}
result = writefile ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/native/${CARGO_MAKE_CRATE_CURRENT_WORKSPACE_MEMBER}/Cargo.toml ${val}
assert ${result}
""",
]
# RESTORE CRATE TYPE
[tasks.restore-crate-type]
private = true
script_runner = "@duckscript"
script = [
"""
toml = readfile ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/native/${CARGO_MAKE_CRATE_CURRENT_WORKSPACE_MEMBER}/Cargo.toml
crate_type = set ""
os = get_env TARGET_OS
is_android = eq ${os} "android"
is_ios = eq ${os} "ios"
is_linux = eq ${os} "linux"
if ${is_android}
crate_type = set "cdylib"
elseif ${is_ios}
crate_type = set "staticlib"
elseif ${is_linux}
crate_type = set "cdylib"
else
crate_type = set "rlib"
end
val = replace ${toml} ${crate_type} "rlib"
result = writefile ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/native/${CARGO_MAKE_CRATE_CURRENT_WORKSPACE_MEMBER}/Cargo.toml ${val}
assert ${result}
""",
]

View File

@ -1,6 +1,6 @@
# Ğecko
Ğecko is a transaction client owned by [Axiom-Team association] and written in Dart. It is fast and secure thanks to native code compilation, Rust cryptography bindings and Duniter's new GraphQL API (GVA). It is not intended to manage member accounts, but rather simple wallets.
Ğecko is a transaction client owned by [Axiom-Team association] and written in Dart. It is fast and secure thanks to native code compilation. It is not intended to manage member accounts, but rather simple wallets.
The development is quite early, you can participate in the discussion [on the Duniter forum](https://forum.duniter.org/t/gecko-nouveau-client-de-paiements-1-sur-mobile-en-cours-de-developpement-dart-flutter/7857) (mostly FR)
@ -10,12 +10,9 @@ The development is quite early, you can participate in the discussion [on the Du
<div align="center">
![Demo Gif](https://git.p2p.legal/axiom-team/gecko/raw/branch/master/assets/Demo-0.0.1+0.gif)
![Demo Gif](https://git.duniter.org/clients/gecko/-/raw/master/images/demo-0.0.9+2.gif)
<br><br>
![Foo](https://git.p2p.legal/axiom-team/gecko/raw/commit/1cd2d63fe02949edabb69aa5fc498512c01db416/images/art/bb_gecko.png)
</div>
## Develop
@ -27,7 +24,6 @@ To contribute to the code, we advise you to install the following development en
- Android NDK
1. Flutter SDK
1. VSCode/Codium Flutter extension
1. Rust toolchain
This will take about 12GB on your drive and 30 min of your time (with a good connection). Don't hesitate to ask on the forum for a peer-coding session if you are stuck.
@ -58,12 +54,6 @@ Flutter is a powerfull SDK to develop Android apps. [Install it](https://flutter
We are using VSCode and therefore document the process for this IDE. Of course you're free to use whatever you want.
Clone the ğecko repo and open a dart file (e.g. `lib/main.dart`). VSCode will suggest you to insall relevant extensions.
### Rust toolchain
After installing Rust with the standard [rustup install script](https://www.rust-lang.org/tools/install),
follow the instructions to build Rust dependencies [in this separate README](./packages/dubp_rs/README.md).
If you installed a 32bits VM, use the 32bits build command.
### Build the app
In a dart file (e.g. `lib/main.dart`), type the `F5` key to build the code. The app should open automatically in your VM which is running.
@ -94,5 +84,6 @@ then
`flutter clean && flutter run -d linux`
## Roadmap
-> https://pad.p2p.legal/gecko-roadmap-2022?view

29
analysis_options.yaml Normal file
View File

@ -0,0 +1,29 @@
# This file configures the analyzer, which statically analyzes Dart code to
# check for errors, warnings, and lints.
#
# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
# invoked from the command line by running `flutter analyze`.
# The following line activates a set of recommended lints for Flutter apps,
# packages, and plugins designed to encourage good coding practices.
include: package:flutter_lints/flutter.yaml
linter:
# The lint rules applied to this project can be customized in the
# section below to disable rules from the `package:flutter_lints/flutter.yaml`
# included above or to enable additional rules. A list of all available lints
# and their documentation is published at
# https://dart-lang.github.io/linter/lints/index.html.
#
# Instead of disabling a lint rule for the entire project in the
# section below, it can also be suppressed for a single line of code
# or a specific dart file by using the `// ignore: name_of_lint` and
# `// ignore_for_file: name_of_lint` syntax on the line or in the file
# producing the lint.
rules:
# avoid_print: false # Uncomment to disable the `avoid_print` rule
# prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
# Additional information about this file can be found at
# https://dart.dev/guides/language/analysis-options

View File

@ -32,7 +32,7 @@ if (keystorePropertiesFile.exists()) {
}
android {
compileSdkVersion 29
compileSdkVersion 33
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
@ -44,9 +44,9 @@ android {
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.gecko"
minSdkVersion 16
targetSdkVersion 29
applicationId "gecko.axiomteam.fr"
minSdkVersion 19
targetSdkVersion 33
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
multiDexEnabled true
@ -65,7 +65,13 @@ android {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.release //poka: comment this to build unsigned release, or set to signingConfigs.debug to sign with debug keys
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
signingConfig signingConfigs.debug
debuggable true
}
}
}
@ -76,4 +82,5 @@ flutter {
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.work:work-runtime-ktx:2.7.0'
}

7
android/app/proguard-rules.pro vendored Normal file
View File

@ -0,0 +1,7 @@
-ignorewarnings
-keep class * {
public private *;
}
-dontwarn org.xmlpull.v1.XmlPullParser
-dontwarn org.xmlpull.v1.XmlSerializer
-keep class org.xmlpull.v1.* {*;}

View File

@ -1,5 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.gecko">
package="gecko.axiomteam.fr">
<!-- Flutter needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->

View File

@ -1,5 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.gecko">
package="gecko.axiomteam.fr">
<!-- io.flutter.app.FlutterApplication is an android.app.Application that
calls FlutterMain.startInitialization(this); in its onCreate method.
In most cases you can leave this as-is, but you if you want to provide
@ -9,40 +9,42 @@
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<application android:requestLegacyExternalStorage="true"
android:name="io.flutter.app.FlutterApplication"
android:label="Ğecko">
<application
android:requestLegacyExternalStorage="true"
android:name="${applicationName}"
android:label="Ğecko"
android:usesCleartextTraffic="true">
<!-- TODO: Remove usesCleartextTraffic for production mode ! kopa -->
<!-- android:icon="@mipmap/ic_launcher"> -->
<activity
android:requestLegacyExternalStorage="true"
android:name=".MainActivity"
android:icon="@mipmap/ic_launcher"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
android:windowSoftInputMode="adjustResize"
android:exported="true">
<!-- Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user
while the Flutter UI initializes. After that, this theme continues
to determine the Window background behind the Flutter UI. -->
<meta-data
<!-- <meta-data
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme"
/>
<!-- Displays an Android View that continues showing the launch screen
Drawable until Flutter paints its first frame, then this splash
screen fades out. A splash screen is useful to avoid any visual
gap between the end of Android's launch screen and the painting of
Flutter's first frame. -->
<meta-data
android:name="io.flutter.embedding.android.SplashScreenDrawable"
android:resource="@drawable/launch_background"
/>
android:icon="@mipmap/ic_launcher"
/> -->
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name="com.yalantis.ucrop.UCropActivity"
android:screenOrientation="portrait"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>
<!-- Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
<meta-data

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

View File

@ -1,4 +1,4 @@
package com.example.gecko
package gecko.axiomteam.fr
import io.flutter.embedding.android.FlutterActivity

View File

@ -0,0 +1,6 @@
package gecko.axiomteam.gecko
import io.flutter.embedding.android.FlutterActivity
class MainActivity: FlutterActivity() {
}

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="?android:colorBackground" />
<!-- You can insert your own image assets here -->
<!-- <item>
<bitmap
android:gravity="center"
android:src="@mipmap/launch_image" />
</item> -->
</layer-list>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when
the Flutter engine draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your
Flutter UI initializes, as well as behind your Flutter UI while its
running.
This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item>
</style>
</resources>

View File

@ -1,5 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.gecko">
package="gecko.axiomteam.fr">
<!-- Flutter needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->

View File

@ -1,12 +1,12 @@
buildscript {
ext.kotlin_version = '1.3.50'
ext.kotlin_version = '1.7.10'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath 'com.android.tools.build:gradle:7.2.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}

View File

@ -1,4 +1,3 @@
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
android.enableR8=true
android.enableJetifier=true

View File

@ -3,4 +3,5 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 MiB

BIN
assets/avatars/0.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

BIN
assets/avatars/1.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

BIN
assets/avatars/2.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

BIN
assets/avatars/3.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

BIN
assets/chests/0.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

BIN
assets/chests/1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

BIN
assets/chests/2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
assets/chests/3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

BIN
assets/chests/4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

BIN
assets/chests/5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

BIN
assets/chests/6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

BIN
assets/chests/7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

BIN
assets/chests/cesium.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

BIN
assets/chests/config.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

BIN
assets/chests/miniChests.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
assets/chests/vector.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

BIN
assets/copy_key.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

BIN
assets/gecko_certify.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

BIN
assets/home/background.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 KiB

BIN
assets/home/background.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 620 KiB

BIN
assets/home/bout_de_bulle.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

BIN
assets/home/header.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

14
assets/home/header.svg Executable file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 30 KiB

BIN
assets/home/loupe.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

1
assets/home/loupe.svg Executable file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 57 KiB

BIN
assets/home/qrcode.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
assets/home/wallet.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

92
assets/home/wallet.svg Normal file
View File

@ -0,0 +1,92 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
x="0px"
y="0px"
viewBox="0 0 100 125"
id="svg10"
sodipodi:docname="wallet.svg"
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
<metadata
id="metadata16">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs14">
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath138">
<rect
style="fill:#000000;fill-opacity:1"
id="rect140"
width="91.747101"
height="91.747101"
x="4.4194174"
y="957.15405" />
</clipPath>
</defs>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1015"
id="namedview12"
showgrid="true"
inkscape:zoom="5.6568543"
inkscape:cx="35.337997"
inkscape:cy="80.718182"
inkscape:window-x="1920"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg10" />
<g
transform="translate(0,-952.36218)"
id="g4"
clip-path="url(#clipPath138)"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
style="fill:#ffffff">
<path
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
d="M 50.90625 6 A 2.0002 2.0002 0 0 0 49.84375 6.5 L 30.0625 24.46875 L 18.1875 24.46875 C 15.543683 24.44965 13.123155 25.17569 11.25 26.46875 C 9.3768448 27.76181 7.9999596 29.75493 8 32.09375 L 8.03125 86.625 C 8.03684 88.8921 9.3819629 90.8203 11.1875 92.0625 C 12.993037 93.3047 15.308353 94 17.84375 94 L 77.6875 94 C 80.644255 94 83.374448 92.089642 84.4375 89.25 C 86.113053 89.114967 87.744729 88.6459 89.125 87.6875 C 90.81563 86.5136 92 84.44345 92 82.03125 L 92 32.09375 C 92 30.15621 91.430591 28.26221 90.1875 26.8125 C 88.944409 25.36279 86.997793 24.47521 84.8125 24.46875 L 74.96875 24.4375 L 69.5 13.25 A 2.0002 2.0002 0 0 0 67.53125 12.125 A 2.0002 2.0002 0 0 0 66.78125 12.34375 L 60.46875 15.59375 L 52.71875 6.6875 A 2.0002 2.0002 0 0 0 50.90625 6 z M 51.03125 10.84375 L 56.8125 17.5 L 26.5 33.125 L 51.03125 10.84375 z M 66.8125 16.84375 L 75.1875 33.96875 L 33.5625 34 L 66.8125 16.84375 z M 76.9375 28.4375 L 84.8125 28.46875 C 86.009294 28.47275 86.654841 28.85275 87.15625 29.4375 C 87.657659 30.0223 88 30.92895 88 32.09375 L 88 50.1875 L 67.625 50.1875 C 65.302589 50.1875 63.593739 52.225 63.59375 54.4375 L 63.59375 64.5 C 63.593768 66.7125 65.302709 68.78125 67.625 68.78125 L 88 68.78125 L 88 82.03125 C 88 83.31875 87.603802 83.87855 86.84375 84.40625 C 86.37816 84.729568 85.69117 84.975519 84.90625 85.125 L 84.90625 73.5625 A 2.0002 2.0002 0 1 0 80.90625 73.5625 L 80.90625 86.625 C 80.90625 88.7156 79.289498 90 77.6875 90 L 17.84375 90 C 16.046389 90 14.457371 89.48295 13.4375 88.78125 C 12.417629 88.07965 12.033004 87.30545 12.03125 86.59375 L 12 36.84375 C 13.469144 37.606227 15.201391 38.000302 17.0625 38 L 78.5 37.96875 C 79.316994 37.96862 79.724605 38.2578 80.15625 38.84375 C 80.587895 39.4297 80.906252 40.37836 80.90625 41.34375 L 80.90625 44.53125 A 2.0002 2.0002 0 1 0 84.90625 44.53125 L 84.90625 41.34375 C 84.906254 39.6214 84.425391 37.89465 83.375 36.46875 C 82.541915 35.337841 81.241284 34.452882 79.71875 34.125 L 76.9375 28.4375 z M 18.15625 28.46875 A 2.0002 2.0002 0 0 0 18.1875 28.46875 L 25.6875 28.46875 L 19.59375 34 L 17.0625 34 C 15.604391 34.00024 14.294499 33.60485 13.4375 33.0625 C 12.580501 32.52015 12.218298 31.89481 12.15625 31.40625 A 2.0002 2.0002 0 0 0 12.15625 31.375 C 12.362153 30.832741 12.788717 30.262578 13.53125 29.75 C 14.615705 29.00139 16.267859 28.45508 18.15625 28.46875 z M 67.625 54.1875 L 88 54.1875 L 88 64.78125 L 67.65625 64.78125 C 67.655285 64.784472 67.64577 64.78125 67.625 64.78125 C 67.611788 64.759611 67.59375 64.685125 67.59375 64.5 L 67.59375 54.4375 C 67.593749 54.1412 67.708223 54.1875 67.625 54.1875 z M 71.5 55.6875 A 2.0002 2.0002 0 0 0 69.71875 57.71875 L 69.71875 61.25 A 2.0002 2.0002 0 1 0 73.71875 61.25 L 73.71875 57.71875 A 2.0002 2.0002 0 0 0 71.5 55.6875 z "
transform="translate(0,952.36218)"
id="path2" />
</g>
<text
x="0"
y="115"
fill="#000000"
font-size="5px"
font-weight="bold"
font-family="'Helvetica Neue', Helvetica, Arial-Unicode, Arial, Sans-serif"
id="text6">Created by counloucon</text>
<text
x="0"
y="120"
fill="#000000"
font-size="5px"
font-weight="bold"
font-family="'Helvetica Neue', Helvetica, Arial-Unicode, Arial, Sans-serif"
id="text8">from the Noun Project</text>
</svg>

After

Width:  |  Height:  |  Size: 5.7 KiB

BIN
assets/icon/gecko_final.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 84 KiB

BIN
assets/icon/gecko_flat.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

BIN
assets/loupe-noire.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
assets/medal.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

BIN
assets/printer.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 460 B

After

Width:  |  Height:  |  Size: 11 KiB

BIN
assets/skull_Icon.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

199
assets/translations/en.json Normal file
View File

@ -0,0 +1,199 @@
{
"searchWallet": "Search\nwallet",
"manageWallets": "Manage\nwallets",
"scanQRCode": "Scan a\nQR code",
"wellConnectedToNode": "You are well connected to node\n{}",
"networkLost": "Network has been lost...",
"noDuniterEndointAvailable": "No server available...",
"connectionPending": "Connection pending...",
"noLizard": "no lounge lizard ;-)",
"loading": "Loading...",
"forgot_password.png": "forgot_password_en.png",
"warningForgotPassword": "In a blockchain, there is no email recovery procedure. Only your recovery phrase can allow you to recover your Ğ1 at any time.",
"fastAppDescription": "The {} app payment\nfaster than a reptile of Vietnam",
"createWallet": "Create a wallet",
"restoreWallet": "Restore my wallets",
"parameters": "Parameters",
"chooseAnotherMnemonic": "Choose an other\nmnemonic sentence",
"iNotedMyMnemonic": "I wrote down my sentence",
"printMyMnemonic": "Print my mnemonic sentence",
"manageChest": "Configure this chest",
"changeChest": "Change chest",
"geckoChest": "Ğecko chest",
"toUnlockEnterPassword": "To unlock your safe, enter your secret code, away from prying lizards:",
"rememberPassword": "Keep this code in memory for 15 minutes",
"myRootWallet": "My root wallet",
"currentWallet": "My current chest",
"wallet": "Wallet",
"displayMnemonic": "Display my mnemonic sentence",
"changePassword": "Change my password",
"createDerivation": "Create a new derivation",
"createCustomDerivation": "Create a new custom derivation",
"deleteChest": "Delete this chest",
"openThisChest": "Open this chest",
"createChest": "Create a new chest",
"importChest": "Import a chest",
"selectMyChest": "Select my chest",
"accessMyChest": "Access my chest",
"manageMembership": "Manage my membership",
"chooseThisWallet": "Choose this wallet",
"thisWalletIsDefault": "This wallet is the default one",
"defineWalletAsDefault": "Define this as the default one",
"displayActivity": "Display activity",
"displayNActivity": "Display\nactivity",
"memberValidated": "Validated member!",
"copyAddress": "Copy\naddress",
"copy": "Copy",
"thisAddressHasBeenCopiedToClipboard": "This address has been copied to clipboard",
"chooseWalletName": "Choose a new name\nfor your wallet:",
"choosePassword": "Choose a random password:",
"chooseDerivation": "Choose a derivation:",
"validate": "Validate",
"confirm": "Confirm",
"confirmPayment": "Confirm payment",
"geckoGenerateYourWalletFromMnemonic": "Ğecko builds your wallet from a **restoration sentence**. It is a bit like the blueprint that builds your wallet.",
"keepThisMnemonicSecure": "Keep this sentence carefully, because without it Ğecko will not be able to rebuild your wallets the day you change your phone.",
"geckoGeneratedYourMnemonicKeepItSecret": "Ğecko generated your mnemonic successfully! Keep it secret, because anyone who knows it can access all your wallets.",
"newWallet": "New Wallet",
"itsTimeToUseAPenAndPaper": "It's time to take a **pen and paper** in order to write down your mnemonic.",
"yourMnemonic": "Your mnemonic",
"gecko_also_can_forget.png": "gecko_also_can_forget_en.png",
"didYouNoteMnemonicToBeSureTypeWord": "Did you write down your menmonic?\n\n To be sure, please type the **{}th word** of your restoration phrase in the field below:",
"geckoWillGenerateAPassword": "Gecko will now generate for you a short password that will allow you to quickly access your wallets, without having to type your recovery sentence every time.",
"myPassword": "My password",
"thisPasswordProtectsYourWalletsInASecureChest": "This secret code protects your wallets in a safe **which only you have the code for**, so that your wallets cannot be used by others.",
"hereIsThePasswordKeepIt": "And here is your password!\n\nMemorize it or write it down, because you will be asked **every time** you want to make a payment on this device.",
"chooseAnotherPassword": "Choose an other password",
"iNotedMyPassword": "I noted my password",
"geckoWillCheckPassword": "Gecko will check with you if you have remembered your secret code.\n\n Type your secret code in the field below to check that you have written it down correctly.",
"yourChestAndWalletWereCreatedSuccessfully": "Super!\n\nYour chest and your first portfolio have been created with great success.\n\nCongratulations!",
"allGood": "That's all good!",
"areYouSureToDeleteWallet": "Are you sure you want to delete the chest \"{}\"?",
"areYouSureForgetAllChests": "Are you sure you want to forget all your chests?",
"areYouSureToForgetWallet": "Are you sure you wan to forget the wallet \"{}\"?",
"areYouSureYouWantToCertify": "Are you sure you want to certify the address:\n\n{}",
"yes": "Yes",
"no": "No",
"keepYourMnemonicSecret": "Try to keep this phrase a secret, as it allows anyone who knows it to access all your wallets.",
"iGeneratedYourMnemonicKeepItSecret": "I've generated your restoration phrase!\n Try to keep it a secret, as it allows anyone who knows it to access all your portfolios.",
"myMnemonic": "My mnemonic",
"close": "Close",
"toRestoreEnterMnemonic": "To restore your Gecko wallets, enter in the fields below the 12 words that constitute your restoration phrase:",
"pasteFromClipboard": "Paste from\nclipboard",
"restoreAChest": "Restore a chest",
"restoreThisChest": "Restore this chest",
"continue": "Continue",
"itsTheGoodWord": "It's the good word!",
"nthMnemonicWord": "word of your mnemonic",
"1th": "First",
"2th": "Second",
"3th": "Third",
"4th": "Fourth",
"5th": "Fifth",
"6th": "Sixth",
"7th": "Seventh",
"8th": "Eighth",
"9th": "Ninth",
"10th": "Tenth",
"11th": "Eleventh",
"12th": "Twelfth",
"yourPasswordLengthIsX": "Your password length is {}",
"noIdentity": "No identity",
"identityCreated": "Identity created",
"identityConfirmed": "Identity confirmed",
"identityExpired": "Identity expired",
"confirmYourIdentity": "Confirm your identity",
"noDuniterNodeAvailableTryLater": "No Duniter node available, please try again later",
"youAreConnectedToNode": "You are connected to node",
"accountActivity": "Account activity",
"noNetworkNoHistory": "Network state does not allow\nto display account history",
"noDataToDisplay": "No data to be displayed.",
"noTransactionToDisplay": "No transaction to display",
"month1": "January",
"month2": "February",
"month3": "March",
"month4": "April",
"month5": "May",
"month6": "June",
"month7": "July",
"month8": "August",
"month9": "September",
"month10": "October",
"month11": "November",
"month12": "December",
"today": "Today",
"yesterday": "Yesterday",
"thisWeek": "This week",
"chestNotCompatibleMustReinstallGecko": "The version of your safes is no longer compatible with this version of Ğecko.\nAll your safes will be forgotten, you must import them again.",
"notConnectedToInternet": "You are not connected to internet",
"researchResults": "Results of your research",
"resultsFor": "Results for ",
"forgetAllMyChests": "Forget all my chests",
"transaction": "Transaction",
"certification": "Certification",
"identityConfirm": "Identity confirmation",
"revokeAdhesion": "Adhesion revocation",
"strangeTransaction": "Strange transaction",
"sending": "Sending...",
"propagating": "Propagating...",
"validating": "Validating...",
"anErrorOccurred": "An error occurred",
"24hbetweenCerts": "You have to wait 24h between certs",
"canNotCertifySelf": "You can not certify yourself",
"nameAlreadyExist": "This name is already taken",
"2GDtoKeepAlive": "You have to keep at least 2ĞD to keep your account alive",
"youHaveToFeedThisAccountBeforeUsing": "You have to feed this account\nbefore using it.",
"execTimeoutOver": "Execution timeout is over",
"seeAWallet": "See a wallet",
"mustWaitXBeforeCertify": "You have to wait\n{} before\ncertifying again",
"mustConfirmHisIdentity": "This person must confirm\nhis identity before can be\ncertified",
"canRenewCertInX": "You can renew\nthis certification\nin {}",
"executeATransfer": "Execute a transfer",
"executeTheTransfer": "Execute the transfer",
"doATransfer" : "Execute a\ntransfer",
"seconds": "{} seconds",
"minutes": "{} minutes",
"hours": "{} hours {}",
"days": "{} days",
"months": "{} months",
"certify": "Certify",
"from": "From:",
"to": "To:",
"amount": "Amount:",
"choiceOfSourceWallet": "Choose a source wallet",
"extrinsicInProgress": "{} in progress",
"extrinsicValidated": "{} validated !",
"fromMinus": "from",
"toMinus": "to",
"deleteThisWallet": "Delete this wallet",
"cancel": "Cancel",
"inBlockchainResult": "In {} blockchain",
"search": "Search",
"currencyNode": "{} node :",
"contactsManagementWithNbr": "My contacts ({})",
"contactsManagement": "My contacts",
"noContacts": "You don't have any contact",
"addContact": "Add\nto contacts",
"removeContact": "Remove\nthis contact",
"derivationsScanProgress": "Scan address {}/{}",
"youAreOffline": "You are offline...",
"importG1v1": "Import old G1v1 account",
"selectDestWallet": "Select a target wallet:",
"youMustWaitBeforeCashoutThisAccount": "You have to wait a few moment before migrate this account",
"thisAccountIsEmpty": "This account is empty",
"youCannotMigrateIdentityToExistingIdentity": "You cannot migrate an identity\nto an account that already has an identity",
"importOldAccount": "Import your old account",
"enterCesiumId": "Enter your Cesium ID",
"enterCesiumPassword": "Enter your Cesium password",
"migrateAccount": "Migrate account",
"migrateIdentity": "Migrate identity",
"identityMigration": "Identity migration",
"areYouSureMigrateIdentity": "Are you sure you want to permanently migrate identity **{}** with balance of **{}** ?",
"someoneCreatedYourIdentity": "Someone created your {} identity !",
"confirmMyIdentity": "Confirm my identity",
"revokeMyIdentity": "Revoke my identity",
"youCannotRevokeThisIdentity": "You cannot revoke this identity while\nit is member of the blacksmiths web",
"showUdAmounts": "Show amounts in UD",
"ud": "{}UD",
"chooseATargetWallet": "Choose a target wallet"
}

199
assets/translations/es.json Normal file
View File

@ -0,0 +1,199 @@
{
"searchWallet": "Buscar\nbilletera",
"manageWallets": "Gestionar\nbilleteras",
"scanQRCode": "Escanear un\ncódigo QR",
"wellConnectedToNode": "Estas bien conectada al nodo\n{}",
"networkLost": "Se ha perdido la red...",
"noDuniterEndointAvailable": "No hay servidor disponible...",
"connectionPending": "Conexión pendiente...",
"noLizard": "no hay lagarto ;-)",
"loading": "Cargando...",
"forgot_password.png": "forgot_password_en.png",
"warningForgotPassword": "In a blockchain, there is no email recovery procedure. Only your recovery phrase can allow you to recover your Ğ1 at any time.",
"fastAppDescription": "La aplicación de pago {}\nmás rápida que un reptil de Vietnam",
"createWallet": "Crear una billetera",
"restoreWallet": "Restaurar mis billeteras",
"parameters": "Parámetros",
"chooseAnotherMnemonic": "Choose an other\nmnemonic sentence",
"iNotedMyMnemonic": "He escrito mi frase",
"printMyMnemonic": "Print my mnemonic sentence",
"manageChest": "Configure this chest",
"changeChest": "Change chest",
"geckoChest": "Ğecko chest",
"toUnlockEnterPassword": "To unlock your safe, enter your secret code, away from prying lizards:",
"rememberPassword": "Keep this code in memory for 15 minutes",
"myRootWallet": "Mi billetera principal",
"currentWallet": "My current chest",
"wallet": "Billetera",
"displayMnemonic": "Display my mnemonic sentence",
"changePassword": "Cambiar mi contraseña",
"createDerivation": "Create a new derivation",
"createCustomDerivation": "Create a new custom derivation",
"deleteChest": "Delete this chest",
"openThisChest": "Open this chest",
"createChest": "Create a new chest",
"importChest": "Import a chest",
"selectMyChest": "Select my chest",
"accessMyChest": "Access my chest",
"manageMembership": "Manage my membership",
"chooseThisWallet": "Elegir esta billetera",
"thisWalletIsDefault": "This wallet is the default one",
"defineWalletAsDefault": "Define this as the default one",
"displayActivity": "Display activity",
"displayNActivity": "Display\nactivity",
"memberValidated": "Miembro validado!",
"copyAddress": "Copiar\ndirección",
"copy": "Copiar",
"thisAddressHasBeenCopiedToClipboard": "Esta dirección se ha copiado al cortapapeles",
"chooseWalletName": "Choose a new name\nfor your wallet:",
"choosePassword": "Choose a random password:",
"chooseDerivation": "Choose a derivation:",
"validate": "Validar",
"confirm": "Confirmar",
"confirmPayment": "Confirmar pago",
"geckoGenerateYourWalletFromMnemonic": "Ğecko builds your wallet from a **restoration sentence**. It is a bit like the blueprint that builds your wallet.",
"keepThisMnemonicSecure": "Keep this sentence carefully, because without it Ğecko will not be able to rebuild your wallets the day you change your phone.",
"geckoGeneratedYourMnemonicKeepItSecret": "Ğecko generated your mnemonic successfully! Keep it secret, because anyone who knows it can access all your wallets.",
"newWallet": "New Wallet",
"itsTimeToUseAPenAndPaper": "It's time to take a **pen and paper** in order to write down your mnemonic.",
"yourMnemonic": "Your mnemonic",
"gecko_also_can_forget.png": "gecko_also_can_forget_en.png",
"didYouNoteMnemonicToBeSureTypeWord": "Did you write down your menmonic?\n\n To be sure, please type the **{}th word** of your restoration phrase in the field below:",
"geckoWillGenerateAPassword": "Gecko will now generate for you a short password that will allow you to quickly access your wallets, without having to type your recovery sentence every time.",
"myPassword": "My password",
"thisPasswordProtectsYourWalletsInASecureChest": "This secret code protects your wallets in a safe **which only you have the code for**, so that your wallets cannot be used by others.",
"hereIsThePasswordKeepIt": "And here is your password!\n\nMemorize it or write it down, because you will be asked **every time** you want to make a payment on this device.",
"chooseAnotherPassword": "Elige otra contraseña",
"iNotedMyPassword": "I noted my password",
"geckoWillCheckPassword": "Gecko will check with you if you have remembered your secret code.\n\n Type your secret code in the field below to check that you have written it down correctly.",
"yourChestAndWalletWereCreatedSuccessfully": "Super!\n\nYour chest and your first portfolio have been created with great success.\n\nCongratulations!",
"allGood": "That's all good!",
"areYouSureToDeleteWallet": "Are you sure you want to delete the chest \"{}\"?",
"areYouSureForgetAllChests": "Are you sure you want to forget all your chests?",
"areYouSureToForgetWallet": "Are you sure you wan to forget the wallet \"{}\"?",
"areYouSureYouWantToCertify": "Are you sure you want to certify the address:\n\n{}",
"yes": "Si",
"no": "No",
"keepYourMnemonicSecret": "Try to keep this phrase a secret, as it allows anyone who knows it to access all your wallets.",
"iGeneratedYourMnemonicKeepItSecret": "I've generated your restoration phrase!\n Try to keep it a secret, as it allows anyone who knows it to access all your portfolios.",
"myMnemonic": "My mnemonic",
"close": "Close",
"toRestoreEnterMnemonic": "To restore your Gecko wallets, enter in the fields below the 12 words that constitute your restoration phrase:",
"pasteFromClipboard": "Paste from\nclipboard",
"restoreAChest": "Restore a chest",
"restoreThisChest": "Restore this chest",
"continue": "Continuar",
"itsTheGoodWord": "It's the good word!",
"nthMnemonicWord": "word of your mnemonic",
"1th": "Primera",
"2th": "Segunda",
"3th": "Tercera",
"4th": "Cuarta",
"5th": "Quinta",
"6th": "Sexta",
"7th": "Séptima",
"8th": "Octava",
"9th": "Novena",
"10th": "Décima",
"11th": "Undécima",
"12th": "Duodécima",
"yourPasswordLengthIsX": "La longitud de tu contraseña es {}",
"noIdentity": "No identity",
"identityCreated": "Identidad creada",
"identityConfirmed": "Identidad confirmada",
"identityExpired": "Identitdad caducada",
"confirmYourIdentity": "Confirma tu identidad",
"noDuniterNodeAvailableTryLater": "No Duniter node available, please try again later",
"youAreConnectedToNode": "You are connected to node",
"accountActivity": "Actividad de la cuenta",
"noNetworkNoHistory": "Network state does not allow\nto display account history",
"noDataToDisplay": "No data to be displayed.",
"noTransactionToDisplay": "No transaction to display",
"month1": "Enero",
"month2": "Febrero",
"month3": "Marzo",
"month4": "Abril",
"month5": "Mayo",
"month6": "Junio",
"month7": "Julio",
"month8": "Agosto",
"month9": "Septiembre",
"month10": "Octubre",
"month11": "Noviembre",
"month12": "Diciembre",
"today": "Hoy",
"yesterday": "Ayer",
"thisWeek": "Esta semana",
"chestNotCompatibleMustReinstallGecko": "The version of your safes is no longer compatible with this version of Ğecko.\nAll your safes will be forgotten, you must import them again.",
"notConnectedToInternet": "No estas conectado a internet",
"researchResults": "Results of your research",
"resultsFor": "Results for ",
"forgetAllMyChests": "Forget all my chests",
"transaction": "Transaccion",
"certification": "Certificacion",
"identityConfirm": "Identity confirmation",
"revokeAdhesion": "Adhesion revocation",
"strangeTransaction": "Strange transaction",
"sending": "Enviando...",
"propagating": "Propagando...",
"validating": "Validando...",
"anErrorOccurred": "Ocurrió un error",
"24hbetweenCerts": "You have to wait 24h between certs",
"canNotCertifySelf": "You can not certify yourself",
"nameAlreadyExist": "This name is already taken",
"2GDtoKeepAlive": "You have to keep at least 2ĞD to keep your account alive",
"youHaveToFeedThisAccountBeforeUsing": "You have to feed this account\nbefore using it.",
"execTimeoutOver": "Execution timeout is over",
"seeAWallet": "Ver una billetera",
"mustWaitXBeforeCertify": "Tienes que esperar\n{} antes de\nvolver a certificar",
"mustConfirmHisIdentity": "This person must confirm\nhis identity before can be\ncertified",
"canRenewCertInX": "You can renew\nthis certification\nin {}",
"executeATransfer": "Execute a transfer",
"executeTheTransfer": "Execute the transfer",
"doATransfer" : "Execute a\ntransfer",
"seconds": "{} segundos",
"minutes": "{} minutos",
"hours": "{} horas {}",
"days": "{} dias",
"months": "{} meses",
"certify": "Certify",
"from": "De:",
"to": "A:",
"amount": "Importe:",
"choiceOfSourceWallet": "Choose a source wallet",
"extrinsicInProgress": "{} en progreso",
"extrinsicValidated": "{} validado !",
"fromMinus": "de",
"toMinus": "a",
"deleteThisWallet": "Delete this wallet",
"cancel": "Cancelar",
"inBlockchainResult": "In {} blockchain",
"search": "Buscar",
"currencyNode": "{} nodo :",
"contactsManagementWithNbr": "Mis contactos ({})",
"contactsManagement": "Mis contactos",
"noContacts": "You don't have any contact",
"addContact": "Add\nto contacts",
"removeContact": "Remove\nthis contact",
"derivationsScanProgress": "Scan address {}/{}",
"youAreOffline": "You are offline...",
"importG1v1": "Import old G1v1 account",
"selectDestWallet": "Select a target wallet:",
"youMustWaitBeforeCashoutThisAccount": "You have to wait a few moment before migrate this account",
"thisAccountIsEmpty": "This account is empty",
"youCannotMigrateIdentityToExistingIdentity": "You cannot migrate an identity\nto an account that already has an identity",
"importOldAccount": "Import your old account",
"enterCesiumId": "Ingrese su ID de Cesium",
"enterCesiumPassword": "Ingrese su contraseña de Cesium",
"migrateAccount": "Migrate account",
"migrateIdentity": "Migrate identity",
"identityMigration": "Identity migration",
"areYouSureMigrateIdentity": "Are you sure you want to permanently migrate identity **{}** with balance of **{}** ?",
"someoneCreatedYourIdentity": "Someone created your {} identity !",
"confirmMyIdentity": "Confirmar mi identidad",
"revokeMyIdentity": "Revocar mi identidad",
"youCannotRevokeThisIdentity": "You cannot revoke this identity while\nit is member of the blacksmiths web",
"showUdAmounts": "Show amounts in UD",
"ud": "{}UD",
"chooseATargetWallet": "Elija una billetera de destino"
}

200
assets/translations/fr.json Normal file
View File

@ -0,0 +1,200 @@
{
"searchWallet": "Rechercher un\nportefeuille",
"manageWallets": "Gérer mes\nportefeuilles",
"scanQRCode": "Scanner un\nQR code",
"wellConnectedToNode": "Vous êtes bien connecté aux noeud\n{}",
"networkLost": "Le réseau a été perdu...",
"noDuniterEndointAvailable": "Aucun serveur disponible...",
"connectionPending": "Connexion en cours...",
"noLizard": "y'a pas de lézard ;-)",
"loading": "Chargement en cours...",
"forgot_password.png": "forgot_password_fr.png",
"warningForgotPassword": "Dans une blockchain, pas de procédure de récupération par mail. Seule votre phrase de restauration peut vous permettre de récupérer vos Ğ1 à tout moment.",
"fastAppDescription": "Lapplication de paiement {}\nplus rapide quun reptile du Vietnam",
"createWallet": "Créer un portefeuille",
"restoreWallet": "Restaurer mes portefeuilles",
"parameters": "Paramètres",
"chooseAnotherMnemonic": "Choisir une autre phrase",
"iNotedMyMnemonic": "J'ai noté ma phrase",
"printMyMnemonic": "Imprimer ma phrase de restauration",
"manageChest": "Paramétrer ce coffre",
"changeChest": "Changer de coffre",
"geckoChest": "Coffre à Ğecko",
"toUnlockEnterPassword": "Pour déverrouiller votre coffre, composez votre code secret à labri des lézards indiscrets :",
"rememberPassword": "Garder ce code en mémoire 15 minutes",
"myRootWallet": "Mon portefeuille racine",
"currentWallet": "Mon portefeuille courant",
"wallet": "Portefeuille",
"displayMnemonic": "Afficher ma phrase de restauration",
"changePassword": "Changer mon code secret",
"createDerivation": "Créer une autre dérivation",
"createCustomDerivation": "Créer une dérivation personnalisé",
"deleteChest": "Supprimer ce coffre",
"openThisChest": "Ouvrir ce coffre",
"createChest": "Créer un nouveau coffre",
"importChest": "Importer un coffre",
"selectMyChest": "Sélectionner mon coffre",
"accessMyChest": "Accéder à mon coffre",
"manageMembership": "Gérer mon adhésion",
"chooseThisWallet": "Choisir ce portefeuille",
"thisWalletIsDefault": "Ce portefeuille est celui par defaut",
"defineWalletAsDefault": "Définir comme portefeuille par défaut",
"displayActivity": "Voir l'activité",
"displayNActivity": "Voir\nl'activité",
"memberValidated": "Membre validé !",
"copyAddress": "Copier\nl'adresse",
"copy": "Copier",
"thisAddressHasBeenCopiedToClipboard": "Cette adresse a été copié dans votre presse-papier.",
"chooseWalletName": "Choisissez un nouveau nom\npour votre portefeuille :",
"choosePassword": "Choisissez un code secret autogénéré :",
"chooseDerivation": "Choisissez une dérivation:",
"validate": "Valider",
"confirm": "Confirmer",
"confirmPayment": "Confirmer le paiement",
"geckoGenerateYourWalletFromMnemonic": "Ğecko fabrique votre portefeuille à partir dune **phrase de restauration**. Elle est un peu comme le plan qui permet de construire votre portefeuille.",
"keepThisMnemonicSecure": "Conservez cette phrase précieusement, car sans elle Ğecko ne pourra pas reconstruire vos portefeuilles le jour où vous changez de téléphone.",
"geckoGeneratedYourMnemonicKeepItSecret": "Gecko a généré votre phrase de restauration ! Tâchez de la garder bien secrète, car elle permet à quiconque la connaît daccéder à tous vos portefeuilles.",
"newWallet": "Nouveau portefeuille",
"itsTimeToUseAPenAndPaper": "Il est temps de vous munir d**un papier et dun crayon** afin de pouvoir noter votre phrase de restauration.",
"yourMnemonic": "Votre phrase de restauration",
"gecko_also_can_forget.png": "gecko_also_can_forget_fr.png",
"didYouNoteMnemonicToBeSureTypeWord": "Avez-vous bien noté votre phrase de restauration ?\n\nPour en être sûr, veuillez taper dans le champ ci-dessous le **{}ème mot** de votre phrase de restauration :",
"geckoWillGenerateAPassword": "Gecko va maintenant générer pour vous un code secret court qui vous permettra daccéder rapidement à vos portefeuilles, sans avoir à taper votre phrase de restauration à chaque fois.",
"myPassword": "Mon code secret",
"thisPasswordProtectsYourWalletsInASecureChest": "Ce code secret protège vos portefeuilles dans un coffre-fort **dont vous seul possédez le code**, de sorte que vos portefeuilles seront inutilisables par dautres.",
"hereIsThePasswordKeepIt": "Et voilà votre code secret !\n\nMémorisez-le ou notez-le, car il vous sera demandé **à chaque fois** que vous voudrez effectuer un paiement sur cet appareil.",
"chooseAnotherPassword": "Choisir un autre code secret",
"iNotedMyPassword": "J'ai noté mon code secret",
"geckoWillCheckPassword": "Gecko va vérifier avec vous si vous avez bien mémorisé votre code secret.\n\nTapez votre code secret dans le champ ci-dessous pour vérifier que vous lavez bien noté.",
"yourChestAndWalletWereCreatedSuccessfully": "Top !\n\nVotre coffre votre premier portefeuille ont été créés avec un immense succès.\n\nFélicitations !",
"allGood": "Cest tout bon !",
"areYouSureToDeleteWallet": "Êtes-vous sûr de vouloir supprimer le coffre \"{}\" ?",
"areYouSureForgetAllChests": "Êtes-vous sûr de vouloir oublier tous vos coffres ?",
"areYouSureToForgetWallet": "Êtes-vous sûr de vouloir oublier le portefeuille \"{}\" ?",
"areYouSureYouWantToCertify": "Êtes-vous certain de vouloir certifier l'adresse:\n\n{}",
"yes": "Oui",
"no": "Non",
"keepYourMnemonicSecret": "Tâchez de garder cette phrase bien secrète, car elle permet à quiconque la connaît daccéder à tous vos portefeuilles.",
"iGeneratedYourMnemonicKeepItSecret": "Jai généré votre phrase de restauration !\nTâchez de la garder bien secrète, car elle permet à quiconque la connaît daccéder à tous vos portefeuilles.",
"myMnemonic": "Ma phrase de restauration",
"close": "Fermer",
"toRestoreEnterMnemonic": "Pour restaurer vos portefeuilles Gecko, rentrez dans les champs ci-dessous les 12 mots qui constituent votre phrase de restauration :",
"pasteFromClipboard": "Coller depuis le\npresse-papier",
"restoreAChest": "Restaurer un coffre",
"restoreThisChest": "Restaurer ce coffre",
"continue": "Continuer",
"itsTheGoodWord": "C'est le bon mot !",
"nthMnemonicWord": "mot de votre phrase de restauration",
"1th": "Premier",
"2th": "Deuxième",
"3th": "Troisième",
"4th": "Quatrième",
"5th": "Cinquième",
"6th": "Sixième",
"7th": "Septième",
"8th": "Huitième",
"9th": "Neuvième",
"10th": "Dixième",
"11th": "Onzième",
"12th": "Douzième",
"yourPasswordLengthIsX": "Votre code PIN fait {} caractères",
"noIdentity": "Aucune identité",
"identityCreated": "Identité créée",
"identityConfirmed": "Identité confirmée",
"identityExpired": "Identité expirée",
"confirmYourIdentity": "Confirmez votre identité",
"noResult": "Aucun résultat",
"noDuniterNodeAvailableTryLater": "Aucun noeud Duniter disponible, veuillez réessayer ultérieurement",
"youAreConnectedToNode": "Vous êtes connecté au noeud",
"accountActivity": "Activité du compte",
"noNetworkNoHistory": "L'état du réseau ne permet pas\nd'afficher l'historique du compte",
"noDataToDisplay": "Aucune donnée à afficher.",
"noTransactionToDisplay": "Aucune transaction à afficher",
"month1": "Janvier",
"month2": "Février",
"month3": "Mars",
"month4": "Avril",
"month5": "Mai",
"month6": "Juin",
"month7": "Juillet",
"month8": "Aout",
"month9": "Septembre",
"month10": "Octobre",
"month11": "Novembre",
"month12": "Décembre",
"today": "Aujourd'hui",
"yesterday": "Hier",
"thisWeek": "Cette semaine",
"chestNotCompatibleMustReinstallGecko": "La version de vos coffres n'est plus comptabile avec cette version de Ğecko.\nTous vos coffres vont être oubliés, vous devez les importer de nouveau.",
"notConnectedToInternet": "Vous n'êtes pas connecté à internet",
"researchResults": "Résultats de votre recherche",
"resultsFor": "Résultats pour ",
"forgetAllMyChests": "Oublier tous mes coffres",
"transaction": "Transaction",
"certification": "Certification",
"identityConfirm": "Confirmation d'identité",
"revokeAdhesion": "Révocation d'adhésion",
"strangeTransaction": "Transaction étrange",
"sending": "Envoi en cours...",
"propagating": "En cours de propagation...",
"validating": "En cours de validation...",
"anErrorOccurred": "Une erreur s'est produite",
"24hbetweenCerts": "Vous devez attendre 24h entre chaque certification",
"canNotCertifySelf": "Vous ne pouvez pas vous certifier\nvous même ...",
"nameAlreadyExist": "Ce nom est déjà pris",
"2GDtoKeepAlive": "Vous devez garder au moins 2ĞD sur votre compte pour le garder actif",
"youHaveToFeedThisAccountBeforeUsing": "Vous devez alimenter ce compte avant\nde pouvoir l'utiliser",
"execTimeoutOver": "Le délais d'éxecution est dépassé",
"seeAWallet": "Voir un portefeuille",
"mustWaitXBeforeCertify": "Vous devez attendre\n{} avant\nde pouvoir certifier",
"mustConfirmHisIdentity": "Cette personne doit confirmer\nson identité avant de pouvoir\nêtre certifié",
"canRenewCertInX": "Vous pourrez renouveler\ncette certification\ndans {}",
"executeATransfer": "Effectuer un virement",
"executeTheTransfer": "Effectuer le virement",
"doATransfer": "Faire un\nvirement",
"seconds": "{} secondes",
"minutes": "{} minutes",
"hours": "{} heures {}",
"days": "{} jours",
"months": "{} mois",
"certify": "Certifier",
"from": "Depuis:",
"to": "Vers:",
"amount": "Montant:",
"choiceOfSourceWallet": "Choix du portefeuille source",
"extrinsicInProgress": "{} en cours",
"extrinsicValidated": "{} validé !",
"fromMinus": "de",
"toMinus": "vers",
"deleteThisWallet": "Supprimer ce portefeuille",
"cancel": "Annuler",
"inBlockchainResult": "Dans la blockchain {}",
"search": "Rechercher",
"currencyNode": "Noeud {} :",
"contactsManagementWithNbr": "Mes contacts ({})",
"contactsManagement": "Mes contacts",
"noContacts": "Vous n'avez aucun contact",
"addContact": "Ajouter\naux contacts",
"removeContact": "Supprimer\nce contact",
"derivationsScanProgress": "Scan de l'adresse {}/{}",
"youAreOffline": "Vous êtes hors ligne...",
"importG1v1": "Importer un ancien compte G1v1",
"selectDestWallet": "Sélectionnez un portefeuille cible:",
"youMustWaitBeforeCashoutThisAccount": "Vous devez attendre quelques minutes avant de pouvoir migrer ce compte",
"thisAccountIsEmpty": "Ce compte est vide",
"youCannotMigrateIdentityToExistingIdentity": "Vous ne pouvez pas migrer une identité\nvers un compte disposant déjà d'une identité",
"importOldAccount": "Importer son ancien compte",
"enterCesiumId": "Entrez votre identifiant Cesium",
"enterCesiumPassword": "Entrez votre mot de passe Cesium",
"migrateAccount": "Migrer le compte",
"migrateIdentity": "Migrer l'identité",
"identityMigration": "Migration de l'identité",
"areYouSureMigrateIdentity": "Êtes-vous certain de vouloir migrer définitivement l'identité **{}** et son solde de **{}** ?",
"someoneCreatedYourIdentity": "Quelqu'un a créé votre identité {} !",
"confirmMyIdentity": "Confirmer mon identité",
"revokeMyIdentity": "Révoquer mon identité",
"youCannotRevokeThisIdentity": "Vous ne pouvez pas révoquer cette identité tant\nqu'elle fait partie de la toile forgerons",
"showUdAmounts": "Afficher les montants en DU",
"ud": "{}DU",
"chooseATargetWallet": "Choisissez un portefeuille cible"
}

BIN
assets/vector_white.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
assets/wallet.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
assets/walletOptions/android-checkmark.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 264 B

After

Width:  |  Height:  |  Size: 11 KiB

BIN
assets/walletOptions/camera.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 585 B

After

Width:  |  Height:  |  Size: 7.2 KiB

BIN
assets/walletOptions/clock.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 19 KiB

BIN
assets/walletOptions/copy-white.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 482 B

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
assets/walletOptions/edit.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 284 B

After

Width:  |  Height:  |  Size: 11 KiB

BIN
assets/walletOptions/icon_oeuil.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 719 B

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

BIN
assets/walletOptions/key.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 492 B

After

Width:  |  Height:  |  Size: 4.7 KiB

BIN
assets/walletOptions/trash.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1,4 @@
[
"wss://gdev.p2p.legal/ws",
"wss://gdev.librelois.fr/ws"
]

View File

@ -1,5 +0,0 @@
[
"https://g1.librelois.fr/gva",
"https://duniter-gva.axiom-team.fr/gva",
"https://duniter-g1.p2p.legal/gva"
]

View File

@ -0,0 +1,6 @@
[
"https://gdev-indexer.p2p.legal",
"https://idx.gdev.cgeek.fr",
"https://duniter-indexer.coinduf.eu",
"http://192.168.1.72:8080"
]

View File

@ -1,55 +0,0 @@
[bans]
multiple-versions = "warn"
deny = [
# color-backtrace is nice but brings in too many dependencies and that are often outdated, so not worth it for us.
{ name = "color-backtrace" },
# deprecated
{ name = "quickersort" },
# term is not fully maintained, and termcolor is replacing it
{ name = "term" },
]
skip-tree = [
{ name = "winapi", version = "<= 0.3" },
]
[licenses]
unlicensed = "deny"
# We want really high confidence when inferring licenses from text
confidence-threshold = 0.8
allow = [
"AGPL-3.0",
"Apache-2.0",
"BSD-2-Clause",
"BSD-3-Clause",
"CC0-1.0",
"ISC",
"MIT",
"MPL-2.0",
"OpenSSL",
"Zlib"
]
[[licenses.clarify]]
name = "ring"
# SPDX considers OpenSSL to encompass both the OpenSSL and SSLeay licenses
# https://spdx.org/licenses/OpenSSL.html
# ISC - Both BoringSSL and ring use this for their new files
# MIT - "Files in third_party/ have their own licenses, as described therein. The MIT
# license, for third_party/fiat, which, unlike other third_party directories, is
# compiled into non-test libraries, is included below."
# OpenSSL - Obviously
expression = "ISC AND MIT AND OpenSSL"
license-files = [
{ path = "LICENSE", hash = 0xbd0eed23 },
]
[sources]
unknown-registry = "deny"
unknown-git = "deny"
allow-git = [
"https://git.duniter.org/libs/dubp-rs-client-lib",
"https://git.duniter.org/nodes/rust/modules/duniter-gva",
"https://github.com/librelois/fast-threadpool"
]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

BIN
images/demo-0.0.9+2.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Some files were not shown because too many files have changed in this diff Show More