Compare commits
382 Commits
jsonificat
...
master
Author | SHA1 | Date |
---|---|---|
poka | 68c8a61939 | |
poka | 1878ea5f63 | |
poka | 41b9db0dfb | |
poka | 61d28e79d6 | |
pokapow | 4f07c390bd | |
Eloi Torrents | 58c82069d4 | |
pokapow | e0d1d3a085 | |
Eloi Torrents | 66dca555ab | |
pokapow | 54b721627b | |
Eloi Torrents | 985c888a47 | |
guenoel | cbeaacfca8 | |
guenoel | 32beb33be4 | |
guenoel | 459a76452b | |
guenoel | 57d68e012d | |
guenoel | ae30355b9b | |
pokapow | ebc69445ed | |
poka | be52158959 | |
poka | 228e556198 | |
poka | 2c7dcd0ee6 | |
poka | aa917b1c25 | |
poka | a0b0423856 | |
poka | 6443e04191 | |
poka | bf58e8e3d1 | |
poka | a0d6bfaf22 | |
poka | 0728bc6aba | |
poka | d927ccea39 | |
poka | 2b0a0428a0 | |
poka | eb9275fa84 | |
pokapow | 09e1592f55 | |
poka | a432db334d | |
poka | ad0019522f | |
poka | d76ad9b7e3 | |
poka | 8b32bb8e26 | |
poka | edbe1d8b5c | |
pokapow | 7f5dbf04ee | |
poka | 57cdc23436 | |
poka | 0233816f68 | |
poka | 776a0f8c75 | |
pokapow | 164fc16ed8 | |
poka | 83189990c6 | |
poka | 0d54030c1a | |
poka | 147557f545 | |
poka | fd281ad822 | |
poka | f7e3066352 | |
poka | e2ed9c5c98 | |
poka | 3825bf0488 | |
poka | e752de474d | |
poka | 23b6858a60 | |
poka | 8663186a4a | |
poka | f46acb23e4 | |
pokapow | 549996578b | |
poka | 34c69b64ee | |
poka | 0fe0c4d3c5 | |
poka | 03a9f1ea19 | |
poka | d9222fe6ba | |
poka | 58572a5e0e | |
Hugo Trentesaux | 7491b9b489 | |
poka | ad9ee382d3 | |
pokapow | e01dea9329 | |
poka | 425677827c | |
poka | a8dbf79eaa | |
poka | 37dee7f866 | |
poka | 9301eaf1a7 | |
poka | 939c6b3108 | |
poka | 03ab85a282 | |
poka | 525c375c71 | |
poka | 18743c871b | |
poka | 3761494606 | |
poka | aa7bc74645 | |
poka | 05f41e16a9 | |
poka | c060c85df8 | |
poka | 27e4de7254 | |
poka | a03f711539 | |
poka | fbc8cbd0d9 | |
poka | 5744155400 | |
poka | afae4130a6 | |
poka | fc80f5693c | |
poka | cbbd4eee34 | |
poka | dcb64c74b6 | |
poka | 9239901608 | |
poka | 3abf2666ba | |
poka | ebc33e4f6c | |
poka | 2facd8cd7f | |
poka | dd49e76fa1 | |
pokapow | 5369599b20 | |
poka | ae5fe3b128 | |
poka | 3100dc5126 | |
poka | 92992c2f69 | |
poka | ad601be19c | |
poka | c840753f4a | |
poka | 99f939d5a2 | |
poka | 506110cfc8 | |
poka | d42e715482 | |
poka | 237e581d0f | |
poka | 1b896960ea | |
poka | dbfd033fba | |
poka | 5ce381b174 | |
poka | 0983c1d01e | |
poka | 0687ae072f | |
poka | e8acb59f3e | |
poka | 1995aaf4fb | |
poka | 4a7f68626d | |
poka | 4d027e0555 | |
poka | 6af9199a76 | |
poka | 8a30ba70d7 | |
poka | 9a645e3733 | |
poka | 1ed9f3d460 | |
poka | b546078c8f | |
poka | eaf81aa701 | |
poka | 3fad0f03f0 | |
poka | edb8735109 | |
poka | 5b0ea1b2af | |
poka | d9aa66e1ec | |
poka | c6d5b30090 | |
poka | 7fd82df733 | |
pokapow | 6d55b551b1 | |
poka | 7b778a74b1 | |
poka | c603d2b201 | |
poka | 2d1b3731bb | |
poka | 99c559d38c | |
poka | cd91ea838b | |
poka | c487749f52 | |
poka | 2526f382f1 | |
poka | 2677cb8eb8 | |
poka | d71261d0ec | |
poka | 29754e23b5 | |
poka | 175334457a | |
poka | a88034b206 | |
poka | 81772f923a | |
poka | d8f3936e20 | |
poka | ef3ae9db4a | |
poka | 68175924cb | |
poka | dce9fc2117 | |
poka | fad6ebd878 | |
poka | 4fb40ff3f1 | |
poka | f44dd4aa76 | |
poka | 10eeeba601 | |
poka | a7d2e9a5d2 | |
poka | c203364dc3 | |
poka | 90f91be987 | |
pokapow | f3cb9faca7 | |
poka | e5ea67b6d0 | |
poka | c5960f8376 | |
poka | b975061a67 | |
poka | 0f43100969 | |
poka | c07cc9049b | |
poka | 5e5e6ee437 | |
pokapow | b2af9daa3b | |
poka | d1976db24a | |
cgeek | ec953b380a | |
poka | 183e89e32b | |
poka | 366d2712fa | |
poka | 39d87c765a | |
poka | d25ad55b02 | |
poka | 80ccc1f766 | |
poka | af3451b662 | |
poka | c58d859d07 | |
poka | fd9467ef79 | |
poka | e9c9019b50 | |
poka | 51894fe6be | |
poka | f02cd7d192 | |
poka | b7b01bc45f | |
poka | a64a3c6948 | |
poka | e71e00c995 | |
Hugo Trentesaux | 87a6f444b3 | |
Hugo Trentesaux | c04416ae0e | |
Hugo Trentesaux | c62c63f064 | |
Hugo Trentesaux | f688bc39c7 | |
poka | a4d72d036f | |
poka | 6f7dd4e413 | |
poka | 65f6f0a237 | |
poka | ad1a517553 | |
Hugo Trentesaux | 8555c579bd | |
poka | b89de85e90 | |
poka | 1c3aa6997b | |
poka | 431089f42e | |
poka | b03a280356 | |
poka | a4f5b44a13 | |
poka | 1c4da17db9 | |
poka | 4e9e2d40d1 | |
poka | 31619359d5 | |
poka | e62f8fa69e | |
poka | f509703084 | |
poka | 0781f26bc1 | |
poka | 0ada1635c6 | |
poka | e90e3063ae | |
poka | 58b6fba7ef | |
poka | 64e9ff1b44 | |
poka | d59d0c015a | |
poka | 05a7c82871 | |
poka | b196ed2bf1 | |
poka | 2ea2eeb255 | |
poka | d38cabe1eb | |
poka | 7f83965a8b | |
poka | cdfa62aad5 | |
poka | 86e2f3b2d7 | |
poka | 5ee80a5af4 | |
poka | 63c71fed01 | |
poka | 9ec7a6594d | |
poka | 1a49035cbf | |
poka | 7cbf328123 | |
poka | 7c11146278 | |
poka | 29505ad1be | |
poka | d62691d6f9 | |
poka | fd5504eadd | |
poka | ed16565535 | |
poka | 71d321700b | |
poka | 4e69b945ed | |
poka | eeb7b03259 | |
poka | aebcbc6bdf | |
poka | 89b6527d10 | |
poka | 9962160608 | |
poka | 69122f1d59 | |
poka | 89c52ab8d7 | |
poka | 20c5ebafcc | |
poka | 55f08dddd6 | |
poka | 86467c06f3 | |
poka | b7817a3299 | |
poka | 263b99fb95 | |
poka | 4625fa1d70 | |
poka | 3f75fa5c20 | |
poka | d7fcf0636f | |
poka | a1767d289f | |
poka | 48e2b09b22 | |
poka | 5c49be4f12 | |
poka | c82700a45f | |
poka | bd87aee7ec | |
poka | 684974cd59 | |
poka | 36bc2f571f | |
poka | 9eacbef2a8 | |
poka | 6280517f8d | |
poka | 1cd3f74c6c | |
poka | 1eb966046c | |
poka | e7e4bca4e3 | |
poka | 6143a05596 | |
poka | 7a9f2442e2 | |
poka | 93f041eed8 | |
poka | 6a57572434 | |
poka | 8e49ac73ff | |
poka | 51182efe97 | |
poka | 09116b956b | |
poka | 86931bab5b | |
poka | 8c1383bdd4 | |
poka | d91d2cddb3 | |
poka | 7c29bdc73c | |
poka | 19020f93f6 | |
poka | 15d0046e18 | |
poka | 1a6dfdd617 | |
poka | 7bef4a9cd3 | |
poka | 1a7224fd57 | |
poka | 54bc774aa3 | |
poka | cd6c3e9c70 | |
poka | 488435405c | |
poka | 98bb94ab78 | |
poka | 10f04c1a5a | |
poka | f5c14e8924 | |
poka | f535bea932 | |
poka | df84eb7a48 | |
poka | 5aab5bb385 | |
poka | 104d00ff7e | |
poka | 2a4b54d9eb | |
poka | 3b0a49f216 | |
poka | 7ae1d2ecd2 | |
poka | 79e0773820 | |
poka | 459b3f0c29 | |
poka | 8c390e511e | |
poka | 05b425c3d2 | |
poka | 1227e15fa2 | |
poka | 6cbe5b2fd6 | |
poka | a6c9947b32 | |
poka | 3672f4cd94 | |
poka | 0009fc4009 | |
poka | e9291d9277 | |
poka | 16d42d7f5f | |
poka | 047720e65f | |
poka | 04ffabf052 | |
poka | 14f784fdc9 | |
poka | adcb876203 | |
poka | 7a6bda3545 | |
poka | f65106e798 | |
poka | ed734e271e | |
poka | 847619bef0 | |
poka | 5472a03bf3 | |
poka | 3df8b44d67 | |
poka | 81d1b7dd30 | |
poka | c5317f984d | |
poka | 345a600599 | |
poka | d53facca05 | |
poka | 48d997c835 | |
poka | a72390f428 | |
poka | b1b27743a0 | |
poka | 88b3e9fb9b | |
poka | 370dabc01b | |
poka | 4389f65ee0 | |
poka | 4d06c74cab | |
poka | 3bec56fc09 | |
poka | 981094ab0e | |
poka | 90c0765c91 | |
poka | fa31a2d4d8 | |
poka | d2c89b1f14 | |
poka | 900c4d2418 | |
poka | 1f1f7a3e85 | |
poka | 3513b0440d | |
poka | acf0e8f29b | |
poka | c6203cced7 | |
poka | 0b3f082447 | |
poka | 24d2ca5d0a | |
poka | f05c335073 | |
poka | cd71b0eb3d | |
poka | 7bdd564a91 | |
poka | 33c1149987 | |
poka | bb090b62ce | |
poka | 148302d509 | |
poka | 224016d39e | |
poka | 7c7f604585 | |
poka | de18062b7a | |
poka | 323d1ebee7 | |
poka | 2c67307399 | |
poka | ca812123a5 | |
poka | be4337939a | |
poka | d6fb620f16 | |
poka | 4bef232002 | |
poka | 0dbe559391 | |
poka | 819d5a4b9b | |
poka | d4e715e01a | |
poka | a0a5d02212 | |
poka | 46bfb61391 | |
poka | 8f0018e326 | |
poka | bd87ea5ab8 | |
poka | 39881ba136 | |
poka | 300a6ce5cc | |
poka | 77a15338ea | |
poka | 012cd31daf | |
poka | 48a04866b5 | |
poka | 616801e6fe | |
poka | 2ecf10eb03 | |
poka | d5aba0e7d1 | |
poka | 7eceac3f66 | |
poka | fbff8a6a91 | |
poka | b24211e43d | |
poka | eceb2e3253 | |
poka | c0c82734f4 | |
poka | 9d5c71b857 | |
poka | 679d1511c1 | |
poka | 8cef9be7fe | |
poka | f36529819c | |
poka | dfbab5a219 | |
poka | 106fcf2835 | |
poka | 4f316c40f5 | |
poka | 6d69d039d1 | |
poka | 1b7c01bfe1 | |
poka | 162bd0a730 | |
poka | f15306e083 | |
poka | 30d5cd2e31 | |
poka | 97f20bafe5 | |
poka | 44eaee89a7 | |
poka | f2055d1737 | |
poka | 694437b188 | |
poka | d9417be1bf | |
poka | d6cc44f623 | |
poka | 6bc09fa79a | |
poka | 6b146d7917 | |
poka | a417f9e0d3 | |
poka | 4a6bc55fc3 | |
poka | f9bb49b3d0 | |
poka | de4e0b5457 | |
poka | 8963b50def | |
poka | e4296bedd2 | |
poka | 6c1fb47799 | |
poka | 0c55cdc141 | |
poka | 5296ab107b | |
poka | e14f55746e | |
poka | 574cb50f82 | |
poka | b3efa766d6 | |
poka | d1ffe2a5dc | |
poka | 1e728418a1 | |
poka | be01b23901 | |
poka | 9c52097e5b | |
poka | ca9d8ab4d6 | |
poka | 7b88d34fdb | |
pokapow | 32ae4952cc | |
pokapow | d0d1f7b81f |
|
@ -1,3 +0,0 @@
|
|||
[alias]
|
||||
bd = "make android-dev32"
|
||||
br = "make"
|
|
@ -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/
|
|
@ -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
|
||||
|
|
24
.metadata
|
@ -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'
|
||||
|
|
|
@ -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
|
10
Cargo.toml
|
@ -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" }
|
369
Makefile.toml
|
@ -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}
|
||||
""",
|
||||
]
|
17
README.md
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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'
|
||||
}
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
-ignorewarnings
|
||||
-keep class * {
|
||||
public private *;
|
||||
}
|
||||
-dontwarn org.xmlpull.v1.XmlPullParser
|
||||
-dontwarn org.xmlpull.v1.XmlSerializer
|
||||
-keep class org.xmlpull.v1.* {*;}
|
|
@ -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.
|
||||
-->
|
||||
|
|
|
@ -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
|
||||
|
|
After Width: | Height: | Size: 50 KiB |
|
@ -1,4 +1,4 @@
|
|||
package com.example.gecko
|
||||
package gecko.axiomteam.fr
|
||||
|
||||
import io.flutter.embedding.android.FlutterActivity
|
||||
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
package gecko.axiomteam.gecko
|
||||
|
||||
import io.flutter.embedding.android.FlutterActivity
|
||||
|
||||
class MainActivity: FlutterActivity() {
|
||||
}
|
|
@ -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>
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 16 KiB |
|
@ -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>
|
|
@ -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.
|
||||
-->
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
org.gradle.jvmargs=-Xmx1536M
|
||||
android.useAndroidX=true
|
||||
android.enableJetifier=true
|
||||
android.enableR8=true
|
||||
android.enableJetifier=true
|
|
@ -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
|
||||
|
||||
|
|
Before Width: | Height: | Size: 1.3 MiB |
Before Width: | Height: | Size: 3.6 MiB |
After Width: | Height: | Size: 6.8 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 6.6 KiB |
After Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 6.8 KiB |
After Width: | Height: | Size: 5.0 KiB |
After Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 6.6 KiB |
After Width: | Height: | Size: 5.4 KiB |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 5.4 KiB |
After Width: | Height: | Size: 57 KiB |
After Width: | Height: | Size: 7.0 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 6.9 KiB |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 341 KiB |
After Width: | Height: | Size: 620 KiB |
After Width: | Height: | Size: 630 B |
After Width: | Height: | Size: 124 KiB |
After Width: | Height: | Size: 5.1 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 57 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 3.5 KiB |
|
@ -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 |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 84 KiB |
After Width: | Height: | Size: 72 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 104 KiB |
After Width: | Height: | Size: 112 KiB |
After Width: | Height: | Size: 238 KiB |
After Width: | Height: | Size: 211 KiB |
After Width: | Height: | Size: 166 KiB |
After Width: | Height: | Size: 166 KiB |
After Width: | Height: | Size: 166 KiB |
Before Width: | Height: | Size: 104 KiB |
Before Width: | Height: | Size: 6.7 KiB |
Before Width: | Height: | Size: 460 B After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 2.2 KiB |
|
@ -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"
|
||||
}
|
|
@ -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"
|
||||
}
|
|
@ -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": "L’application de paiement {}\nplus rapide qu’un 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 à l’abri 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 d’une **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 d’accéder à tous vos portefeuilles.",
|
||||
"newWallet": "Nouveau portefeuille",
|
||||
"itsTimeToUseAPenAndPaper": "Il est temps de vous munir d’**un papier et d’un 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 d’accé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 d’autres.",
|
||||
"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 l’avez bien noté.",
|
||||
"yourChestAndWalletWereCreatedSuccessfully": "Top !\n\nVotre coffre votre premier portefeuille ont été créés avec un immense succès.\n\nFélicitations !",
|
||||
"allGood": "C’est 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 d’accéder à tous vos portefeuilles.",
|
||||
"iGeneratedYourMnemonicKeepItSecret": "J’ai généré votre phrase de restauration !\nTâchez de la garder bien secrète, car elle permet à quiconque la connaît d’accé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"
|
||||
}
|
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 264 B After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 585 B After Width: | Height: | Size: 7.2 KiB |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 482 B After Width: | Height: | Size: 7.6 KiB |
Before Width: | Height: | Size: 284 B After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 719 B After Width: | Height: | Size: 7.4 KiB |
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 8.8 KiB |
Before Width: | Height: | Size: 492 B After Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 14 KiB |
|
@ -0,0 +1,4 @@
|
|||
[
|
||||
"wss://gdev.p2p.legal/ws",
|
||||
"wss://gdev.librelois.fr/ws"
|
||||
]
|
|
@ -1,5 +0,0 @@
|
|||
[
|
||||
"https://g1.librelois.fr/gva",
|
||||
"https://duniter-gva.axiom-team.fr/gva",
|
||||
"https://duniter-g1.p2p.legal/gva"
|
||||
]
|
|
@ -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"
|
||||
]
|
55
deny.toml
|
@ -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"
|
||||
]
|
Before Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 1.1 MiB |