From c70c9eef1144826c34b27847c41a27f55db67fb4 Mon Sep 17 00:00:00 2001 From: kev-techi Date: Mon, 10 Nov 2025 11:55:36 +0100 Subject: [PATCH 001/148] bump version --- pubspec.lock | 288 +++++++++++++++++++++++++++++---------------------- pubspec.yaml | 2 +- 2 files changed, 165 insertions(+), 125 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index caf39144..1c61ba3d 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -13,18 +13,18 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: da0d9209ca76bde579f2da330aeb9df62b6319c834fa7baae052021b0462401f + sha256: e55636ed79578b9abca5fecf9437947798f5ef7456308b5cb85720b793eac92f url: "https://pub.dev" source: hosted - version: "85.0.0" + version: "82.0.0" _flutterfire_internals: dependency: transitive description: name: _flutterfire_internals - sha256: ff0a84a2734d9e1089f8aedd5c0af0061b82fb94e95260d943404e0ef2134b11 + sha256: "214e6f07e2a44f45972e0365c7b537eaeaddb4598db0778dd4ac64b4acd3f5b1" url: "https://pub.dev" source: hosted - version: "1.3.59" + version: "1.3.55" adaptive_number: dependency: transitive description: @@ -37,10 +37,10 @@ packages: dependency: transitive description: name: analyzer - sha256: "974859dc0ff5f37bc4313244b3218c791810d03ab3470a579580279ba971a48d" + sha256: "904ae5bb474d32c38fb9482e2d925d5454cda04ddd0e55d2e6826bc72f6ba8c0" url: "https://pub.dev" source: hosted - version: "7.7.1" + version: "7.4.5" archive: dependency: "direct main" description: @@ -61,10 +61,10 @@ packages: dependency: transitive description: name: asn1lib - sha256: "9a8f69025044eb466b9b60ef3bc3ac99b4dc6c158ae9c56d25eeccf5bc56d024" + sha256: "0511d6be23b007e95105ae023db599aea731df604608978dada7f9faf2637623" url: "https://pub.dev" source: hosted - version: "1.6.5" + version: "1.6.4" async: dependency: "direct main" description: @@ -161,6 +161,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.2" + buffer: + dependency: transitive + description: + name: buffer + sha256: "389da2ec2c16283c8787e0adaede82b1842102f8c8aae2f49003a766c5c6b3d1" + url: "https://pub.dev" + source: hosted + version: "1.2.3" cached_network_image: dependency: "direct main" description: @@ -213,10 +221,10 @@ packages: dependency: transitive description: name: checked_yaml - sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f" + sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff url: "https://pub.dev" source: hosted - version: "2.0.4" + version: "2.0.3" cli_config: dependency: transitive description: @@ -253,10 +261,10 @@ packages: dependency: transitive description: name: connectivity_plus - sha256: b5e72753cf63becce2c61fd04dfe0f1c430cc5278b53a1342dc5ad839eab29ec + sha256: "051849e2bd7c7b3bc5844ea0d096609ddc3a859890ec3a9ac4a65a2620cc1f99" url: "https://pub.dev" source: hosted - version: "6.1.5" + version: "6.1.4" connectivity_plus_platform_interface: dependency: transitive description: @@ -286,10 +294,10 @@ packages: dependency: transitive description: name: coverage - sha256: "5da775aa218eaf2151c721b16c01c7676fbfdd99cebba2bf64e8b807a28ff94d" + sha256: "4b8701e48a58f7712492c9b1f7ba0bb9d525644dd66d023b62e1fc8cdb560c8a" url: "https://pub.dev" source: hosted - version: "1.15.0" + version: "1.14.0" credential_manager: dependency: "direct main" description: @@ -302,18 +310,18 @@ packages: dependency: transitive description: name: cross_file - sha256: "942a4791cd385a68ccb3b32c71c427aba508a1bb949b86dff2adbe4049f16239" + sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670" url: "https://pub.dev" source: hosted - version: "0.3.5" + version: "0.3.4+2" crypto: dependency: "direct main" description: name: crypto - sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf + sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855" url: "https://pub.dev" source: hosted - version: "3.0.7" + version: "3.0.6" cryptography: dependency: "direct main" description: @@ -386,6 +394,22 @@ packages: url: "https://pub.dev" source: hosted version: "5.0.3" + equatable: + dependency: transitive + description: + name: equatable + sha256: "567c64b3cb4cf82397aac55f4f0cbd3ca20d77c6c03bedbc4ceaddc08904aef7" + url: "https://pub.dev" + source: hosted + version: "2.0.7" + eth_sig_util: + dependency: transitive + description: + name: eth_sig_util + sha256: "20fdc5ce3864e70e5ade1c1cd03cce4ef01018db00adab107303f9055d26b01a" + url: "https://pub.dev" + source: hosted + version: "0.0.9" event: dependency: transitive description: @@ -430,58 +454,58 @@ packages: dependency: "direct main" description: name: file_picker - sha256: f2d9f173c2c14635cc0e9b14c143c49ef30b4934e8d1d274d6206fcb0086a06f + sha256: ef9908739bdd9c476353d6adff72e88fd00c625f5b959ae23f7567bd5137db0a url: "https://pub.dev" source: hosted - version: "10.3.3" + version: "10.2.0" firebase_core: dependency: "direct main" description: name: firebase_core - sha256: "7be63a3f841fc9663342f7f3a011a42aef6a61066943c90b1c434d79d5c995c5" + sha256: "8cfe3c900512399ce8d50fcc817e5758ff8615eeb6fa5c846a4cc47bbf6353b6" url: "https://pub.dev" source: hosted - version: "3.15.2" + version: "3.13.1" firebase_core_platform_interface: dependency: transitive description: name: firebase_core_platform_interface - sha256: cccb4f572325dc14904c02fcc7db6323ad62ba02536833dddb5c02cac7341c64 + sha256: d7253d255ff10f85cfd2adaba9ac17bae878fa3ba577462451163bd9f1d1f0bf url: "https://pub.dev" source: hosted - version: "6.0.2" + version: "5.4.0" firebase_core_web: dependency: transitive description: name: firebase_core_web - sha256: "0ed0dc292e8f9ac50992e2394e9d336a0275b6ae400d64163fdf0a8a8b556c37" + sha256: ddd72baa6f727e5b23f32d9af23d7d453d67946f380bd9c21daf474ee0f7326e url: "https://pub.dev" source: hosted - version: "2.24.1" + version: "2.23.0" firebase_messaging: dependency: "direct main" description: name: firebase_messaging - sha256: "60be38574f8b5658e2f22b7e311ff2064bea835c248424a383783464e8e02fcc" + sha256: "38111089e511f03daa2c66b4c3614c16421b7d78c84ee04331a0a65b47df4542" url: "https://pub.dev" source: hosted - version: "15.2.10" + version: "15.2.6" firebase_messaging_platform_interface: dependency: transitive description: name: firebase_messaging_platform_interface - sha256: "685e1771b3d1f9c8502771ccc9f91485b376ffe16d553533f335b9183ea99754" + sha256: ba254769982e5f439e534eed68856181c74e2b3f417c8188afad2bb440807cc7 url: "https://pub.dev" source: hosted - version: "4.6.10" + version: "4.6.6" firebase_messaging_web: dependency: transitive description: name: firebase_messaging_web - sha256: "0d1be17bc89ed3ff5001789c92df678b2e963a51b6fa2bdb467532cc9dbed390" + sha256: dba89137272aac39e95f71408ba25c33fb8ed903cd5fa8d1e49b5cd0d96069e0 url: "https://pub.dev" source: hosted - version: "3.10.10" + version: "3.10.6" fixnum: dependency: transitive description: @@ -579,10 +603,10 @@ packages: dependency: "direct dev" description: name: flutter_launcher_icons - sha256: "10f13781741a2e3972126fae08393d3c4e01fa4cd7473326b94b72cf594195e7" + sha256: bfa04787c85d80ecb3f8777bde5fc10c3de809240c48fa061a2c2bf15ea5211c url: "https://pub.dev" source: hosted - version: "0.14.4" + version: "0.14.3" flutter_lints: dependency: "direct dev" description: @@ -608,10 +632,10 @@ packages: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: "306f0596590e077338312f38837f595c04f28d6cdeeac392d3d74df2f0003687" + sha256: f948e346c12f8d5480d2825e03de228d0eb8c3a737e4cdaa122267b89c022b5e url: "https://pub.dev" source: hosted - version: "2.0.32" + version: "2.0.28" flutter_secure_storage: dependency: "direct main" description: @@ -664,10 +688,10 @@ packages: dependency: "direct main" description: name: flutter_svg - sha256: "055de8921be7b8e8b98a233c7a5ef84b3a6fcc32f46f1ebf5b9bb3576d108355" + sha256: d44bf546b13025ec7353091516f6881f1d4c633993cb109c3916c3a0159dadf1 url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.1.0" flutter_test: dependency: "direct dev" description: flutter @@ -682,10 +706,10 @@ packages: dependency: transitive description: name: freezed_annotation - sha256: "7294967ff0a6d98638e7acb774aac3af2550777accd8149c90af5b014e6d44d8" + sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2 url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "2.4.4" frontend_server_client: dependency: transitive description: @@ -706,10 +730,10 @@ packages: dependency: "direct main" description: name: go_router - sha256: b453934c36e289cef06525734d1e676c1f91da9e22e2017d9dcab6ce0f999175 + sha256: "0b1e06223bee260dee31a171fb1153e306907563a0b0225e8c1733211911429a" url: "https://pub.dev" source: hosted - version: "15.1.3" + version: "15.1.2" google_identity_services_web: dependency: transitive description: @@ -802,10 +826,10 @@ packages: dependency: "direct main" description: name: http - sha256: bb2ce4590bc2667c96f318d68cac1b5a7987ec819351d32b1c987239a815e007 + sha256: "2c11f3f94c687ee9bad77c171151672986360b2b001d109814ee7140b2cf261b" url: "https://pub.dev" source: hosted - version: "1.5.0" + version: "1.4.0" http_multi_server: dependency: transitive description: @@ -922,10 +946,10 @@ packages: dependency: transitive description: name: logger - sha256: a7967e31b703831a893bbc3c3dd11db08126fe5f369b5c648a36f821979f5be3 + sha256: be4b23575aac7ebf01f225a241eb7f6b5641eeaf43c6a8613510fc2f8cf187d1 url: "https://pub.dev" source: hosted - version: "2.6.2" + version: "2.5.0" logging: dependency: transitive description: @@ -938,10 +962,10 @@ packages: dependency: "direct main" description: name: lottie - sha256: "8ae0be46dbd9e19641791dc12ee480d34e1fd3f84c749adc05f3ad9342b71b95" + sha256: c5fa04a80a620066c15cf19cc44773e19e9b38e989ff23ea32e5903ef1015950 url: "https://pub.dev" source: hosted - version: "3.3.2" + version: "3.3.1" markdown: dependency: transitive description: @@ -986,10 +1010,10 @@ packages: dependency: "direct main" description: name: mobile_scanner - sha256: "023a71afb4d7cfb5529d0f2636aa8b43db66257905b9486d702085989769c5f2" + sha256: "72f06a071aa8b14acea3ab43ea7949eefe4a2469731ae210e006ba330a033a8c" url: "https://pub.dev" source: hosted - version: "7.1.3" + version: "7.0.0" mocktail: dependency: "direct dev" description: @@ -1006,14 +1030,6 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.0" - msgpack_dart: - dependency: transitive - description: - name: msgpack_dart - sha256: c2d235ed01f364719b5296aecf43ac330f0d7bc865fa134d0d7910a40454dffb - url: "https://pub.dev" - source: hosted - version: "1.0.1" nested: dependency: transitive description: @@ -1074,18 +1090,18 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: "16eee997588c60225bda0488b6dcfac69280a6b7a3cf02c741895dd370a02968" + sha256: "7976bfe4c583170d6cdc7077e3237560b364149fcd268b5f53d95a991963b191" url: "https://pub.dev" source: hosted - version: "8.3.1" + version: "8.3.0" package_info_plus_platform_interface: dependency: transitive description: name: package_info_plus_platform_interface - sha256: "202a487f08836a592a6bd4f901ac69b3a8f146af552bbd14407b6b41e1c3f086" + sha256: "6c935fb612dff8e3cc9632c2b301720c77450a126114126ffaafe28d2e87956c" url: "https://pub.dev" source: hosted - version: "3.2.1" + version: "3.2.0" path: dependency: "direct main" description: @@ -1114,18 +1130,18 @@ packages: dependency: transitive description: name: path_provider_android - sha256: e122c5ea805bb6773bb12ce667611265980940145be920cd09a4b0ec0285cb16 + sha256: d0d310befe2c8ab9e7f393288ccbb11b60c019c6b5afc21973eeee4dda2b35e9 url: "https://pub.dev" source: hosted - version: "2.2.20" + version: "2.2.17" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: efaec349ddfc181528345c56f8eda9d6cccd71c177511b132c6a0ddaefaa2738 + sha256: "4843174df4d288f5e29185bd6e72a6fbdf5a4a4602717eed565497429f179942" url: "https://pub.dev" source: hosted - version: "2.4.3" + version: "2.4.1" path_provider_linux: dependency: transitive description: @@ -1154,10 +1170,10 @@ packages: dependency: transitive description: name: petitparser - sha256: "1a97266a94f7350d30ae522c0af07890c70b8e62c71e8e3920d1db4d23c057d1" + sha256: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646" url: "https://pub.dev" source: hosted - version: "7.0.1" + version: "6.1.0" platform: dependency: transitive description: @@ -1186,18 +1202,18 @@ packages: dependency: transitive description: name: pool - sha256: "978783255c543aa3586a1b3c21f6e9d720eb315376a915872c61ef8b5c20177d" + sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" url: "https://pub.dev" source: hosted - version: "1.5.2" + version: "1.5.1" posix: dependency: transitive description: name: posix - sha256: "6323a5b0fa688b6a010df4905a56b00181479e6d10534cecfecede2aa55add61" + sha256: f0d7856b6ca1887cfa6d1d394056a296ae33489db914e365e2044fdada449e62 url: "https://pub.dev" source: hosted - version: "6.0.3" + version: "6.0.2" process_run: dependency: transitive description: @@ -1210,10 +1226,10 @@ packages: dependency: "direct main" description: name: provider - sha256: "4e82183fa20e5ca25703ead7e05de9e4cceed1fbd1eadc1ac3cb6f565a09f272" + sha256: "4abbd070a04e9ddc287673bf5a030c7ca8b685ff70218720abab8b092f53dd84" url: "https://pub.dev" source: hosted - version: "6.1.5+1" + version: "6.1.5" pub_semver: dependency: transitive description: @@ -1222,6 +1238,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.2.0" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082" + url: "https://pub.dev" + source: hosted + version: "1.5.0" qr: dependency: transitive description: @@ -1250,26 +1274,34 @@ packages: dependency: transitive description: name: reown_core - sha256: "8d5d14b4e8d008b09ec9db964ab8913b4fc17000d666eb1fece20a80a4b5e37a" + sha256: "171ce977b563b7b2fe0a17393517a4743ab758152d6c0c5158921a7ed3746326" url: "https://pub.dev" source: hosted - version: "1.3.6" + version: "1.1.5" reown_sign: dependency: transitive description: name: reown_sign - sha256: c2fec55ed3d0042d0802c80d7fc36f9b1937eac6ef9c2907dae3b8146188cffa + sha256: eb24d5b201635b0adbe15182c4cd2f831642dde05f59f033dac8de3bd423495d url: "https://pub.dev" source: hosted - version: "1.3.7" + version: "1.1.6" reown_walletkit: dependency: "direct main" description: name: reown_walletkit - sha256: f96cc9f6e264138b3411fd1635e06d437d5912d7a21ef28af21974e2680dfd70 + sha256: e639dbfac019270380b8f80105e11364f4962ff78fdc95d01aee16ea6f27fb2a url: "https://pub.dev" source: hosted - version: "1.3.7" + version: "1.1.5+1" + reown_yttrium: + dependency: transitive + description: + name: reown_yttrium + sha256: e59d9e8dbad8e2c420c201719da12bca528c38ecab9571364d5b6d18715ce773 + url: "https://pub.dev" + source: hosted + version: "0.0.1" rxdart: dependency: "direct main" description: @@ -1290,18 +1322,18 @@ packages: dependency: "direct main" description: name: share_plus - sha256: d7dc0630a923883c6328ca31b89aa682bacbf2f8304162d29f7c6aaff03a27a1 + sha256: b2961506569e28948d75ec346c28775bb111986bb69dc6a20754a457e3d97fa0 url: "https://pub.dev" source: hosted - version: "11.1.0" + version: "11.0.0" share_plus_platform_interface: dependency: transitive description: name: share_plus_platform_interface - sha256: "88023e53a13429bd65d8e85e11a9b484f49d4c190abbd96c7932b74d6927cc9a" + sha256: "1032d392bc5d2095a77447a805aa3f804d2ae6a4d5eef5e6ebb3bd94c1bc19ef" url: "https://pub.dev" source: hosted - version: "6.1.0" + version: "6.0.0" shared_preferences: dependency: "direct main" description: @@ -1314,18 +1346,18 @@ packages: dependency: transitive description: name: shared_preferences_android - sha256: "34266009473bf71d748912da4bf62d439185226c03e01e2d9687bc65bbfcb713" + sha256: "20cbd561f743a342c76c151d6ddb93a9ce6005751e7aa458baad3858bfbfb6ac" url: "https://pub.dev" source: hosted - version: "2.4.15" + version: "2.4.10" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: "1c33a907142607c40a7542768ec9badfd16293bac51da3a4482623d15845f88b" + sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03" url: "https://pub.dev" source: hosted - version: "2.5.5" + version: "2.5.4" shared_preferences_linux: dependency: transitive description: @@ -1436,6 +1468,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.10.1" + sprintf: + dependency: transitive + description: + name: sprintf + sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23" + url: "https://pub.dev" + source: hosted + version: "7.0.0" sqflite: dependency: "direct main" description: @@ -1448,34 +1488,34 @@ packages: dependency: transitive description: name: sqflite_android - sha256: ecd684501ebc2ae9a83536e8b15731642b9570dc8623e0073d227d0ee2bfea88 + sha256: "2b3070c5fa881839f8b402ee4a39c1b4d561704d4ebbbcfb808a119bc2a1701b" url: "https://pub.dev" source: hosted - version: "2.4.2+2" + version: "2.4.1" sqflite_common: dependency: "direct main" description: name: sqflite_common - sha256: "6ef422a4525ecc601db6c0a2233ff448c731307906e92cabc9ba292afaae16a6" + sha256: "84731e8bfd8303a3389903e01fb2141b6e59b5973cacbb0929021df08dddbe8b" url: "https://pub.dev" source: hosted - version: "2.5.6" + version: "2.5.5" sqflite_common_ffi: dependency: transitive description: name: sqflite_common_ffi - sha256: "9faa2fedc5385ef238ce772589f7718c24cdddd27419b609bb9c6f703ea27988" + sha256: "1f3ef3888d3bfbb47785cc1dda0dc7dd7ebd8c1955d32a9e8e9dae1e38d1c4c1" url: "https://pub.dev" source: hosted - version: "2.3.6" + version: "2.3.5" sqflite_common_ffi_web: dependency: "direct main" description: name: sqflite_common_ffi_web - sha256: "793c1ff5b0c95ac618e7731e209db99e96abff59ad3432a3c91bd2b1454a00d5" + sha256: "983cf7b33b16e6bc086c8e09f6a1fae69d34cdb167d7acaf64cbd3515942d4e6" url: "https://pub.dev" source: hosted - version: "1.0.1+2" + version: "1.0.0" sqflite_darwin: dependency: transitive description: @@ -1496,10 +1536,10 @@ packages: dependency: transitive description: name: sqlite3 - sha256: "3145bd74dcdb4fd6f5c6dda4d4e4490a8087d7f286a14dee5d37087290f0f8a2" + sha256: c0503c69b44d5714e6abbf4c1f51a3c3cc42b75ce785f44404765e4635481d38 url: "https://pub.dev" source: hosted - version: "2.9.4" + version: "2.7.6" stack_trace: dependency: transitive description: @@ -1536,10 +1576,10 @@ packages: dependency: transitive description: name: synchronized - sha256: c254ade258ec8282947a0acbbc90b9575b4f19673533ee46f2f6e9b3aeefd7c0 + sha256: "0669c70faae6270521ee4f05bffd2919892d42d1276e6c495be80174b6bc0ef6" url: "https://pub.dev" source: hosted - version: "3.4.0" + version: "3.3.1" term_glyph: dependency: transitive description: @@ -1608,26 +1648,26 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8 + sha256: "9d06212b1362abc2f0f0d78e6f09f726608c74e3b9462e8368bb03314aa8d603" url: "https://pub.dev" source: hosted - version: "6.3.2" + version: "6.3.1" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: "5c8b6c2d89a78f5a1cca70a73d9d5f86c701b36b42f9c9dac7bad592113c28e9" + sha256: "8582d7f6fe14d2652b4c45c9b6c14c0b678c2af2d083a11b604caeba51930d79" url: "https://pub.dev" source: hosted - version: "6.3.24" + version: "6.3.16" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: "6b63f1441e4f653ae799166a72b50b1767321ecc263a57aadf825a7a2a5477d9" + sha256: "7f2022359d4c099eea7df3fdf739f7d3d3b9faf3166fb1dd390775176e0b76cb" url: "https://pub.dev" source: hosted - version: "6.3.5" + version: "6.3.3" url_launcher_linux: dependency: transitive description: @@ -1640,10 +1680,10 @@ packages: dependency: transitive description: name: url_launcher_macos - sha256: "8262208506252a3ed4ff5c0dc1e973d2c0e0ef337d0a074d35634da5d44397c9" + sha256: "17ba2000b847f334f16626a574c702b196723af2a289e7a93ffcb79acff855c2" url: "https://pub.dev" source: hosted - version: "3.2.4" + version: "3.2.2" url_launcher_platform_interface: dependency: transitive description: @@ -1680,18 +1720,18 @@ packages: dependency: transitive description: name: uuid - sha256: a11b666489b1954e01d992f3d601b1804a33937b5a8fe677bd26b8a9f96f96e8 + sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff url: "https://pub.dev" source: hosted - version: "4.5.2" + version: "4.5.1" vector_graphics: dependency: transitive description: name: vector_graphics - sha256: a4f059dc26fc8295b5921376600a194c4ec7d55e72f2fe4c7d2831e103d461e6 + sha256: "44cc7104ff32563122a929e4620cf3efd584194eec6d1d913eb5ba593dbcf6de" url: "https://pub.dev" source: hosted - version: "1.1.19" + version: "1.1.18" vector_graphics_codec: dependency: transitive description: @@ -1704,10 +1744,10 @@ packages: dependency: transitive description: name: vector_graphics_compiler - sha256: d354a7ec6931e6047785f4db12a1f61ec3d43b207fc0790f863818543f8ff0dc + sha256: "557a315b7d2a6dbb0aaaff84d857967ce6bdc96a63dc6ee2a57ce5a6ee5d3331" url: "https://pub.dev" source: hosted - version: "1.1.19" + version: "1.1.17" vector_math: dependency: transitive description: @@ -1720,10 +1760,10 @@ packages: dependency: transitive description: name: vm_service - sha256: "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60" + sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02 url: "https://pub.dev" source: hosted - version: "15.0.2" + version: "15.0.0" wallet: dependency: transitive description: @@ -1736,10 +1776,10 @@ packages: dependency: transitive description: name: watcher - sha256: "592ab6e2892f67760543fb712ff0177f4ec76c031f02f5b4ff8d3fc5eb9fb61a" + sha256: "69da27e49efa56a15f8afe8f4438c4ec02eff0a117df1b22ea4aad194fe1c104" url: "https://pub.dev" source: hosted - version: "1.1.4" + version: "1.1.1" web: dependency: transitive description: @@ -1784,10 +1824,10 @@ packages: dependency: transitive description: name: win32 - sha256: d7cb55e04cd34096cd3a79b3330245f54cb96a370a1c27adb3c84b917de8b08e + sha256: "329edf97fdd893e0f1e3b9e88d6a0e627128cc17cc316a8d67fda8f1451178ba" url: "https://pub.dev" source: hosted - version: "5.15.0" + version: "5.13.0" x25519: dependency: transitive description: @@ -1808,10 +1848,10 @@ packages: dependency: transitive description: name: xml - sha256: "971043b3a0d3da28727e40ed3e0b5d18b742fa5a68665cca88e74b7876d5e025" + sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 url: "https://pub.dev" source: hosted - version: "6.6.1" + version: "6.5.0" yaml: dependency: transitive description: @@ -1821,5 +1861,5 @@ packages: source: hosted version: "3.1.3" sdks: - dart: ">=3.9.0 <4.0.0" - flutter: ">=3.35.0" + dart: ">=3.8.0-0 <4.0.0" + flutter: ">=3.29.0" diff --git a/pubspec.yaml b/pubspec.yaml index 9a8c05fd..8b536b17 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: citizenwallet -version: 2.0.29+286 +version: 2.0.30+287 publish_to: none description: A mobile wallet for your community. environment: From 6ae949efc05eda219c2bba372e265e46e532ebfd Mon Sep 17 00:00:00 2001 From: kev-techi Date: Mon, 10 Nov 2025 12:56:05 +0100 Subject: [PATCH 002/148] pod file update --- ios/Podfile.lock | 78 +++++++++++++++++++++++++++--------------------- 1 file changed, 44 insertions(+), 34 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index f1ccaa00..b35942fc 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -49,37 +49,37 @@ PODS: - file_picker (0.0.1): - DKImagePickerController/PhotoGallery - Flutter - - Firebase/CoreOnly (11.15.0): - - FirebaseCore (~> 11.15.0) - - Firebase/Messaging (11.15.0): + - Firebase/CoreOnly (11.10.0): + - FirebaseCore (~> 11.10.0) + - Firebase/Messaging (11.10.0): - Firebase/CoreOnly - - FirebaseMessaging (~> 11.15.0) - - firebase_core (3.15.2): - - Firebase/CoreOnly (= 11.15.0) + - FirebaseMessaging (~> 11.10.0) + - firebase_core (3.13.1): + - Firebase/CoreOnly (= 11.10.0) - Flutter - - firebase_messaging (15.2.10): - - Firebase/Messaging (= 11.15.0) + - firebase_messaging (15.2.6): + - Firebase/Messaging (= 11.10.0) - firebase_core - Flutter - - FirebaseCore (11.15.0): - - FirebaseCoreInternal (~> 11.15.0) - - GoogleUtilities/Environment (~> 8.1) - - GoogleUtilities/Logger (~> 8.1) - - FirebaseCoreInternal (11.15.0): - - "GoogleUtilities/NSData+zlib (~> 8.1)" - - FirebaseInstallations (11.15.0): - - FirebaseCore (~> 11.15.0) - - GoogleUtilities/Environment (~> 8.1) - - GoogleUtilities/UserDefaults (~> 8.1) + - FirebaseCore (11.10.0): + - FirebaseCoreInternal (~> 11.10.0) + - GoogleUtilities/Environment (~> 8.0) + - GoogleUtilities/Logger (~> 8.0) + - FirebaseCoreInternal (11.10.0): + - "GoogleUtilities/NSData+zlib (~> 8.0)" + - FirebaseInstallations (11.10.0): + - FirebaseCore (~> 11.10.0) + - GoogleUtilities/Environment (~> 8.0) + - GoogleUtilities/UserDefaults (~> 8.0) - PromisesObjC (~> 2.4) - - FirebaseMessaging (11.15.0): - - FirebaseCore (~> 11.15.0) + - FirebaseMessaging (11.10.0): + - FirebaseCore (~> 11.10.0) - FirebaseInstallations (~> 11.0) - GoogleDataTransport (~> 10.0) - - GoogleUtilities/AppDelegateSwizzler (~> 8.1) - - GoogleUtilities/Environment (~> 8.1) - - GoogleUtilities/Reachability (~> 8.1) - - GoogleUtilities/UserDefaults (~> 8.1) + - GoogleUtilities/AppDelegateSwizzler (~> 8.0) + - GoogleUtilities/Environment (~> 8.0) + - GoogleUtilities/Reachability (~> 8.0) + - GoogleUtilities/UserDefaults (~> 8.0) - nanopb (~> 3.30910.0) - Flutter (1.0.0) - flutter_inappwebview_ios (0.0.1): @@ -156,6 +156,9 @@ PODS: - Flutter - FlutterMacOS - PromisesObjC (2.4.0) + - reown_yttrium (0.0.1): + - Flutter + - YttriumWrapper (= 0.8.35) - SDWebImage (5.21.2): - SDWebImage/Core (= 5.21.2) - SDWebImage/Core (5.21.2) @@ -170,6 +173,7 @@ PODS: - SwiftyGif (5.4.5) - url_launcher_ios (0.0.1): - Flutter + - YttriumWrapper (0.8.35) DEPENDENCIES: - audioplayers_darwin (from `.symlinks/plugins/audioplayers_darwin/ios`) @@ -187,6 +191,7 @@ DEPENDENCIES: - nfc_manager (from `.symlinks/plugins/nfc_manager/ios`) - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) + - reown_yttrium (from `.symlinks/plugins/reown_yttrium/ios`) - share_plus (from `.symlinks/plugins/share_plus/ios`) - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) - sqflite_darwin (from `.symlinks/plugins/sqflite_darwin/darwin`) @@ -213,6 +218,7 @@ SPEC REPOS: - PromisesObjC - SDWebImage - SwiftyGif + - YttriumWrapper EXTERNAL SOURCES: audioplayers_darwin: @@ -245,6 +251,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/package_info_plus/ios" path_provider_foundation: :path: ".symlinks/plugins/path_provider_foundation/darwin" + reown_yttrium: + :path: ".symlinks/plugins/reown_yttrium/ios" share_plus: :path: ".symlinks/plugins/share_plus/ios" shared_preferences_foundation: @@ -263,13 +271,13 @@ SPEC CHECKSUMS: DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60 file_picker: be9a674155d9f334323856cb266e0d145d75d5c0 - Firebase: d99ac19b909cd2c548339c2241ecd0d1599ab02e - firebase_core: 99a37263b3c27536063a7b601d9e2a49400a433c - firebase_messaging: bf6697c61f31c7cc0f654131212ff04c0115c2c7 - FirebaseCore: efb3893e5b94f32b86e331e3bd6dadf18b66568e - FirebaseCoreInternal: 9afa45b1159304c963da48addb78275ef701c6b4 - FirebaseInstallations: 317270fec08a5d418fdbc8429282238cab3ac843 - FirebaseMessaging: 3b26e2cee503815e01c3701236b020aa9b576f09 + Firebase: 1fe1c0a7d9aaea32efe01fbea5f0ebd8d70e53a2 + firebase_core: 3c2f323cae65c97a636a05a23b17730ef93df2cf + firebase_messaging: 456e01ff29a451c90097d0b45925551d5be0c143 + FirebaseCore: 8344daef5e2661eb004b177488d6f9f0f24251b7 + FirebaseCoreInternal: ef4505d2afb1d0ebbc33162cb3795382904b5679 + FirebaseInstallations: 9980995bdd06ec8081dfb6ab364162bdd64245c3 + FirebaseMessaging: 2b9f56aa4ed286e1f0ce2ee1d413aabb8f9f5cb9 Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467 flutter_inappwebview_ios: 6f63631e2c62a7c350263b13fa5427aedefe81d4 flutter_secure_storage: d33dac7ae2ea08509be337e775f6b59f1ff45f12 @@ -285,14 +293,16 @@ SPEC CHECKSUMS: nfc_manager: d7da7cb781f7744b94df5fe9dbca904ac4a0939e OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94 package_info_plus: c0502532a26c7662a62a356cebe2692ec5fe4ec4 - path_provider_foundation: 0b743cbb62d8e47eab856f09262bb8c1ddcfe6ba + path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 + reown_yttrium: c0e87e5965fa60a3559564cc35cffbba22976089 SDWebImage: 9f177d83116802728e122410fb25ad88f5c7608a share_plus: 8b6f8b3447e494cca5317c8c3073de39b3600d1f - shared_preferences_foundation: 5086985c1d43c5ba4d5e69a4e8083a389e2909e6 + shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 sqflite_darwin: 5a7236e3b501866c1c9befc6771dfd73ffb8702d SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4 - url_launcher_ios: bb13df5870e8c4234ca12609d04010a21be43dfa + url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe + YttriumWrapper: 31e937fe9fbe0f1314d2ca6be9ce9b379a059966 PODFILE CHECKSUM: f90b7b7d52ec0d905039aa6f51266424548151c7 From 2c0d07c478d156f3fc52f67e5a47378f36464ece Mon Sep 17 00:00:00 2001 From: kev-techi Date: Mon, 10 Nov 2025 12:56:25 +0100 Subject: [PATCH 003/148] fix issue with tipping to addresses that don't have profiles --- lib/screens/send/tip_details.dart | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/lib/screens/send/tip_details.dart b/lib/screens/send/tip_details.dart index a1feea4f..63fd85fd 100644 --- a/lib/screens/send/tip_details.dart +++ b/lib/screens/send/tip_details.dart @@ -247,9 +247,12 @@ class _TipDetailsScreenState extends State { final navigator = GoRouter.of(context); + // For tips, use tipTo address (profile is optional, address is required) + final addressToValidate = tipTo; + final isValid = walletLogic.validateSendFields( walletLogic.amountController.value.text, - selectedAddress ?? walletLogic.addressController.value.text, + addressToValidate, ); if (!isValid) { @@ -259,8 +262,8 @@ class _TipDetailsScreenState extends State { return; } - final toAccount = - selectedAddress ?? walletLogic.addressController.value.text; + // For tips, use tipTo as the account address + final toAccount = tipTo; final sendTip = SendTransaction( tipAmount: walletLogic.amountController.value.text, @@ -469,8 +472,9 @@ class _TipDetailsScreenState extends State { walletLogic.addressController.value.text.length == 42) || selectedProfile != null; - final formattedAddress = - formatHexAddress(walletLogic.addressController.value.text); + // For tips, use tipTo address if available, otherwise use address controller + final addressToDisplay = tipTo ?? walletLogic.addressController.value.text; + final formattedAddress = formatHexAddress(addressToDisplay); final isSendingValid = (hasAddress || isLink) && hasAmount && @@ -506,6 +510,8 @@ class _TipDetailsScreenState extends State { const ScrollPhysics(parent: BouncingScrollPhysics()), scrollDirection: Axis.vertical, children: [ + // Show profile section if there's a profile or an address to display + // formattedAddress already includes tipTo if available, otherwise falls back to address controller if (selectedProfile != null || formattedAddress.isNotEmpty) ...[ const SizedBox(height: 10), @@ -541,7 +547,7 @@ class _TipDetailsScreenState extends State { ? formattedAddress : (selectedProfile.username.isNotEmpty ? '@${selectedProfile.username}' - : ''), + : formattedAddress), maxLines: 1, overflow: TextOverflow.ellipsis, ), From a288cf6b1267eed3860dadd5bc103abc20094704 Mon Sep 17 00:00:00 2001 From: kev-techi Date: Mon, 10 Nov 2025 14:00:43 +0100 Subject: [PATCH 004/148] fix validation of amount input --- lib/screens/send/send_details.dart | 8 ++++++-- lib/screens/send/tip_details.dart | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/screens/send/send_details.dart b/lib/screens/send/send_details.dart index ca9d9a2e..121a5e5d 100644 --- a/lib/screens/send/send_details.dart +++ b/lib/screens/send/send_details.dart @@ -429,8 +429,9 @@ class _SendDetailsScreenState extends State { final formattedAddress = formatHexAddress(walletLogic.addressController.value.text); + final hasAmountText = walletLogic.amountController.value.text.isNotEmpty; final isSendingValid = (hasAddress || isLink) && - hasAmount && + (hasAmount || hasAmountText) && !invalidAmount && (!invalidAddress || isLink) && !(!widget.isMinting && balance <= 0 && topUpPlugin == null); @@ -581,7 +582,10 @@ class _SendDetailsScreenState extends State { ? amountFormatter : integerAmountFormatter, ], - onChanged: (_) => handleThrottledUpdateAmount(), + onChanged: (_) { + setState(() {}); + handleThrottledUpdateAmount(); + }, onSubmitted: (_) { FocusManager.instance.primaryFocus?.unfocus(); }, diff --git a/lib/screens/send/tip_details.dart b/lib/screens/send/tip_details.dart index 63fd85fd..312e0e41 100644 --- a/lib/screens/send/tip_details.dart +++ b/lib/screens/send/tip_details.dart @@ -476,8 +476,9 @@ class _TipDetailsScreenState extends State { final addressToDisplay = tipTo ?? walletLogic.addressController.value.text; final formattedAddress = formatHexAddress(addressToDisplay); + final hasAmountText = walletLogic.amountController.value.text.isNotEmpty; final isSendingValid = (hasAddress || isLink) && - hasAmount && + (hasAmount || hasAmountText) && !invalidAmount && (!invalidAddress || isLink) && !(balance <= 0 && topUpPlugin == null); @@ -630,7 +631,10 @@ class _TipDetailsScreenState extends State { ? amountFormatter : integerAmountFormatter, ], - onChanged: (_) => handleThrottledUpdateAmount(), + onChanged: (_) { + setState(() {}); + handleThrottledUpdateAmount(); + }, onSubmitted: (_) { FocusManager.instance.primaryFocus?.unfocus(); }, From 7938b1a461553318739e3086bae8c08dfd0044dd Mon Sep 17 00:00:00 2001 From: kev-techi Date: Mon, 10 Nov 2025 14:00:55 +0100 Subject: [PATCH 005/148] bump version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 8b536b17..8ae3889b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: citizenwallet -version: 2.0.30+287 +version: 2.0.30+288 publish_to: none description: A mobile wallet for your community. environment: From 6c4c588ca9ff15ea43e710971ef193f4303946c9 Mon Sep 17 00:00:00 2001 From: kev-techi Date: Mon, 10 Nov 2025 15:21:53 +0100 Subject: [PATCH 006/148] fix amount input validation --- lib/state/wallet/logic.dart | 37 ++++++++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/lib/state/wallet/logic.dart b/lib/state/wallet/logic.dart index 81b1264e..43f090dc 100644 --- a/lib/state/wallet/logic.dart +++ b/lib/state/wallet/logic.dart @@ -1095,12 +1095,36 @@ class WalletLogic extends WidgetsBindingObserver { return false; } - final balance = double.tryParse(_state.wallet?.balance ?? '0.0') ?? 0.0; - final doubleAmount = double.parse(toUnit( - amount.replaceAll(',', '.'), + if (amount.isEmpty) { + return false; + } + + // Handle trailing decimal separator - validate what's before the separator + final trimmedAmount = amount.trim(); + if (trimmedAmount.endsWith(',') || trimmedAmount.endsWith('.')) { + // Remove trailing separator and validate the partial amount + final withoutTrailing = trimmedAmount.substring(0, trimmedAmount.length - 1); + if (withoutTrailing.isEmpty) { + // Just "," or "." - treat as empty (not invalid, but also not valid) + return false; + } + // Validate what's before the trailing separator + amount = withoutTrailing; + } + + // Balance is stored in smallest units, convert to human-readable format for comparison + final balanceRaw = _state.wallet?.balance ?? '0.0'; + final balance = double.parse(fromDoubleUnit( + balanceRaw, decimals: _wallet.currency.decimals, - ).toString()); + )); + + // Parse the amount as a double in human-readable format + // Handle both comma and dot as decimal separators + final normalizedAmount = amount.replaceAll(',', '.'); + final doubleAmount = double.tryParse(normalizedAmount) ?? 0.0; + // If parsing fails or amount is 0 or greater than balance, it's invalid return doubleAmount == 0 || doubleAmount > balance; } @@ -1699,7 +1723,10 @@ class WalletLogic extends WidgetsBindingObserver { _state.setInvalidAddress(true); } - void updateAmount({bool unlimited = false}) { + Future updateAmount({bool unlimited = false}) async { + // Fetch current balance before validating to ensure we check against the latest balance + await updateBalance(); + _state.setHasAmount( _amountController.text.isNotEmpty, isInvalidAmount(_amountController.value.text, unlimited: unlimited), From bc01b3085bf6cb3cca824a8d43b3e7ba34334816 Mon Sep 17 00:00:00 2001 From: kev-techi Date: Mon, 10 Nov 2025 15:21:59 +0100 Subject: [PATCH 007/148] bump version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 8ae3889b..a814dc0b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: citizenwallet -version: 2.0.30+288 +version: 2.0.30+289 publish_to: none description: A mobile wallet for your community. environment: From 19a0b85284f0238c4038ed22a23ab24fb0716ff1 Mon Sep 17 00:00:00 2001 From: kev-techi Date: Mon, 10 Nov 2025 18:12:47 +0100 Subject: [PATCH 008/148] bump pending library fix --- pubspec.lock | 320 ++++++++++++++++++++++++--------------------------- pubspec.yaml | 2 +- 2 files changed, 153 insertions(+), 169 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index 1c61ba3d..f7d21d5b 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -13,18 +13,18 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: e55636ed79578b9abca5fecf9437947798f5ef7456308b5cb85720b793eac92f + sha256: da0d9209ca76bde579f2da330aeb9df62b6319c834fa7baae052021b0462401f url: "https://pub.dev" source: hosted - version: "82.0.0" + version: "85.0.0" _flutterfire_internals: dependency: transitive description: name: _flutterfire_internals - sha256: "214e6f07e2a44f45972e0365c7b537eaeaddb4598db0778dd4ac64b4acd3f5b1" + sha256: ff0a84a2734d9e1089f8aedd5c0af0061b82fb94e95260d943404e0ef2134b11 url: "https://pub.dev" source: hosted - version: "1.3.55" + version: "1.3.59" adaptive_number: dependency: transitive description: @@ -37,10 +37,10 @@ packages: dependency: transitive description: name: analyzer - sha256: "904ae5bb474d32c38fb9482e2d925d5454cda04ddd0e55d2e6826bc72f6ba8c0" + sha256: "974859dc0ff5f37bc4313244b3218c791810d03ab3470a579580279ba971a48d" url: "https://pub.dev" source: hosted - version: "7.4.5" + version: "7.7.1" archive: dependency: "direct main" description: @@ -61,10 +61,10 @@ packages: dependency: transitive description: name: asn1lib - sha256: "0511d6be23b007e95105ae023db599aea731df604608978dada7f9faf2637623" + sha256: "9a8f69025044eb466b9b60ef3bc3ac99b4dc6c158ae9c56d25eeccf5bc56d024" url: "https://pub.dev" source: hosted - version: "1.6.4" + version: "1.6.5" async: dependency: "direct main" description: @@ -161,14 +161,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.2" - buffer: - dependency: transitive - description: - name: buffer - sha256: "389da2ec2c16283c8787e0adaede82b1842102f8c8aae2f49003a766c5c6b3d1" - url: "https://pub.dev" - source: hosted - version: "1.2.3" cached_network_image: dependency: "direct main" description: @@ -221,10 +213,10 @@ packages: dependency: transitive description: name: checked_yaml - sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff + sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f" url: "https://pub.dev" source: hosted - version: "2.0.3" + version: "2.0.4" cli_config: dependency: transitive description: @@ -261,10 +253,10 @@ packages: dependency: transitive description: name: connectivity_plus - sha256: "051849e2bd7c7b3bc5844ea0d096609ddc3a859890ec3a9ac4a65a2620cc1f99" + sha256: b5e72753cf63becce2c61fd04dfe0f1c430cc5278b53a1342dc5ad839eab29ec url: "https://pub.dev" source: hosted - version: "6.1.4" + version: "6.1.5" connectivity_plus_platform_interface: dependency: transitive description: @@ -294,34 +286,58 @@ packages: dependency: transitive description: name: coverage - sha256: "4b8701e48a58f7712492c9b1f7ba0bb9d525644dd66d023b62e1fc8cdb560c8a" + sha256: "5da775aa218eaf2151c721b16c01c7676fbfdd99cebba2bf64e8b807a28ff94d" url: "https://pub.dev" source: hosted - version: "1.14.0" + version: "1.15.0" credential_manager: dependency: "direct main" description: name: credential_manager - sha256: "4dbd38e17fb9a8fd30d591826246b7d327d69d7c33bd15e8a9192aa40c178374" + sha256: bb0c064fc27f73e4c851808e115290ef340ab88f656333cd8bc924609eceb477 url: "https://pub.dev" source: hosted - version: "2.0.4" + version: "2.0.7" + credential_manager_android: + dependency: transitive + description: + name: credential_manager_android + sha256: "5ae9e4790921874aa3a56d4849695a2f66ac2eacfa5a24f0bda2b4dd1cc02dae" + url: "https://pub.dev" + source: hosted + version: "2.0.7" + credential_manager_ios: + dependency: transitive + description: + name: credential_manager_ios + sha256: "5cabc6d070afcda12f585e9f091534b9acdd40c3740820b2e4b56fb54fe19b23" + url: "https://pub.dev" + source: hosted + version: "2.0.7" + credential_manager_platform_interface: + dependency: transitive + description: + name: credential_manager_platform_interface + sha256: "118e8046f95597baf23caf0ec4bc739e4502f71441df593edd951f9b16bea69e" + url: "https://pub.dev" + source: hosted + version: "2.0.7" cross_file: dependency: transitive description: name: cross_file - sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670" + sha256: "942a4791cd385a68ccb3b32c71c427aba508a1bb949b86dff2adbe4049f16239" url: "https://pub.dev" source: hosted - version: "0.3.4+2" + version: "0.3.5" crypto: dependency: "direct main" description: name: crypto - sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855" + sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf url: "https://pub.dev" source: hosted - version: "3.0.6" + version: "3.0.7" cryptography: dependency: "direct main" description: @@ -358,10 +374,10 @@ packages: dependency: transitive description: name: dev_build - sha256: fda8a54458b2a873a84e0cd1513f4323a1fb0599ed5455245359bc0398bad9ee + sha256: "1d9aa167c05cbe4be9fbaf863c76dcee9bec302fb861270672beb6d6be0bc8f4" url: "https://pub.dev" source: hosted - version: "1.1.2+11" + version: "1.1.3+1" ed25519_edwards: dependency: transitive description: @@ -394,22 +410,6 @@ packages: url: "https://pub.dev" source: hosted version: "5.0.3" - equatable: - dependency: transitive - description: - name: equatable - sha256: "567c64b3cb4cf82397aac55f4f0cbd3ca20d77c6c03bedbc4ceaddc08904aef7" - url: "https://pub.dev" - source: hosted - version: "2.0.7" - eth_sig_util: - dependency: transitive - description: - name: eth_sig_util - sha256: "20fdc5ce3864e70e5ade1c1cd03cce4ef01018db00adab107303f9055d26b01a" - url: "https://pub.dev" - source: hosted - version: "0.0.9" event: dependency: transitive description: @@ -454,58 +454,58 @@ packages: dependency: "direct main" description: name: file_picker - sha256: ef9908739bdd9c476353d6adff72e88fd00c625f5b959ae23f7567bd5137db0a + sha256: f2d9f173c2c14635cc0e9b14c143c49ef30b4934e8d1d274d6206fcb0086a06f url: "https://pub.dev" source: hosted - version: "10.2.0" + version: "10.3.3" firebase_core: dependency: "direct main" description: name: firebase_core - sha256: "8cfe3c900512399ce8d50fcc817e5758ff8615eeb6fa5c846a4cc47bbf6353b6" + sha256: "7be63a3f841fc9663342f7f3a011a42aef6a61066943c90b1c434d79d5c995c5" url: "https://pub.dev" source: hosted - version: "3.13.1" + version: "3.15.2" firebase_core_platform_interface: dependency: transitive description: name: firebase_core_platform_interface - sha256: d7253d255ff10f85cfd2adaba9ac17bae878fa3ba577462451163bd9f1d1f0bf + sha256: cccb4f572325dc14904c02fcc7db6323ad62ba02536833dddb5c02cac7341c64 url: "https://pub.dev" source: hosted - version: "5.4.0" + version: "6.0.2" firebase_core_web: dependency: transitive description: name: firebase_core_web - sha256: ddd72baa6f727e5b23f32d9af23d7d453d67946f380bd9c21daf474ee0f7326e + sha256: "0ed0dc292e8f9ac50992e2394e9d336a0275b6ae400d64163fdf0a8a8b556c37" url: "https://pub.dev" source: hosted - version: "2.23.0" + version: "2.24.1" firebase_messaging: dependency: "direct main" description: name: firebase_messaging - sha256: "38111089e511f03daa2c66b4c3614c16421b7d78c84ee04331a0a65b47df4542" + sha256: "60be38574f8b5658e2f22b7e311ff2064bea835c248424a383783464e8e02fcc" url: "https://pub.dev" source: hosted - version: "15.2.6" + version: "15.2.10" firebase_messaging_platform_interface: dependency: transitive description: name: firebase_messaging_platform_interface - sha256: ba254769982e5f439e534eed68856181c74e2b3f417c8188afad2bb440807cc7 + sha256: "685e1771b3d1f9c8502771ccc9f91485b376ffe16d553533f335b9183ea99754" url: "https://pub.dev" source: hosted - version: "4.6.6" + version: "4.6.10" firebase_messaging_web: dependency: transitive description: name: firebase_messaging_web - sha256: dba89137272aac39e95f71408ba25c33fb8ed903cd5fa8d1e49b5cd0d96069e0 + sha256: "0d1be17bc89ed3ff5001789c92df678b2e963a51b6fa2bdb467532cc9dbed390" url: "https://pub.dev" source: hosted - version: "3.10.6" + version: "3.10.10" fixnum: dependency: transitive description: @@ -603,10 +603,10 @@ packages: dependency: "direct dev" description: name: flutter_launcher_icons - sha256: bfa04787c85d80ecb3f8777bde5fc10c3de809240c48fa061a2c2bf15ea5211c + sha256: "10f13781741a2e3972126fae08393d3c4e01fa4cd7473326b94b72cf594195e7" url: "https://pub.dev" source: hosted - version: "0.14.3" + version: "0.14.4" flutter_lints: dependency: "direct dev" description: @@ -632,10 +632,10 @@ packages: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: f948e346c12f8d5480d2825e03de228d0eb8c3a737e4cdaa122267b89c022b5e + sha256: "306f0596590e077338312f38837f595c04f28d6cdeeac392d3d74df2f0003687" url: "https://pub.dev" source: hosted - version: "2.0.28" + version: "2.0.32" flutter_secure_storage: dependency: "direct main" description: @@ -688,10 +688,10 @@ packages: dependency: "direct main" description: name: flutter_svg - sha256: d44bf546b13025ec7353091516f6881f1d4c633993cb109c3916c3a0159dadf1 + sha256: "055de8921be7b8e8b98a233c7a5ef84b3a6fcc32f46f1ebf5b9bb3576d108355" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.2.2" flutter_test: dependency: "direct dev" description: flutter @@ -706,10 +706,10 @@ packages: dependency: transitive description: name: freezed_annotation - sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2 + sha256: "7294967ff0a6d98638e7acb774aac3af2550777accd8149c90af5b014e6d44d8" url: "https://pub.dev" source: hosted - version: "2.4.4" + version: "3.1.0" frontend_server_client: dependency: transitive description: @@ -730,10 +730,10 @@ packages: dependency: "direct main" description: name: go_router - sha256: "0b1e06223bee260dee31a171fb1153e306907563a0b0225e8c1733211911429a" + sha256: b453934c36e289cef06525734d1e676c1f91da9e22e2017d9dcab6ce0f999175 url: "https://pub.dev" source: hosted - version: "15.1.2" + version: "15.1.3" google_identity_services_web: dependency: transitive description: @@ -826,10 +826,10 @@ packages: dependency: "direct main" description: name: http - sha256: "2c11f3f94c687ee9bad77c171151672986360b2b001d109814ee7140b2cf261b" + sha256: bb2ce4590bc2667c96f318d68cac1b5a7987ec819351d32b1c987239a815e007 url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.5.0" http_multi_server: dependency: transitive description: @@ -946,10 +946,10 @@ packages: dependency: transitive description: name: logger - sha256: be4b23575aac7ebf01f225a241eb7f6b5641eeaf43c6a8613510fc2f8cf187d1 + sha256: a7967e31b703831a893bbc3c3dd11db08126fe5f369b5c648a36f821979f5be3 url: "https://pub.dev" source: hosted - version: "2.5.0" + version: "2.6.2" logging: dependency: transitive description: @@ -962,10 +962,10 @@ packages: dependency: "direct main" description: name: lottie - sha256: c5fa04a80a620066c15cf19cc44773e19e9b38e989ff23ea32e5903ef1015950 + sha256: "8ae0be46dbd9e19641791dc12ee480d34e1fd3f84c749adc05f3ad9342b71b95" url: "https://pub.dev" source: hosted - version: "3.3.1" + version: "3.3.2" markdown: dependency: transitive description: @@ -1010,10 +1010,10 @@ packages: dependency: "direct main" description: name: mobile_scanner - sha256: "72f06a071aa8b14acea3ab43ea7949eefe4a2469731ae210e006ba330a033a8c" + sha256: "023a71afb4d7cfb5529d0f2636aa8b43db66257905b9486d702085989769c5f2" url: "https://pub.dev" source: hosted - version: "7.0.0" + version: "7.1.3" mocktail: dependency: "direct dev" description: @@ -1030,6 +1030,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.0" + msgpack_dart: + dependency: transitive + description: + name: msgpack_dart + sha256: c2d235ed01f364719b5296aecf43ac330f0d7bc865fa134d0d7910a40454dffb + url: "https://pub.dev" + source: hosted + version: "1.0.1" nested: dependency: transitive description: @@ -1090,18 +1098,18 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: "7976bfe4c583170d6cdc7077e3237560b364149fcd268b5f53d95a991963b191" + sha256: "16eee997588c60225bda0488b6dcfac69280a6b7a3cf02c741895dd370a02968" url: "https://pub.dev" source: hosted - version: "8.3.0" + version: "8.3.1" package_info_plus_platform_interface: dependency: transitive description: name: package_info_plus_platform_interface - sha256: "6c935fb612dff8e3cc9632c2b301720c77450a126114126ffaafe28d2e87956c" + sha256: "202a487f08836a592a6bd4f901ac69b3a8f146af552bbd14407b6b41e1c3f086" url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "3.2.1" path: dependency: "direct main" description: @@ -1130,18 +1138,18 @@ packages: dependency: transitive description: name: path_provider_android - sha256: d0d310befe2c8ab9e7f393288ccbb11b60c019c6b5afc21973eeee4dda2b35e9 + sha256: e122c5ea805bb6773bb12ce667611265980940145be920cd09a4b0ec0285cb16 url: "https://pub.dev" source: hosted - version: "2.2.17" + version: "2.2.20" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: "4843174df4d288f5e29185bd6e72a6fbdf5a4a4602717eed565497429f179942" + sha256: efaec349ddfc181528345c56f8eda9d6cccd71c177511b132c6a0ddaefaa2738 url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.3" path_provider_linux: dependency: transitive description: @@ -1170,10 +1178,10 @@ packages: dependency: transitive description: name: petitparser - sha256: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646" + sha256: "1a97266a94f7350d30ae522c0af07890c70b8e62c71e8e3920d1db4d23c057d1" url: "https://pub.dev" source: hosted - version: "6.1.0" + version: "7.0.1" platform: dependency: transitive description: @@ -1202,18 +1210,18 @@ packages: dependency: transitive description: name: pool - sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" + sha256: "978783255c543aa3586a1b3c21f6e9d720eb315376a915872c61ef8b5c20177d" url: "https://pub.dev" source: hosted - version: "1.5.1" + version: "1.5.2" posix: dependency: transitive description: name: posix - sha256: f0d7856b6ca1887cfa6d1d394056a296ae33489db914e365e2044fdada449e62 + sha256: "6323a5b0fa688b6a010df4905a56b00181479e6d10534cecfecede2aa55add61" url: "https://pub.dev" source: hosted - version: "6.0.2" + version: "6.0.3" process_run: dependency: transitive description: @@ -1226,10 +1234,10 @@ packages: dependency: "direct main" description: name: provider - sha256: "4abbd070a04e9ddc287673bf5a030c7ca8b685ff70218720abab8b092f53dd84" + sha256: "4e82183fa20e5ca25703ead7e05de9e4cceed1fbd1eadc1ac3cb6f565a09f272" url: "https://pub.dev" source: hosted - version: "6.1.5" + version: "6.1.5+1" pub_semver: dependency: transitive description: @@ -1238,14 +1246,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.2.0" - pubspec_parse: - dependency: transitive - description: - name: pubspec_parse - sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082" - url: "https://pub.dev" - source: hosted - version: "1.5.0" qr: dependency: transitive description: @@ -1274,34 +1274,26 @@ packages: dependency: transitive description: name: reown_core - sha256: "171ce977b563b7b2fe0a17393517a4743ab758152d6c0c5158921a7ed3746326" + sha256: "8d5d14b4e8d008b09ec9db964ab8913b4fc17000d666eb1fece20a80a4b5e37a" url: "https://pub.dev" source: hosted - version: "1.1.5" + version: "1.3.6" reown_sign: dependency: transitive description: name: reown_sign - sha256: eb24d5b201635b0adbe15182c4cd2f831642dde05f59f033dac8de3bd423495d + sha256: c2fec55ed3d0042d0802c80d7fc36f9b1937eac6ef9c2907dae3b8146188cffa url: "https://pub.dev" source: hosted - version: "1.1.6" + version: "1.3.7" reown_walletkit: dependency: "direct main" description: name: reown_walletkit - sha256: e639dbfac019270380b8f80105e11364f4962ff78fdc95d01aee16ea6f27fb2a + sha256: f96cc9f6e264138b3411fd1635e06d437d5912d7a21ef28af21974e2680dfd70 url: "https://pub.dev" source: hosted - version: "1.1.5+1" - reown_yttrium: - dependency: transitive - description: - name: reown_yttrium - sha256: e59d9e8dbad8e2c420c201719da12bca528c38ecab9571364d5b6d18715ce773 - url: "https://pub.dev" - source: hosted - version: "0.0.1" + version: "1.3.7" rxdart: dependency: "direct main" description: @@ -1322,18 +1314,18 @@ packages: dependency: "direct main" description: name: share_plus - sha256: b2961506569e28948d75ec346c28775bb111986bb69dc6a20754a457e3d97fa0 + sha256: d7dc0630a923883c6328ca31b89aa682bacbf2f8304162d29f7c6aaff03a27a1 url: "https://pub.dev" source: hosted - version: "11.0.0" + version: "11.1.0" share_plus_platform_interface: dependency: transitive description: name: share_plus_platform_interface - sha256: "1032d392bc5d2095a77447a805aa3f804d2ae6a4d5eef5e6ebb3bd94c1bc19ef" + sha256: "88023e53a13429bd65d8e85e11a9b484f49d4c190abbd96c7932b74d6927cc9a" url: "https://pub.dev" source: hosted - version: "6.0.0" + version: "6.1.0" shared_preferences: dependency: "direct main" description: @@ -1346,18 +1338,18 @@ packages: dependency: transitive description: name: shared_preferences_android - sha256: "20cbd561f743a342c76c151d6ddb93a9ce6005751e7aa458baad3858bfbfb6ac" + sha256: "34266009473bf71d748912da4bf62d439185226c03e01e2d9687bc65bbfcb713" url: "https://pub.dev" source: hosted - version: "2.4.10" + version: "2.4.15" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03" + sha256: "1c33a907142607c40a7542768ec9badfd16293bac51da3a4482623d15845f88b" url: "https://pub.dev" source: hosted - version: "2.5.4" + version: "2.5.5" shared_preferences_linux: dependency: transitive description: @@ -1468,14 +1460,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.10.1" - sprintf: - dependency: transitive - description: - name: sprintf - sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23" - url: "https://pub.dev" - source: hosted - version: "7.0.0" sqflite: dependency: "direct main" description: @@ -1488,34 +1472,34 @@ packages: dependency: transitive description: name: sqflite_android - sha256: "2b3070c5fa881839f8b402ee4a39c1b4d561704d4ebbbcfb808a119bc2a1701b" + sha256: ecd684501ebc2ae9a83536e8b15731642b9570dc8623e0073d227d0ee2bfea88 url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.2+2" sqflite_common: dependency: "direct main" description: name: sqflite_common - sha256: "84731e8bfd8303a3389903e01fb2141b6e59b5973cacbb0929021df08dddbe8b" + sha256: "6ef422a4525ecc601db6c0a2233ff448c731307906e92cabc9ba292afaae16a6" url: "https://pub.dev" source: hosted - version: "2.5.5" + version: "2.5.6" sqflite_common_ffi: dependency: transitive description: name: sqflite_common_ffi - sha256: "1f3ef3888d3bfbb47785cc1dda0dc7dd7ebd8c1955d32a9e8e9dae1e38d1c4c1" + sha256: "9faa2fedc5385ef238ce772589f7718c24cdddd27419b609bb9c6f703ea27988" url: "https://pub.dev" source: hosted - version: "2.3.5" + version: "2.3.6" sqflite_common_ffi_web: dependency: "direct main" description: name: sqflite_common_ffi_web - sha256: "983cf7b33b16e6bc086c8e09f6a1fae69d34cdb167d7acaf64cbd3515942d4e6" + sha256: "793c1ff5b0c95ac618e7731e209db99e96abff59ad3432a3c91bd2b1454a00d5" url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.0.1+2" sqflite_darwin: dependency: transitive description: @@ -1536,10 +1520,10 @@ packages: dependency: transitive description: name: sqlite3 - sha256: c0503c69b44d5714e6abbf4c1f51a3c3cc42b75ce785f44404765e4635481d38 + sha256: "3145bd74dcdb4fd6f5c6dda4d4e4490a8087d7f286a14dee5d37087290f0f8a2" url: "https://pub.dev" source: hosted - version: "2.7.6" + version: "2.9.4" stack_trace: dependency: transitive description: @@ -1576,10 +1560,10 @@ packages: dependency: transitive description: name: synchronized - sha256: "0669c70faae6270521ee4f05bffd2919892d42d1276e6c495be80174b6bc0ef6" + sha256: c254ade258ec8282947a0acbbc90b9575b4f19673533ee46f2f6e9b3aeefd7c0 url: "https://pub.dev" source: hosted - version: "3.3.1" + version: "3.4.0" term_glyph: dependency: transitive description: @@ -1648,26 +1632,26 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: "9d06212b1362abc2f0f0d78e6f09f726608c74e3b9462e8368bb03314aa8d603" + sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8 url: "https://pub.dev" source: hosted - version: "6.3.1" + version: "6.3.2" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: "8582d7f6fe14d2652b4c45c9b6c14c0b678c2af2d083a11b604caeba51930d79" + sha256: "5c8b6c2d89a78f5a1cca70a73d9d5f86c701b36b42f9c9dac7bad592113c28e9" url: "https://pub.dev" source: hosted - version: "6.3.16" + version: "6.3.24" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: "7f2022359d4c099eea7df3fdf739f7d3d3b9faf3166fb1dd390775176e0b76cb" + sha256: "6b63f1441e4f653ae799166a72b50b1767321ecc263a57aadf825a7a2a5477d9" url: "https://pub.dev" source: hosted - version: "6.3.3" + version: "6.3.5" url_launcher_linux: dependency: transitive description: @@ -1680,10 +1664,10 @@ packages: dependency: transitive description: name: url_launcher_macos - sha256: "17ba2000b847f334f16626a574c702b196723af2a289e7a93ffcb79acff855c2" + sha256: "8262208506252a3ed4ff5c0dc1e973d2c0e0ef337d0a074d35634da5d44397c9" url: "https://pub.dev" source: hosted - version: "3.2.2" + version: "3.2.4" url_launcher_platform_interface: dependency: transitive description: @@ -1720,18 +1704,18 @@ packages: dependency: transitive description: name: uuid - sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff + sha256: a11b666489b1954e01d992f3d601b1804a33937b5a8fe677bd26b8a9f96f96e8 url: "https://pub.dev" source: hosted - version: "4.5.1" + version: "4.5.2" vector_graphics: dependency: transitive description: name: vector_graphics - sha256: "44cc7104ff32563122a929e4620cf3efd584194eec6d1d913eb5ba593dbcf6de" + sha256: a4f059dc26fc8295b5921376600a194c4ec7d55e72f2fe4c7d2831e103d461e6 url: "https://pub.dev" source: hosted - version: "1.1.18" + version: "1.1.19" vector_graphics_codec: dependency: transitive description: @@ -1744,10 +1728,10 @@ packages: dependency: transitive description: name: vector_graphics_compiler - sha256: "557a315b7d2a6dbb0aaaff84d857967ce6bdc96a63dc6ee2a57ce5a6ee5d3331" + sha256: d354a7ec6931e6047785f4db12a1f61ec3d43b207fc0790f863818543f8ff0dc url: "https://pub.dev" source: hosted - version: "1.1.17" + version: "1.1.19" vector_math: dependency: transitive description: @@ -1760,10 +1744,10 @@ packages: dependency: transitive description: name: vm_service - sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02 + sha256: "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60" url: "https://pub.dev" source: hosted - version: "15.0.0" + version: "15.0.2" wallet: dependency: transitive description: @@ -1776,10 +1760,10 @@ packages: dependency: transitive description: name: watcher - sha256: "69da27e49efa56a15f8afe8f4438c4ec02eff0a117df1b22ea4aad194fe1c104" + sha256: "592ab6e2892f67760543fb712ff0177f4ec76c031f02f5b4ff8d3fc5eb9fb61a" url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.4" web: dependency: transitive description: @@ -1824,10 +1808,10 @@ packages: dependency: transitive description: name: win32 - sha256: "329edf97fdd893e0f1e3b9e88d6a0e627128cc17cc316a8d67fda8f1451178ba" + sha256: d7cb55e04cd34096cd3a79b3330245f54cb96a370a1c27adb3c84b917de8b08e url: "https://pub.dev" source: hosted - version: "5.13.0" + version: "5.15.0" x25519: dependency: transitive description: @@ -1848,10 +1832,10 @@ packages: dependency: transitive description: name: xml - sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 + sha256: "971043b3a0d3da28727e40ed3e0b5d18b742fa5a68665cca88e74b7876d5e025" url: "https://pub.dev" source: hosted - version: "6.5.0" + version: "6.6.1" yaml: dependency: transitive description: @@ -1861,5 +1845,5 @@ packages: source: hosted version: "3.1.3" sdks: - dart: ">=3.8.0-0 <4.0.0" - flutter: ">=3.29.0" + dart: ">=3.9.0 <4.0.0" + flutter: ">=3.35.0" diff --git a/pubspec.yaml b/pubspec.yaml index a814dc0b..82726d72 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: citizenwallet -version: 2.0.30+289 +version: 2.0.30+290 publish_to: none description: A mobile wallet for your community. environment: From 2cd5e613de16db466fea9dec7b5b62b24e02984d Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Thu, 11 Dec 2025 11:23:09 +0530 Subject: [PATCH 009/148] flutter packages --- ios/Podfile.lock | 74 ++++++++++----------- pubspec.lock | 168 ++++++++++++++++++++++++++++------------------- 2 files changed, 137 insertions(+), 105 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index b35942fc..bbdd1317 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -13,7 +13,7 @@ PODS: - Flutter - connectivity_plus (0.0.1): - Flutter - - credential_manager (1.0.4): + - credential_manager_ios (2.0.5): - Flutter - DKImagePickerController/Core (4.3.9): - DKImagePickerController/ImageDataManager @@ -49,37 +49,37 @@ PODS: - file_picker (0.0.1): - DKImagePickerController/PhotoGallery - Flutter - - Firebase/CoreOnly (11.10.0): - - FirebaseCore (~> 11.10.0) - - Firebase/Messaging (11.10.0): + - Firebase/CoreOnly (11.15.0): + - FirebaseCore (~> 11.15.0) + - Firebase/Messaging (11.15.0): - Firebase/CoreOnly - - FirebaseMessaging (~> 11.10.0) - - firebase_core (3.13.1): - - Firebase/CoreOnly (= 11.10.0) + - FirebaseMessaging (~> 11.15.0) + - firebase_core (3.15.2): + - Firebase/CoreOnly (= 11.15.0) - Flutter - - firebase_messaging (15.2.6): - - Firebase/Messaging (= 11.10.0) + - firebase_messaging (15.2.10): + - Firebase/Messaging (= 11.15.0) - firebase_core - Flutter - - FirebaseCore (11.10.0): - - FirebaseCoreInternal (~> 11.10.0) - - GoogleUtilities/Environment (~> 8.0) - - GoogleUtilities/Logger (~> 8.0) - - FirebaseCoreInternal (11.10.0): - - "GoogleUtilities/NSData+zlib (~> 8.0)" - - FirebaseInstallations (11.10.0): - - FirebaseCore (~> 11.10.0) - - GoogleUtilities/Environment (~> 8.0) - - GoogleUtilities/UserDefaults (~> 8.0) + - FirebaseCore (11.15.0): + - FirebaseCoreInternal (~> 11.15.0) + - GoogleUtilities/Environment (~> 8.1) + - GoogleUtilities/Logger (~> 8.1) + - FirebaseCoreInternal (11.15.0): + - "GoogleUtilities/NSData+zlib (~> 8.1)" + - FirebaseInstallations (11.15.0): + - FirebaseCore (~> 11.15.0) + - GoogleUtilities/Environment (~> 8.1) + - GoogleUtilities/UserDefaults (~> 8.1) - PromisesObjC (~> 2.4) - - FirebaseMessaging (11.10.0): - - FirebaseCore (~> 11.10.0) + - FirebaseMessaging (11.15.0): + - FirebaseCore (~> 11.15.0) - FirebaseInstallations (~> 11.0) - GoogleDataTransport (~> 10.0) - - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - - GoogleUtilities/Environment (~> 8.0) - - GoogleUtilities/Reachability (~> 8.0) - - GoogleUtilities/UserDefaults (~> 8.0) + - GoogleUtilities/AppDelegateSwizzler (~> 8.1) + - GoogleUtilities/Environment (~> 8.1) + - GoogleUtilities/Reachability (~> 8.1) + - GoogleUtilities/UserDefaults (~> 8.1) - nanopb (~> 3.30910.0) - Flutter (1.0.0) - flutter_inappwebview_ios (0.0.1): @@ -178,7 +178,7 @@ PODS: DEPENDENCIES: - audioplayers_darwin (from `.symlinks/plugins/audioplayers_darwin/ios`) - connectivity_plus (from `.symlinks/plugins/connectivity_plus/ios`) - - credential_manager (from `.symlinks/plugins/credential_manager/ios`) + - credential_manager_ios (from `.symlinks/plugins/credential_manager_ios/ios`) - file_picker (from `.symlinks/plugins/file_picker/ios`) - firebase_core (from `.symlinks/plugins/firebase_core/ios`) - firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`) @@ -225,8 +225,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/audioplayers_darwin/ios" connectivity_plus: :path: ".symlinks/plugins/connectivity_plus/ios" - credential_manager: - :path: ".symlinks/plugins/credential_manager/ios" + credential_manager_ios: + :path: ".symlinks/plugins/credential_manager_ios/ios" file_picker: :path: ".symlinks/plugins/file_picker/ios" firebase_core: @@ -267,18 +267,18 @@ SPEC CHECKSUMS: AppCheckCore: cc8fd0a3a230ddd401f326489c99990b013f0c4f audioplayers_darwin: 877d9a4d06331c5c374595e46e16453ac7eafa40 connectivity_plus: 2a701ffec2c0ae28a48cf7540e279787e77c447d - credential_manager: feb21034894e469e3686461dc96fb24bb7d350e4 + credential_manager_ios: fd1d96ef11fa3d76f868f038342de171c3bc2b28 DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60 file_picker: be9a674155d9f334323856cb266e0d145d75d5c0 - Firebase: 1fe1c0a7d9aaea32efe01fbea5f0ebd8d70e53a2 - firebase_core: 3c2f323cae65c97a636a05a23b17730ef93df2cf - firebase_messaging: 456e01ff29a451c90097d0b45925551d5be0c143 - FirebaseCore: 8344daef5e2661eb004b177488d6f9f0f24251b7 - FirebaseCoreInternal: ef4505d2afb1d0ebbc33162cb3795382904b5679 - FirebaseInstallations: 9980995bdd06ec8081dfb6ab364162bdd64245c3 - FirebaseMessaging: 2b9f56aa4ed286e1f0ce2ee1d413aabb8f9f5cb9 - Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467 + Firebase: d99ac19b909cd2c548339c2241ecd0d1599ab02e + firebase_core: 99a37263b3c27536063a7b601d9e2a49400a433c + firebase_messaging: bf6697c61f31c7cc0f654131212ff04c0115c2c7 + FirebaseCore: efb3893e5b94f32b86e331e3bd6dadf18b66568e + FirebaseCoreInternal: 9afa45b1159304c963da48addb78275ef701c6b4 + FirebaseInstallations: 317270fec08a5d418fdbc8429282238cab3ac843 + FirebaseMessaging: 3b26e2cee503815e01c3701236b020aa9b576f09 + Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 flutter_inappwebview_ios: 6f63631e2c62a7c350263b13fa5427aedefe81d4 flutter_secure_storage: d33dac7ae2ea08509be337e775f6b59f1ff45f12 google_sign_in_ios: 7411fab6948df90490dc4620ecbcabdc3ca04017 diff --git a/pubspec.lock b/pubspec.lock index f7d21d5b..421acb2c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -69,10 +69,10 @@ packages: dependency: "direct main" description: name: async - sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb" + sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 url: "https://pub.dev" source: hosted - version: "2.13.0" + version: "2.12.0" audio_in_app: dependency: "direct main" description: @@ -161,6 +161,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.2" + buffer: + dependency: transitive + description: + name: buffer + sha256: "389da2ec2c16283c8787e0adaede82b1842102f8c8aae2f49003a766c5c6b3d1" + url: "https://pub.dev" + source: hosted + version: "1.2.3" cached_network_image: dependency: "direct main" description: @@ -213,10 +221,10 @@ packages: dependency: transitive description: name: checked_yaml - sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f" + sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff url: "https://pub.dev" source: hosted - version: "2.0.4" + version: "2.0.3" cli_config: dependency: transitive description: @@ -374,10 +382,10 @@ packages: dependency: transitive description: name: dev_build - sha256: "1d9aa167c05cbe4be9fbaf863c76dcee9bec302fb861270672beb6d6be0bc8f4" + sha256: fda8a54458b2a873a84e0cd1513f4323a1fb0599ed5455245359bc0398bad9ee url: "https://pub.dev" source: hosted - version: "1.1.3+1" + version: "1.1.2+11" ed25519_edwards: dependency: transitive description: @@ -410,6 +418,22 @@ packages: url: "https://pub.dev" source: hosted version: "5.0.3" + equatable: + dependency: transitive + description: + name: equatable + sha256: "567c64b3cb4cf82397aac55f4f0cbd3ca20d77c6c03bedbc4ceaddc08904aef7" + url: "https://pub.dev" + source: hosted + version: "2.0.7" + eth_sig_util: + dependency: transitive + description: + name: eth_sig_util + sha256: "20fdc5ce3864e70e5ade1c1cd03cce4ef01018db00adab107303f9055d26b01a" + url: "https://pub.dev" + source: hosted + version: "0.0.9" event: dependency: transitive description: @@ -430,10 +454,10 @@ packages: dependency: transitive description: name: fake_async - sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44" + sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" url: "https://pub.dev" source: hosted - version: "1.3.3" + version: "1.3.2" ffi: dependency: transitive description: @@ -632,10 +656,10 @@ packages: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: "306f0596590e077338312f38837f595c04f28d6cdeeac392d3d74df2f0003687" + sha256: c2fe1001710127dfa7da89977a08d591398370d099aacdaa6d44da7eb14b8476 url: "https://pub.dev" source: hosted - version: "2.0.32" + version: "2.0.31" flutter_secure_storage: dependency: "direct main" description: @@ -706,10 +730,10 @@ packages: dependency: transitive description: name: freezed_annotation - sha256: "7294967ff0a6d98638e7acb774aac3af2550777accd8149c90af5b014e6d44d8" + sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2 url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "2.4.4" frontend_server_client: dependency: transitive description: @@ -874,10 +898,10 @@ packages: dependency: "direct main" description: name: intl - sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5" + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf url: "https://pub.dev" source: hosted - version: "0.20.2" + version: "0.19.0" io: dependency: transitive description: @@ -914,26 +938,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" + sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec url: "https://pub.dev" source: hosted - version: "11.0.2" + version: "10.0.8" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 url: "https://pub.dev" source: hosted - version: "3.0.10" + version: "3.0.9" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.1" lints: dependency: transitive description: @@ -962,10 +986,10 @@ packages: dependency: "direct main" description: name: lottie - sha256: "8ae0be46dbd9e19641791dc12ee480d34e1fd3f84c749adc05f3ad9342b71b95" + sha256: c5fa04a80a620066c15cf19cc44773e19e9b38e989ff23ea32e5903ef1015950 url: "https://pub.dev" source: hosted - version: "3.3.2" + version: "3.3.1" markdown: dependency: transitive description: @@ -1138,18 +1162,18 @@ packages: dependency: transitive description: name: path_provider_android - sha256: e122c5ea805bb6773bb12ce667611265980940145be920cd09a4b0ec0285cb16 + sha256: "3b4c1fc3aa55ddc9cd4aa6759984330d5c8e66aa7702a6223c61540dc6380c37" url: "https://pub.dev" source: hosted - version: "2.2.20" + version: "2.2.19" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: efaec349ddfc181528345c56f8eda9d6cccd71c177511b132c6a0ddaefaa2738 + sha256: "16eef174aacb07e09c351502740fa6254c165757638eba1e9116b0a781201bbd" url: "https://pub.dev" source: hosted - version: "2.4.3" + version: "2.4.2" path_provider_linux: dependency: transitive description: @@ -1178,10 +1202,10 @@ packages: dependency: transitive description: name: petitparser - sha256: "1a97266a94f7350d30ae522c0af07890c70b8e62c71e8e3920d1db4d23c057d1" + sha256: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646" url: "https://pub.dev" source: hosted - version: "7.0.1" + version: "6.1.0" platform: dependency: transitive description: @@ -1274,26 +1298,34 @@ packages: dependency: transitive description: name: reown_core - sha256: "8d5d14b4e8d008b09ec9db964ab8913b4fc17000d666eb1fece20a80a4b5e37a" + sha256: "37e8bd16263400856592b58331ec61665bcc8814d4a2a1801a7f12caf3c4673d" url: "https://pub.dev" source: hosted - version: "1.3.6" + version: "1.2.0" reown_sign: dependency: transitive description: name: reown_sign - sha256: c2fec55ed3d0042d0802c80d7fc36f9b1937eac6ef9c2907dae3b8146188cffa + sha256: ae2e171b93ddaae2ce7db18a66647afc9680cf55f49e88d49a3c3df5d1eb2cde url: "https://pub.dev" source: hosted - version: "1.3.7" + version: "1.2.0" reown_walletkit: dependency: "direct main" description: name: reown_walletkit - sha256: f96cc9f6e264138b3411fd1635e06d437d5912d7a21ef28af21974e2680dfd70 + sha256: b779e4914c9299edea80a849773fc08ddd5e44549bf53a2fd26cac4a59f5c99c + url: "https://pub.dev" + source: hosted + version: "1.2.0" + reown_yttrium: + dependency: transitive + description: + name: reown_yttrium + sha256: e59d9e8dbad8e2c420c201719da12bca528c38ecab9571364d5b6d18715ce773 url: "https://pub.dev" source: hosted - version: "1.3.7" + version: "0.0.1" rxdart: dependency: "direct main" description: @@ -1338,18 +1370,18 @@ packages: dependency: transitive description: name: shared_preferences_android - sha256: "34266009473bf71d748912da4bf62d439185226c03e01e2d9687bc65bbfcb713" + sha256: bd14436108211b0d4ee5038689a56d4ae3620fd72fd6036e113bf1345bc74d9e url: "https://pub.dev" source: hosted - version: "2.4.15" + version: "2.4.13" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: "1c33a907142607c40a7542768ec9badfd16293bac51da3a4482623d15845f88b" + sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03" url: "https://pub.dev" source: hosted - version: "2.5.5" + version: "2.5.4" shared_preferences_linux: dependency: transitive description: @@ -1472,18 +1504,18 @@ packages: dependency: transitive description: name: sqflite_android - sha256: ecd684501ebc2ae9a83536e8b15731642b9570dc8623e0073d227d0ee2bfea88 + sha256: "2b3070c5fa881839f8b402ee4a39c1b4d561704d4ebbbcfb808a119bc2a1701b" url: "https://pub.dev" source: hosted - version: "2.4.2+2" + version: "2.4.1" sqflite_common: dependency: "direct main" description: name: sqflite_common - sha256: "6ef422a4525ecc601db6c0a2233ff448c731307906e92cabc9ba292afaae16a6" + sha256: "84731e8bfd8303a3389903e01fb2141b6e59b5973cacbb0929021df08dddbe8b" url: "https://pub.dev" source: hosted - version: "2.5.6" + version: "2.5.5" sqflite_common_ffi: dependency: transitive description: @@ -1496,10 +1528,10 @@ packages: dependency: "direct main" description: name: sqflite_common_ffi_web - sha256: "793c1ff5b0c95ac618e7731e209db99e96abff59ad3432a3c91bd2b1454a00d5" + sha256: "983cf7b33b16e6bc086c8e09f6a1fae69d34cdb167d7acaf64cbd3515942d4e6" url: "https://pub.dev" source: hosted - version: "1.0.1+2" + version: "1.0.0" sqflite_darwin: dependency: transitive description: @@ -1560,10 +1592,10 @@ packages: dependency: transitive description: name: synchronized - sha256: c254ade258ec8282947a0acbbc90b9575b4f19673533ee46f2f6e9b3aeefd7c0 + sha256: "0669c70faae6270521ee4f05bffd2919892d42d1276e6c495be80174b6bc0ef6" url: "https://pub.dev" source: hosted - version: "3.4.0" + version: "3.3.1" term_glyph: dependency: transitive description: @@ -1576,26 +1608,26 @@ packages: dependency: transitive description: name: test - sha256: "65e29d831719be0591f7b3b1a32a3cda258ec98c58c7b25f7b84241bc31215bb" + sha256: "301b213cd241ca982e9ba50266bd3f5bd1ea33f1455554c5abb85d1be0e2d87e" url: "https://pub.dev" source: hosted - version: "1.26.2" + version: "1.25.15" test_api: dependency: transitive description: name: test_api - sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00" + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd url: "https://pub.dev" source: hosted - version: "0.7.6" + version: "0.7.4" test_core: dependency: transitive description: name: test_core - sha256: "80bf5a02b60af04b09e14f6fe68b921aad119493e26e490deaca5993fef1b05a" + sha256: "84d17c3486c8dfdbe5e12a50c8ae176d15e2a771b96909a9442b40173649ccaa" url: "https://pub.dev" source: hosted - version: "0.6.11" + version: "0.6.8" timeago: dependency: "direct main" description: @@ -1640,18 +1672,18 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: "5c8b6c2d89a78f5a1cca70a73d9d5f86c701b36b42f9c9dac7bad592113c28e9" + sha256: "81777b08c498a292d93ff2feead633174c386291e35612f8da438d6e92c4447e" url: "https://pub.dev" source: hosted - version: "6.3.24" + version: "6.3.20" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: "6b63f1441e4f653ae799166a72b50b1767321ecc263a57aadf825a7a2a5477d9" + sha256: d80b3f567a617cb923546034cc94bfe44eb15f989fe670b37f26abdb9d939cb7 url: "https://pub.dev" source: hosted - version: "6.3.5" + version: "6.3.4" url_launcher_linux: dependency: transitive description: @@ -1664,10 +1696,10 @@ packages: dependency: transitive description: name: url_launcher_macos - sha256: "8262208506252a3ed4ff5c0dc1e973d2c0e0ef337d0a074d35634da5d44397c9" + sha256: c043a77d6600ac9c38300567f33ef12b0ef4f4783a2c1f00231d2b1941fea13f url: "https://pub.dev" source: hosted - version: "3.2.4" + version: "3.2.3" url_launcher_platform_interface: dependency: transitive description: @@ -1736,18 +1768,18 @@ packages: dependency: transitive description: name: vector_math - sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.1.4" vm_service: dependency: transitive description: name: vm_service - sha256: "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60" + sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" url: "https://pub.dev" source: hosted - version: "15.0.2" + version: "14.3.1" wallet: dependency: transitive description: @@ -1808,10 +1840,10 @@ packages: dependency: transitive description: name: win32 - sha256: d7cb55e04cd34096cd3a79b3330245f54cb96a370a1c27adb3c84b917de8b08e + sha256: "329edf97fdd893e0f1e3b9e88d6a0e627128cc17cc316a8d67fda8f1451178ba" url: "https://pub.dev" source: hosted - version: "5.15.0" + version: "5.13.0" x25519: dependency: transitive description: @@ -1832,10 +1864,10 @@ packages: dependency: transitive description: name: xml - sha256: "971043b3a0d3da28727e40ed3e0b5d18b742fa5a68665cca88e74b7876d5e025" + sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 url: "https://pub.dev" source: hosted - version: "6.6.1" + version: "6.5.0" yaml: dependency: transitive description: @@ -1845,5 +1877,5 @@ packages: source: hosted version: "3.1.3" sdks: - dart: ">=3.9.0 <4.0.0" - flutter: ">=3.35.0" + dart: ">=3.7.2 <4.0.0" + flutter: ">=3.29.0" From fd3adffb271a7e21df27f95701596e9542b3c12e Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Thu, 11 Dec 2025 11:25:50 +0530 Subject: [PATCH 010/148] feat(events): Handle permanent closure state for EventService Introduces the `EventServiceState.closed` state to manage permanent connection termination scenarios, preventing unnecessary reconnection attempts. Key Changes: * **Events Service (`events.dart`):** * Adds `EventServiceState.closed` to the enum. * Modifies the connection error handling (`connect`) to check for a `WebSocketException` containing "404". If a 404 is detected, the service transitions to `closed` state and aborts reconnection. * **Wallet Logic (`logic.dart`):** * Adds a check in `handleInitialLoad` to immediately transition to `EventServiceState.closed` if the loaded `communityConfig.community.hidden` flag is true, preventing the service from attempting to connect to a hidden community. * **UI Cleanup (`screen.dart`):** * Removes unused state variable `eventServiceIntentionalDisconnect`. * Updates logic to calculate `isClosed` based on the new state. --- lib/screens/wallet/screen.dart | 7 ++----- lib/services/engine/events.dart | 19 ++++++++++++++++++- lib/state/wallet/logic.dart | 13 ++++++++++--- 3 files changed, 30 insertions(+), 9 deletions(-) diff --git a/lib/screens/wallet/screen.dart b/lib/screens/wallet/screen.dart index 73aaf54f..cbe29239 100644 --- a/lib/screens/wallet/screen.dart +++ b/lib/screens/wallet/screen.dart @@ -1123,7 +1123,7 @@ class WalletScreenState extends State _receiveParams = null; _deepLink = deepLink; _deepLinkParams = deepLinkParams; - + if (voucher != null && voucherParams != null) { _sendToURL = null; } else { @@ -1195,13 +1195,10 @@ class WalletScreenState extends State final eventServiceState = context.select((WalletState state) => state.eventServiceState); - final eventServiceIntentionalDisconnect = context - .select((WalletState state) => state.eventServiceIntentionalDisconnect); - final isOffline = eventServiceState == EventServiceState.error || eventServiceState == EventServiceState.connecting; - final showOfflineBanner = isOffline && !eventServiceIntentionalDisconnect; + final isClosed = eventServiceState == EventServiceState.closed; final cleaningUp = context.select((WalletState state) => state.cleaningUp); final config = context.select((WalletState state) => state.config); diff --git a/lib/services/engine/events.dart b/lib/services/engine/events.dart index 076faf1e..9df5c67d 100644 --- a/lib/services/engine/events.dart +++ b/lib/services/engine/events.dart @@ -1,6 +1,6 @@ import 'dart:async'; import 'dart:convert'; -import 'dart:io' show WebSocket; +import 'dart:io' show WebSocket, WebSocketException; import 'package:citizenwallet/utils/delay.dart'; @@ -9,6 +9,7 @@ enum EventServiceState { connecting, connected, error, + closed, } class WebSocketEvent { @@ -89,9 +90,25 @@ class EventService { onDone: _onDone, ); } catch (e) { + // Check if this is a WebSocketException with 404 status + if (e is WebSocketException) { + final fullError = e.toString(); + + // Check if the full error string contains "404" + if (fullError.contains('404')) { + // Don't reconnect on 404 - the endpoint doesn't exist + _isConnected = false; + _onStateChange(EventServiceState.closed); + return; + } + } + + // Handle other connection errors print('Connection error: $e'); + print('Error type: ${e.runtimeType}'); _isConnected = false; _onStateChange(EventServiceState.error); + Duration delay = Duration(seconds: _reconnectDelay.inSeconds); if (reconnectDelay != null && reconnectDelay >= _reconnectMaxSeconds) { delay = Duration(seconds: reconnectDelay.inSeconds); diff --git a/lib/state/wallet/logic.dart b/lib/state/wallet/logic.dart index 43f090dc..52527446 100644 --- a/lib/state/wallet/logic.dart +++ b/lib/state/wallet/logic.dart @@ -622,6 +622,12 @@ class WalletLogic extends WidgetsBindingObserver { _eventService = null; } + // Check if community is hidden/closed + if (communityConfig.community.hidden) { + handleEventServiceStateChange(EventServiceState.closed); + return; + } + _eventService = EventService( communityConfig.chains[token.chainId.toString()]!.node.wsUrl, token.address, @@ -1103,7 +1109,8 @@ class WalletLogic extends WidgetsBindingObserver { final trimmedAmount = amount.trim(); if (trimmedAmount.endsWith(',') || trimmedAmount.endsWith('.')) { // Remove trailing separator and validate the partial amount - final withoutTrailing = trimmedAmount.substring(0, trimmedAmount.length - 1); + final withoutTrailing = + trimmedAmount.substring(0, trimmedAmount.length - 1); if (withoutTrailing.isEmpty) { // Just "," or "." - treat as empty (not invalid, but also not valid) return false; @@ -1118,7 +1125,7 @@ class WalletLogic extends WidgetsBindingObserver { balanceRaw, decimals: _wallet.currency.decimals, )); - + // Parse the amount as a double in human-readable format // Handle both comma and dot as decimal separators final normalizedAmount = amount.replaceAll(',', '.'); @@ -1726,7 +1733,7 @@ class WalletLogic extends WidgetsBindingObserver { Future updateAmount({bool unlimited = false}) async { // Fetch current balance before validating to ensure we check against the latest balance await updateBalance(); - + _state.setHasAmount( _amountController.text.isNotEmpty, isInvalidAmount(_amountController.value.text, unlimited: unlimited), From f5695d4d04681dc63a84f0f888ebbbb86fe176b9 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Thu, 11 Dec 2025 13:02:36 +0530 Subject: [PATCH 011/148] eval 'withOfflineBanner' with EventServiceState in (error,connecting) --- lib/screens/wallet/wallet_actions.dart | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/lib/screens/wallet/wallet_actions.dart b/lib/screens/wallet/wallet_actions.dart index 12ae17d3..660e2acb 100644 --- a/lib/screens/wallet/wallet_actions.dart +++ b/lib/screens/wallet/wallet_actions.dart @@ -63,15 +63,15 @@ class _WalletActionsState extends State { final actionButton = context.select(selectActionButtonToShow); final plugins = context.select(selectVisiblePlugins); final featuredPlugins = context.select(selectFeaturedPlugins); - final featuredPlugin = featuredPlugins.isNotEmpty ? featuredPlugins.first : null; + final featuredPlugin = + featuredPlugins.isNotEmpty ? featuredPlugins.first : null; final onePlugin = plugins.isNotEmpty ? plugins.first : null; final imageSmall = context.select((ProfileState state) => state.imageSmall); final username = context.select((ProfileState state) => state.username); - final withOfflineBanner = - eventServiceState != EventServiceState.connected && - eventServiceState != EventServiceState.disconnected; + final withOfflineBanner = eventServiceState == EventServiceState.error || + eventServiceState == EventServiceState.connecting; final blockSending = context.select(selectShouldBlockSending) || loading || @@ -121,22 +121,22 @@ class _WalletActionsState extends State { final buttonSeparator = buttonCount > 3 ? (baseButtonSeparator * 0.5).clamp(5.0, 20.0) : baseButtonSeparator; - + final buttonBarHeight = (1 - widget.shrink) < 0.7 ? 60.0 : progressiveClamp(40, 120, widget.shrink); - + // Reduce button size when there are more buttons final baseButtonSize = (1 - widget.shrink) < 0.9 ? 60.0 : 80.0; final buttonSize = buttonCount > 3 ? (baseButtonSize * 0.85).clamp(50.0, 70.0) : baseButtonSize; - + final baseButtonIconSize = (1 - widget.shrink) < 0.9 ? 20.0 : 40.0; final buttonIconSize = buttonCount > 3 ? (baseButtonIconSize * 0.85).clamp(18.0, 35.0) : baseButtonIconSize; - + final buttonFontSize = (1 - widget.shrink) < 0.9 ? 12.0 : progressiveClamp(10, buttonCount > 3 ? 12 : 14, widget.shrink); @@ -363,11 +363,13 @@ class _WalletActionsState extends State { if (showActionButton && featuredPlugin != null) ...[ Flexible( child: WalletActionButton( - key: Key('featured_plugin_action_button_${featuredPlugin.name}'), + key: Key( + 'featured_plugin_action_button_${featuredPlugin.name}'), customIcon: featuredPlugin.icon != null ? SvgPicture.network( featuredPlugin.icon!, - semanticsLabel: '${featuredPlugin.name} icon', + semanticsLabel: + '${featuredPlugin.name} icon', height: buttonIconSize, width: buttonIconSize, placeholderBuilder: (_) => Icon( @@ -390,7 +392,8 @@ class _WalletActionsState extends State { alt: true, loading: sendLoading, disabled: sendLoading, - onPressed: () => widget.handlePlugin!(featuredPlugin), + onPressed: () => + widget.handlePlugin!(featuredPlugin), ), ), SizedBox( From a1d9ac69281bca4b6249cb7c1288d248399c1166 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Thu, 11 Dec 2025 14:36:16 +0530 Subject: [PATCH 012/148] undo --- lib/state/wallet/logic.dart | 6 ------ 1 file changed, 6 deletions(-) diff --git a/lib/state/wallet/logic.dart b/lib/state/wallet/logic.dart index 52527446..dfcae9ab 100644 --- a/lib/state/wallet/logic.dart +++ b/lib/state/wallet/logic.dart @@ -622,12 +622,6 @@ class WalletLogic extends WidgetsBindingObserver { _eventService = null; } - // Check if community is hidden/closed - if (communityConfig.community.hidden) { - handleEventServiceStateChange(EventServiceState.closed); - return; - } - _eventService = EventService( communityConfig.chains[token.chainId.toString()]!.node.wsUrl, token.address, From f73e0bb71c47ba6b5605fa15fc240ed10349d09b Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Thu, 11 Dec 2025 15:05:53 +0530 Subject: [PATCH 013/148] disable 'send' and 'receive' if community is closed --- lib/screens/wallet/wallet_actions.dart | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/screens/wallet/wallet_actions.dart b/lib/screens/wallet/wallet_actions.dart index 660e2acb..25bef986 100644 --- a/lib/screens/wallet/wallet_actions.dart +++ b/lib/screens/wallet/wallet_actions.dart @@ -73,14 +73,20 @@ class _WalletActionsState extends State { final withOfflineBanner = eventServiceState == EventServiceState.error || eventServiceState == EventServiceState.connecting; + final isCommunityClosed = eventServiceState == EventServiceState.closed; + final blockSending = context.select(selectShouldBlockSending) || loading || firstLoad || - widget.handleSendScreen == null; + widget.handleSendScreen == null || + isCommunityClosed; final sendLoading = context.read().transactionSendLoading; - final blockReceive = - loading || firstLoad || widget.handleReceive == null || sendLoading; + final blockReceive = loading || + firstLoad || + widget.handleReceive == null || + sendLoading || + isCommunityClosed; final hasPending = context.select(selectHasProcessingTransactions); final newBalance = context.select(selectWalletBalance); From 03c955e5c90370658edccbca43b27ad425563d0f Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Thu, 11 Dec 2025 15:40:35 +0530 Subject: [PATCH 014/148] remove comments --- lib/screens/wallet/screen.dart | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib/screens/wallet/screen.dart b/lib/screens/wallet/screen.dart index cbe29239..f96593b6 100644 --- a/lib/screens/wallet/screen.dart +++ b/lib/screens/wallet/screen.dart @@ -1259,10 +1259,6 @@ class WalletScreenState extends State ), ), ), - // Positioned( - // bottom: 60, - // left: 0, - // right: 0, Align( alignment: Alignment.bottomCenter, child: Padding( From f1a6587923ddbe038ee614dcf972b917121c5113 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Fri, 12 Dec 2025 09:38:11 +0530 Subject: [PATCH 015/148] localised text --- lib/l10n/app_en.arb | 3 +++ lib/l10n/app_es.arb | 3 +++ lib/l10n/app_fr.arb | 3 +++ lib/l10n/app_localizations.dart | 18 ++++++++++++++++++ lib/l10n/app_localizations_en.dart | 9 +++++++++ lib/l10n/app_localizations_es.dart | 9 +++++++++ lib/l10n/app_localizations_fr.dart | 9 +++++++++ lib/l10n/app_localizations_nl.dart | 9 +++++++++ lib/l10n/app_nl.arb | 3 +++ 9 files changed, 66 insertions(+) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index de8ccc05..44dfcc0e 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -199,6 +199,9 @@ "emptyBalanceText2": "Redeem this voucher to your account.", "tapToScan": "Tap to scan", "communityCurrentlyOffline": "Community currently offline", + "communityClosed": "This community is currently closed", + "communityClosedDescription": "This community is not accepting transactions at this time. Contact the community administrator for more information.", + "learnMore": "Learn More", "topup": "Top Up", "close": "Close", "more": "More", diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index b62ffab5..cf42dcef 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -199,6 +199,9 @@ "emptyBalanceText2": "Canjea este vale en tu cuenta.", "tapToScan": "Toca para escanear", "communityCurrentlyOffline": "Comunidad actualmente fuera de línea", + "communityClosed": "Esta comunidad está actualmente cerrada", + "communityClosedDescription": "Esta comunidad no acepta transacciones en este momento. Ponte en contacto con el administrador de la comunidad para más información.", + "learnMore": "Más información", "topup": "Recargar", "close": "Cerrar", "more": "Más", diff --git a/lib/l10n/app_fr.arb b/lib/l10n/app_fr.arb index 9b4bd69e..4fa97e54 100644 --- a/lib/l10n/app_fr.arb +++ b/lib/l10n/app_fr.arb @@ -198,6 +198,9 @@ "emptyBalanceText2": "Échangez ce bon sur votre compte.", "tapToScan": "Scannez votre carte", "communityCurrentlyOffline": "Communauté actuellement hors ligne", + "communityClosed": "Cette communauté est actuellement fermée", + "communityClosedDescription": "Cette communauté n'accepte pas les transactions pour le moment. Contactez l'administrateur de la communauté pour plus d'informations.", + "learnMore": "En savoir plus", "topup": "Recharger", "more": "Plus", "close": "Fermer", diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index 42b9531c..f2b1e0a0 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -1331,6 +1331,24 @@ abstract class AppLocalizations { /// In en, this message translates to: /// **'Account not found'** String get accountNotFound; + + /// No description provided for @communityClosed. + /// + /// In en, this message translates to: + /// **'This community is currently closed'** + String get communityClosed; + + /// No description provided for @communityClosedDescription. + /// + /// In en, this message translates to: + /// **'This community is not accepting transactions at this time. Contact the community administrator for more information.'** + String get communityClosedDescription; + + /// No description provided for @learnMore. + /// + /// In en, this message translates to: + /// **'Learn More'** + String get learnMore; } class _AppLocalizationsDelegate diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart index cf7a7b21..fde6d134 100644 --- a/lib/l10n/app_localizations_en.dart +++ b/lib/l10n/app_localizations_en.dart @@ -667,4 +667,13 @@ class AppLocalizationsEn extends AppLocalizations { @override String get accountNotFound => 'Account not found'; + + @override + String get communityClosed => 'This community is currently closed'; + + @override + String get communityClosedDescription => 'This community is not accepting transactions at this time. Contact the community administrator for more information.'; + + @override + String get learnMore => 'Learn More'; } diff --git a/lib/l10n/app_localizations_es.dart b/lib/l10n/app_localizations_es.dart index 7b0cfb8d..e080fcab 100644 --- a/lib/l10n/app_localizations_es.dart +++ b/lib/l10n/app_localizations_es.dart @@ -671,4 +671,13 @@ class AppLocalizationsEs extends AppLocalizations { @override String get accountNotFound => 'Cuenta no encontrada'; + + @override + String get communityClosed => 'Esta comunidad está actualmente cerrada'; + + @override + String get communityClosedDescription => 'Esta comunidad no está aceptando transacciones en este momento. Contacta al administrador de la comunidad para obtener más información.'; + + @override + String get learnMore => 'Más información'; } diff --git a/lib/l10n/app_localizations_fr.dart b/lib/l10n/app_localizations_fr.dart index f2153012..1f88cc26 100644 --- a/lib/l10n/app_localizations_fr.dart +++ b/lib/l10n/app_localizations_fr.dart @@ -672,4 +672,13 @@ class AppLocalizationsFr extends AppLocalizations { @override String get accountNotFound => 'Compte non trouvé'; + + @override + String get communityClosed => 'Cette communauté est actuellement fermée'; + + @override + String get communityClosedDescription => 'Cette communauté n\'accepte pas les transactions pour le moment. Contactez l\'administrateur de la communauté pour plus d\'informations.'; + + @override + String get learnMore => 'En savoir plus'; } diff --git a/lib/l10n/app_localizations_nl.dart b/lib/l10n/app_localizations_nl.dart index 7eac1ca0..29cff167 100644 --- a/lib/l10n/app_localizations_nl.dart +++ b/lib/l10n/app_localizations_nl.dart @@ -674,4 +674,13 @@ class AppLocalizationsNl extends AppLocalizations { @override String get accountNotFound => 'Account niet gevonden'; + + @override + String get communityClosed => 'Deze gemeenschap is momenteel gesloten'; + + @override + String get communityClosedDescription => 'Deze gemeenschap accepteert momenteel geen transacties. Neem contact op met de gemeenschapsadministrator voor meer informatie.'; + + @override + String get learnMore => 'Meer informatie'; } diff --git a/lib/l10n/app_nl.arb b/lib/l10n/app_nl.arb index 171bdea4..4d32dbf1 100644 --- a/lib/l10n/app_nl.arb +++ b/lib/l10n/app_nl.arb @@ -198,6 +198,9 @@ "emptyBalanceText2": "Claim deze voucher op je account", "tapToScan": "Tik om te scannen", "communityCurrentlyOffline": "Gemeenschap momenteel offline", + "communityClosed": "Deze gemeenschap is momenteel gesloten", + "communityClosedDescription": "Deze gemeenschap accepteert momenteel geen transacties. Neem contact op met de gemeenschapsbeheerder voor meer informatie.", + "learnMore": "Meer informatie", "topup": "Opwaarderen", "more": "Meer", "close": "Sluiten", From d3fe3c5592ace0a8f11d9130cb072a9db5ab0695 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Fri, 12 Dec 2025 09:51:32 +0530 Subject: [PATCH 016/148] add CommunityClosedBanner to screen --- lib/screens/wallet/screen.dart | 14 +- .../communities/community_closed_banner.dart | 210 ++++++++++++++++++ 2 files changed, 221 insertions(+), 3 deletions(-) create mode 100644 lib/widgets/communities/community_closed_banner.dart diff --git a/lib/screens/wallet/screen.dart b/lib/screens/wallet/screen.dart index f96593b6..2f8644cb 100644 --- a/lib/screens/wallet/screen.dart +++ b/lib/screens/wallet/screen.dart @@ -34,6 +34,7 @@ import 'package:modal_bottom_sheet/modal_bottom_sheet.dart'; import 'package:provider/provider.dart'; import 'package:citizenwallet/l10n/app_localizations.dart'; import 'package:citizenwallet/widgets/communities/offline_banner.dart'; +import 'package:citizenwallet/widgets/communities/community_closed_banner.dart'; import 'package:reown_walletkit/reown_walletkit.dart'; import 'dart:async'; @@ -1268,7 +1269,9 @@ class WalletScreenState extends State crossAxisAlignment: CrossAxisAlignment.center, children: [ GestureDetector( - onTap: config?.online == false ? () => () : handleQRScan, + onTap: (config?.online == false || isClosed) + ? () => () + : handleQRScan, child: Container( height: 90, width: 90, @@ -1279,7 +1282,7 @@ class WalletScreenState extends State .resolveFrom(context), borderRadius: BorderRadius.circular(45), border: Border.all( - color: config?.online == false + color: (config?.online == false || isClosed) ? scanQrDisabledColor : Theme.of(context).colors.surfacePrimary, width: 3, @@ -1302,7 +1305,7 @@ class WalletScreenState extends State child: Icon( CupertinoIcons.qrcode_viewfinder, size: 60, - color: config?.online == false + color: (config?.online == false || isClosed) ? scanQrDisabledColor : Theme.of(context).colors.surfacePrimary, ), @@ -1391,6 +1394,11 @@ class WalletScreenState extends State ), ), ), + if (isClosed) + CommunityClosedBanner( + communityUrl: config?.community.url ?? '', + display: isClosed, + ), OfflineBanner( communityUrl: config?.community.url ?? '', display: isOffline, diff --git a/lib/widgets/communities/community_closed_banner.dart b/lib/widgets/communities/community_closed_banner.dart new file mode 100644 index 00000000..f59aeb98 --- /dev/null +++ b/lib/widgets/communities/community_closed_banner.dart @@ -0,0 +1,210 @@ +import 'dart:async'; + +import 'package:citizenwallet/theme/provider.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/services.dart'; +import 'package:citizenwallet/l10n/app_localizations.dart'; +import 'package:url_launcher/url_launcher.dart'; + +class CommunityClosedBanner extends StatefulWidget { + final String communityUrl; + final bool display; + + const CommunityClosedBanner({ + super.key, + required this.communityUrl, + this.display = false, + }); + + @override + State createState() => _CommunityClosedBannerState(); +} + +class _CommunityClosedBannerState extends State { + bool _display = false; + double _opacity = 0; + double _slideOffset = 100; + + Timer? _showTimer; + Timer? _hideTimer; + + @override + void initState() { + super.initState(); + + _display = widget.display; + _opacity = widget.display ? 1 : 0; + _slideOffset = widget.display ? 0 : 100; + } + + @override + void didUpdateWidget(CommunityClosedBanner oldWidget) { + super.didUpdateWidget(oldWidget); + + if (widget.display != oldWidget.display) { + if (widget.display) { + show(); + } else { + hide(); + } + } + } + + @override + void dispose() { + _showTimer?.cancel(); + _hideTimer?.cancel(); + + super.dispose(); + } + + void show() async { + setState(() { + _display = true; + }); + + _hideTimer?.cancel(); + _showTimer = Timer(const Duration(milliseconds: 50), () { + HapticFeedback.heavyImpact(); + + setState(() { + _opacity = 1; + _slideOffset = 0; + }); + }); + } + + void hide() async { + setState(() { + _opacity = 0; + _slideOffset = 100; + }); + + _showTimer?.cancel(); + _hideTimer = Timer(const Duration(milliseconds: 400), () { + HapticFeedback.lightImpact(); + + setState(() { + _display = false; + }); + }); + } + + void handleLearnMore() { + final Uri uri = Uri.parse(widget.communityUrl); + launchUrl(uri, mode: LaunchMode.inAppWebView); + } + + @override + Widget build(BuildContext context) { + if (!_display) { + return const SizedBox(); + } + + final screenHeight = MediaQuery.of(context).size.height; + final safeBottomPadding = MediaQuery.of(context).padding.bottom; + + // Calculate height to cover from bottom to just below balance area + // Leaving approximately 300-350px from top for profile/balance visibility + final bannerHeight = screenHeight - 300; + + return Positioned( + bottom: 0, + left: 0, + right: 0, + child: AnimatedOpacity( + opacity: _opacity, + duration: const Duration(milliseconds: 400), + child: AnimatedContainer( + duration: const Duration(milliseconds: 400), + curve: Curves.easeOut, + transform: Matrix4.translationValues(0, _slideOffset, 0), + height: bannerHeight, + padding: EdgeInsets.fromLTRB(20, 40, 20, safeBottomPadding + 20), + decoration: BoxDecoration( + color: const Color(0xFFF5F5F0), // Pearl white + borderRadius: const BorderRadius.only( + topLeft: Radius.circular(20), + topRight: Radius.circular(20), + ), + boxShadow: [ + BoxShadow( + color: Theme.of(context).colors.black.withOpacity(0.3), + blurRadius: 20, + offset: const Offset(0, -5), + ), + ], + ), + child: SingleChildScrollView( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Icon( + CupertinoIcons.info_circle_fill, + size: 60, + color: Theme.of(context).colors.primary.resolveFrom(context), + ), + const SizedBox(height: 16), + Text( + AppLocalizations.of(context)!.communityClosed, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 24, + fontWeight: FontWeight.bold, + color: Theme.of(context).colors.black, + ), + ), + const SizedBox(height: 12), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Text( + AppLocalizations.of(context)!.communityClosedDescription, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.normal, + color: Theme.of(context).colors.black.withOpacity(0.7), + height: 1.5, + ), + ), + ), + const SizedBox(height: 20), + if (widget.communityUrl.isNotEmpty) + CupertinoButton( + padding: const EdgeInsets.symmetric( + horizontal: 30, + vertical: 12, + ), + color: + Theme.of(context).colors.primary.resolveFrom(context), + borderRadius: BorderRadius.circular(25), + onPressed: handleLearnMore, + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + AppLocalizations.of(context)!.learnMore, + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w600, + color: Theme.of(context).colors.white, + ), + ), + const SizedBox(width: 8), + Icon( + CupertinoIcons.arrow_right_circle_fill, + color: Theme.of(context).colors.white, + size: 20, + ), + ], + ), + ), + ], + ), + ), + ), + ), + ); + } +} From 7ce0157d0bbc33f83605d2b067c2ac2f034bf69b Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Fri, 12 Dec 2025 16:27:46 +0530 Subject: [PATCH 017/148] getOffboardPlugin --- lib/services/config/config.dart | 4 ++++ lib/services/config/legacy.dart | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/lib/services/config/config.dart b/lib/services/config/config.dart index 01b02434..486226dc 100644 --- a/lib/services/config/config.dart +++ b/lib/services/config/config.dart @@ -706,6 +706,10 @@ class Config { return plugins?.firstWhereOrNull((plugin) => plugin.action == 'topup'); } + PluginConfig? getOffboardPlugin() { + return plugins?.firstWhereOrNull((plugin) => plugin.action == 'offboard'); + } + TokenConfig getPrimaryToken() { final primaryToken = tokens[community.primaryToken.fullAddress]; if (primaryToken == null) { diff --git a/lib/services/config/legacy.dart b/lib/services/config/legacy.dart index 7fe9c7e0..a9c5bf4c 100644 --- a/lib/services/config/legacy.dart +++ b/lib/services/config/legacy.dart @@ -571,4 +571,8 @@ class LegacyConfig { LegacyPluginConfig? getTopUpPlugin() { return plugins.firstWhereOrNull((plugin) => plugin.action == 'topup'); } + + LegacyPluginConfig? getOffboardPlugin() { + return plugins.firstWhereOrNull((plugin) => plugin.action == 'offboard'); + } } From d038b654e4498b11afa196958d95d654ea8e5a55 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Fri, 12 Dec 2025 16:32:21 +0530 Subject: [PATCH 018/148] CommunityClosedBanner - Enhanced Drag-to-Dismiss Experience - Responsive Dragging - Smooth Snap-Back/Dismissal: - Reduced Dismissal Threshold: - Layout Fix --- .../communities/community_closed_banner.dart | 366 ++++++++++++++---- 1 file changed, 280 insertions(+), 86 deletions(-) diff --git a/lib/widgets/communities/community_closed_banner.dart b/lib/widgets/communities/community_closed_banner.dart index f59aeb98..d1b76af2 100644 --- a/lib/widgets/communities/community_closed_banner.dart +++ b/lib/widgets/communities/community_closed_banner.dart @@ -4,15 +4,17 @@ import 'package:citizenwallet/theme/provider.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/services.dart'; import 'package:citizenwallet/l10n/app_localizations.dart'; -import 'package:url_launcher/url_launcher.dart'; +// The CommunityClosedBanner class remains the same. class CommunityClosedBanner extends StatefulWidget { - final String communityUrl; + final VoidCallback? handleOffboardPlugin; + final VoidCallback? onDismiss; final bool display; const CommunityClosedBanner({ super.key, - required this.communityUrl, + this.handleOffboardPlugin, + this.onDismiss, this.display = false, }); @@ -20,27 +22,69 @@ class CommunityClosedBanner extends StatefulWidget { State createState() => _CommunityClosedBannerState(); } -class _CommunityClosedBannerState extends State { +// ==================================================================== +// Refactored State Class +// ==================================================================== + +class _CommunityClosedBannerState extends State + with SingleTickerProviderStateMixin { + // ADD this Mixin + + // Existing state variables bool _display = false; - double _opacity = 0; double _slideOffset = 100; + bool _isDismissed = false; + + // Keep these for tracking the current drag and its position + double _dragOffset = 0; + bool _isDragging = false; + + // New: Animation Controller for the drag effect (snap-back or final dismissal) + late AnimationController _dragAnimationController; + late Animation _dragAnimation; Timer? _showTimer; Timer? _hideTimer; @override - void initState() { +void initState() { super.initState(); _display = widget.display; - _opacity = widget.display ? 1 : 0; _slideOffset = widget.display ? 0 : 100; + + _dragAnimationController = AnimationController( + vsync: this, + duration: const Duration(milliseconds: 300), + )..addListener(_handleAnimationUpdate); + + // 💡 FIX: Initialize _dragAnimation here with a default value of 0 + _dragAnimation = Tween( + begin: 0, + end: 0, + ).animate(_dragAnimationController); + } + + // New: Listener for the drag animation + void _handleAnimationUpdate() { + setState(() { + // The current drag offset is controlled by the animation when not dragging + _dragOffset = _dragAnimation.value; + }); + // If the animation is completing and it was a dismissal animation, call hide + if (_dragAnimationController.isCompleted && !_isDragging && _isDismissed) { + // This hide call completes the process by setting _display = false + // and animating the main widget's slide offset back to 100 + hide(); + } } @override void didUpdateWidget(CommunityClosedBanner oldWidget) { super.didUpdateWidget(oldWidget); + if (_isDismissed) return; + if (widget.display != oldWidget.display) { if (widget.display) { show(); @@ -54,13 +98,17 @@ class _CommunityClosedBannerState extends State { void dispose() { _showTimer?.cancel(); _hideTimer?.cancel(); - + _dragAnimationController.dispose(); // DISPOSE the controller super.dispose(); } void show() async { + if (_isDismissed) return; + setState(() { _display = true; + _dragOffset = 0; // Ensure reset on show + _isDragging = false; // Ensure reset on show }); _hideTimer?.cancel(); @@ -68,7 +116,6 @@ class _CommunityClosedBannerState extends State { HapticFeedback.heavyImpact(); setState(() { - _opacity = 1; _slideOffset = 0; }); }); @@ -76,7 +123,6 @@ class _CommunityClosedBannerState extends State { void hide() async { setState(() { - _opacity = 0; _slideOffset = 100; }); @@ -91,8 +137,103 @@ class _CommunityClosedBannerState extends State { } void handleLearnMore() { - final Uri uri = Uri.parse(widget.communityUrl); - launchUrl(uri, mode: LaunchMode.inAppWebView); + widget.handleOffboardPlugin?.call(); + } + + void handleDismiss() { + // Only set _isDismissed and call onDismiss. The visual dismissal animation + // is now handled by _handleDragEnd/AnimatedBuilder. + setState(() { + _isDismissed = true; + }); + widget.onDismiss?.call(); + // hide() is called after the dismissal animation completes in _handleAnimationUpdate + } + + void _handleDragStart(DragStartDetails details) { + // Stop any ongoing animation before starting a new drag + _dragAnimationController.stop(); + setState(() { + _isDragging = true; + }); + } + +void _handleDragUpdate(DragUpdateDetails details) { + setState(() { + // 1. Update the drag offset based on user movement (details.delta.dy) + // Dragging down (dy > 0) increases _dragOffset. + // Dragging up (dy < 0) decreases _dragOffset. + _dragOffset += details.delta.dy * 0.8; + + // 2. ⚠️ Recommended FIX: Clamp the drag offset to prevent it from becoming negative. + // A negative _dragOffset translates the banner UP. By clamping at 0, + // we ensure the banner cannot move up past its fully displayed state. + if (_dragOffset < 0) { + _dragOffset = 0; + } + + // The previous 'if (_dragOffset < 0 && _slideOffset < 100)' block + // is no longer necessary, as the clamp handles the restriction. + // Any content related to upward drag logic (like the -50 limit) + // is also overridden by the strict clamp at 0. + }); + } + + void _handleDragEnd(DragEndDetails details) { + final velocity = details.primaryVelocity ?? 0; + final screenHeight = MediaQuery.of(context).size.height; + // Lower the threshold to make dismissal easier + final dismissThreshold = screenHeight * 0.15; // 15% of screen height + + // Calculate the target end position for the animation + final double targetEndOffset; + final bool shouldDismiss; + + if (_dragOffset > dismissThreshold || velocity > 400) { + // ⬇️ DRAG DOWN TO DISMISS + HapticFeedback.mediumImpact(); + shouldDismiss = true; + targetEndOffset = screenHeight; + } else if (_dragOffset < 0 && _dragOffset.abs() > 10) { + // ⬆️ DRAG UP (Optional: check if drag up gesture was significant) + // If you wanted a "compacted" state on drag up, this is where you'd set targetEndOffset to a small negative value. + // For now, we'll just snap back to 0. + HapticFeedback.lightImpact(); + shouldDismiss = false; + targetEndOffset = 0; // Snap back to origin + } else { + // ➖ SNAP BACK (Not enough drag in either direction) + HapticFeedback.lightImpact(); + shouldDismiss = false; + targetEndOffset = 0; + } + + // Set dragging to false + setState(() { + _isDragging = false; + }); + + if (shouldDismiss) { + handleDismiss(); // Call handleDismiss to set _isDismissed = true + } + + // Configure and start the animation for snap-back or dismissal + _dragAnimation = Tween( + begin: _dragOffset, + end: targetEndOffset, + ).animate(CurvedAnimation( + parent: _dragAnimationController, + curve: shouldDismiss + ? Curves.easeOut + : Curves.easeOutCubic, // Different curves for dismissal vs snap-back + )); + + // Reset controller and start the animation + _dragAnimationController.reset(); + _dragAnimationController.forward(); + + // Note: The final call to hide() happens in _handleAnimationUpdate + // when the dismissal animation completes. } @override @@ -103,104 +244,157 @@ class _CommunityClosedBannerState extends State { final screenHeight = MediaQuery.of(context).size.height; final safeBottomPadding = MediaQuery.of(context).padding.bottom; - - // Calculate height to cover from bottom to just below balance area - // Leaving approximately 300-350px from top for profile/balance visibility final bannerHeight = screenHeight - 300; + // Use a temporary variable for the current drag offset: + // It's either the real-time drag (if dragging) or the animated value (if snapping back/dismissing) + final currentDragOffset = _isDragging ? _dragOffset : _dragAnimation.value; + + // Calculate the total offset including the initial slide-in/out and the current drag/animation + final totalOffset = _slideOffset + currentDragOffset; + return Positioned( bottom: 0, left: 0, right: 0, - child: AnimatedOpacity( - opacity: _opacity, - duration: const Duration(milliseconds: 400), + child: GestureDetector( + onVerticalDragStart: _handleDragStart, + onVerticalDragUpdate: _handleDragUpdate, + onVerticalDragEnd: _handleDragEnd, child: AnimatedContainer( + // Keep AnimatedContainer for the initial slide-in/out (_slideOffset) duration: const Duration(milliseconds: 400), curve: Curves.easeOut, + // Apply the main slide-in/out offset here transform: Matrix4.translationValues(0, _slideOffset, 0), height: bannerHeight, - padding: EdgeInsets.fromLTRB(20, 40, 20, safeBottomPadding + 20), - decoration: BoxDecoration( - color: const Color(0xFFF5F5F0), // Pearl white - borderRadius: const BorderRadius.only( - topLeft: Radius.circular(20), - topRight: Radius.circular(20), - ), - boxShadow: [ - BoxShadow( - color: Theme.of(context).colors.black.withOpacity(0.3), - blurRadius: 20, - offset: const Offset(0, -5), - ), - ], - ), - child: SingleChildScrollView( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Icon( - CupertinoIcons.info_circle_fill, - size: 60, - color: Theme.of(context).colors.primary.resolveFrom(context), + // Wrap the content in AnimatedBuilder to handle the drag animation + child: AnimatedBuilder( + animation: _dragAnimationController, + builder: (context, child) { + // Apply the drag/snap-back/dismissal offset here + return Transform.translate( + offset: Offset(0, currentDragOffset), + child: child, + ); + }, + child: Container( + // Now the main content container + padding: EdgeInsets.fromLTRB(20, 10, 20, safeBottomPadding + 20), + decoration: BoxDecoration( + color: const Color(0xFFF5F5F0), // Pearl white + borderRadius: const BorderRadius.only( + topLeft: Radius.circular(20), + topRight: Radius.circular(20), ), - const SizedBox(height: 16), - Text( - AppLocalizations.of(context)!.communityClosed, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 24, - fontWeight: FontWeight.bold, - color: Theme.of(context).colors.black, + boxShadow: [ + BoxShadow( + color: Theme.of(context).colors.black.withOpacity(0.3), + blurRadius: 20, + offset: const Offset(0, -5), ), - ), - const SizedBox(height: 12), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 20), - child: Text( - AppLocalizations.of(context)!.communityClosedDescription, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 16, - fontWeight: FontWeight.normal, - color: Theme.of(context).colors.black.withOpacity(0.7), - height: 1.5, + ], + ), + child: Stack( + children: [ + // ... rest of the banner content remains the same + // Drag handle indicator + Positioned( + top: 8, + left: 0, + right: 0, + child: Center( + child: Container( + width: 40, + height: 4, + decoration: BoxDecoration( + color: + Theme.of(context).colors.black.withOpacity(0.2), + borderRadius: BorderRadius.circular(2), + ), + ), ), ), - ), - const SizedBox(height: 20), - if (widget.communityUrl.isNotEmpty) - CupertinoButton( - padding: const EdgeInsets.symmetric( - horizontal: 30, - vertical: 12, - ), - color: - Theme.of(context).colors.primary.resolveFrom(context), - borderRadius: BorderRadius.circular(25), - onPressed: handleLearnMore, - child: Row( - mainAxisSize: MainAxisSize.min, + Padding( + padding: const EdgeInsets.only(top: 30), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, children: [ + Icon( + CupertinoIcons.info_circle_fill, + size: 60, + color: Theme.of(context) + .colors + .primary + .resolveFrom(context), + ), + const SizedBox(height: 16), Text( - AppLocalizations.of(context)!.learnMore, + AppLocalizations.of(context)!.communityClosed, + textAlign: TextAlign.center, style: TextStyle( - fontSize: 16, - fontWeight: FontWeight.w600, - color: Theme.of(context).colors.white, + fontSize: 24, + fontWeight: FontWeight.bold, + color: Theme.of(context).colors.black, ), ), - const SizedBox(width: 8), - Icon( - CupertinoIcons.arrow_right_circle_fill, - color: Theme.of(context).colors.white, - size: 20, + const SizedBox(height: 12), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Text( + AppLocalizations.of(context)! + .communityClosedDescription, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.normal, + color: Theme.of(context) + .colors + .black + .withOpacity(0.7), + height: 1.5, + ), + ), ), + const SizedBox(height: 20), + if (widget.handleOffboardPlugin != null) + CupertinoButton( + padding: const EdgeInsets.symmetric( + horizontal: 30, + vertical: 12, + ), + color: Theme.of(context) + .colors + .primary + .resolveFrom(context), + borderRadius: BorderRadius.circular(25), + onPressed: handleLearnMore, + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + AppLocalizations.of(context)!.learnMore, + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w600, + color: Theme.of(context).colors.white, + ), + ), + const SizedBox(width: 8), + Icon( + CupertinoIcons.arrow_right_circle_fill, + color: Theme.of(context).colors.white, + size: 20, + ), + ], + ), + ), ], ), ), - ], + ], + ), ), ), ), From 39434747bfe543de78e44aa03c523aed422c709b Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Fri, 12 Dec 2025 16:32:43 +0530 Subject: [PATCH 019/148] show/hide community closed banner --- lib/screens/wallet/screen.dart | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/screens/wallet/screen.dart b/lib/screens/wallet/screen.dart index 2f8644cb..da4aed99 100644 --- a/lib/screens/wallet/screen.dart +++ b/lib/screens/wallet/screen.dart @@ -86,6 +86,7 @@ class WalletScreenState extends State String? _deepLinkParams; String? _sendToURL; Config? _config; + bool _isClosedBannerDismissed = false; @override void initState() { @@ -1200,6 +1201,9 @@ class WalletScreenState extends State eventServiceState == EventServiceState.connecting; final isClosed = eventServiceState == EventServiceState.closed; + final offboardPlugin = context.select( + (WalletState state) => state.config!.getOffboardPlugin(), + ); final cleaningUp = context.select((WalletState state) => state.cleaningUp); final config = context.select((WalletState state) => state.config); @@ -1396,7 +1400,14 @@ class WalletScreenState extends State ), if (isClosed) CommunityClosedBanner( - communityUrl: config?.community.url ?? '', + handleOffboardPlugin: offboardPlugin != null + ? () => handlePlugin(offboardPlugin) + : null, + onDismiss: () { + setState(() { + _isClosedBannerDismissed = true; + }); + }, display: isClosed, ), OfflineBanner( From 800cee0907f9564dfcb22f6bd361f9cd491c94a3 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Fri, 12 Dec 2025 16:46:20 +0530 Subject: [PATCH 020/148] hide/ show CommunityClosedBanner from screen --- lib/screens/wallet/screen.dart | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/screens/wallet/screen.dart b/lib/screens/wallet/screen.dart index da4aed99..d19d0d70 100644 --- a/lib/screens/wallet/screen.dart +++ b/lib/screens/wallet/screen.dart @@ -1200,7 +1200,7 @@ class WalletScreenState extends State final isOffline = eventServiceState == EventServiceState.error || eventServiceState == EventServiceState.connecting; - final isClosed = eventServiceState == EventServiceState.closed; + final isCommunityClosed = eventServiceState == EventServiceState.closed; final offboardPlugin = context.select( (WalletState state) => state.config!.getOffboardPlugin(), ); @@ -1273,7 +1273,7 @@ class WalletScreenState extends State crossAxisAlignment: CrossAxisAlignment.center, children: [ GestureDetector( - onTap: (config?.online == false || isClosed) + onTap: (config?.online == false || isCommunityClosed) ? () => () : handleQRScan, child: Container( @@ -1286,7 +1286,7 @@ class WalletScreenState extends State .resolveFrom(context), borderRadius: BorderRadius.circular(45), border: Border.all( - color: (config?.online == false || isClosed) + color: (config?.online == false || isCommunityClosed) ? scanQrDisabledColor : Theme.of(context).colors.surfacePrimary, width: 3, @@ -1309,7 +1309,7 @@ class WalletScreenState extends State child: Icon( CupertinoIcons.qrcode_viewfinder, size: 60, - color: (config?.online == false || isClosed) + color: (config?.online == false || isCommunityClosed) ? scanQrDisabledColor : Theme.of(context).colors.surfacePrimary, ), @@ -1398,7 +1398,7 @@ class WalletScreenState extends State ), ), ), - if (isClosed) + if (isCommunityClosed) CommunityClosedBanner( handleOffboardPlugin: offboardPlugin != null ? () => handlePlugin(offboardPlugin) @@ -1408,7 +1408,7 @@ class WalletScreenState extends State _isClosedBannerDismissed = true; }); }, - display: isClosed, + display: isCommunityClosed, ), OfflineBanner( communityUrl: config?.community.url ?? '', From 8211af445d07425bc4622a4a3e766a89f1dcb969 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 14:52:24 +0530 Subject: [PATCH 021/148] config v5 directory with v4 configs --- assets/config/v5/communities.json | 2183 ++++++++++++++++++++++++ assets/config/v5/communities.test.json | 2183 ++++++++++++++++++++++++ assets/config/v5/debug.json | 66 + 3 files changed, 4432 insertions(+) create mode 100644 assets/config/v5/communities.json create mode 100644 assets/config/v5/communities.test.json create mode 100644 assets/config/v5/debug.json diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json new file mode 100644 index 00000000..1e3f8688 --- /dev/null +++ b/assets/config/v5/communities.json @@ -0,0 +1,2183 @@ +[ + { + "community": { + "name": "Citizen Wallet (CTZN)", + "description": "The token powering the Citizen Wallet economy.", + "url": "https://citizenwallet.xyz", + "alias": "ctzn", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/ctzn.svg", + "theme": { + "primary": "#9563D3" + }, + "profile": { + "address": "0x8dA817724Eb6A2aA47c0F8d8b8A98b9B3C2Ddb68", + "chain_id": 137 + }, + "primary_token": { + "address": "0x0D9B0790E97e3426C161580dF4Ee853E4A7C4607", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "chain_id": 137 + } + }, + "tokens": { + "137:0x0D9B0790E97e3426C161580dF4Ee853E4A7C4607": { + "standard": "erc20", + "name": "Citizen Wallet", + "address": "0x0D9B0790E97e3426C161580dF4Ee853E4A7C4607", + "symbol": "CTZN", + "decimals": 18, + "chain_id": 137 + } + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "accounts": { + "137:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 137, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0x3A3E25871c5C6C84D5f397829FF316a37F7FD596", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [ + { + "name": "About", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/ctzn.svg", + "url": "https://citizenwallet.xyz/pay-with-ctzn", + "launch_mode": "browser" + }, + { + "name": "Top Up", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/ctzn.svg", + "url": "https://my.citizenwallet.xyz/onramp", + "action": "topup", + "signature": true + } + ], + "config_location": "https://config.internal.citizenwallet.xyz/v4/ctzn.json", + "version": 4 + }, + { + "community": { + "name": "Brussels Pay", + "description": "A community for the city of Brussels", + "url": "https://pay.brussels", + "alias": "wallet.pay.brussels", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/wallet.pay.brussels.png", + "custom_domain": "wallet.pay.brussels", + "hidden": false, + "theme": { + "primary": "#4a90e2" + }, + "profile": { + "address": "0x56Cc38bDa01bE6eC6D854513C995f6621Ee71229", + "chain_id": 100 + }, + "primary_token": { + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 100 + }, + "primary_account_factory": { + "address": "0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE", + "chain_id": 100 + }, + "primary_card_manager": { + "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "chain_id": 100 + } + }, + "tokens": { + "100:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { + "standard": "erc20", + "name": "pay.brussels", + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "symbol": "EURb", + "decimals": 6, + "chain_id": 100 + } + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "accounts": { + "100:0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE": { + "chain_id": 100, + "entrypoint_address": "0xAAEb9DC18aDadae9b3aE7ec2b47842565A81113f", + "paymaster_address": "0xcA1B9EC1117340818C1c1fdd1B48Ea79E57C140F", + "account_factory_address": "0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE", + "paymaster_type": "cw" + }, + "100:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 100, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0x8fc2e97671C691e7Ff7B42e5c7cCbDD38fC8B729", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "cards": { + "100:0x1EaF6B6A6967608aF6c77224f087b042095891EB": { + "chain_id": 100, + "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "type": "classic" + } + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://engine.pay.brussels", + "ws_url": "wss://engine.pay.brussels" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [ + { + "name": "Top Up", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/wallet.pay.brussels.png", + "url": "https://checkout.pay.brussels/topup", + "action": "topup", + "signature": true, + "featured": true + } + ], + "config_location": "https://wallet.pay.brussels/config/community.json", + "version": 4 + }, + { + "community": { + "name": "Gratitude Token", + "description": "Express your gratitude towards someone by sending them a token of gratitude.", + "url": "https://citizenwallet.xyz/gratitude", + "alias": "gratitude", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/gt.svg", + "theme": { + "primary": "#4EC19D" + }, + "profile": { + "address": "0xEEc0F3257369c6bCD2Fd8755CbEf8A95b12Bc4c9", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD", + "chain_id": 42220 + }, + "primary_card_manager": { + "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { + "standard": "erc20", + "name": "Gratitude Token", + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "symbol": "GT", + "decimals": 0, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD": { + "chain_id": 42220, + "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", + "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", + "account_factory_address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD", + "paymaster_type": "cw" + }, + "42220:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 42220, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0xF05ba2641b31AF70c2678e3324eD8b9C53093FbE", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "cards": { + "42220:0x1EaF6B6A6967608aF6c77224f087b042095891EB": { + "chain_id": 42220, + "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "type": "classic" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://gratitude.citizenwallet.xyz/config/community.json", + "version": 4 + }, + { + "community": { + "name": "SFLUV Community", + "description": "A community currency for the city of San Francisco.", + "url": "https://sfluv.org", + "alias": "wallet.berachain.sfluv.org", + "custom_domain": "wallet.sfluv.org", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "theme": { + "primary": "#eb6c6c" + }, + "profile": { + "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", + "chain_id": 80094 + }, + "primary_token": { + "address": "0x881cad4f885c6701d8481c0ed347f6d35444ea7e", + "chain_id": 80094 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 80094 + } + }, + "tokens": { + "80094:0x881cad4f885c6701d8481c0ed347f6d35444ea7e": { + "standard": "erc20", + "name": "SFLUV V1.1", + "address": "0x881cad4f885c6701d8481c0ed347f6d35444ea7e", + "symbol": "SFLUV", + "decimals": 18, + "chain_id": 80094 + } + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "accounts": { + "80094:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 80094, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0x9A5be02B65f9Aa00060cB8c951dAFaBAB9B860cd", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "paymaster_type": "cw-safe" + } + }, + "chains": { + "80094": { + "id": 80094, + "node": { + "url": "https://80094.engine.citizenwallet.xyz", + "ws_url": "wss://80094.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [ + { + "name": "Map", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "url": "https://app.sfluv.org/map", + "launch_mode": "webview", + "featured": true, + "signature": true + }, + { + "name": "About", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "url": "https://app.sfluv.org", + "launch_mode": "webview", + "signature": true, + "hidden": true + } + ], + "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.sfluv.org.json", + "version": 4 + }, + { + "community": { + "name": "SFLUV Community (Polygon)", + "description": "A community currency for the city of San Francisco.", + "url": "https://sfluv.org", + "alias": "wallet.sfluv.org", + "custom_domain": "wallet.polygon.sfluv.org", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "theme": { + "primary": "#eb6c6c" + }, + "hidden": true, + "profile": { + "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", + "chain_id": 137 + }, + "primary_token": { + "address": "0x58a2993A618Afee681DE23dECBCF535A58A080BA", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x5e987a6c4bb4239d498E78c34e986acf29c81E8e", + "chain_id": 137 + } + }, + "tokens": { + "137:0x58a2993A618Afee681DE23dECBCF535A58A080BA": { + "standard": "erc20", + "name": "SFLUV V1.1", + "address": "0x58a2993A618Afee681DE23dECBCF535A58A080BA", + "symbol": "SFLUV", + "decimals": 6, + "chain_id": 137 + } + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "accounts": { + "137:0x5e987a6c4bb4239d498E78c34e986acf29c81E8e": { + "chain_id": 137, + "entrypoint_address": "0x2d01C5E40Aa6a8478eD0FFbF2784EBb9bf67C46A", + "paymaster_address": "0x7FC98D0a2bd7f766bAca37388eB0F6Db37666B33", + "account_factory_address": "0x5e987a6c4bb4239d498E78c34e986acf29c81E8e", + "paymaster_type": "cw" + } + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [ + { + "name": "About", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "url": "https://app.sfluv.org", + "launch_mode": "webview", + "signature": true, + "hidden": true + } + ], + "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.sfluv.org.json", + "version": 4 + }, + { + "community": { + "name": "Txirrin", + "description": "A community for Txirrin", + "url": "https://citizenwallet.xyz/txirrin", + "alias": "txirrin", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/txirrin.png", + "hidden": false, + "theme": { + "primary": "#FB7502" + }, + "profile": { + "address": "0xd47f7198bf335bfe66dD29C0f3EeEf0cFE9D05D8", + "chain_id": 100 + }, + "primary_token": { + "address": "0x6c6611244547a6E9AaCfBA8744115ca1076756fc", + "chain_id": 100 + }, + "primary_account_factory": { + "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "chain_id": 100 + } + }, + "tokens": { + "100:0x6c6611244547a6E9AaCfBA8744115ca1076756fc": { + "standard": "erc20", + "name": "Txirrin", + "address": "0x6c6611244547a6E9AaCfBA8744115ca1076756fc", + "symbol": "TXI", + "decimals": 6, + "chain_id": 100 + } + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "accounts": { + "100:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 100, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0x33500E7Eb3452421e56c2f4117530B1C4C85E0A5", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://100.engine.citizenwallet.xyz", + "ws_url": "wss://100.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/txirrin.json", + "version": 4 + }, + { + "community": { + "name": "Bolivia Pay", + "description": "A community for Ethereum Bolivia.", + "url": "https://www.ethereumbolivia.org", + "alias": "boliviapay", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/boliviapay.png", + "theme": { + "primary": "#009393" + }, + "hidden": true, + "profile": { + "address": "0x898C2737f2Cb52622711A89D85A1D5E0B881BDeA", + "chain_id": 137 + }, + "primary_token": { + "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "chain_id": 137 + } + }, + "tokens": { + "137:0xc2132D05D31c914a87C6611C10748AEb04B58e8F": { + "standard": "erc20", + "name": "(PoS) Tether USD", + "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F", + "symbol": "USDT", + "decimals": 6, + "chain_id": 137 + } + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "accounts": { + "137:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 137, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0x9a81Bd50D56485Cc863Ecb169812c7a821996C8c", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/boliviapay.json", + "version": 4 + }, + { + "community": { + "name": "Bread Cooperative", + "description": "Financial tools today. Solidarity forever.", + "url": "https://bread.coop", + "alias": "bread", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", + "theme": { + "primary": "#ea6023" + }, + "profile": { + "address": "0x6b3a1f4277391526413F583c23D5B9EF4d2fE986", + "chain_id": 100 + }, + "primary_token": { + "address": "0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3", + "chain_id": 100 + }, + "primary_account_factory": { + "address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", + "chain_id": 100 + } + }, + "tokens": { + "100:0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3": { + "standard": "erc20", + "name": "Bread Cooperative Community Token", + "address": "0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3", + "symbol": "BREAD", + "decimals": 18, + "chain_id": 100 + } + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "accounts": { + "100:0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9": { + "chain_id": 100, + "entrypoint_address": "0xcA0a75EF803a364C83c5EAE7Eb889aE7419c9dF2", + "paymaster_address": "0xbE2Cb3358aa14621134e923B68b8429315368E32", + "account_factory_address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", + "paymaster_type": "cw" + }, + "100:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 100, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0x5C41F1114AB13aF5d66bac485924D03556d0cd51", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://100.engine.citizenwallet.xyz", + "ws_url": "wss://100.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [ + { + "name": "Market", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", + "url": "https://marketplace.citizenwallet.xyz/bread", + "launch_mode": "webview", + "signature": true, + "featured": true + }, + { + "name": "Breadcon 2025 Faucet", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", + "url": "https://faucet.citizenwallet.xyz/breadcon2025", + "launch_mode": "webview", + "signature": true, + "hidden": true + }, + { + "name": "Japan Demo", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", + "url": "https://hackatsuonvoting.vercel.app", + "launch_mode": "webview", + "signature": true, + "hidden": true + }, + { + "name": "Japan Demo", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", + "url": "https://grow-kesennuma.vercel.app", + "launch_mode": "webview", + "signature": true, + "hidden": true + }, + { + "name": "Mutual Vend", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", + "url": "https://mutual-vend.com", + "launch_mode": "webview", + "signature": true, + "hidden": true + } + ], + "config_location": "https://config.internal.citizenwallet.xyz/v4/bread.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "url": "https://breadchain.xyz/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/laborhour.png", + "name": "Labor Hour Token", + "alias": "laborhour", + "theme": { + "primary": "#E52D2D" + }, + "profile": { + "address": "0x673601Eb36820bC9718214AC041E96f79383351B", + "chain_id": 100 + }, + "description": "Labor Hour Token aims to reward contributors for hours of labor, particularly targeting non-blockchain native users", + "primary_token": { + "address": "0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007", + "chain_id": 100 + }, + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 100 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 100 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 100 + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "cards": { + "100:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 100, + "instance_id": "cw-discord-1" + } + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://100.engine.citizenwallet.xyz", + "ws_url": "wss://100.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "100:0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007": { + "name": "Labor Hour Token", + "symbol": "HOUR", + "address": "0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007", + "chain_id": 100, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 4, + "accounts": { + "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 100, + "paymaster_type": "cw-safe", + "paymaster_address": "0xa7fa16C933f51d8623f39FA0dF34D3065B99Bd1c", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 100, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/laborhour.citizenwallet.xyz.json" + }, + { + "community": { + "url": "https://rooted.finance/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rooted.png", + "name": "Rooted.Finance", + "alias": "rooted", + "theme": { + "primary": "#ff4c02" + }, + "hidden": true, + "profile": { + "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", + "chain_id": 8453 + }, + "description": "Rooted in your values.", + "primary_token": { + "address": "0x3595ca37596d5895b70efab592ac315d5b9809b2", + "chain_id": 8453 + }, + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 8453 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 8453 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 8453 + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "cards": { + "8453:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 8453, + "instance_id": "cw-discord-1" + } + }, + "chains": { + "8453": { + "id": 8453, + "node": { + "url": "https://8453.engine.citizenwallet.xyz", + "ws_url": "wss://8453.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "8453:0x3595ca37596d5895b70efab592ac315d5b9809b2": { + "name": "Azos Stablecoin", + "symbol": "AZUSD", + "address": "0x3595ca37596d5895b70efab592ac315d5b9809b2", + "chain_id": 8453, + "decimals": 18, + "standard": "erc20" + } + }, + "plugins": [], + "version": 4, + "accounts": { + "8453:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 8453, + "paymaster_type": "cw-safe", + "paymaster_address": "0x02cd43b3d7a946dCaa8dF12ac0A6Cd50aF9cDd64", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "8453:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 8453, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0x0c2e78DB6FaF8D4d68984A830339764AD9f800D4" + } + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/rooted.citizenwallet.xyz.json" + }, + { + "community": { + "name": "Commons Hub Brussels", + "description": "Community Token for the Commons Hub Brussels community", + "url": "https://commonshub.brussels", + "alias": "wallet.commonshub.brussels", + "custom_domain": "wallet.commonshub.brussels", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/chb.png", + "theme": { + "primary": "#ff4c02" + }, + "profile": { + "address": "0xc06bE1BbbeEAF2f34F3d5b76069D2560aee184Ae", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x65DD32834927de9E57E72a3E2130a19f81C6371D", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x65DD32834927de9E57E72a3E2130a19f81C6371D": { + "standard": "erc20", + "name": "Commons Hub Token", + "address": "0x65DD32834927de9E57E72a3E2130a19f81C6371D", + "symbol": "CHT", + "decimals": 6, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "accounts": { + "42220:0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87": { + "chain_id": 42220, + "entrypoint_address": "0xb7608dDA592d319687C89c4479e320b5a7740117", + "paymaster_address": "0x4E127A1DAa66568B4a91E8c5615120a6Ea5442E3", + "account_factory_address": "0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87", + "paymaster_type": "cw" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "cards": { + "42220:0xc0F9e0907C8de79fd5902b61e463dFEdc5dc8570": { + "chain_id": 42220, + "address": "0xc0F9e0907C8de79fd5902b61e463dFEdc5dc8570", + "type": "classic" + } + }, + "plugins": [ + { + "name": "Market", + "icon": "https://marketplace.citizenwallet.xyz/marketplace.svg", + "url": "https://marketplace.citizenwallet.xyz/wallet.commonshub.brussels", + "launch_mode": "webview", + "signature": true + } + ], + "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.commonshub.brussels.json", + "version": 4 + }, + { + "community": { + "name": "Sel de Salm", + "description": "La communauté de Sel de Salm", + "url": "https://citizenwallet.xyz/community-currency-documentation/sel-de-salm", + "alias": "seldesalm", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", + "theme": { + "primary": "#6B5CA4" + }, + "profile": { + "address": "0x4083724953cC1cC13e76b436149B2b1e1a3E5970", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "chain_id": 42220 + }, + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2": { + "standard": "erc20", + "name": "Myrtille", + "address": "0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2", + "symbol": "MYRT", + "decimals": 6, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 42220, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0xd07412020dA5054c3b49f47Ca61224637F1703af", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "cards": { + "42220:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "chain_id": 42220, + "instance_id": "cw-seldesalm", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "type": "safe" + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [ + { + "name": "Informations Générales", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", + "url": "https://citizenwallet.xyz/community-currency-documentation/sel-de-salm", + "launch_mode": "webview" + }, + { + "name": "Échanges", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", + "url": "https://marketplace.citizenwallet.xyz/seldesalm", + "launch_mode": "webview", + "signature": true, + "featured": true + } + ], + "config_location": "https://seldesalm.citizenwallet.xyz/config/community.json", + "version": 4 + }, + { + "community": { + "name": "TECHI", + "description": "A community for TECHI users", + "url": "https://my.techi.be", + "alias": "my.techi.be", + "logo": "https://my.techi.be/assets/token.svg", + "hidden": false, + "theme": { + "primary": "#617FF8" + }, + "profile": { + "address": "0x80C141861607b8FEfD53C9E71a9c7D2D3e2e76dc", + "chain_id": 100 + }, + "primary_token": { + "address": "0x01D0E7117510b371Ac38f52Cc6689ff8875280FA", + "chain_id": 100 + }, + "primary_account_factory": { + "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "chain_id": 100 + }, + "primary_card_manager": { + "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "chain_id": 100 + } + }, + "tokens": { + "100:0x01D0E7117510b371Ac38f52Cc6689ff8875280FA": { + "standard": "erc20", + "name": "TECHI", + "address": "0x01D0E7117510b371Ac38f52Cc6689ff8875280FA", + "symbol": "TECHI", + "decimals": 6, + "chain_id": 100 + } + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "accounts": { + "100:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 100, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0x68c5a20f233264DB124a3c95a200bbD20b3b9762", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://engine.my.techi.be", + "ws_url": "wss://engine.my.techi.be" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://my.techi.be/assets/community.json", + "version": 4 + }, + { + "community": { + "name": "Regens Unite", + "description": "A community currency for the Regens Unite community.", + "url": "https://www.regensunite.earth/", + "alias": "wallet.regensunite.earth", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", + "custom_domain": "wallet.regensunite.earth", + "hidden": true, + "profile": { + "address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", + "chain_id": 137 + }, + "primary_token": { + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x9406Cc6185a346906296840746125a0E44976454", + "chain_id": 137 + } + }, + "tokens": { + "137:0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e": { + "standard": "erc20", + "name": "Regens Unite Token", + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "symbol": "RGN", + "decimals": 6, + "chain_id": 137 + } + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "accounts": { + "137:0x9406Cc6185a346906296840746125a0E44976454": { + "chain_id": 137, + "entrypoint_address": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", + "paymaster_address": "0x250711045d58b6310f0635C7D110BFe663cE1da5", + "account_factory_address": "0x9406Cc6185a346906296840746125a0E44976454", + "paymaster_type": "payg", + "gas_extra_percentage": 50 + } + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.regensunite.earth.json", + "version": 4 + }, + { + "community": { + "name": "Gratitude Token", + "description": "Express your gratitude towards someone by sending them a token.", + "url": "https://citizenwallet.xyz/gratitude", + "alias": "gt.celo", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/gt.svg", + "custom_domain": null, + "hidden": true, + "theme": { + "primary": "#a256ff" + }, + "profile": { + "address": "0xEEc0F3257369c6bCD2Fd8755CbEf8A95b12Bc4c9", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { + "standard": "erc20", + "name": "Gratitude Token", + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "symbol": "GT", + "decimals": 0, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD": { + "chain_id": 42220, + "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", + "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", + "account_factory_address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD", + "paymaster_type": "cw" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/gt.celo.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "Celo Euro", + "description": "Celo Euro is a stablecoin for the Celo Community.", + "url": "https://celo.org/", + "alias": "ceur.celo", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/ceur.svg", + "hidden": true, + "theme": { + "primary": "#a256ff" + }, + "profile": { + "address": "0x0334C579E61aF6922D5deFEF02A361FBb2D6f406", + "chain_id": 42220 + }, + "primary_token": { + "address": "0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73": { + "standard": "erc20", + "name": "Celo Euro", + "address": "0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73", + "symbol": "cEUR", + "decimals": 18, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098": { + "chain_id": 42220, + "entrypoint_address": "0xc3142BCBA2285d0a48A38e7Ea9Cbf28a12B235bB", + "paymaster_address": "0xedbEA8c0F25B34510149EaD4f72867B0d3D2264F", + "account_factory_address": "0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098", + "paymaster_type": "cw" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/ceur.celo.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "EUR e-money", + "description": "Token by Monerium EMI, a regulated entity, licensed in the EEA.", + "url": "https://monerium.com/tokens/", + "alias": "eure.polygon", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/eure.svg", + "hidden": true, + "profile": { + "address": "0xF5F7317EDb8E88CaE09071B0C4F0fd6EA20B21f9", + "chain_id": 137 + }, + "primary_token": { + "address": "0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616", + "chain_id": 137 + } + }, + "tokens": { + "137:0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6": { + "standard": "erc20", + "name": "EUR emoney", + "address": "0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6", + "symbol": "EURe", + "decimals": 18, + "chain_id": 137 + } + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "accounts": { + "137:0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616": { + "chain_id": 137, + "entrypoint_address": "0x2027Bde7C276D5F128587E3107c68A488ee31c72", + "paymaster_address": "0xB2cb6b75C2357Ca94dBdF58897E468E45fAC83Ec", + "account_factory_address": "0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616", + "paymaster_type": "cw", + "gas_extra_percentage": 50 + } + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/eure.polygon.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "USDC on Polygon", + "description": "The community of people using USDC on Polygon.", + "url": "https://en.wikipedia.org/wiki/USD_Coin", + "alias": "app", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/usdc.svg", + "hidden": true, + "theme": { + "primary": "#0052ff" + }, + "profile": { + "address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", + "chain_id": 137 + }, + "primary_token": { + "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x270758454C012A1f51428b68aE473D728CCdFe88", + "chain_id": 137 + } + }, + "tokens": { + "137:0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174": { + "standard": "erc20", + "name": "USD Coin", + "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", + "symbol": "USDC", + "decimals": 6, + "chain_id": 137 + } + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "accounts": { + "137:0x270758454C012A1f51428b68aE473D728CCdFe88": { + "chain_id": 137, + "entrypoint_address": "0x466AA6ed2B7Bb829841F5aAEA9e82B840eC0feF9", + "paymaster_address": "0xB5D1C0167E6325466E2918e9fda8cc41384C0291", + "account_factory_address": "0x270758454C012A1f51428b68aE473D728CCdFe88", + "paymaster_type": "cw", + "gas_extra_percentage": 50 + } + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/app.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "USDC on Base", + "description": "The community of people using USDC on Base.", + "url": "https://en.wikipedia.org/wiki/USD_Coin", + "alias": "usdc.base", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/usdc.svg", + "hidden": true, + "theme": { + "primary": "#0052ff" + }, + "profile": { + "address": "0x51Ef5Add405CCF63c206A80AF8c2B3cEE0282830", + "chain_id": 8453 + }, + "primary_token": { + "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", + "chain_id": 8453 + }, + "primary_account_factory": { + "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", + "chain_id": 8453 + } + }, + "tokens": { + "8453:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913": { + "standard": "erc20", + "name": "USD Coin", + "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", + "symbol": "USDC", + "decimals": 6, + "chain_id": 8453 + } + }, + "scan": { + "url": "https://basescan.org", + "name": "Base Explorer" + }, + "accounts": { + "8453:0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99": { + "chain_id": 8453, + "entrypoint_address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", + "paymaster_address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", + "account_factory_address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", + "paymaster_type": "cw", + "gas_extra_percentage": 50 + } + }, + "chains": { + "8453": { + "id": 8453, + "node": { + "url": "https://8453.engine.citizenwallet.xyz", + "ws_url": "wss://8453.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/usdc.base.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "OAK Community", + "description": "A community currency for the city of Oakland.", + "url": "https://www.oak.community/", + "alias": "wallet.oak.community", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/oak.svg", + "custom_domain": "wallet.oak.community", + "hidden": true, + "profile": { + "address": "0xFE213c74e25505B232CE4C7f89647408bE6f71d2", + "chain_id": 8453 + }, + "primary_token": { + "address": "0x845598Da418890a674cbaBA26b70807aF0c61dFE", + "chain_id": 8453 + }, + "primary_account_factory": { + "address": "0x9406Cc6185a346906296840746125a0E44976454", + "chain_id": 8453 + } + }, + "tokens": { + "8453:0x845598Da418890a674cbaBA26b70807aF0c61dFE": { + "standard": "erc20", + "name": "OAK Community Currency", + "address": "0x845598Da418890a674cbaBA26b70807aF0c61dFE", + "symbol": "OAK", + "decimals": 6, + "chain_id": 8453 + } + }, + "scan": { + "url": "https://basescan.org", + "name": "Base Explorer" + }, + "accounts": { + "8453:0x9406Cc6185a346906296840746125a0E44976454": { + "chain_id": 8453, + "entrypoint_address": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", + "paymaster_address": "0x123", + "account_factory_address": "0x9406Cc6185a346906296840746125a0E44976454", + "paymaster_type": "payg" + } + }, + "chains": { + "8453": { + "id": 8453, + "node": { + "url": "https://8453.engine.citizenwallet.xyz", + "ws_url": "wss://8453.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.oak.community.json", + "version": 4 + }, + { + "community": { + "name": "Stable Coin", + "description": "SBC is a digital dollar stablecoin issued by Brale", + "url": "https://brale.xyz/", + "alias": "sbc.polygon", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sbc.svg", + "hidden": true, + "profile": { + "address": "0xcA0a75EF803a364C83c5EAE7Eb889aE7419c9dF2", + "chain_id": 137 + }, + "primary_token": { + "address": "0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5", + "chain_id": 137 + } + }, + "tokens": { + "137:0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798": { + "standard": "erc20", + "name": "Stable Coin", + "address": "0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798", + "symbol": "SBC", + "decimals": 18, + "chain_id": 137 + } + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "accounts": { + "137:0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5": { + "chain_id": 137, + "entrypoint_address": "0xe84423Ba1A3f3535B09237245e22dBda5E27eB88", + "paymaster_address": "0x123", + "account_factory_address": "0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5", + "paymaster_type": "cw" + } + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/sbc.polygon.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "Zinne.brussels", + "description": "A community currency for the city of Brussels", + "url": "https://zinne.brussels", + "alias": "zinne", + "logo": "https://citizenwallet.xyz/zinne/zinne-coin.svg", + "hidden": true, + "profile": { + "address": "0x23DB3D3Da510e60aF40902A04850E1F3a744905c", + "chain_id": 137 + }, + "primary_token": { + "address": "0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x11af2639817692D2b805BcE0e1e405E530B20006", + "chain_id": 137 + } + }, + "tokens": { + "137:0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D": { + "standard": "erc20", + "name": "Zinne.brussels Token", + "address": "0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D", + "symbol": "ZINNE", + "decimals": 6, + "chain_id": 137 + } + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "accounts": { + "137:0x11af2639817692D2b805BcE0e1e405E530B20006": { + "chain_id": 137, + "entrypoint_address": "0xF5507B3042f1C63625D856a2ABFF046243A5D74e", + "paymaster_address": "0xBb796D122Ec1aBDeD081D50B06a072f981c7E62b", + "account_factory_address": "0x11af2639817692D2b805BcE0e1e405E530B20006", + "paymaster_type": "cw" + } + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/zinne.brussels.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "Regens Unite Time Bank", + "description": "Make time to regen", + "url": "https://regensunite.earth", + "alias": "timebank.regensunite.earth", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", + "hidden": true, + "profile": { + "address": "0x605A827DF8C405D16Ec70AAb8d9a47D21db45c09", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x186DaBD027e228C988777907465807FDab270894", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x39b77d77f7677997871b304094a05295eb71e240", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x186DaBD027e228C988777907465807FDab270894": { + "standard": "erc20", + "name": "Regen Hour", + "address": "0x186DaBD027e228C988777907465807FDab270894", + "symbol": "rHour", + "decimals": 6, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "accounts": { + "42220:0x39b77d77f7677997871b304094a05295eb71e240": { + "chain_id": 42220, + "entrypoint_address": "0x41176F0C9b8f795Cb99e2DD5Db16017978eeFa4d", + "paymaster_address": "0xe45858bf63176595c2920822581917c7C705a12f", + "account_factory_address": "0x39b77d77f7677997871b304094a05295eb71e240", + "paymaster_type": "cw" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [ + { + "name": "Market", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", + "url": "https://marketplace.citizenwallet.xyz/timebank.regensunite.earth", + "launch_mode": "webview", + "signature": true + } + ], + "config_location": "https://timebank.regensunite.earth/indexer", + "version": 4 + }, + { + "community": { + "name": "MOOS Token", + "description": "A community currency for MOOS.", + "url": "https://www.moos.garden/", + "alias": "moos", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/moos.svg", + "hidden": true, + "profile": { + "address": "0x2e4542Be47408d05F41703386eFaf4338Ee1D341", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x671f0662de72268d0f3966Fb62dFc6ee6389e244", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3": { + "standard": "erc20", + "name": "MOOS Token", + "address": "0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3", + "symbol": "MOOS", + "decimals": 6, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0x671f0662de72268d0f3966Fb62dFc6ee6389e244": { + "chain_id": 42220, + "entrypoint_address": "0x45a8e6AaDCc48D1Ce19eCbE07Ccd3a536EF712ed", + "paymaster_address": "0x55E519bfD63c7152D9F7B88Acd712A37F0BEC482", + "account_factory_address": "0x671f0662de72268d0f3966Fb62dFc6ee6389e244", + "paymaster_type": "cw" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [ + { + "name": "Market", + "icon": "https://moos.citizenwallet.xyz/wallet-config/_images/moos.svg", + "url": "https://marketplace.citizenwallet.xyz/moos", + "launch_mode": "webview", + "signature": true + } + ], + "config_location": "https://config.internal.citizenwallet.xyz/v4/moos.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "Bonne Heure", + "description": "Système d'Échange Local de Villers-la-Ville", + "url": "https://selcoupdepouce.be", + "alias": "selcoupdepouce", + "logo": "https://topup.citizenwallet.xyz/communities/selcoupdepouce/sel-coin.svg", + "hidden": true, + "profile": { + "address": "0xfB8F1e7ED42599638B3c509679E2F43937002C56", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3": { + "standard": "erc20", + "name": "Bonne Heure", + "address": "0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3", + "symbol": "BHR", + "decimals": 6, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284": { + "chain_id": 42220, + "entrypoint_address": "0xA90904F33df36899d810d040b8d5b3b77265Bb05", + "paymaster_address": "0x635032605337aB36A46D767905108e67EE687a72", + "account_factory_address": "0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284", + "paymaster_type": "cw" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [ + { + "name": "Market", + "icon": "https://marketplace.citizenwallet.xyz/marketplace.svg", + "url": "https://marketplace.citizenwallet.xyz/selcoupdepouce", + "launch_mode": "browser", + "signature": true + } + ], + "config_location": "https://config.internal.citizenwallet.xyz/v4/selcoupdepouce.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "CI token", + "description": "Monnaie locale du Cercle Informatique de l’ULB", + "url": "https://citizenwallet.xyz/cit", + "alias": "cit.celo", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/cit.celo.svg", + "hidden": true, + "profile": { + "address": "0x4cB296BEc9FAd0B5e1E4FF1A2F307B425724AC82", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9": { + "standard": "erc20", + "name": "CI token", + "address": "0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9", + "symbol": "CIT", + "decimals": 6, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970": { + "chain_id": 42220, + "entrypoint_address": "0xB8d9412f3A91A00ca762B5c35cd0863E9b716D68", + "paymaster_address": "0x452F7ff3e55fe29f481841985dE7f4939FD645fa", + "account_factory_address": "0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970", + "paymaster_type": "cw" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/cit.celo.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "Wolugo", + "description": "A community for the Woluwe-Saint-Pierre civic engagement platform", + "url": "https://wolugo.be", + "alias": "wallet.wolugo.be", + "custom_domain": "wallet.wolugo.be", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/wolugo.svg", + "theme": { + "primary": "#81e2c1" + }, + "hidden": true, + "profile": { + "address": "0x07e7b95B35866302b3A089feF4CFA3061061a51d", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x8474153A00C959f2cB64852949954DBC68415Bb3", + "chain_id": 42220 + }, + "card_factory": { + "address": "0xA3E1446E332a098A1f3b0555c5d149b4784A095F", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451": { + "standard": "erc20", + "name": "Wolu", + "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", + "symbol": "WOLU", + "decimals": 6, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "accounts": { + "42220:0x8474153A00C959f2cB64852949954DBC68415Bb3": { + "chain_id": 42220, + "entrypoint_address": "0x0F805BC1ED718FB9C7C18439cB11E1C17C6538C4", + "paymaster_address": "0xF2EFEC3cBFaDE0bB6108620cbF7Cc608d27DCF3c", + "account_factory_address": "0x8474153A00C959f2cB64852949954DBC68415Bb3", + "paymaster_type": "cw" + } + }, + "cards": { + "42220:0xA3E1446E332a098A1f3b0555c5d149b4784A095F": { + "chain_id": 42220, + "address": "0xA3E1446E332a098A1f3b0555c5d149b4784A095F", + "type": "classic" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.wolugo.be.json", + "version": 4 + }, + { + "community": { + "name": "Woluwe Test", + "description": "Local currency for the Woluwe Test community.", + "url": "https://wollet-v2.citizenwallet.net/token", + "alias": "wtc.celo", + "logo": "https://wtc.celo.citizenwallet.xyz/wallet-config/_images/wtc.celo.svg", + "hidden": true, + "profile": { + "address": "0xB99a7B1574f051020EB4cb2fce5d48EE07592AfF", + "chain_id": 42220 + }, + "primary_token": { + "address": "0xc53Cb35591959cA62471dA9fF6AC16629A89874a", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0xE79E19594A749330036280c685E2719d58d99052", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0xc53Cb35591959cA62471dA9fF6AC16629A89874a": { + "standard": "erc20", + "name": "Woluwe Test Coin", + "address": "0xc53Cb35591959cA62471dA9fF6AC16629A89874a", + "symbol": "WTC", + "decimals": 6, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0xE79E19594A749330036280c685E2719d58d99052": { + "chain_id": 42220, + "entrypoint_address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "paymaster_address": "0x3fefC19674f3F6E43B1dFf1861E07c303B9eAAc9", + "account_factory_address": "0xE79E19594A749330036280c685E2719d58d99052", + "paymaster_type": "cw" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/wtc.celo.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "ETHGlobal London Token", + "description": "The community of people using ETHLDN on Base.", + "url": "https://en.wikipedia.org/wiki/USD_Coin", + "alias": "testnet-ethldn", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/testnet-ethldn.svg", + "hidden": true, + "profile": { + "address": "0x0785D720279f42326846D5396b5F44b97d0BfECd", + "chain_id": 84532 + }, + "primary_token": { + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "chain_id": 84532 + }, + "primary_account_factory": { + "address": "0xc1654087C580f868F08E34cd1c01eDB1d3673b82", + "chain_id": 84532 + } + }, + "tokens": { + "84532:0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e": { + "standard": "erc20", + "name": "ETHGlobal London Token", + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "symbol": "ETHLDN", + "decimals": 6, + "chain_id": 84532 + } + }, + "scan": { + "url": "https://sepolia.basescan.org", + "name": "Base Sepolia Explorer" + }, + "accounts": { + "84532:0xc1654087C580f868F08E34cd1c01eDB1d3673b82": { + "chain_id": 84532, + "entrypoint_address": "0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE", + "paymaster_address": "0x389182aCCeE26D953d5188BF4b92c49339DcC9FC", + "account_factory_address": "0xc1654087C580f868F08E34cd1c01eDB1d3673b82", + "paymaster_type": "cw" + } + }, + "chains": { + "84532": { + "id": 84532, + "node": { + "url": "https://84532.engine.citizenwallet.xyz", + "ws_url": "wss://84532.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/testnet-ethldn.json", + "version": 4 + }, + { + "community": { + "name": "Celo Community Point", + "description": "This is a community for the Celo Point", + "url": "https://citizenwallet.xyz", + "alias": "celo-c.citizenwallet.xyz", + "logo": "https://celo-c.citizenwallet.xyz/uploads/logo.svg", + "hidden": true, + "profile": { + "address": "0x14004E13907282cFaD05f742022E56926eE92dAd", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x3C960E72BBbD837293e75080E1d0Fee6a4640357", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x3C960E72BBbD837293e75080E1d0Fee6a4640357": { + "standard": "erc20", + "name": "Celo Community Point", + "address": "0x3C960E72BBbD837293e75080E1d0Fee6a4640357", + "symbol": "CeloC", + "decimals": 6, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "accounts": { + "42220:0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA": { + "chain_id": 42220, + "entrypoint_address": "0x66fE9c22CcA49B257dd4F00508AC90198d99Bf27", + "paymaster_address": "0x7f4011845Ea914b6cefc60629e1e00600c972c75", + "account_factory_address": "0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA", + "paymaster_type": "cw" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/celo-c.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "KFMEDIA℠", + "description": "Certified Education Organization. Solving systemic educational disparity using Web3 solutions, removing barriers of entry for underdeveloped economies.", + "url": "https://kingfishersmedia.io", + "alias": "wallet.kingfishersmedia.io", + "custom_domain": "wallet.kingfishersmedia.io", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/kfmpfl.png", + "theme": { + "primary": "#88292c" + }, + "profile": { + "address": "0x5f6FEb03ad8EfeCdD2a837FAA1a29DEA2bAcfd55", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "chain_id": 42220 + }, + "primary_card_manager": { + "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x56744910f7dEcD48c1a7FA61B4C317b15E99F156": { + "standard": "erc1155", + "name": "KFMEDIA℠ Pathways for LATAM™", + "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", + "symbol": "KFMPFL", + "decimals": 0, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 42220, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0x02BDA8370d9497A5C808B2db237cfaA8f0733F36", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.kingfishersmedia.io.json", + "version": 4 + } +] \ No newline at end of file diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json new file mode 100644 index 00000000..e3d83def --- /dev/null +++ b/assets/config/v5/communities.test.json @@ -0,0 +1,2183 @@ +[ + { + "community": { + "name": "Citizen Wallet (CTZN)", + "description": "The token powering the Citizen Wallet economy.", + "url": "https://citizenwallet.xyz", + "alias": "ctzn", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/ctzn.svg", + "theme": { + "primary": "#9563D3" + }, + "profile": { + "address": "0x8dA817724Eb6A2aA47c0F8d8b8A98b9B3C2Ddb68", + "chain_id": 137 + }, + "primary_token": { + "address": "0x0D9B0790E97e3426C161580dF4Ee853E4A7C4607", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "chain_id": 137 + } + }, + "tokens": { + "137:0x0D9B0790E97e3426C161580dF4Ee853E4A7C4607": { + "standard": "erc20", + "name": "Citizen Wallet", + "address": "0x0D9B0790E97e3426C161580dF4Ee853E4A7C4607", + "symbol": "CTZN", + "decimals": 18, + "chain_id": 137 + } + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "accounts": { + "137:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 137, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0x3A3E25871c5C6C84D5f397829FF316a37F7FD596", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [ + { + "name": "About", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/ctzn.svg", + "url": "https://citizenwallet.xyz/pay-with-ctzn", + "launch_mode": "browser" + }, + { + "name": "Top Up", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/ctzn.svg", + "url": "https://my.citizenwallet.xyz/onramp", + "action": "topup", + "signature": true + } + ], + "config_location": "https://config.internal.citizenwallet.xyz/v4/ctzn.json", + "version": 4 + }, + { + "community": { + "name": "Brussels Pay", + "description": "A community for the city of Brussels", + "url": "https://pay.brussels", + "alias": "wallet.pay.brussels", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/wallet.pay.brussels.png", + "custom_domain": "wallet.pay.brussels", + "hidden": false, + "theme": { + "primary": "#4a90e2" + }, + "profile": { + "address": "0x56Cc38bDa01bE6eC6D854513C995f6621Ee71229", + "chain_id": 100 + }, + "primary_token": { + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 100 + }, + "primary_account_factory": { + "address": "0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE", + "chain_id": 100 + }, + "primary_card_manager": { + "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "chain_id": 100 + } + }, + "tokens": { + "100:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { + "standard": "erc20", + "name": "pay.brussels", + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "symbol": "EURb", + "decimals": 6, + "chain_id": 100 + } + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "accounts": { + "100:0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE": { + "chain_id": 100, + "entrypoint_address": "0xAAEb9DC18aDadae9b3aE7ec2b47842565A81113f", + "paymaster_address": "0xcA1B9EC1117340818C1c1fdd1B48Ea79E57C140F", + "account_factory_address": "0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE", + "paymaster_type": "cw" + }, + "100:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 100, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0x8fc2e97671C691e7Ff7B42e5c7cCbDD38fC8B729", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "cards": { + "100:0x1EaF6B6A6967608aF6c77224f087b042095891EB": { + "chain_id": 100, + "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "type": "classic" + } + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://engine.pay.brussels", + "ws_url": "wss://engine.pay.brussels" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [ + { + "name": "Top Up", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/wallet.pay.brussels.png", + "url": "https://checkout.pay.brussels/topup", + "action": "topup", + "signature": true, + "featured": true + } + ], + "config_location": "https://wallet.pay.brussels/config/community.json", + "version": 4 + }, + { + "community": { + "name": "Gratitude Token", + "description": "Express your gratitude towards someone by sending them a token of gratitude.", + "url": "https://citizenwallet.xyz/gratitude", + "alias": "gratitude", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/gt.svg", + "theme": { + "primary": "#4EC19D" + }, + "profile": { + "address": "0xEEc0F3257369c6bCD2Fd8755CbEf8A95b12Bc4c9", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD", + "chain_id": 42220 + }, + "primary_card_manager": { + "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { + "standard": "erc20", + "name": "Gratitude Token", + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "symbol": "GT", + "decimals": 0, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD": { + "chain_id": 42220, + "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", + "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", + "account_factory_address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD", + "paymaster_type": "cw" + }, + "42220:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 42220, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0xF05ba2641b31AF70c2678e3324eD8b9C53093FbE", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "cards": { + "42220:0x1EaF6B6A6967608aF6c77224f087b042095891EB": { + "chain_id": 42220, + "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "type": "classic" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://gratitude.citizenwallet.xyz/config/community.json", + "version": 4 + }, + { + "community": { + "name": "SFLUV Community", + "description": "A community currency for the city of San Francisco.", + "url": "https://sfluv.org", + "alias": "wallet.berachain.sfluv.org", + "custom_domain": "wallet.sfluv.org", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "theme": { + "primary": "#eb6c6c" + }, + "profile": { + "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", + "chain_id": 80094 + }, + "primary_token": { + "address": "0x881cad4f885c6701d8481c0ed347f6d35444ea7e", + "chain_id": 80094 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 80094 + } + }, + "tokens": { + "80094:0x881cad4f885c6701d8481c0ed347f6d35444ea7e": { + "standard": "erc20", + "name": "SFLUV V1.1", + "address": "0x881cad4f885c6701d8481c0ed347f6d35444ea7e", + "symbol": "SFLUV", + "decimals": 18, + "chain_id": 80094 + } + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "accounts": { + "80094:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 80094, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0x9A5be02B65f9Aa00060cB8c951dAFaBAB9B860cd", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "paymaster_type": "cw-safe" + } + }, + "chains": { + "80094": { + "id": 80094, + "node": { + "url": "https://80094.engine.citizenwallet.xyz", + "ws_url": "wss://80094.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [ + { + "name": "Map", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "url": "https://app.sfluv.org/map", + "launch_mode": "webview", + "featured": true, + "signature": true + }, + { + "name": "About", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "url": "https://app.sfluv.org", + "launch_mode": "webview", + "signature": true, + "hidden": true + } + ], + "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.sfluv.org.json", + "version": 4 + }, + { + "community": { + "name": "SFLUV Community (Polygon)", + "description": "A community currency for the city of San Francisco.", + "url": "https://sfluv.org", + "alias": "wallet.sfluv.org", + "custom_domain": "wallet.polygon.sfluv.org", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "theme": { + "primary": "#eb6c6c" + }, + "hidden": true, + "profile": { + "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", + "chain_id": 137 + }, + "primary_token": { + "address": "0x58a2993A618Afee681DE23dECBCF535A58A080BA", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x5e987a6c4bb4239d498E78c34e986acf29c81E8e", + "chain_id": 137 + } + }, + "tokens": { + "137:0x58a2993A618Afee681DE23dECBCF535A58A080BA": { + "standard": "erc20", + "name": "SFLUV V1.1", + "address": "0x58a2993A618Afee681DE23dECBCF535A58A080BA", + "symbol": "SFLUV", + "decimals": 6, + "chain_id": 137 + } + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "accounts": { + "137:0x5e987a6c4bb4239d498E78c34e986acf29c81E8e": { + "chain_id": 137, + "entrypoint_address": "0x2d01C5E40Aa6a8478eD0FFbF2784EBb9bf67C46A", + "paymaster_address": "0x7FC98D0a2bd7f766bAca37388eB0F6Db37666B33", + "account_factory_address": "0x5e987a6c4bb4239d498E78c34e986acf29c81E8e", + "paymaster_type": "cw" + } + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [ + { + "name": "About", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "url": "https://app.sfluv.org", + "launch_mode": "webview", + "signature": true, + "hidden": true + } + ], + "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.sfluv.org.json", + "version": 4 + }, + { + "community": { + "name": "Txirrin", + "description": "A community for Txirrin", + "url": "https://citizenwallet.xyz/txirrin", + "alias": "txirrin", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/txirrin.png", + "hidden": false, + "theme": { + "primary": "#FB7502" + }, + "profile": { + "address": "0xd47f7198bf335bfe66dD29C0f3EeEf0cFE9D05D8", + "chain_id": 100 + }, + "primary_token": { + "address": "0x6c6611244547a6E9AaCfBA8744115ca1076756fc", + "chain_id": 100 + }, + "primary_account_factory": { + "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "chain_id": 100 + } + }, + "tokens": { + "100:0x6c6611244547a6E9AaCfBA8744115ca1076756fc": { + "standard": "erc20", + "name": "Txirrin", + "address": "0x6c6611244547a6E9AaCfBA8744115ca1076756fc", + "symbol": "TXI", + "decimals": 6, + "chain_id": 100 + } + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "accounts": { + "100:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 100, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0x33500E7Eb3452421e56c2f4117530B1C4C85E0A5", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://100.engine.citizenwallet.xyz", + "ws_url": "wss://100.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/txirrin.json", + "version": 4 + }, + { + "community": { + "name": "Bolivia Pay", + "description": "A community for Ethereum Bolivia.", + "url": "https://www.ethereumbolivia.org", + "alias": "boliviapay", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/boliviapay.png", + "theme": { + "primary": "#009393" + }, + "hidden": true, + "profile": { + "address": "0x898C2737f2Cb52622711A89D85A1D5E0B881BDeA", + "chain_id": 137 + }, + "primary_token": { + "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "chain_id": 137 + } + }, + "tokens": { + "137:0xc2132D05D31c914a87C6611C10748AEb04B58e8F": { + "standard": "erc20", + "name": "(PoS) Tether USD", + "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F", + "symbol": "USDT", + "decimals": 6, + "chain_id": 137 + } + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "accounts": { + "137:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 137, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0x9a81Bd50D56485Cc863Ecb169812c7a821996C8c", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/boliviapay.json", + "version": 4 + }, + { + "community": { + "name": "Bread Cooperative", + "description": "Financial tools today. Solidarity forever.", + "url": "https://bread.coop", + "alias": "bread", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", + "theme": { + "primary": "#ea6023" + }, + "profile": { + "address": "0x6b3a1f4277391526413F583c23D5B9EF4d2fE986", + "chain_id": 100 + }, + "primary_token": { + "address": "0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3", + "chain_id": 100 + }, + "primary_account_factory": { + "address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", + "chain_id": 100 + } + }, + "tokens": { + "100:0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3": { + "standard": "erc20", + "name": "Bread Cooperative Community Token", + "address": "0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3", + "symbol": "BREAD", + "decimals": 18, + "chain_id": 100 + } + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "accounts": { + "100:0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9": { + "chain_id": 100, + "entrypoint_address": "0xcA0a75EF803a364C83c5EAE7Eb889aE7419c9dF2", + "paymaster_address": "0xbE2Cb3358aa14621134e923B68b8429315368E32", + "account_factory_address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", + "paymaster_type": "cw" + }, + "100:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 100, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0x5C41F1114AB13aF5d66bac485924D03556d0cd51", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://100.engine.citizenwallet.xyz", + "ws_url": "wss://100.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [ + { + "name": "Market", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", + "url": "https://marketplace.citizenwallet.xyz/bread", + "launch_mode": "webview", + "signature": true, + "featured": true + }, + { + "name": "Breadcon 2025 Faucet", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", + "url": "https://faucet.citizenwallet.xyz/breadcon2025", + "launch_mode": "webview", + "signature": true, + "hidden": true + }, + { + "name": "Japan Demo", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", + "url": "https://hackatsuonvoting.vercel.app", + "launch_mode": "webview", + "signature": true, + "hidden": true + }, + { + "name": "Japan Demo", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", + "url": "https://grow-kesennuma.vercel.app", + "launch_mode": "webview", + "signature": true, + "hidden": true + }, + { + "name": "Mutual Vend", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", + "url": "https://mutual-vend.com", + "launch_mode": "webview", + "signature": true, + "hidden": true + } + ], + "config_location": "https://config.internal.citizenwallet.xyz/v4/bread.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "url": "https://breadchain.xyz/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/laborhour.png", + "name": "Labor Hour Token", + "alias": "laborhour", + "theme": { + "primary": "#E52D2D" + }, + "profile": { + "address": "0x673601Eb36820bC9718214AC041E96f79383351B", + "chain_id": 100 + }, + "description": "Labor Hour Token aims to reward contributors for hours of labor, particularly targeting non-blockchain native users", + "primary_token": { + "address": "0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007", + "chain_id": 100 + }, + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 100 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 100 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 100 + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "cards": { + "100:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 100, + "instance_id": "cw-discord-1" + } + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://100.engine.citizenwallet.xyz", + "ws_url": "wss://100.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "100:0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007": { + "name": "Labor Hour Token", + "symbol": "HOUR", + "address": "0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007", + "chain_id": 100, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 4, + "accounts": { + "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 100, + "paymaster_type": "cw-safe", + "paymaster_address": "0xa7fa16C933f51d8623f39FA0dF34D3065B99Bd1c", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 100, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/laborhour.citizenwallet.xyz.json" + }, + { + "community": { + "url": "https://rooted.finance/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rooted.png", + "name": "Rooted.Finance", + "alias": "rooted", + "theme": { + "primary": "#ff4c02" + }, + "hidden": true, + "profile": { + "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", + "chain_id": 8453 + }, + "description": "Rooted in your values.", + "primary_token": { + "address": "0x3595ca37596d5895b70efab592ac315d5b9809b2", + "chain_id": 8453 + }, + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 8453 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 8453 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 8453 + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "cards": { + "8453:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 8453, + "instance_id": "cw-discord-1" + } + }, + "chains": { + "8453": { + "id": 8453, + "node": { + "url": "https://8453.engine.citizenwallet.xyz", + "ws_url": "wss://8453.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "8453:0x3595ca37596d5895b70efab592ac315d5b9809b2": { + "name": "Azos Stablecoin", + "symbol": "AZUSD", + "address": "0x3595ca37596d5895b70efab592ac315d5b9809b2", + "chain_id": 8453, + "decimals": 18, + "standard": "erc20" + } + }, + "plugins": [], + "version": 4, + "accounts": { + "8453:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 8453, + "paymaster_type": "cw-safe", + "paymaster_address": "0x02cd43b3d7a946dCaa8dF12ac0A6Cd50aF9cDd64", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "8453:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 8453, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0x0c2e78DB6FaF8D4d68984A830339764AD9f800D4" + } + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/rooted.citizenwallet.xyz.json" + }, + { + "community": { + "name": "Commons Hub Brussels", + "description": "Community Token for the Commons Hub Brussels community", + "url": "https://commonshub.brussels", + "alias": "wallet.commonshub.brussels", + "custom_domain": "wallet.commonshub.brussels", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/chb.png", + "theme": { + "primary": "#ff4c02" + }, + "profile": { + "address": "0xc06bE1BbbeEAF2f34F3d5b76069D2560aee184Ae", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x65DD32834927de9E57E72a3E2130a19f81C6371D", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x65DD32834927de9E57E72a3E2130a19f81C6371D": { + "standard": "erc20", + "name": "Commons Hub Token", + "address": "0x65DD32834927de9E57E72a3E2130a19f81C6371D", + "symbol": "CHT", + "decimals": 6, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "accounts": { + "42220:0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87": { + "chain_id": 42220, + "entrypoint_address": "0xb7608dDA592d319687C89c4479e320b5a7740117", + "paymaster_address": "0x4E127A1DAa66568B4a91E8c5615120a6Ea5442E3", + "account_factory_address": "0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87", + "paymaster_type": "cw" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "cards": { + "42220:0xc0F9e0907C8de79fd5902b61e463dFEdc5dc8570": { + "chain_id": 42220, + "address": "0xc0F9e0907C8de79fd5902b61e463dFEdc5dc8570", + "type": "classic" + } + }, + "plugins": [ + { + "name": "Market", + "icon": "https://marketplace.citizenwallet.xyz/marketplace.svg", + "url": "https://marketplace.citizenwallet.xyz/wallet.commonshub.brussels", + "launch_mode": "webview", + "signature": true + } + ], + "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.commonshub.brussels.json", + "version": 4 + }, + { + "community": { + "name": "Sel de Salm", + "description": "La communauté de Sel de Salm", + "url": "https://citizenwallet.xyz/community-currency-documentation/sel-de-salm", + "alias": "seldesalm", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", + "theme": { + "primary": "#6B5CA4" + }, + "profile": { + "address": "0x4083724953cC1cC13e76b436149B2b1e1a3E5970", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "chain_id": 42220 + }, + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2": { + "standard": "erc20", + "name": "Myrtille", + "address": "0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2", + "symbol": "MYRT", + "decimals": 6, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 42220, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0xd07412020dA5054c3b49f47Ca61224637F1703af", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "cards": { + "42220:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "chain_id": 42220, + "instance_id": "cw-seldesalm", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "type": "safe" + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [ + { + "name": "Informations Générales", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", + "url": "https://citizenwallet.xyz/community-currency-documentation/sel-de-salm", + "launch_mode": "webview" + }, + { + "name": "Échanges", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", + "url": "https://marketplace.citizenwallet.xyz/seldesalm", + "launch_mode": "webview", + "signature": true, + "featured": true + } + ], + "config_location": "https://seldesalm.citizenwallet.xyz/config/community.json", + "version": 4 + }, + { + "community": { + "name": "TECHI", + "description": "A community for TECHI users", + "url": "https://my.techi.be", + "alias": "my.techi.be", + "logo": "https://my.techi.be/assets/token.svg", + "hidden": false, + "theme": { + "primary": "#617FF8" + }, + "profile": { + "address": "0x80C141861607b8FEfD53C9E71a9c7D2D3e2e76dc", + "chain_id": 100 + }, + "primary_token": { + "address": "0x01D0E7117510b371Ac38f52Cc6689ff8875280FA", + "chain_id": 100 + }, + "primary_account_factory": { + "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "chain_id": 100 + }, + "primary_card_manager": { + "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "chain_id": 100 + } + }, + "tokens": { + "100:0x01D0E7117510b371Ac38f52Cc6689ff8875280FA": { + "standard": "erc20", + "name": "TECHI", + "address": "0x01D0E7117510b371Ac38f52Cc6689ff8875280FA", + "symbol": "TECHI", + "decimals": 6, + "chain_id": 100 + } + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "accounts": { + "100:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 100, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0x68c5a20f233264DB124a3c95a200bbD20b3b9762", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://engine.my.techi.be", + "ws_url": "wss://engine.my.techi.be" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://my.techi.be/assets/community.json", + "version": 4 + }, + { + "community": { + "name": "Regens Unite", + "description": "A community currency for the Regens Unite community.", + "url": "https://www.regensunite.earth/", + "alias": "wallet.regensunite.earth", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", + "custom_domain": "wallet.regensunite.earth", + "hidden": true, + "profile": { + "address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", + "chain_id": 137 + }, + "primary_token": { + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x9406Cc6185a346906296840746125a0E44976454", + "chain_id": 137 + } + }, + "tokens": { + "137:0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e": { + "standard": "erc20", + "name": "Regens Unite Token", + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "symbol": "RGN", + "decimals": 6, + "chain_id": 137 + } + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "accounts": { + "137:0x9406Cc6185a346906296840746125a0E44976454": { + "chain_id": 137, + "entrypoint_address": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", + "paymaster_address": "0x250711045d58b6310f0635C7D110BFe663cE1da5", + "account_factory_address": "0x9406Cc6185a346906296840746125a0E44976454", + "paymaster_type": "payg", + "gas_extra_percentage": 50 + } + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.regensunite.earth.json", + "version": 4 + }, + { + "community": { + "name": "Gratitude Token", + "description": "Express your gratitude towards someone by sending them a token.", + "url": "https://citizenwallet.xyz/gratitude", + "alias": "gt.celo", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/gt.svg", + "custom_domain": null, + "hidden": true, + "theme": { + "primary": "#a256ff" + }, + "profile": { + "address": "0xEEc0F3257369c6bCD2Fd8755CbEf8A95b12Bc4c9", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { + "standard": "erc20", + "name": "Gratitude Token", + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "symbol": "GT", + "decimals": 0, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD": { + "chain_id": 42220, + "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", + "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", + "account_factory_address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD", + "paymaster_type": "cw" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/gt.celo.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "Celo Euro", + "description": "Celo Euro is a stablecoin for the Celo Community.", + "url": "https://celo.org/", + "alias": "ceur.celo", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/ceur.svg", + "hidden": true, + "theme": { + "primary": "#a256ff" + }, + "profile": { + "address": "0x0334C579E61aF6922D5deFEF02A361FBb2D6f406", + "chain_id": 42220 + }, + "primary_token": { + "address": "0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73": { + "standard": "erc20", + "name": "Celo Euro", + "address": "0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73", + "symbol": "cEUR", + "decimals": 18, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098": { + "chain_id": 42220, + "entrypoint_address": "0xc3142BCBA2285d0a48A38e7Ea9Cbf28a12B235bB", + "paymaster_address": "0xedbEA8c0F25B34510149EaD4f72867B0d3D2264F", + "account_factory_address": "0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098", + "paymaster_type": "cw" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/ceur.celo.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "EUR e-money", + "description": "Token by Monerium EMI, a regulated entity, licensed in the EEA.", + "url": "https://monerium.com/tokens/", + "alias": "eure.polygon", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/eure.svg", + "hidden": true, + "profile": { + "address": "0xF5F7317EDb8E88CaE09071B0C4F0fd6EA20B21f9", + "chain_id": 137 + }, + "primary_token": { + "address": "0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616", + "chain_id": 137 + } + }, + "tokens": { + "137:0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6": { + "standard": "erc20", + "name": "EUR emoney", + "address": "0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6", + "symbol": "EURe", + "decimals": 18, + "chain_id": 137 + } + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "accounts": { + "137:0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616": { + "chain_id": 137, + "entrypoint_address": "0x2027Bde7C276D5F128587E3107c68A488ee31c72", + "paymaster_address": "0xB2cb6b75C2357Ca94dBdF58897E468E45fAC83Ec", + "account_factory_address": "0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616", + "paymaster_type": "cw", + "gas_extra_percentage": 50 + } + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/eure.polygon.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "USDC on Polygon", + "description": "The community of people using USDC on Polygon.", + "url": "https://en.wikipedia.org/wiki/USD_Coin", + "alias": "app", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/usdc.svg", + "hidden": true, + "theme": { + "primary": "#0052ff" + }, + "profile": { + "address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", + "chain_id": 137 + }, + "primary_token": { + "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x270758454C012A1f51428b68aE473D728CCdFe88", + "chain_id": 137 + } + }, + "tokens": { + "137:0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174": { + "standard": "erc20", + "name": "USD Coin", + "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", + "symbol": "USDC", + "decimals": 6, + "chain_id": 137 + } + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "accounts": { + "137:0x270758454C012A1f51428b68aE473D728CCdFe88": { + "chain_id": 137, + "entrypoint_address": "0x466AA6ed2B7Bb829841F5aAEA9e82B840eC0feF9", + "paymaster_address": "0xB5D1C0167E6325466E2918e9fda8cc41384C0291", + "account_factory_address": "0x270758454C012A1f51428b68aE473D728CCdFe88", + "paymaster_type": "cw", + "gas_extra_percentage": 50 + } + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/app.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "USDC on Base", + "description": "The community of people using USDC on Base.", + "url": "https://en.wikipedia.org/wiki/USD_Coin", + "alias": "usdc.base", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/usdc.svg", + "hidden": true, + "theme": { + "primary": "#0052ff" + }, + "profile": { + "address": "0x51Ef5Add405CCF63c206A80AF8c2B3cEE0282830", + "chain_id": 8453 + }, + "primary_token": { + "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", + "chain_id": 8453 + }, + "primary_account_factory": { + "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", + "chain_id": 8453 + } + }, + "tokens": { + "8453:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913": { + "standard": "erc20", + "name": "USD Coin", + "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", + "symbol": "USDC", + "decimals": 6, + "chain_id": 8453 + } + }, + "scan": { + "url": "https://basescan.org", + "name": "Base Explorer" + }, + "accounts": { + "8453:0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99": { + "chain_id": 8453, + "entrypoint_address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", + "paymaster_address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", + "account_factory_address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", + "paymaster_type": "cw", + "gas_extra_percentage": 50 + } + }, + "chains": { + "8453": { + "id": 8453, + "node": { + "url": "https://8453.engine.citizenwallet.xyz", + "ws_url": "wss://8453.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/usdc.base.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "OAK Community", + "description": "A community currency for the city of Oakland.", + "url": "https://www.oak.community/", + "alias": "wallet.oak.community", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/oak.svg", + "custom_domain": "wallet.oak.community", + "hidden": true, + "profile": { + "address": "0xFE213c74e25505B232CE4C7f89647408bE6f71d2", + "chain_id": 8453 + }, + "primary_token": { + "address": "0x845598Da418890a674cbaBA26b70807aF0c61dFE", + "chain_id": 8453 + }, + "primary_account_factory": { + "address": "0x9406Cc6185a346906296840746125a0E44976454", + "chain_id": 8453 + } + }, + "tokens": { + "8453:0x845598Da418890a674cbaBA26b70807aF0c61dFE": { + "standard": "erc20", + "name": "OAK Community Currency", + "address": "0x845598Da418890a674cbaBA26b70807aF0c61dFE", + "symbol": "OAK", + "decimals": 6, + "chain_id": 8453 + } + }, + "scan": { + "url": "https://basescan.org", + "name": "Base Explorer" + }, + "accounts": { + "8453:0x9406Cc6185a346906296840746125a0E44976454": { + "chain_id": 8453, + "entrypoint_address": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", + "paymaster_address": "0x123", + "account_factory_address": "0x9406Cc6185a346906296840746125a0E44976454", + "paymaster_type": "payg" + } + }, + "chains": { + "8453": { + "id": 8453, + "node": { + "url": "https://8453.engine.citizenwallet.xyz", + "ws_url": "wss://8453.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.oak.community.json", + "version": 4 + }, + { + "community": { + "name": "Stable Coin", + "description": "SBC is a digital dollar stablecoin issued by Brale", + "url": "https://brale.xyz/", + "alias": "sbc.polygon", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sbc.svg", + "hidden": true, + "profile": { + "address": "0xcA0a75EF803a364C83c5EAE7Eb889aE7419c9dF2", + "chain_id": 137 + }, + "primary_token": { + "address": "0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5", + "chain_id": 137 + } + }, + "tokens": { + "137:0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798": { + "standard": "erc20", + "name": "Stable Coin", + "address": "0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798", + "symbol": "SBC", + "decimals": 18, + "chain_id": 137 + } + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "accounts": { + "137:0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5": { + "chain_id": 137, + "entrypoint_address": "0xe84423Ba1A3f3535B09237245e22dBda5E27eB88", + "paymaster_address": "0x123", + "account_factory_address": "0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5", + "paymaster_type": "cw" + } + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/sbc.polygon.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "Zinne.brussels", + "description": "A community currency for the city of Brussels", + "url": "https://zinne.brussels", + "alias": "zinne", + "logo": "https://citizenwallet.xyz/zinne/zinne-coin.svg", + "hidden": true, + "profile": { + "address": "0x23DB3D3Da510e60aF40902A04850E1F3a744905c", + "chain_id": 137 + }, + "primary_token": { + "address": "0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x11af2639817692D2b805BcE0e1e405E530B20006", + "chain_id": 137 + } + }, + "tokens": { + "137:0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D": { + "standard": "erc20", + "name": "Zinne.brussels Token", + "address": "0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D", + "symbol": "ZINNE", + "decimals": 6, + "chain_id": 137 + } + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "accounts": { + "137:0x11af2639817692D2b805BcE0e1e405E530B20006": { + "chain_id": 137, + "entrypoint_address": "0xF5507B3042f1C63625D856a2ABFF046243A5D74e", + "paymaster_address": "0xBb796D122Ec1aBDeD081D50B06a072f981c7E62b", + "account_factory_address": "0x11af2639817692D2b805BcE0e1e405E530B20006", + "paymaster_type": "cw" + } + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/zinne.brussels.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "Regens Unite Time Bank", + "description": "Make time to regen", + "url": "https://regensunite.earth", + "alias": "timebank.regensunite.earth", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", + "hidden": true, + "profile": { + "address": "0x605A827DF8C405D16Ec70AAb8d9a47D21db45c09", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x186DaBD027e228C988777907465807FDab270894", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x39b77d77f7677997871b304094a05295eb71e240", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x186DaBD027e228C988777907465807FDab270894": { + "standard": "erc20", + "name": "Regen Hour", + "address": "0x186DaBD027e228C988777907465807FDab270894", + "symbol": "rHour", + "decimals": 6, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "accounts": { + "42220:0x39b77d77f7677997871b304094a05295eb71e240": { + "chain_id": 42220, + "entrypoint_address": "0x41176F0C9b8f795Cb99e2DD5Db16017978eeFa4d", + "paymaster_address": "0xe45858bf63176595c2920822581917c7C705a12f", + "account_factory_address": "0x39b77d77f7677997871b304094a05295eb71e240", + "paymaster_type": "cw" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [ + { + "name": "Market", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", + "url": "https://marketplace.citizenwallet.xyz/timebank.regensunite.earth", + "launch_mode": "webview", + "signature": true + } + ], + "config_location": "https://timebank.regensunite.earth/indexer", + "version": 4 + }, + { + "community": { + "name": "MOOS Token", + "description": "A community currency for MOOS.", + "url": "https://www.moos.garden/", + "alias": "moos", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/moos.svg", + "hidden": true, + "profile": { + "address": "0x2e4542Be47408d05F41703386eFaf4338Ee1D341", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x671f0662de72268d0f3966Fb62dFc6ee6389e244", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3": { + "standard": "erc20", + "name": "MOOS Token", + "address": "0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3", + "symbol": "MOOS", + "decimals": 6, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0x671f0662de72268d0f3966Fb62dFc6ee6389e244": { + "chain_id": 42220, + "entrypoint_address": "0x45a8e6AaDCc48D1Ce19eCbE07Ccd3a536EF712ed", + "paymaster_address": "0x55E519bfD63c7152D9F7B88Acd712A37F0BEC482", + "account_factory_address": "0x671f0662de72268d0f3966Fb62dFc6ee6389e244", + "paymaster_type": "cw" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [ + { + "name": "Market", + "icon": "https://moos.citizenwallet.xyz/wallet-config/_images/moos.svg", + "url": "https://marketplace.citizenwallet.xyz/moos", + "launch_mode": "webview", + "signature": true + } + ], + "config_location": "https://config.internal.citizenwallet.xyz/v4/moos.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "Bonne Heure", + "description": "Système d'Échange Local de Villers-la-Ville", + "url": "https://selcoupdepouce.be", + "alias": "selcoupdepouce", + "logo": "https://topup.citizenwallet.xyz/communities/selcoupdepouce/sel-coin.svg", + "hidden": true, + "profile": { + "address": "0xfB8F1e7ED42599638B3c509679E2F43937002C56", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3": { + "standard": "erc20", + "name": "Bonne Heure", + "address": "0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3", + "symbol": "BHR", + "decimals": 6, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284": { + "chain_id": 42220, + "entrypoint_address": "0xA90904F33df36899d810d040b8d5b3b77265Bb05", + "paymaster_address": "0x635032605337aB36A46D767905108e67EE687a72", + "account_factory_address": "0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284", + "paymaster_type": "cw" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [ + { + "name": "Market", + "icon": "https://marketplace.citizenwallet.xyz/marketplace.svg", + "url": "https://marketplace.citizenwallet.xyz/selcoupdepouce", + "launch_mode": "browser", + "signature": true + } + ], + "config_location": "https://config.internal.citizenwallet.xyz/v4/selcoupdepouce.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "CI token", + "description": "Monnaie locale du Cercle Informatique de l’ULB", + "url": "https://citizenwallet.xyz/cit", + "alias": "cit.celo", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/cit.celo.svg", + "hidden": true, + "profile": { + "address": "0x4cB296BEc9FAd0B5e1E4FF1A2F307B425724AC82", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9": { + "standard": "erc20", + "name": "CI token", + "address": "0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9", + "symbol": "CIT", + "decimals": 6, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970": { + "chain_id": 42220, + "entrypoint_address": "0xB8d9412f3A91A00ca762B5c35cd0863E9b716D68", + "paymaster_address": "0x452F7ff3e55fe29f481841985dE7f4939FD645fa", + "account_factory_address": "0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970", + "paymaster_type": "cw" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/cit.celo.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "Wolugo", + "description": "A community for the Woluwe-Saint-Pierre civic engagement platform", + "url": "https://wolugo.be", + "alias": "wallet.wolugo.be", + "custom_domain": "wallet.wolugo.be", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/wolugo.svg", + "theme": { + "primary": "#81e2c1" + }, + "hidden": true, + "profile": { + "address": "0x07e7b95B35866302b3A089feF4CFA3061061a51d", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x8474153A00C959f2cB64852949954DBC68415Bb3", + "chain_id": 42220 + }, + "card_factory": { + "address": "0xA3E1446E332a098A1f3b0555c5d149b4784A095F", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451": { + "standard": "erc20", + "name": "Wolu", + "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", + "symbol": "WOLU", + "decimals": 6, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "accounts": { + "42220:0x8474153A00C959f2cB64852949954DBC68415Bb3": { + "chain_id": 42220, + "entrypoint_address": "0x0F805BC1ED718FB9C7C18439cB11E1C17C6538C4", + "paymaster_address": "0xF2EFEC3cBFaDE0bB6108620cbF7Cc608d27DCF3c", + "account_factory_address": "0x8474153A00C959f2cB64852949954DBC68415Bb3", + "paymaster_type": "cw" + } + }, + "cards": { + "42220:0xA3E1446E332a098A1f3b0555c5d149b4784A095F": { + "chain_id": 42220, + "address": "0xA3E1446E332a098A1f3b0555c5d149b4784A095F", + "type": "classic" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.wolugo.be.json", + "version": 4 + }, + { + "community": { + "name": "Woluwe Test", + "description": "Local currency for the Woluwe Test community.", + "url": "https://wollet-v2.citizenwallet.net/token", + "alias": "wtc.celo", + "logo": "https://wtc.celo.citizenwallet.xyz/wallet-config/_images/wtc.celo.svg", + "hidden": true, + "profile": { + "address": "0xB99a7B1574f051020EB4cb2fce5d48EE07592AfF", + "chain_id": 42220 + }, + "primary_token": { + "address": "0xc53Cb35591959cA62471dA9fF6AC16629A89874a", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0xE79E19594A749330036280c685E2719d58d99052", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0xc53Cb35591959cA62471dA9fF6AC16629A89874a": { + "standard": "erc20", + "name": "Woluwe Test Coin", + "address": "0xc53Cb35591959cA62471dA9fF6AC16629A89874a", + "symbol": "WTC", + "decimals": 6, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0xE79E19594A749330036280c685E2719d58d99052": { + "chain_id": 42220, + "entrypoint_address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "paymaster_address": "0x3fefC19674f3F6E43B1dFf1861E07c303B9eAAc9", + "account_factory_address": "0xE79E19594A749330036280c685E2719d58d99052", + "paymaster_type": "cw" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/wtc.celo.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "ETHGlobal London Token", + "description": "The community of people using ETHLDN on Base.", + "url": "https://en.wikipedia.org/wiki/USD_Coin", + "alias": "testnet-ethldn", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/testnet-ethldn.svg", + "hidden": true, + "profile": { + "address": "0x0785D720279f42326846D5396b5F44b97d0BfECd", + "chain_id": 84532 + }, + "primary_token": { + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "chain_id": 84532 + }, + "primary_account_factory": { + "address": "0xc1654087C580f868F08E34cd1c01eDB1d3673b82", + "chain_id": 84532 + } + }, + "tokens": { + "84532:0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e": { + "standard": "erc20", + "name": "ETHGlobal London Token", + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "symbol": "ETHLDN", + "decimals": 6, + "chain_id": 84532 + } + }, + "scan": { + "url": "https://sepolia.basescan.org", + "name": "Base Sepolia Explorer" + }, + "accounts": { + "84532:0xc1654087C580f868F08E34cd1c01eDB1d3673b82": { + "chain_id": 84532, + "entrypoint_address": "0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE", + "paymaster_address": "0x389182aCCeE26D953d5188BF4b92c49339DcC9FC", + "account_factory_address": "0xc1654087C580f868F08E34cd1c01eDB1d3673b82", + "paymaster_type": "cw" + } + }, + "chains": { + "84532": { + "id": 84532, + "node": { + "url": "https://84532.engine.citizenwallet.xyz", + "ws_url": "wss://84532.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/testnet-ethldn.json", + "version": 4 + }, + { + "community": { + "name": "Celo Community Point", + "description": "This is a community for the Celo Point", + "url": "https://citizenwallet.xyz", + "alias": "celo-c.citizenwallet.xyz", + "logo": "https://celo-c.citizenwallet.xyz/uploads/logo.svg", + "hidden": true, + "profile": { + "address": "0x14004E13907282cFaD05f742022E56926eE92dAd", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x3C960E72BBbD837293e75080E1d0Fee6a4640357", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x3C960E72BBbD837293e75080E1d0Fee6a4640357": { + "standard": "erc20", + "name": "Celo Community Point", + "address": "0x3C960E72BBbD837293e75080E1d0Fee6a4640357", + "symbol": "CeloC", + "decimals": 6, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "accounts": { + "42220:0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA": { + "chain_id": 42220, + "entrypoint_address": "0x66fE9c22CcA49B257dd4F00508AC90198d99Bf27", + "paymaster_address": "0x7f4011845Ea914b6cefc60629e1e00600c972c75", + "account_factory_address": "0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA", + "paymaster_type": "cw" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/celo-c.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "KFMEDIA℠", + "description": "Certified Education Organization. Solving systemic educational disparity using Web3 solutions, removing barriers of entry for underdeveloped economies.", + "url": "https://kingfishersmedia.io", + "alias": "wallet.kingfishersmedia.io", + "custom_domain": "wallet.kingfishersmedia.io", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/kfmpfl.png", + "theme": { + "primary": "#88292c" + }, + "profile": { + "address": "0x5f6FEb03ad8EfeCdD2a837FAA1a29DEA2bAcfd55", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "chain_id": 42220 + }, + "primary_card_manager": { + "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x56744910f7dEcD48c1a7FA61B4C317b15E99F156": { + "standard": "erc1155", + "name": "KFMEDIA℠ Pathways for LATAM™", + "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", + "symbol": "KFMPFL", + "decimals": 0, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 42220, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0x02BDA8370d9497A5C808B2db237cfaA8f0733F36", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.kingfishersmedia.io.json", + "version": 4 + } +] \ No newline at end of file diff --git a/assets/config/v5/debug.json b/assets/config/v5/debug.json new file mode 100644 index 00000000..99ee89b1 --- /dev/null +++ b/assets/config/v5/debug.json @@ -0,0 +1,66 @@ +{ + "community": { + "name": "KFMEDIA℠", + "description": "Certified Education Organization. Solving systemic educational disparity using Web3 solutions, removing barriers of entry for underdeveloped economies.", + "url": "https://kingfishersmedia.io", + "alias": "wallet.kingfishersmedia.io", + "custom_domain": "wallet.kingfishersmedia.io", + "logo": "https://config.internal.citizenwallet.xyz/_images/kfmpfl.png", + "theme": { + "primary": "#88292c" + }, + "profile": { + "address": "0x5f6FEb03ad8EfeCdD2a837FAA1a29DEA2bAcfd55", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "chain_id": 42220 + }, + "primary_card_manager": { + "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x56744910f7dEcD48c1a7FA61B4C317b15E99F156": { + "standard": "erc1155", + "name": "KFMEDIA℠ Pathways for LATAM™", + "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", + "symbol": "KFMPFL", + "decimals": 0, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 42220, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0x250711045d58b6310f0635C7D110BFe663cE1da5", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.kingfishersmedia.io.json", + "version": 4 +} \ No newline at end of file From 4b874c755910e3ef2ba7fc3300ba9a0da92e5363 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 14:55:08 +0530 Subject: [PATCH 022/148] uniform formatting --- assets/config/v5/communities.json | 4364 ++++++++++++------------ assets/config/v5/communities.test.json | 2 +- assets/config/v5/debug.json | 122 +- 3 files changed, 2244 insertions(+), 2244 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index 1e3f8688..49b47308 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -1,2183 +1,2183 @@ [ - { - "community": { - "name": "Citizen Wallet (CTZN)", - "description": "The token powering the Citizen Wallet economy.", - "url": "https://citizenwallet.xyz", - "alias": "ctzn", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/ctzn.svg", - "theme": { - "primary": "#9563D3" - }, - "profile": { - "address": "0x8dA817724Eb6A2aA47c0F8d8b8A98b9B3C2Ddb68", - "chain_id": 137 - }, - "primary_token": { - "address": "0x0D9B0790E97e3426C161580dF4Ee853E4A7C4607", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "chain_id": 137 - } - }, - "tokens": { - "137:0x0D9B0790E97e3426C161580dF4Ee853E4A7C4607": { - "standard": "erc20", - "name": "Citizen Wallet", - "address": "0x0D9B0790E97e3426C161580dF4Ee853E4A7C4607", - "symbol": "CTZN", - "decimals": 18, - "chain_id": 137 - } - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "accounts": { - "137:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { - "chain_id": 137, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0x3A3E25871c5C6C84D5f397829FF316a37F7FD596", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" - } - }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "plugins": [ - { - "name": "About", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/ctzn.svg", - "url": "https://citizenwallet.xyz/pay-with-ctzn", - "launch_mode": "browser" - }, - { - "name": "Top Up", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/ctzn.svg", - "url": "https://my.citizenwallet.xyz/onramp", - "action": "topup", - "signature": true - } - ], - "config_location": "https://config.internal.citizenwallet.xyz/v4/ctzn.json", - "version": 4 - }, - { - "community": { - "name": "Brussels Pay", - "description": "A community for the city of Brussels", - "url": "https://pay.brussels", - "alias": "wallet.pay.brussels", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/wallet.pay.brussels.png", - "custom_domain": "wallet.pay.brussels", - "hidden": false, - "theme": { - "primary": "#4a90e2" - }, - "profile": { - "address": "0x56Cc38bDa01bE6eC6D854513C995f6621Ee71229", - "chain_id": 100 - }, - "primary_token": { - "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", - "chain_id": 100 - }, - "primary_account_factory": { - "address": "0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE", - "chain_id": 100 - }, - "primary_card_manager": { - "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", - "chain_id": 100 - } - }, - "tokens": { - "100:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { - "standard": "erc20", - "name": "pay.brussels", - "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", - "symbol": "EURb", - "decimals": 6, - "chain_id": 100 - } - }, - "scan": { - "url": "https://gnosisscan.io", - "name": "Gnosis Explorer" - }, - "accounts": { - "100:0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE": { - "chain_id": 100, - "entrypoint_address": "0xAAEb9DC18aDadae9b3aE7ec2b47842565A81113f", - "paymaster_address": "0xcA1B9EC1117340818C1c1fdd1B48Ea79E57C140F", - "account_factory_address": "0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE", - "paymaster_type": "cw" - }, - "100:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { - "chain_id": 100, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0x8fc2e97671C691e7Ff7B42e5c7cCbDD38fC8B729", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" - } - }, - "cards": { - "100:0x1EaF6B6A6967608aF6c77224f087b042095891EB": { - "chain_id": 100, - "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", - "type": "classic" - } - }, - "chains": { - "100": { - "id": 100, - "node": { - "url": "https://engine.pay.brussels", - "ws_url": "wss://engine.pay.brussels" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "plugins": [ - { - "name": "Top Up", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/wallet.pay.brussels.png", - "url": "https://checkout.pay.brussels/topup", - "action": "topup", - "signature": true, - "featured": true - } - ], - "config_location": "https://wallet.pay.brussels/config/community.json", - "version": 4 - }, - { - "community": { - "name": "Gratitude Token", - "description": "Express your gratitude towards someone by sending them a token of gratitude.", - "url": "https://citizenwallet.xyz/gratitude", - "alias": "gratitude", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/gt.svg", - "theme": { - "primary": "#4EC19D" - }, - "profile": { - "address": "0xEEc0F3257369c6bCD2Fd8755CbEf8A95b12Bc4c9", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD", - "chain_id": 42220 - }, - "primary_card_manager": { - "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { - "standard": "erc20", - "name": "Gratitude Token", - "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", - "symbol": "GT", - "decimals": 0, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "accounts": { - "42220:0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD": { - "chain_id": 42220, - "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", - "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", - "account_factory_address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD", - "paymaster_type": "cw" - }, - "42220:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { - "chain_id": 42220, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0xF05ba2641b31AF70c2678e3324eD8b9C53093FbE", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" - } - }, - "cards": { - "42220:0x1EaF6B6A6967608aF6c77224f087b042095891EB": { - "chain_id": 42220, - "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", - "type": "classic" - } - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "plugins": [], - "config_location": "https://gratitude.citizenwallet.xyz/config/community.json", - "version": 4 - }, - { - "community": { - "name": "SFLUV Community", - "description": "A community currency for the city of San Francisco.", - "url": "https://sfluv.org", - "alias": "wallet.berachain.sfluv.org", - "custom_domain": "wallet.sfluv.org", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", - "theme": { - "primary": "#eb6c6c" - }, - "profile": { - "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", - "chain_id": 80094 - }, - "primary_token": { - "address": "0x881cad4f885c6701d8481c0ed347f6d35444ea7e", - "chain_id": 80094 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 80094 - } - }, - "tokens": { - "80094:0x881cad4f885c6701d8481c0ed347f6d35444ea7e": { - "standard": "erc20", - "name": "SFLUV V1.1", - "address": "0x881cad4f885c6701d8481c0ed347f6d35444ea7e", - "symbol": "SFLUV", - "decimals": 18, - "chain_id": 80094 - } - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "accounts": { - "80094:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 80094, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0x9A5be02B65f9Aa00060cB8c951dAFaBAB9B860cd", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "paymaster_type": "cw-safe" - } - }, - "chains": { - "80094": { - "id": 80094, - "node": { - "url": "https://80094.engine.citizenwallet.xyz", - "ws_url": "wss://80094.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "plugins": [ - { - "name": "Map", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", - "url": "https://app.sfluv.org/map", - "launch_mode": "webview", - "featured": true, - "signature": true - }, - { - "name": "About", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", - "url": "https://app.sfluv.org", - "launch_mode": "webview", - "signature": true, - "hidden": true - } - ], - "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.sfluv.org.json", - "version": 4 - }, - { - "community": { - "name": "SFLUV Community (Polygon)", - "description": "A community currency for the city of San Francisco.", - "url": "https://sfluv.org", - "alias": "wallet.sfluv.org", - "custom_domain": "wallet.polygon.sfluv.org", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", - "theme": { - "primary": "#eb6c6c" - }, - "hidden": true, - "profile": { - "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", - "chain_id": 137 - }, - "primary_token": { - "address": "0x58a2993A618Afee681DE23dECBCF535A58A080BA", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x5e987a6c4bb4239d498E78c34e986acf29c81E8e", - "chain_id": 137 - } - }, - "tokens": { - "137:0x58a2993A618Afee681DE23dECBCF535A58A080BA": { - "standard": "erc20", - "name": "SFLUV V1.1", - "address": "0x58a2993A618Afee681DE23dECBCF535A58A080BA", - "symbol": "SFLUV", - "decimals": 6, - "chain_id": 137 - } - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "accounts": { - "137:0x5e987a6c4bb4239d498E78c34e986acf29c81E8e": { - "chain_id": 137, - "entrypoint_address": "0x2d01C5E40Aa6a8478eD0FFbF2784EBb9bf67C46A", - "paymaster_address": "0x7FC98D0a2bd7f766bAca37388eB0F6Db37666B33", - "account_factory_address": "0x5e987a6c4bb4239d498E78c34e986acf29c81E8e", - "paymaster_type": "cw" - } - }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "plugins": [ - { - "name": "About", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", - "url": "https://app.sfluv.org", - "launch_mode": "webview", - "signature": true, - "hidden": true - } - ], - "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.sfluv.org.json", - "version": 4 - }, - { - "community": { - "name": "Txirrin", - "description": "A community for Txirrin", - "url": "https://citizenwallet.xyz/txirrin", - "alias": "txirrin", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/txirrin.png", - "hidden": false, - "theme": { - "primary": "#FB7502" - }, - "profile": { - "address": "0xd47f7198bf335bfe66dD29C0f3EeEf0cFE9D05D8", - "chain_id": 100 - }, - "primary_token": { - "address": "0x6c6611244547a6E9AaCfBA8744115ca1076756fc", - "chain_id": 100 - }, - "primary_account_factory": { - "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "chain_id": 100 - } - }, - "tokens": { - "100:0x6c6611244547a6E9AaCfBA8744115ca1076756fc": { - "standard": "erc20", - "name": "Txirrin", - "address": "0x6c6611244547a6E9AaCfBA8744115ca1076756fc", - "symbol": "TXI", - "decimals": 6, - "chain_id": 100 - } - }, - "scan": { - "url": "https://gnosisscan.io", - "name": "Gnosis Explorer" - }, - "accounts": { - "100:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { - "chain_id": 100, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0x33500E7Eb3452421e56c2f4117530B1C4C85E0A5", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" - } - }, - "chains": { - "100": { - "id": 100, - "node": { - "url": "https://100.engine.citizenwallet.xyz", - "ws_url": "wss://100.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/txirrin.json", - "version": 4 - }, - { - "community": { - "name": "Bolivia Pay", - "description": "A community for Ethereum Bolivia.", - "url": "https://www.ethereumbolivia.org", - "alias": "boliviapay", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/boliviapay.png", - "theme": { - "primary": "#009393" - }, - "hidden": true, - "profile": { - "address": "0x898C2737f2Cb52622711A89D85A1D5E0B881BDeA", - "chain_id": 137 - }, - "primary_token": { - "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "chain_id": 137 - } - }, - "tokens": { - "137:0xc2132D05D31c914a87C6611C10748AEb04B58e8F": { - "standard": "erc20", - "name": "(PoS) Tether USD", - "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F", - "symbol": "USDT", - "decimals": 6, - "chain_id": 137 - } - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "accounts": { - "137:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { - "chain_id": 137, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0x9a81Bd50D56485Cc863Ecb169812c7a821996C8c", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" - } - }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/boliviapay.json", - "version": 4 - }, - { - "community": { - "name": "Bread Cooperative", - "description": "Financial tools today. Solidarity forever.", - "url": "https://bread.coop", - "alias": "bread", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", - "theme": { - "primary": "#ea6023" - }, - "profile": { - "address": "0x6b3a1f4277391526413F583c23D5B9EF4d2fE986", - "chain_id": 100 - }, - "primary_token": { - "address": "0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3", - "chain_id": 100 - }, - "primary_account_factory": { - "address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", - "chain_id": 100 - } - }, - "tokens": { - "100:0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3": { - "standard": "erc20", - "name": "Bread Cooperative Community Token", - "address": "0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3", - "symbol": "BREAD", - "decimals": 18, - "chain_id": 100 - } - }, - "scan": { - "url": "https://gnosisscan.io", - "name": "Gnosis Explorer" - }, - "accounts": { - "100:0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9": { - "chain_id": 100, - "entrypoint_address": "0xcA0a75EF803a364C83c5EAE7Eb889aE7419c9dF2", - "paymaster_address": "0xbE2Cb3358aa14621134e923B68b8429315368E32", - "account_factory_address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", - "paymaster_type": "cw" - }, - "100:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { - "chain_id": 100, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0x5C41F1114AB13aF5d66bac485924D03556d0cd51", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" - } - }, - "chains": { - "100": { - "id": 100, - "node": { - "url": "https://100.engine.citizenwallet.xyz", - "ws_url": "wss://100.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "plugins": [ - { - "name": "Market", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", - "url": "https://marketplace.citizenwallet.xyz/bread", - "launch_mode": "webview", - "signature": true, - "featured": true - }, - { - "name": "Breadcon 2025 Faucet", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", - "url": "https://faucet.citizenwallet.xyz/breadcon2025", - "launch_mode": "webview", - "signature": true, - "hidden": true - }, - { - "name": "Japan Demo", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", - "url": "https://hackatsuonvoting.vercel.app", - "launch_mode": "webview", - "signature": true, - "hidden": true - }, - { - "name": "Japan Demo", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", - "url": "https://grow-kesennuma.vercel.app", - "launch_mode": "webview", - "signature": true, - "hidden": true - }, - { - "name": "Mutual Vend", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", - "url": "https://mutual-vend.com", - "launch_mode": "webview", - "signature": true, - "hidden": true - } - ], - "config_location": "https://config.internal.citizenwallet.xyz/v4/bread.citizenwallet.xyz.json", - "version": 4 - }, - { - "community": { - "url": "https://breadchain.xyz/", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/laborhour.png", - "name": "Labor Hour Token", - "alias": "laborhour", - "theme": { - "primary": "#E52D2D" - }, - "profile": { - "address": "0x673601Eb36820bC9718214AC041E96f79383351B", - "chain_id": 100 - }, - "description": "Labor Hour Token aims to reward contributors for hours of labor, particularly targeting non-blockchain native users", - "primary_token": { - "address": "0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007", - "chain_id": 100 - }, - "primary_card_manager": { - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 100 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 100 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 100 - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://gnosisscan.io", - "name": "Gnosis Explorer" - }, - "cards": { - "100:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { - "type": "safe", - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 100, - "instance_id": "cw-discord-1" - } - }, - "chains": { - "100": { - "id": 100, - "node": { - "url": "https://100.engine.citizenwallet.xyz", - "ws_url": "wss://100.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "100:0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007": { - "name": "Labor Hour Token", - "symbol": "HOUR", - "address": "0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007", - "chain_id": 100, - "decimals": 6, - "standard": "erc20" - } - }, - "plugins": [], - "version": 4, - "accounts": { - "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 100, - "paymaster_type": "cw-safe", - "paymaster_address": "0xa7fa16C933f51d8623f39FA0dF34D3065B99Bd1c", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "sessions": { - "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 100, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" - } - }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/laborhour.citizenwallet.xyz.json" - }, - { - "community": { - "url": "https://rooted.finance/", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rooted.png", - "name": "Rooted.Finance", - "alias": "rooted", - "theme": { - "primary": "#ff4c02" - }, - "hidden": true, - "profile": { - "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", - "chain_id": 8453 - }, - "description": "Rooted in your values.", - "primary_token": { - "address": "0x3595ca37596d5895b70efab592ac315d5b9809b2", - "chain_id": 8453 - }, - "primary_card_manager": { - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 8453 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 8453 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 8453 - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://gnosisscan.io", - "name": "Gnosis Explorer" - }, - "cards": { - "8453:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { - "type": "safe", - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 8453, - "instance_id": "cw-discord-1" - } - }, - "chains": { - "8453": { - "id": 8453, - "node": { - "url": "https://8453.engine.citizenwallet.xyz", - "ws_url": "wss://8453.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "8453:0x3595ca37596d5895b70efab592ac315d5b9809b2": { - "name": "Azos Stablecoin", - "symbol": "AZUSD", - "address": "0x3595ca37596d5895b70efab592ac315d5b9809b2", - "chain_id": 8453, - "decimals": 18, - "standard": "erc20" - } - }, - "plugins": [], - "version": 4, - "accounts": { - "8453:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 8453, - "paymaster_type": "cw-safe", - "paymaster_address": "0x02cd43b3d7a946dCaa8dF12ac0A6Cd50aF9cDd64", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "sessions": { - "8453:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 8453, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0x0c2e78DB6FaF8D4d68984A830339764AD9f800D4" - } - }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/rooted.citizenwallet.xyz.json" - }, - { - "community": { - "name": "Commons Hub Brussels", - "description": "Community Token for the Commons Hub Brussels community", - "url": "https://commonshub.brussels", - "alias": "wallet.commonshub.brussels", - "custom_domain": "wallet.commonshub.brussels", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/chb.png", - "theme": { - "primary": "#ff4c02" - }, - "profile": { - "address": "0xc06bE1BbbeEAF2f34F3d5b76069D2560aee184Ae", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x65DD32834927de9E57E72a3E2130a19f81C6371D", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x65DD32834927de9E57E72a3E2130a19f81C6371D": { - "standard": "erc20", - "name": "Commons Hub Token", - "address": "0x65DD32834927de9E57E72a3E2130a19f81C6371D", - "symbol": "CHT", - "decimals": 6, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "CELO Explorer" - }, - "accounts": { - "42220:0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87": { - "chain_id": 42220, - "entrypoint_address": "0xb7608dDA592d319687C89c4479e320b5a7740117", - "paymaster_address": "0x4E127A1DAa66568B4a91E8c5615120a6Ea5442E3", - "account_factory_address": "0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87", - "paymaster_type": "cw" - } - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "cards": { - "42220:0xc0F9e0907C8de79fd5902b61e463dFEdc5dc8570": { - "chain_id": 42220, - "address": "0xc0F9e0907C8de79fd5902b61e463dFEdc5dc8570", - "type": "classic" - } - }, - "plugins": [ - { - "name": "Market", - "icon": "https://marketplace.citizenwallet.xyz/marketplace.svg", - "url": "https://marketplace.citizenwallet.xyz/wallet.commonshub.brussels", - "launch_mode": "webview", - "signature": true - } - ], - "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.commonshub.brussels.json", - "version": 4 - }, - { - "community": { - "name": "Sel de Salm", - "description": "La communauté de Sel de Salm", - "url": "https://citizenwallet.xyz/community-currency-documentation/sel-de-salm", - "alias": "seldesalm", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", - "theme": { - "primary": "#6B5CA4" - }, - "profile": { - "address": "0x4083724953cC1cC13e76b436149B2b1e1a3E5970", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "chain_id": 42220 - }, - "primary_card_manager": { - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2": { - "standard": "erc20", - "name": "Myrtille", - "address": "0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2", - "symbol": "MYRT", - "decimals": 6, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "accounts": { - "42220:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { - "chain_id": 42220, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0xd07412020dA5054c3b49f47Ca61224637F1703af", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" - } - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "cards": { - "42220:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { - "chain_id": 42220, - "instance_id": "cw-seldesalm", - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "type": "safe" - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "plugins": [ - { - "name": "Informations Générales", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", - "url": "https://citizenwallet.xyz/community-currency-documentation/sel-de-salm", - "launch_mode": "webview" - }, - { - "name": "Échanges", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", - "url": "https://marketplace.citizenwallet.xyz/seldesalm", - "launch_mode": "webview", - "signature": true, - "featured": true - } - ], - "config_location": "https://seldesalm.citizenwallet.xyz/config/community.json", - "version": 4 - }, - { - "community": { - "name": "TECHI", - "description": "A community for TECHI users", - "url": "https://my.techi.be", - "alias": "my.techi.be", - "logo": "https://my.techi.be/assets/token.svg", - "hidden": false, - "theme": { - "primary": "#617FF8" - }, - "profile": { - "address": "0x80C141861607b8FEfD53C9E71a9c7D2D3e2e76dc", - "chain_id": 100 - }, - "primary_token": { - "address": "0x01D0E7117510b371Ac38f52Cc6689ff8875280FA", - "chain_id": 100 - }, - "primary_account_factory": { - "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "chain_id": 100 - }, - "primary_card_manager": { - "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", - "chain_id": 100 - } - }, - "tokens": { - "100:0x01D0E7117510b371Ac38f52Cc6689ff8875280FA": { - "standard": "erc20", - "name": "TECHI", - "address": "0x01D0E7117510b371Ac38f52Cc6689ff8875280FA", - "symbol": "TECHI", - "decimals": 6, - "chain_id": 100 - } - }, - "scan": { - "url": "https://gnosisscan.io", - "name": "Gnosis Explorer" - }, - "accounts": { - "100:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { - "chain_id": 100, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0x68c5a20f233264DB124a3c95a200bbD20b3b9762", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" - } - }, - "chains": { - "100": { - "id": 100, - "node": { - "url": "https://engine.my.techi.be", - "ws_url": "wss://engine.my.techi.be" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "plugins": [], - "config_location": "https://my.techi.be/assets/community.json", - "version": 4 - }, - { - "community": { - "name": "Regens Unite", - "description": "A community currency for the Regens Unite community.", - "url": "https://www.regensunite.earth/", - "alias": "wallet.regensunite.earth", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", - "custom_domain": "wallet.regensunite.earth", - "hidden": true, - "profile": { - "address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", - "chain_id": 137 - }, - "primary_token": { - "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x9406Cc6185a346906296840746125a0E44976454", - "chain_id": 137 - } - }, - "tokens": { - "137:0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e": { - "standard": "erc20", - "name": "Regens Unite Token", - "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", - "symbol": "RGN", - "decimals": 6, - "chain_id": 137 - } - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "accounts": { - "137:0x9406Cc6185a346906296840746125a0E44976454": { - "chain_id": 137, - "entrypoint_address": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", - "paymaster_address": "0x250711045d58b6310f0635C7D110BFe663cE1da5", - "account_factory_address": "0x9406Cc6185a346906296840746125a0E44976454", - "paymaster_type": "payg", - "gas_extra_percentage": 50 - } - }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.regensunite.earth.json", - "version": 4 - }, - { - "community": { - "name": "Gratitude Token", - "description": "Express your gratitude towards someone by sending them a token.", - "url": "https://citizenwallet.xyz/gratitude", - "alias": "gt.celo", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/gt.svg", - "custom_domain": null, - "hidden": true, - "theme": { - "primary": "#a256ff" - }, - "profile": { - "address": "0xEEc0F3257369c6bCD2Fd8755CbEf8A95b12Bc4c9", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { - "standard": "erc20", - "name": "Gratitude Token", - "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", - "symbol": "GT", - "decimals": 0, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "accounts": { - "42220:0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD": { - "chain_id": 42220, - "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", - "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", - "account_factory_address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD", - "paymaster_type": "cw" - } - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/gt.celo.citizenwallet.xyz.json", - "version": 4 - }, - { - "community": { - "name": "Celo Euro", - "description": "Celo Euro is a stablecoin for the Celo Community.", - "url": "https://celo.org/", - "alias": "ceur.celo", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/ceur.svg", - "hidden": true, - "theme": { - "primary": "#a256ff" - }, - "profile": { - "address": "0x0334C579E61aF6922D5deFEF02A361FBb2D6f406", - "chain_id": 42220 - }, - "primary_token": { - "address": "0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73": { - "standard": "erc20", - "name": "Celo Euro", - "address": "0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73", - "symbol": "cEUR", - "decimals": 18, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "accounts": { - "42220:0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098": { - "chain_id": 42220, - "entrypoint_address": "0xc3142BCBA2285d0a48A38e7Ea9Cbf28a12B235bB", - "paymaster_address": "0xedbEA8c0F25B34510149EaD4f72867B0d3D2264F", - "account_factory_address": "0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098", - "paymaster_type": "cw" - } - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/ceur.celo.citizenwallet.xyz.json", - "version": 4 - }, - { - "community": { - "name": "EUR e-money", - "description": "Token by Monerium EMI, a regulated entity, licensed in the EEA.", - "url": "https://monerium.com/tokens/", - "alias": "eure.polygon", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/eure.svg", - "hidden": true, - "profile": { - "address": "0xF5F7317EDb8E88CaE09071B0C4F0fd6EA20B21f9", - "chain_id": 137 - }, - "primary_token": { - "address": "0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616", - "chain_id": 137 - } - }, - "tokens": { - "137:0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6": { - "standard": "erc20", - "name": "EUR emoney", - "address": "0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6", - "symbol": "EURe", - "decimals": 18, - "chain_id": 137 - } - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "accounts": { - "137:0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616": { - "chain_id": 137, - "entrypoint_address": "0x2027Bde7C276D5F128587E3107c68A488ee31c72", - "paymaster_address": "0xB2cb6b75C2357Ca94dBdF58897E468E45fAC83Ec", - "account_factory_address": "0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616", - "paymaster_type": "cw", - "gas_extra_percentage": 50 - } - }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/eure.polygon.citizenwallet.xyz.json", - "version": 4 - }, - { - "community": { - "name": "USDC on Polygon", - "description": "The community of people using USDC on Polygon.", - "url": "https://en.wikipedia.org/wiki/USD_Coin", - "alias": "app", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/usdc.svg", - "hidden": true, - "theme": { - "primary": "#0052ff" - }, - "profile": { - "address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", - "chain_id": 137 - }, - "primary_token": { - "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x270758454C012A1f51428b68aE473D728CCdFe88", - "chain_id": 137 - } - }, - "tokens": { - "137:0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174": { - "standard": "erc20", - "name": "USD Coin", - "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", - "symbol": "USDC", - "decimals": 6, - "chain_id": 137 - } - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "accounts": { - "137:0x270758454C012A1f51428b68aE473D728CCdFe88": { - "chain_id": 137, - "entrypoint_address": "0x466AA6ed2B7Bb829841F5aAEA9e82B840eC0feF9", - "paymaster_address": "0xB5D1C0167E6325466E2918e9fda8cc41384C0291", - "account_factory_address": "0x270758454C012A1f51428b68aE473D728CCdFe88", - "paymaster_type": "cw", - "gas_extra_percentage": 50 - } - }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/app.citizenwallet.xyz.json", - "version": 4 - }, - { - "community": { - "name": "USDC on Base", - "description": "The community of people using USDC on Base.", - "url": "https://en.wikipedia.org/wiki/USD_Coin", - "alias": "usdc.base", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/usdc.svg", - "hidden": true, - "theme": { - "primary": "#0052ff" - }, - "profile": { - "address": "0x51Ef5Add405CCF63c206A80AF8c2B3cEE0282830", - "chain_id": 8453 - }, - "primary_token": { - "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", - "chain_id": 8453 - }, - "primary_account_factory": { - "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", - "chain_id": 8453 - } - }, - "tokens": { - "8453:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913": { - "standard": "erc20", - "name": "USD Coin", - "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", - "symbol": "USDC", - "decimals": 6, - "chain_id": 8453 - } - }, - "scan": { - "url": "https://basescan.org", - "name": "Base Explorer" - }, - "accounts": { - "8453:0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99": { - "chain_id": 8453, - "entrypoint_address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", - "paymaster_address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", - "account_factory_address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", - "paymaster_type": "cw", - "gas_extra_percentage": 50 - } - }, - "chains": { - "8453": { - "id": 8453, - "node": { - "url": "https://8453.engine.citizenwallet.xyz", - "ws_url": "wss://8453.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/usdc.base.citizenwallet.xyz.json", - "version": 4 - }, - { - "community": { - "name": "OAK Community", - "description": "A community currency for the city of Oakland.", - "url": "https://www.oak.community/", - "alias": "wallet.oak.community", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/oak.svg", - "custom_domain": "wallet.oak.community", - "hidden": true, - "profile": { - "address": "0xFE213c74e25505B232CE4C7f89647408bE6f71d2", - "chain_id": 8453 - }, - "primary_token": { - "address": "0x845598Da418890a674cbaBA26b70807aF0c61dFE", - "chain_id": 8453 - }, - "primary_account_factory": { - "address": "0x9406Cc6185a346906296840746125a0E44976454", - "chain_id": 8453 - } - }, - "tokens": { - "8453:0x845598Da418890a674cbaBA26b70807aF0c61dFE": { - "standard": "erc20", - "name": "OAK Community Currency", - "address": "0x845598Da418890a674cbaBA26b70807aF0c61dFE", - "symbol": "OAK", - "decimals": 6, - "chain_id": 8453 - } - }, - "scan": { - "url": "https://basescan.org", - "name": "Base Explorer" - }, - "accounts": { - "8453:0x9406Cc6185a346906296840746125a0E44976454": { - "chain_id": 8453, - "entrypoint_address": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", - "paymaster_address": "0x123", - "account_factory_address": "0x9406Cc6185a346906296840746125a0E44976454", - "paymaster_type": "payg" - } - }, - "chains": { - "8453": { - "id": 8453, - "node": { - "url": "https://8453.engine.citizenwallet.xyz", - "ws_url": "wss://8453.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.oak.community.json", - "version": 4 - }, - { - "community": { - "name": "Stable Coin", - "description": "SBC is a digital dollar stablecoin issued by Brale", - "url": "https://brale.xyz/", - "alias": "sbc.polygon", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sbc.svg", - "hidden": true, - "profile": { - "address": "0xcA0a75EF803a364C83c5EAE7Eb889aE7419c9dF2", - "chain_id": 137 - }, - "primary_token": { - "address": "0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5", - "chain_id": 137 - } - }, - "tokens": { - "137:0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798": { - "standard": "erc20", - "name": "Stable Coin", - "address": "0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798", - "symbol": "SBC", - "decimals": 18, - "chain_id": 137 - } - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "accounts": { - "137:0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5": { - "chain_id": 137, - "entrypoint_address": "0xe84423Ba1A3f3535B09237245e22dBda5E27eB88", - "paymaster_address": "0x123", - "account_factory_address": "0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5", - "paymaster_type": "cw" - } - }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/sbc.polygon.citizenwallet.xyz.json", - "version": 4 - }, - { - "community": { - "name": "Zinne.brussels", - "description": "A community currency for the city of Brussels", - "url": "https://zinne.brussels", - "alias": "zinne", - "logo": "https://citizenwallet.xyz/zinne/zinne-coin.svg", - "hidden": true, - "profile": { - "address": "0x23DB3D3Da510e60aF40902A04850E1F3a744905c", - "chain_id": 137 - }, - "primary_token": { - "address": "0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x11af2639817692D2b805BcE0e1e405E530B20006", - "chain_id": 137 - } - }, - "tokens": { - "137:0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D": { - "standard": "erc20", - "name": "Zinne.brussels Token", - "address": "0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D", - "symbol": "ZINNE", - "decimals": 6, - "chain_id": 137 - } - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "accounts": { - "137:0x11af2639817692D2b805BcE0e1e405E530B20006": { - "chain_id": 137, - "entrypoint_address": "0xF5507B3042f1C63625D856a2ABFF046243A5D74e", - "paymaster_address": "0xBb796D122Ec1aBDeD081D50B06a072f981c7E62b", - "account_factory_address": "0x11af2639817692D2b805BcE0e1e405E530B20006", - "paymaster_type": "cw" - } - }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/zinne.brussels.citizenwallet.xyz.json", - "version": 4 - }, - { - "community": { - "name": "Regens Unite Time Bank", - "description": "Make time to regen", - "url": "https://regensunite.earth", - "alias": "timebank.regensunite.earth", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", - "hidden": true, - "profile": { - "address": "0x605A827DF8C405D16Ec70AAb8d9a47D21db45c09", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x186DaBD027e228C988777907465807FDab270894", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x39b77d77f7677997871b304094a05295eb71e240", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x186DaBD027e228C988777907465807FDab270894": { - "standard": "erc20", - "name": "Regen Hour", - "address": "0x186DaBD027e228C988777907465807FDab270894", - "symbol": "rHour", - "decimals": 6, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "CELO Explorer" - }, - "accounts": { - "42220:0x39b77d77f7677997871b304094a05295eb71e240": { - "chain_id": 42220, - "entrypoint_address": "0x41176F0C9b8f795Cb99e2DD5Db16017978eeFa4d", - "paymaster_address": "0xe45858bf63176595c2920822581917c7C705a12f", - "account_factory_address": "0x39b77d77f7677997871b304094a05295eb71e240", - "paymaster_type": "cw" - } - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "plugins": [ - { - "name": "Market", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", - "url": "https://marketplace.citizenwallet.xyz/timebank.regensunite.earth", - "launch_mode": "webview", - "signature": true - } - ], - "config_location": "https://timebank.regensunite.earth/indexer", - "version": 4 - }, - { - "community": { - "name": "MOOS Token", - "description": "A community currency for MOOS.", - "url": "https://www.moos.garden/", - "alias": "moos", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/moos.svg", - "hidden": true, - "profile": { - "address": "0x2e4542Be47408d05F41703386eFaf4338Ee1D341", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x671f0662de72268d0f3966Fb62dFc6ee6389e244", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3": { - "standard": "erc20", - "name": "MOOS Token", - "address": "0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3", - "symbol": "MOOS", - "decimals": 6, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "accounts": { - "42220:0x671f0662de72268d0f3966Fb62dFc6ee6389e244": { - "chain_id": 42220, - "entrypoint_address": "0x45a8e6AaDCc48D1Ce19eCbE07Ccd3a536EF712ed", - "paymaster_address": "0x55E519bfD63c7152D9F7B88Acd712A37F0BEC482", - "account_factory_address": "0x671f0662de72268d0f3966Fb62dFc6ee6389e244", - "paymaster_type": "cw" - } - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "plugins": [ - { - "name": "Market", - "icon": "https://moos.citizenwallet.xyz/wallet-config/_images/moos.svg", - "url": "https://marketplace.citizenwallet.xyz/moos", - "launch_mode": "webview", - "signature": true - } - ], - "config_location": "https://config.internal.citizenwallet.xyz/v4/moos.citizenwallet.xyz.json", - "version": 4 - }, - { - "community": { - "name": "Bonne Heure", - "description": "Système d'Échange Local de Villers-la-Ville", - "url": "https://selcoupdepouce.be", - "alias": "selcoupdepouce", - "logo": "https://topup.citizenwallet.xyz/communities/selcoupdepouce/sel-coin.svg", - "hidden": true, - "profile": { - "address": "0xfB8F1e7ED42599638B3c509679E2F43937002C56", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3": { - "standard": "erc20", - "name": "Bonne Heure", - "address": "0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3", - "symbol": "BHR", - "decimals": 6, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "accounts": { - "42220:0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284": { - "chain_id": 42220, - "entrypoint_address": "0xA90904F33df36899d810d040b8d5b3b77265Bb05", - "paymaster_address": "0x635032605337aB36A46D767905108e67EE687a72", - "account_factory_address": "0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284", - "paymaster_type": "cw" - } - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "plugins": [ - { - "name": "Market", - "icon": "https://marketplace.citizenwallet.xyz/marketplace.svg", - "url": "https://marketplace.citizenwallet.xyz/selcoupdepouce", - "launch_mode": "browser", - "signature": true - } - ], - "config_location": "https://config.internal.citizenwallet.xyz/v4/selcoupdepouce.citizenwallet.xyz.json", - "version": 4 - }, - { - "community": { - "name": "CI token", - "description": "Monnaie locale du Cercle Informatique de l’ULB", - "url": "https://citizenwallet.xyz/cit", - "alias": "cit.celo", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/cit.celo.svg", - "hidden": true, - "profile": { - "address": "0x4cB296BEc9FAd0B5e1E4FF1A2F307B425724AC82", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9": { - "standard": "erc20", - "name": "CI token", - "address": "0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9", - "symbol": "CIT", - "decimals": 6, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "accounts": { - "42220:0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970": { - "chain_id": 42220, - "entrypoint_address": "0xB8d9412f3A91A00ca762B5c35cd0863E9b716D68", - "paymaster_address": "0x452F7ff3e55fe29f481841985dE7f4939FD645fa", - "account_factory_address": "0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970", - "paymaster_type": "cw" - } - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/cit.celo.citizenwallet.xyz.json", - "version": 4 - }, - { - "community": { - "name": "Wolugo", - "description": "A community for the Woluwe-Saint-Pierre civic engagement platform", - "url": "https://wolugo.be", - "alias": "wallet.wolugo.be", - "custom_domain": "wallet.wolugo.be", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/wolugo.svg", - "theme": { - "primary": "#81e2c1" - }, - "hidden": true, - "profile": { - "address": "0x07e7b95B35866302b3A089feF4CFA3061061a51d", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x8474153A00C959f2cB64852949954DBC68415Bb3", - "chain_id": 42220 - }, - "card_factory": { - "address": "0xA3E1446E332a098A1f3b0555c5d149b4784A095F", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451": { - "standard": "erc20", - "name": "Wolu", - "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", - "symbol": "WOLU", - "decimals": 6, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "CELO Explorer" - }, - "accounts": { - "42220:0x8474153A00C959f2cB64852949954DBC68415Bb3": { - "chain_id": 42220, - "entrypoint_address": "0x0F805BC1ED718FB9C7C18439cB11E1C17C6538C4", - "paymaster_address": "0xF2EFEC3cBFaDE0bB6108620cbF7Cc608d27DCF3c", - "account_factory_address": "0x8474153A00C959f2cB64852949954DBC68415Bb3", - "paymaster_type": "cw" - } - }, - "cards": { - "42220:0xA3E1446E332a098A1f3b0555c5d149b4784A095F": { - "chain_id": 42220, - "address": "0xA3E1446E332a098A1f3b0555c5d149b4784A095F", - "type": "classic" - } - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.wolugo.be.json", - "version": 4 - }, - { - "community": { - "name": "Woluwe Test", - "description": "Local currency for the Woluwe Test community.", - "url": "https://wollet-v2.citizenwallet.net/token", - "alias": "wtc.celo", - "logo": "https://wtc.celo.citizenwallet.xyz/wallet-config/_images/wtc.celo.svg", - "hidden": true, - "profile": { - "address": "0xB99a7B1574f051020EB4cb2fce5d48EE07592AfF", - "chain_id": 42220 - }, - "primary_token": { - "address": "0xc53Cb35591959cA62471dA9fF6AC16629A89874a", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0xE79E19594A749330036280c685E2719d58d99052", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0xc53Cb35591959cA62471dA9fF6AC16629A89874a": { - "standard": "erc20", - "name": "Woluwe Test Coin", - "address": "0xc53Cb35591959cA62471dA9fF6AC16629A89874a", - "symbol": "WTC", - "decimals": 6, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "accounts": { - "42220:0xE79E19594A749330036280c685E2719d58d99052": { - "chain_id": 42220, - "entrypoint_address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", - "paymaster_address": "0x3fefC19674f3F6E43B1dFf1861E07c303B9eAAc9", - "account_factory_address": "0xE79E19594A749330036280c685E2719d58d99052", - "paymaster_type": "cw" - } - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/wtc.celo.citizenwallet.xyz.json", - "version": 4 - }, - { - "community": { - "name": "ETHGlobal London Token", - "description": "The community of people using ETHLDN on Base.", - "url": "https://en.wikipedia.org/wiki/USD_Coin", - "alias": "testnet-ethldn", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/testnet-ethldn.svg", - "hidden": true, - "profile": { - "address": "0x0785D720279f42326846D5396b5F44b97d0BfECd", - "chain_id": 84532 - }, - "primary_token": { - "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", - "chain_id": 84532 - }, - "primary_account_factory": { - "address": "0xc1654087C580f868F08E34cd1c01eDB1d3673b82", - "chain_id": 84532 - } - }, - "tokens": { - "84532:0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e": { - "standard": "erc20", - "name": "ETHGlobal London Token", - "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", - "symbol": "ETHLDN", - "decimals": 6, - "chain_id": 84532 - } - }, - "scan": { - "url": "https://sepolia.basescan.org", - "name": "Base Sepolia Explorer" - }, - "accounts": { - "84532:0xc1654087C580f868F08E34cd1c01eDB1d3673b82": { - "chain_id": 84532, - "entrypoint_address": "0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE", - "paymaster_address": "0x389182aCCeE26D953d5188BF4b92c49339DcC9FC", - "account_factory_address": "0xc1654087C580f868F08E34cd1c01eDB1d3673b82", - "paymaster_type": "cw" - } - }, - "chains": { - "84532": { - "id": 84532, - "node": { - "url": "https://84532.engine.citizenwallet.xyz", - "ws_url": "wss://84532.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/testnet-ethldn.json", - "version": 4 - }, - { - "community": { - "name": "Celo Community Point", - "description": "This is a community for the Celo Point", - "url": "https://citizenwallet.xyz", - "alias": "celo-c.citizenwallet.xyz", - "logo": "https://celo-c.citizenwallet.xyz/uploads/logo.svg", - "hidden": true, - "profile": { - "address": "0x14004E13907282cFaD05f742022E56926eE92dAd", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x3C960E72BBbD837293e75080E1d0Fee6a4640357", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x3C960E72BBbD837293e75080E1d0Fee6a4640357": { - "standard": "erc20", - "name": "Celo Community Point", - "address": "0x3C960E72BBbD837293e75080E1d0Fee6a4640357", - "symbol": "CeloC", - "decimals": 6, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "CELO Explorer" - }, - "accounts": { - "42220:0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA": { - "chain_id": 42220, - "entrypoint_address": "0x66fE9c22CcA49B257dd4F00508AC90198d99Bf27", - "paymaster_address": "0x7f4011845Ea914b6cefc60629e1e00600c972c75", - "account_factory_address": "0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA", - "paymaster_type": "cw" - } - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/celo-c.citizenwallet.xyz.json", - "version": 4 - }, - { - "community": { - "name": "KFMEDIA℠", - "description": "Certified Education Organization. Solving systemic educational disparity using Web3 solutions, removing barriers of entry for underdeveloped economies.", - "url": "https://kingfishersmedia.io", - "alias": "wallet.kingfishersmedia.io", - "custom_domain": "wallet.kingfishersmedia.io", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/kfmpfl.png", - "theme": { - "primary": "#88292c" - }, - "profile": { - "address": "0x5f6FEb03ad8EfeCdD2a837FAA1a29DEA2bAcfd55", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "chain_id": 42220 - }, - "primary_card_manager": { - "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x56744910f7dEcD48c1a7FA61B4C317b15E99F156": { - "standard": "erc1155", - "name": "KFMEDIA℠ Pathways for LATAM™", - "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", - "symbol": "KFMPFL", - "decimals": 0, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "accounts": { - "42220:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { - "chain_id": 42220, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0x02BDA8370d9497A5C808B2db237cfaA8f0733F36", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" - } - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.kingfishersmedia.io.json", - "version": 4 - } -] \ No newline at end of file + { + "community": { + "name": "Citizen Wallet (CTZN)", + "description": "The token powering the Citizen Wallet economy.", + "url": "https://citizenwallet.xyz", + "alias": "ctzn", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/ctzn.svg", + "theme": { + "primary": "#9563D3" + }, + "profile": { + "address": "0x8dA817724Eb6A2aA47c0F8d8b8A98b9B3C2Ddb68", + "chain_id": 137 + }, + "primary_token": { + "address": "0x0D9B0790E97e3426C161580dF4Ee853E4A7C4607", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "chain_id": 137 + } + }, + "tokens": { + "137:0x0D9B0790E97e3426C161580dF4Ee853E4A7C4607": { + "standard": "erc20", + "name": "Citizen Wallet", + "address": "0x0D9B0790E97e3426C161580dF4Ee853E4A7C4607", + "symbol": "CTZN", + "decimals": 18, + "chain_id": 137 + } + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "accounts": { + "137:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 137, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0x3A3E25871c5C6C84D5f397829FF316a37F7FD596", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [ + { + "name": "About", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/ctzn.svg", + "url": "https://citizenwallet.xyz/pay-with-ctzn", + "launch_mode": "browser" + }, + { + "name": "Top Up", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/ctzn.svg", + "url": "https://my.citizenwallet.xyz/onramp", + "action": "topup", + "signature": true + } + ], + "config_location": "https://config.internal.citizenwallet.xyz/v4/ctzn.json", + "version": 4 + }, + { + "community": { + "name": "Brussels Pay", + "description": "A community for the city of Brussels", + "url": "https://pay.brussels", + "alias": "wallet.pay.brussels", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/wallet.pay.brussels.png", + "custom_domain": "wallet.pay.brussels", + "hidden": false, + "theme": { + "primary": "#4a90e2" + }, + "profile": { + "address": "0x56Cc38bDa01bE6eC6D854513C995f6621Ee71229", + "chain_id": 100 + }, + "primary_token": { + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 100 + }, + "primary_account_factory": { + "address": "0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE", + "chain_id": 100 + }, + "primary_card_manager": { + "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "chain_id": 100 + } + }, + "tokens": { + "100:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { + "standard": "erc20", + "name": "pay.brussels", + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "symbol": "EURb", + "decimals": 6, + "chain_id": 100 + } + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "accounts": { + "100:0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE": { + "chain_id": 100, + "entrypoint_address": "0xAAEb9DC18aDadae9b3aE7ec2b47842565A81113f", + "paymaster_address": "0xcA1B9EC1117340818C1c1fdd1B48Ea79E57C140F", + "account_factory_address": "0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE", + "paymaster_type": "cw" + }, + "100:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 100, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0x8fc2e97671C691e7Ff7B42e5c7cCbDD38fC8B729", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "cards": { + "100:0x1EaF6B6A6967608aF6c77224f087b042095891EB": { + "chain_id": 100, + "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "type": "classic" + } + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://engine.pay.brussels", + "ws_url": "wss://engine.pay.brussels" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [ + { + "name": "Top Up", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/wallet.pay.brussels.png", + "url": "https://checkout.pay.brussels/topup", + "action": "topup", + "signature": true, + "featured": true + } + ], + "config_location": "https://wallet.pay.brussels/config/community.json", + "version": 4 + }, + { + "community": { + "name": "Gratitude Token", + "description": "Express your gratitude towards someone by sending them a token of gratitude.", + "url": "https://citizenwallet.xyz/gratitude", + "alias": "gratitude", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/gt.svg", + "theme": { + "primary": "#4EC19D" + }, + "profile": { + "address": "0xEEc0F3257369c6bCD2Fd8755CbEf8A95b12Bc4c9", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD", + "chain_id": 42220 + }, + "primary_card_manager": { + "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { + "standard": "erc20", + "name": "Gratitude Token", + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "symbol": "GT", + "decimals": 0, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD": { + "chain_id": 42220, + "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", + "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", + "account_factory_address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD", + "paymaster_type": "cw" + }, + "42220:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 42220, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0xF05ba2641b31AF70c2678e3324eD8b9C53093FbE", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "cards": { + "42220:0x1EaF6B6A6967608aF6c77224f087b042095891EB": { + "chain_id": 42220, + "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "type": "classic" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://gratitude.citizenwallet.xyz/config/community.json", + "version": 4 + }, + { + "community": { + "name": "SFLUV Community", + "description": "A community currency for the city of San Francisco.", + "url": "https://sfluv.org", + "alias": "wallet.berachain.sfluv.org", + "custom_domain": "wallet.sfluv.org", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "theme": { + "primary": "#eb6c6c" + }, + "profile": { + "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", + "chain_id": 80094 + }, + "primary_token": { + "address": "0x881cad4f885c6701d8481c0ed347f6d35444ea7e", + "chain_id": 80094 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 80094 + } + }, + "tokens": { + "80094:0x881cad4f885c6701d8481c0ed347f6d35444ea7e": { + "standard": "erc20", + "name": "SFLUV V1.1", + "address": "0x881cad4f885c6701d8481c0ed347f6d35444ea7e", + "symbol": "SFLUV", + "decimals": 18, + "chain_id": 80094 + } + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "accounts": { + "80094:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 80094, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0x9A5be02B65f9Aa00060cB8c951dAFaBAB9B860cd", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "paymaster_type": "cw-safe" + } + }, + "chains": { + "80094": { + "id": 80094, + "node": { + "url": "https://80094.engine.citizenwallet.xyz", + "ws_url": "wss://80094.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [ + { + "name": "Map", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "url": "https://app.sfluv.org/map", + "launch_mode": "webview", + "featured": true, + "signature": true + }, + { + "name": "About", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "url": "https://app.sfluv.org", + "launch_mode": "webview", + "signature": true, + "hidden": true + } + ], + "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.sfluv.org.json", + "version": 4 + }, + { + "community": { + "name": "SFLUV Community (Polygon)", + "description": "A community currency for the city of San Francisco.", + "url": "https://sfluv.org", + "alias": "wallet.sfluv.org", + "custom_domain": "wallet.polygon.sfluv.org", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "theme": { + "primary": "#eb6c6c" + }, + "hidden": true, + "profile": { + "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", + "chain_id": 137 + }, + "primary_token": { + "address": "0x58a2993A618Afee681DE23dECBCF535A58A080BA", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x5e987a6c4bb4239d498E78c34e986acf29c81E8e", + "chain_id": 137 + } + }, + "tokens": { + "137:0x58a2993A618Afee681DE23dECBCF535A58A080BA": { + "standard": "erc20", + "name": "SFLUV V1.1", + "address": "0x58a2993A618Afee681DE23dECBCF535A58A080BA", + "symbol": "SFLUV", + "decimals": 6, + "chain_id": 137 + } + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "accounts": { + "137:0x5e987a6c4bb4239d498E78c34e986acf29c81E8e": { + "chain_id": 137, + "entrypoint_address": "0x2d01C5E40Aa6a8478eD0FFbF2784EBb9bf67C46A", + "paymaster_address": "0x7FC98D0a2bd7f766bAca37388eB0F6Db37666B33", + "account_factory_address": "0x5e987a6c4bb4239d498E78c34e986acf29c81E8e", + "paymaster_type": "cw" + } + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [ + { + "name": "About", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "url": "https://app.sfluv.org", + "launch_mode": "webview", + "signature": true, + "hidden": true + } + ], + "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.sfluv.org.json", + "version": 4 + }, + { + "community": { + "name": "Txirrin", + "description": "A community for Txirrin", + "url": "https://citizenwallet.xyz/txirrin", + "alias": "txirrin", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/txirrin.png", + "hidden": false, + "theme": { + "primary": "#FB7502" + }, + "profile": { + "address": "0xd47f7198bf335bfe66dD29C0f3EeEf0cFE9D05D8", + "chain_id": 100 + }, + "primary_token": { + "address": "0x6c6611244547a6E9AaCfBA8744115ca1076756fc", + "chain_id": 100 + }, + "primary_account_factory": { + "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "chain_id": 100 + } + }, + "tokens": { + "100:0x6c6611244547a6E9AaCfBA8744115ca1076756fc": { + "standard": "erc20", + "name": "Txirrin", + "address": "0x6c6611244547a6E9AaCfBA8744115ca1076756fc", + "symbol": "TXI", + "decimals": 6, + "chain_id": 100 + } + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "accounts": { + "100:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 100, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0x33500E7Eb3452421e56c2f4117530B1C4C85E0A5", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://100.engine.citizenwallet.xyz", + "ws_url": "wss://100.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/txirrin.json", + "version": 4 + }, + { + "community": { + "name": "Bolivia Pay", + "description": "A community for Ethereum Bolivia.", + "url": "https://www.ethereumbolivia.org", + "alias": "boliviapay", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/boliviapay.png", + "theme": { + "primary": "#009393" + }, + "hidden": true, + "profile": { + "address": "0x898C2737f2Cb52622711A89D85A1D5E0B881BDeA", + "chain_id": 137 + }, + "primary_token": { + "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "chain_id": 137 + } + }, + "tokens": { + "137:0xc2132D05D31c914a87C6611C10748AEb04B58e8F": { + "standard": "erc20", + "name": "(PoS) Tether USD", + "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F", + "symbol": "USDT", + "decimals": 6, + "chain_id": 137 + } + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "accounts": { + "137:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 137, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0x9a81Bd50D56485Cc863Ecb169812c7a821996C8c", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/boliviapay.json", + "version": 4 + }, + { + "community": { + "name": "Bread Cooperative", + "description": "Financial tools today. Solidarity forever.", + "url": "https://bread.coop", + "alias": "bread", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", + "theme": { + "primary": "#ea6023" + }, + "profile": { + "address": "0x6b3a1f4277391526413F583c23D5B9EF4d2fE986", + "chain_id": 100 + }, + "primary_token": { + "address": "0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3", + "chain_id": 100 + }, + "primary_account_factory": { + "address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", + "chain_id": 100 + } + }, + "tokens": { + "100:0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3": { + "standard": "erc20", + "name": "Bread Cooperative Community Token", + "address": "0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3", + "symbol": "BREAD", + "decimals": 18, + "chain_id": 100 + } + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "accounts": { + "100:0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9": { + "chain_id": 100, + "entrypoint_address": "0xcA0a75EF803a364C83c5EAE7Eb889aE7419c9dF2", + "paymaster_address": "0xbE2Cb3358aa14621134e923B68b8429315368E32", + "account_factory_address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", + "paymaster_type": "cw" + }, + "100:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 100, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0x5C41F1114AB13aF5d66bac485924D03556d0cd51", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://100.engine.citizenwallet.xyz", + "ws_url": "wss://100.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [ + { + "name": "Market", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", + "url": "https://marketplace.citizenwallet.xyz/bread", + "launch_mode": "webview", + "signature": true, + "featured": true + }, + { + "name": "Breadcon 2025 Faucet", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", + "url": "https://faucet.citizenwallet.xyz/breadcon2025", + "launch_mode": "webview", + "signature": true, + "hidden": true + }, + { + "name": "Japan Demo", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", + "url": "https://hackatsuonvoting.vercel.app", + "launch_mode": "webview", + "signature": true, + "hidden": true + }, + { + "name": "Japan Demo", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", + "url": "https://grow-kesennuma.vercel.app", + "launch_mode": "webview", + "signature": true, + "hidden": true + }, + { + "name": "Mutual Vend", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", + "url": "https://mutual-vend.com", + "launch_mode": "webview", + "signature": true, + "hidden": true + } + ], + "config_location": "https://config.internal.citizenwallet.xyz/v4/bread.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "url": "https://breadchain.xyz/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/laborhour.png", + "name": "Labor Hour Token", + "alias": "laborhour", + "theme": { + "primary": "#E52D2D" + }, + "profile": { + "address": "0x673601Eb36820bC9718214AC041E96f79383351B", + "chain_id": 100 + }, + "description": "Labor Hour Token aims to reward contributors for hours of labor, particularly targeting non-blockchain native users", + "primary_token": { + "address": "0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007", + "chain_id": 100 + }, + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 100 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 100 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 100 + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "cards": { + "100:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 100, + "instance_id": "cw-discord-1" + } + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://100.engine.citizenwallet.xyz", + "ws_url": "wss://100.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "100:0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007": { + "name": "Labor Hour Token", + "symbol": "HOUR", + "address": "0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007", + "chain_id": 100, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 4, + "accounts": { + "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 100, + "paymaster_type": "cw-safe", + "paymaster_address": "0xa7fa16C933f51d8623f39FA0dF34D3065B99Bd1c", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 100, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/laborhour.citizenwallet.xyz.json" + }, + { + "community": { + "url": "https://rooted.finance/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rooted.png", + "name": "Rooted.Finance", + "alias": "rooted", + "theme": { + "primary": "#ff4c02" + }, + "hidden": true, + "profile": { + "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", + "chain_id": 8453 + }, + "description": "Rooted in your values.", + "primary_token": { + "address": "0x3595ca37596d5895b70efab592ac315d5b9809b2", + "chain_id": 8453 + }, + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 8453 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 8453 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 8453 + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "cards": { + "8453:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 8453, + "instance_id": "cw-discord-1" + } + }, + "chains": { + "8453": { + "id": 8453, + "node": { + "url": "https://8453.engine.citizenwallet.xyz", + "ws_url": "wss://8453.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "8453:0x3595ca37596d5895b70efab592ac315d5b9809b2": { + "name": "Azos Stablecoin", + "symbol": "AZUSD", + "address": "0x3595ca37596d5895b70efab592ac315d5b9809b2", + "chain_id": 8453, + "decimals": 18, + "standard": "erc20" + } + }, + "plugins": [], + "version": 4, + "accounts": { + "8453:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 8453, + "paymaster_type": "cw-safe", + "paymaster_address": "0x02cd43b3d7a946dCaa8dF12ac0A6Cd50aF9cDd64", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "8453:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 8453, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0x0c2e78DB6FaF8D4d68984A830339764AD9f800D4" + } + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/rooted.citizenwallet.xyz.json" + }, + { + "community": { + "name": "Commons Hub Brussels", + "description": "Community Token for the Commons Hub Brussels community", + "url": "https://commonshub.brussels", + "alias": "wallet.commonshub.brussels", + "custom_domain": "wallet.commonshub.brussels", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/chb.png", + "theme": { + "primary": "#ff4c02" + }, + "profile": { + "address": "0xc06bE1BbbeEAF2f34F3d5b76069D2560aee184Ae", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x65DD32834927de9E57E72a3E2130a19f81C6371D", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x65DD32834927de9E57E72a3E2130a19f81C6371D": { + "standard": "erc20", + "name": "Commons Hub Token", + "address": "0x65DD32834927de9E57E72a3E2130a19f81C6371D", + "symbol": "CHT", + "decimals": 6, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "accounts": { + "42220:0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87": { + "chain_id": 42220, + "entrypoint_address": "0xb7608dDA592d319687C89c4479e320b5a7740117", + "paymaster_address": "0x4E127A1DAa66568B4a91E8c5615120a6Ea5442E3", + "account_factory_address": "0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87", + "paymaster_type": "cw" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "cards": { + "42220:0xc0F9e0907C8de79fd5902b61e463dFEdc5dc8570": { + "chain_id": 42220, + "address": "0xc0F9e0907C8de79fd5902b61e463dFEdc5dc8570", + "type": "classic" + } + }, + "plugins": [ + { + "name": "Market", + "icon": "https://marketplace.citizenwallet.xyz/marketplace.svg", + "url": "https://marketplace.citizenwallet.xyz/wallet.commonshub.brussels", + "launch_mode": "webview", + "signature": true + } + ], + "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.commonshub.brussels.json", + "version": 4 + }, + { + "community": { + "name": "Sel de Salm", + "description": "La communauté de Sel de Salm", + "url": "https://citizenwallet.xyz/community-currency-documentation/sel-de-salm", + "alias": "seldesalm", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", + "theme": { + "primary": "#6B5CA4" + }, + "profile": { + "address": "0x4083724953cC1cC13e76b436149B2b1e1a3E5970", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "chain_id": 42220 + }, + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2": { + "standard": "erc20", + "name": "Myrtille", + "address": "0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2", + "symbol": "MYRT", + "decimals": 6, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 42220, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0xd07412020dA5054c3b49f47Ca61224637F1703af", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "cards": { + "42220:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "chain_id": 42220, + "instance_id": "cw-seldesalm", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "type": "safe" + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [ + { + "name": "Informations Générales", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", + "url": "https://citizenwallet.xyz/community-currency-documentation/sel-de-salm", + "launch_mode": "webview" + }, + { + "name": "Échanges", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", + "url": "https://marketplace.citizenwallet.xyz/seldesalm", + "launch_mode": "webview", + "signature": true, + "featured": true + } + ], + "config_location": "https://seldesalm.citizenwallet.xyz/config/community.json", + "version": 4 + }, + { + "community": { + "name": "TECHI", + "description": "A community for TECHI users", + "url": "https://my.techi.be", + "alias": "my.techi.be", + "logo": "https://my.techi.be/assets/token.svg", + "hidden": false, + "theme": { + "primary": "#617FF8" + }, + "profile": { + "address": "0x80C141861607b8FEfD53C9E71a9c7D2D3e2e76dc", + "chain_id": 100 + }, + "primary_token": { + "address": "0x01D0E7117510b371Ac38f52Cc6689ff8875280FA", + "chain_id": 100 + }, + "primary_account_factory": { + "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "chain_id": 100 + }, + "primary_card_manager": { + "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "chain_id": 100 + } + }, + "tokens": { + "100:0x01D0E7117510b371Ac38f52Cc6689ff8875280FA": { + "standard": "erc20", + "name": "TECHI", + "address": "0x01D0E7117510b371Ac38f52Cc6689ff8875280FA", + "symbol": "TECHI", + "decimals": 6, + "chain_id": 100 + } + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "accounts": { + "100:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 100, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0x68c5a20f233264DB124a3c95a200bbD20b3b9762", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://engine.my.techi.be", + "ws_url": "wss://engine.my.techi.be" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://my.techi.be/assets/community.json", + "version": 4 + }, + { + "community": { + "name": "Regens Unite", + "description": "A community currency for the Regens Unite community.", + "url": "https://www.regensunite.earth/", + "alias": "wallet.regensunite.earth", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", + "custom_domain": "wallet.regensunite.earth", + "hidden": true, + "profile": { + "address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", + "chain_id": 137 + }, + "primary_token": { + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x9406Cc6185a346906296840746125a0E44976454", + "chain_id": 137 + } + }, + "tokens": { + "137:0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e": { + "standard": "erc20", + "name": "Regens Unite Token", + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "symbol": "RGN", + "decimals": 6, + "chain_id": 137 + } + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "accounts": { + "137:0x9406Cc6185a346906296840746125a0E44976454": { + "chain_id": 137, + "entrypoint_address": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", + "paymaster_address": "0x250711045d58b6310f0635C7D110BFe663cE1da5", + "account_factory_address": "0x9406Cc6185a346906296840746125a0E44976454", + "paymaster_type": "payg", + "gas_extra_percentage": 50 + } + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.regensunite.earth.json", + "version": 4 + }, + { + "community": { + "name": "Gratitude Token", + "description": "Express your gratitude towards someone by sending them a token.", + "url": "https://citizenwallet.xyz/gratitude", + "alias": "gt.celo", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/gt.svg", + "custom_domain": null, + "hidden": true, + "theme": { + "primary": "#a256ff" + }, + "profile": { + "address": "0xEEc0F3257369c6bCD2Fd8755CbEf8A95b12Bc4c9", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { + "standard": "erc20", + "name": "Gratitude Token", + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "symbol": "GT", + "decimals": 0, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD": { + "chain_id": 42220, + "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", + "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", + "account_factory_address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD", + "paymaster_type": "cw" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/gt.celo.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "Celo Euro", + "description": "Celo Euro is a stablecoin for the Celo Community.", + "url": "https://celo.org/", + "alias": "ceur.celo", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/ceur.svg", + "hidden": true, + "theme": { + "primary": "#a256ff" + }, + "profile": { + "address": "0x0334C579E61aF6922D5deFEF02A361FBb2D6f406", + "chain_id": 42220 + }, + "primary_token": { + "address": "0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73": { + "standard": "erc20", + "name": "Celo Euro", + "address": "0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73", + "symbol": "cEUR", + "decimals": 18, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098": { + "chain_id": 42220, + "entrypoint_address": "0xc3142BCBA2285d0a48A38e7Ea9Cbf28a12B235bB", + "paymaster_address": "0xedbEA8c0F25B34510149EaD4f72867B0d3D2264F", + "account_factory_address": "0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098", + "paymaster_type": "cw" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/ceur.celo.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "EUR e-money", + "description": "Token by Monerium EMI, a regulated entity, licensed in the EEA.", + "url": "https://monerium.com/tokens/", + "alias": "eure.polygon", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/eure.svg", + "hidden": true, + "profile": { + "address": "0xF5F7317EDb8E88CaE09071B0C4F0fd6EA20B21f9", + "chain_id": 137 + }, + "primary_token": { + "address": "0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616", + "chain_id": 137 + } + }, + "tokens": { + "137:0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6": { + "standard": "erc20", + "name": "EUR emoney", + "address": "0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6", + "symbol": "EURe", + "decimals": 18, + "chain_id": 137 + } + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "accounts": { + "137:0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616": { + "chain_id": 137, + "entrypoint_address": "0x2027Bde7C276D5F128587E3107c68A488ee31c72", + "paymaster_address": "0xB2cb6b75C2357Ca94dBdF58897E468E45fAC83Ec", + "account_factory_address": "0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616", + "paymaster_type": "cw", + "gas_extra_percentage": 50 + } + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/eure.polygon.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "USDC on Polygon", + "description": "The community of people using USDC on Polygon.", + "url": "https://en.wikipedia.org/wiki/USD_Coin", + "alias": "app", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/usdc.svg", + "hidden": true, + "theme": { + "primary": "#0052ff" + }, + "profile": { + "address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", + "chain_id": 137 + }, + "primary_token": { + "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x270758454C012A1f51428b68aE473D728CCdFe88", + "chain_id": 137 + } + }, + "tokens": { + "137:0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174": { + "standard": "erc20", + "name": "USD Coin", + "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", + "symbol": "USDC", + "decimals": 6, + "chain_id": 137 + } + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "accounts": { + "137:0x270758454C012A1f51428b68aE473D728CCdFe88": { + "chain_id": 137, + "entrypoint_address": "0x466AA6ed2B7Bb829841F5aAEA9e82B840eC0feF9", + "paymaster_address": "0xB5D1C0167E6325466E2918e9fda8cc41384C0291", + "account_factory_address": "0x270758454C012A1f51428b68aE473D728CCdFe88", + "paymaster_type": "cw", + "gas_extra_percentage": 50 + } + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/app.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "USDC on Base", + "description": "The community of people using USDC on Base.", + "url": "https://en.wikipedia.org/wiki/USD_Coin", + "alias": "usdc.base", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/usdc.svg", + "hidden": true, + "theme": { + "primary": "#0052ff" + }, + "profile": { + "address": "0x51Ef5Add405CCF63c206A80AF8c2B3cEE0282830", + "chain_id": 8453 + }, + "primary_token": { + "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", + "chain_id": 8453 + }, + "primary_account_factory": { + "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", + "chain_id": 8453 + } + }, + "tokens": { + "8453:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913": { + "standard": "erc20", + "name": "USD Coin", + "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", + "symbol": "USDC", + "decimals": 6, + "chain_id": 8453 + } + }, + "scan": { + "url": "https://basescan.org", + "name": "Base Explorer" + }, + "accounts": { + "8453:0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99": { + "chain_id": 8453, + "entrypoint_address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", + "paymaster_address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", + "account_factory_address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", + "paymaster_type": "cw", + "gas_extra_percentage": 50 + } + }, + "chains": { + "8453": { + "id": 8453, + "node": { + "url": "https://8453.engine.citizenwallet.xyz", + "ws_url": "wss://8453.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/usdc.base.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "OAK Community", + "description": "A community currency for the city of Oakland.", + "url": "https://www.oak.community/", + "alias": "wallet.oak.community", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/oak.svg", + "custom_domain": "wallet.oak.community", + "hidden": true, + "profile": { + "address": "0xFE213c74e25505B232CE4C7f89647408bE6f71d2", + "chain_id": 8453 + }, + "primary_token": { + "address": "0x845598Da418890a674cbaBA26b70807aF0c61dFE", + "chain_id": 8453 + }, + "primary_account_factory": { + "address": "0x9406Cc6185a346906296840746125a0E44976454", + "chain_id": 8453 + } + }, + "tokens": { + "8453:0x845598Da418890a674cbaBA26b70807aF0c61dFE": { + "standard": "erc20", + "name": "OAK Community Currency", + "address": "0x845598Da418890a674cbaBA26b70807aF0c61dFE", + "symbol": "OAK", + "decimals": 6, + "chain_id": 8453 + } + }, + "scan": { + "url": "https://basescan.org", + "name": "Base Explorer" + }, + "accounts": { + "8453:0x9406Cc6185a346906296840746125a0E44976454": { + "chain_id": 8453, + "entrypoint_address": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", + "paymaster_address": "0x123", + "account_factory_address": "0x9406Cc6185a346906296840746125a0E44976454", + "paymaster_type": "payg" + } + }, + "chains": { + "8453": { + "id": 8453, + "node": { + "url": "https://8453.engine.citizenwallet.xyz", + "ws_url": "wss://8453.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.oak.community.json", + "version": 4 + }, + { + "community": { + "name": "Stable Coin", + "description": "SBC is a digital dollar stablecoin issued by Brale", + "url": "https://brale.xyz/", + "alias": "sbc.polygon", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sbc.svg", + "hidden": true, + "profile": { + "address": "0xcA0a75EF803a364C83c5EAE7Eb889aE7419c9dF2", + "chain_id": 137 + }, + "primary_token": { + "address": "0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5", + "chain_id": 137 + } + }, + "tokens": { + "137:0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798": { + "standard": "erc20", + "name": "Stable Coin", + "address": "0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798", + "symbol": "SBC", + "decimals": 18, + "chain_id": 137 + } + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "accounts": { + "137:0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5": { + "chain_id": 137, + "entrypoint_address": "0xe84423Ba1A3f3535B09237245e22dBda5E27eB88", + "paymaster_address": "0x123", + "account_factory_address": "0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5", + "paymaster_type": "cw" + } + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/sbc.polygon.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "Zinne.brussels", + "description": "A community currency for the city of Brussels", + "url": "https://zinne.brussels", + "alias": "zinne", + "logo": "https://citizenwallet.xyz/zinne/zinne-coin.svg", + "hidden": true, + "profile": { + "address": "0x23DB3D3Da510e60aF40902A04850E1F3a744905c", + "chain_id": 137 + }, + "primary_token": { + "address": "0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x11af2639817692D2b805BcE0e1e405E530B20006", + "chain_id": 137 + } + }, + "tokens": { + "137:0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D": { + "standard": "erc20", + "name": "Zinne.brussels Token", + "address": "0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D", + "symbol": "ZINNE", + "decimals": 6, + "chain_id": 137 + } + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "accounts": { + "137:0x11af2639817692D2b805BcE0e1e405E530B20006": { + "chain_id": 137, + "entrypoint_address": "0xF5507B3042f1C63625D856a2ABFF046243A5D74e", + "paymaster_address": "0xBb796D122Ec1aBDeD081D50B06a072f981c7E62b", + "account_factory_address": "0x11af2639817692D2b805BcE0e1e405E530B20006", + "paymaster_type": "cw" + } + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [], + "config_location": "https://config.internal.citizenwallet.xyz/v4/zinne.brussels.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "Regens Unite Time Bank", + "description": "Make time to regen", + "url": "https://regensunite.earth", + "alias": "timebank.regensunite.earth", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", + "hidden": true, + "profile": { + "address": "0x605A827DF8C405D16Ec70AAb8d9a47D21db45c09", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x186DaBD027e228C988777907465807FDab270894", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x39b77d77f7677997871b304094a05295eb71e240", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x186DaBD027e228C988777907465807FDab270894": { + "standard": "erc20", + "name": "Regen Hour", + "address": "0x186DaBD027e228C988777907465807FDab270894", + "symbol": "rHour", + "decimals": 6, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "accounts": { + "42220:0x39b77d77f7677997871b304094a05295eb71e240": { + "chain_id": 42220, + "entrypoint_address": "0x41176F0C9b8f795Cb99e2DD5Db16017978eeFa4d", + "paymaster_address": "0xe45858bf63176595c2920822581917c7C705a12f", + "account_factory_address": "0x39b77d77f7677997871b304094a05295eb71e240", + "paymaster_type": "cw" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [ + { + "name": "Market", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", + "url": "https://marketplace.citizenwallet.xyz/timebank.regensunite.earth", + "launch_mode": "webview", + "signature": true + } + ], + "config_location": "https://timebank.regensunite.earth/indexer", + "version": 4 + }, + { + "community": { + "name": "MOOS Token", + "description": "A community currency for MOOS.", + "url": "https://www.moos.garden/", + "alias": "moos", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/moos.svg", + "hidden": true, + "profile": { + "address": "0x2e4542Be47408d05F41703386eFaf4338Ee1D341", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x671f0662de72268d0f3966Fb62dFc6ee6389e244", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3": { + "standard": "erc20", + "name": "MOOS Token", + "address": "0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3", + "symbol": "MOOS", + "decimals": 6, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0x671f0662de72268d0f3966Fb62dFc6ee6389e244": { + "chain_id": 42220, + "entrypoint_address": "0x45a8e6AaDCc48D1Ce19eCbE07Ccd3a536EF712ed", + "paymaster_address": "0x55E519bfD63c7152D9F7B88Acd712A37F0BEC482", + "account_factory_address": "0x671f0662de72268d0f3966Fb62dFc6ee6389e244", + "paymaster_type": "cw" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [ + { + "name": "Market", + "icon": "https://moos.citizenwallet.xyz/wallet-config/_images/moos.svg", + "url": "https://marketplace.citizenwallet.xyz/moos", + "launch_mode": "webview", + "signature": true + } + ], + "config_location": "https://config.internal.citizenwallet.xyz/v4/moos.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "Bonne Heure", + "description": "Système d'Échange Local de Villers-la-Ville", + "url": "https://selcoupdepouce.be", + "alias": "selcoupdepouce", + "logo": "https://topup.citizenwallet.xyz/communities/selcoupdepouce/sel-coin.svg", + "hidden": true, + "profile": { + "address": "0xfB8F1e7ED42599638B3c509679E2F43937002C56", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3": { + "standard": "erc20", + "name": "Bonne Heure", + "address": "0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3", + "symbol": "BHR", + "decimals": 6, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284": { + "chain_id": 42220, + "entrypoint_address": "0xA90904F33df36899d810d040b8d5b3b77265Bb05", + "paymaster_address": "0x635032605337aB36A46D767905108e67EE687a72", + "account_factory_address": "0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284", + "paymaster_type": "cw" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "plugins": [ + { + "name": "Market", + "icon": "https://marketplace.citizenwallet.xyz/marketplace.svg", + "url": "https://marketplace.citizenwallet.xyz/selcoupdepouce", + "launch_mode": "browser", + "signature": true + } + ], + "config_location": "https://config.internal.citizenwallet.xyz/v4/selcoupdepouce.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "CI token", + "description": "Monnaie locale du Cercle Informatique de l’ULB", + "url": "https://citizenwallet.xyz/cit", + "alias": "cit.celo", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/cit.celo.svg", + "hidden": true, + "profile": { + "address": "0x4cB296BEc9FAd0B5e1E4FF1A2F307B425724AC82", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9": { + "standard": "erc20", + "name": "CI token", + "address": "0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9", + "symbol": "CIT", + "decimals": 6, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970": { + "chain_id": 42220, + "entrypoint_address": "0xB8d9412f3A91A00ca762B5c35cd0863E9b716D68", + "paymaster_address": "0x452F7ff3e55fe29f481841985dE7f4939FD645fa", + "account_factory_address": "0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970", + "paymaster_type": "cw" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/cit.celo.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "Wolugo", + "description": "A community for the Woluwe-Saint-Pierre civic engagement platform", + "url": "https://wolugo.be", + "alias": "wallet.wolugo.be", + "custom_domain": "wallet.wolugo.be", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/wolugo.svg", + "theme": { + "primary": "#81e2c1" + }, + "hidden": true, + "profile": { + "address": "0x07e7b95B35866302b3A089feF4CFA3061061a51d", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x8474153A00C959f2cB64852949954DBC68415Bb3", + "chain_id": 42220 + }, + "card_factory": { + "address": "0xA3E1446E332a098A1f3b0555c5d149b4784A095F", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451": { + "standard": "erc20", + "name": "Wolu", + "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", + "symbol": "WOLU", + "decimals": 6, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "accounts": { + "42220:0x8474153A00C959f2cB64852949954DBC68415Bb3": { + "chain_id": 42220, + "entrypoint_address": "0x0F805BC1ED718FB9C7C18439cB11E1C17C6538C4", + "paymaster_address": "0xF2EFEC3cBFaDE0bB6108620cbF7Cc608d27DCF3c", + "account_factory_address": "0x8474153A00C959f2cB64852949954DBC68415Bb3", + "paymaster_type": "cw" + } + }, + "cards": { + "42220:0xA3E1446E332a098A1f3b0555c5d149b4784A095F": { + "chain_id": 42220, + "address": "0xA3E1446E332a098A1f3b0555c5d149b4784A095F", + "type": "classic" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.wolugo.be.json", + "version": 4 + }, + { + "community": { + "name": "Woluwe Test", + "description": "Local currency for the Woluwe Test community.", + "url": "https://wollet-v2.citizenwallet.net/token", + "alias": "wtc.celo", + "logo": "https://wtc.celo.citizenwallet.xyz/wallet-config/_images/wtc.celo.svg", + "hidden": true, + "profile": { + "address": "0xB99a7B1574f051020EB4cb2fce5d48EE07592AfF", + "chain_id": 42220 + }, + "primary_token": { + "address": "0xc53Cb35591959cA62471dA9fF6AC16629A89874a", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0xE79E19594A749330036280c685E2719d58d99052", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0xc53Cb35591959cA62471dA9fF6AC16629A89874a": { + "standard": "erc20", + "name": "Woluwe Test Coin", + "address": "0xc53Cb35591959cA62471dA9fF6AC16629A89874a", + "symbol": "WTC", + "decimals": 6, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0xE79E19594A749330036280c685E2719d58d99052": { + "chain_id": 42220, + "entrypoint_address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "paymaster_address": "0x3fefC19674f3F6E43B1dFf1861E07c303B9eAAc9", + "account_factory_address": "0xE79E19594A749330036280c685E2719d58d99052", + "paymaster_type": "cw" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/wtc.celo.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "ETHGlobal London Token", + "description": "The community of people using ETHLDN on Base.", + "url": "https://en.wikipedia.org/wiki/USD_Coin", + "alias": "testnet-ethldn", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/testnet-ethldn.svg", + "hidden": true, + "profile": { + "address": "0x0785D720279f42326846D5396b5F44b97d0BfECd", + "chain_id": 84532 + }, + "primary_token": { + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "chain_id": 84532 + }, + "primary_account_factory": { + "address": "0xc1654087C580f868F08E34cd1c01eDB1d3673b82", + "chain_id": 84532 + } + }, + "tokens": { + "84532:0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e": { + "standard": "erc20", + "name": "ETHGlobal London Token", + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "symbol": "ETHLDN", + "decimals": 6, + "chain_id": 84532 + } + }, + "scan": { + "url": "https://sepolia.basescan.org", + "name": "Base Sepolia Explorer" + }, + "accounts": { + "84532:0xc1654087C580f868F08E34cd1c01eDB1d3673b82": { + "chain_id": 84532, + "entrypoint_address": "0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE", + "paymaster_address": "0x389182aCCeE26D953d5188BF4b92c49339DcC9FC", + "account_factory_address": "0xc1654087C580f868F08E34cd1c01eDB1d3673b82", + "paymaster_type": "cw" + } + }, + "chains": { + "84532": { + "id": 84532, + "node": { + "url": "https://84532.engine.citizenwallet.xyz", + "ws_url": "wss://84532.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/testnet-ethldn.json", + "version": 4 + }, + { + "community": { + "name": "Celo Community Point", + "description": "This is a community for the Celo Point", + "url": "https://citizenwallet.xyz", + "alias": "celo-c.citizenwallet.xyz", + "logo": "https://celo-c.citizenwallet.xyz/uploads/logo.svg", + "hidden": true, + "profile": { + "address": "0x14004E13907282cFaD05f742022E56926eE92dAd", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x3C960E72BBbD837293e75080E1d0Fee6a4640357", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x3C960E72BBbD837293e75080E1d0Fee6a4640357": { + "standard": "erc20", + "name": "Celo Community Point", + "address": "0x3C960E72BBbD837293e75080E1d0Fee6a4640357", + "symbol": "CeloC", + "decimals": 6, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "accounts": { + "42220:0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA": { + "chain_id": 42220, + "entrypoint_address": "0x66fE9c22CcA49B257dd4F00508AC90198d99Bf27", + "paymaster_address": "0x7f4011845Ea914b6cefc60629e1e00600c972c75", + "account_factory_address": "0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA", + "paymaster_type": "cw" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/celo-c.citizenwallet.xyz.json", + "version": 4 + }, + { + "community": { + "name": "KFMEDIA℠", + "description": "Certified Education Organization. Solving systemic educational disparity using Web3 solutions, removing barriers of entry for underdeveloped economies.", + "url": "https://kingfishersmedia.io", + "alias": "wallet.kingfishersmedia.io", + "custom_domain": "wallet.kingfishersmedia.io", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/kfmpfl.png", + "theme": { + "primary": "#88292c" + }, + "profile": { + "address": "0x5f6FEb03ad8EfeCdD2a837FAA1a29DEA2bAcfd55", + "chain_id": 42220 + }, + "primary_token": { + "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "chain_id": 42220 + }, + "primary_card_manager": { + "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x56744910f7dEcD48c1a7FA61B4C317b15E99F156": { + "standard": "erc1155", + "name": "KFMEDIA℠ Pathways for LATAM™", + "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", + "symbol": "KFMPFL", + "decimals": 0, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 42220, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0x02BDA8370d9497A5C808B2db237cfaA8f0733F36", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.kingfishersmedia.io.json", + "version": 4 + } +] diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index e3d83def..49b47308 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -2180,4 +2180,4 @@ "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.kingfishersmedia.io.json", "version": 4 } -] \ No newline at end of file +] diff --git a/assets/config/v5/debug.json b/assets/config/v5/debug.json index 99ee89b1..37b04ad9 100644 --- a/assets/config/v5/debug.json +++ b/assets/config/v5/debug.json @@ -1,66 +1,66 @@ { - "community": { - "name": "KFMEDIA℠", - "description": "Certified Education Organization. Solving systemic educational disparity using Web3 solutions, removing barriers of entry for underdeveloped economies.", - "url": "https://kingfishersmedia.io", - "alias": "wallet.kingfishersmedia.io", - "custom_domain": "wallet.kingfishersmedia.io", - "logo": "https://config.internal.citizenwallet.xyz/_images/kfmpfl.png", - "theme": { - "primary": "#88292c" - }, - "profile": { - "address": "0x5f6FEb03ad8EfeCdD2a837FAA1a29DEA2bAcfd55", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "chain_id": 42220 - }, - "primary_card_manager": { - "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", - "chain_id": 42220 - } + "community": { + "name": "KFMEDIA℠", + "description": "Certified Education Organization. Solving systemic educational disparity using Web3 solutions, removing barriers of entry for underdeveloped economies.", + "url": "https://kingfishersmedia.io", + "alias": "wallet.kingfishersmedia.io", + "custom_domain": "wallet.kingfishersmedia.io", + "logo": "https://config.internal.citizenwallet.xyz/_images/kfmpfl.png", + "theme": { + "primary": "#88292c" }, - "tokens": { - "42220:0x56744910f7dEcD48c1a7FA61B4C317b15E99F156": { - "standard": "erc1155", - "name": "KFMEDIA℠ Pathways for LATAM™", - "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", - "symbol": "KFMPFL", - "decimals": 0, - "chain_id": 42220 - } + "profile": { + "address": "0x5f6FEb03ad8EfeCdD2a837FAA1a29DEA2bAcfd55", + "chain_id": 42220 }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" + "primary_token": { + "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", + "chain_id": 42220 }, - "accounts": { - "42220:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { - "chain_id": 42220, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0x250711045d58b6310f0635C7D110BFe663cE1da5", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" - } + "primary_account_factory": { + "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "chain_id": 42220 }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.kingfishersmedia.io.json", - "version": 4 -} \ No newline at end of file + "primary_card_manager": { + "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "chain_id": 42220 + } + }, + "tokens": { + "42220:0x56744910f7dEcD48c1a7FA61B4C317b15E99F156": { + "standard": "erc1155", + "name": "KFMEDIA℠ Pathways for LATAM™", + "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", + "symbol": "KFMPFL", + "decimals": 0, + "chain_id": 42220 + } + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "accounts": { + "42220:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "chain_id": 42220, + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "paymaster_address": "0x250711045d58b6310f0635C7D110BFe663cE1da5", + "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "paymaster_type": "cw-safe" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.kingfishersmedia.io.json", + "version": 4 +} From fb14bbb9d4697b2599a9774a3d4461cf72eba42c Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 14:58:40 +0530 Subject: [PATCH 023/148] v5 ctzn config from supabase --- assets/config/v5/communities.json | 114 +++++++++++++++---------- assets/config/v5/communities.test.json | 114 +++++++++++++++---------- 2 files changed, 138 insertions(+), 90 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index 49b47308..d83f6ff2 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -1,48 +1,18 @@ [ { - "community": { - "name": "Citizen Wallet (CTZN)", - "description": "The token powering the Citizen Wallet economy.", - "url": "https://citizenwallet.xyz", - "alias": "ctzn", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/ctzn.svg", - "theme": { - "primary": "#9563D3" - }, - "profile": { - "address": "0x8dA817724Eb6A2aA47c0F8d8b8A98b9B3C2Ddb68", - "chain_id": 137 - }, - "primary_token": { - "address": "0x0D9B0790E97e3426C161580dF4Ee853E4A7C4607", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "chain_id": 137 - } - }, - "tokens": { - "137:0x0D9B0790E97e3426C161580dF4Ee853E4A7C4607": { - "standard": "erc20", - "name": "Citizen Wallet", - "address": "0x0D9B0790E97e3426C161580dF4Ee853E4A7C4607", - "symbol": "CTZN", - "decimals": 18, - "chain_id": 137 - } + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" }, "scan": { "url": "https://polygonscan.com", "name": "Polygon Explorer" }, - "accounts": { - "137:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "cards": { + "137:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", "chain_id": 137, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0x3A3E25871c5C6C84D5f397829FF316a37F7FD596", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" + "instance_id": "cw-discord-1" } }, "chains": { @@ -54,26 +24,80 @@ } } }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "tokens": { + "137:0x0D9B0790E97e3426C161580dF4Ee853E4A7C4607": { + "name": "Citizen Wallet", + "symbol": "CTZN", + "address": "0x0D9B0790E97e3426C161580dF4Ee853E4A7C4607", + "chain_id": 137, + "decimals": 18, + "standard": "erc20" + } }, "plugins": [ { - "name": "About", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/ctzn.svg", "url": "https://citizenwallet.xyz/pay-with-ctzn", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/ctzn.svg", + "name": "About", "launch_mode": "browser" }, { - "name": "Top Up", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/ctzn.svg", "url": "https://my.citizenwallet.xyz/onramp", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/ctzn.svg", + "name": "Top Up", "action": "topup", "signature": true } ], - "config_location": "https://config.internal.citizenwallet.xyz/v4/ctzn.json", - "version": 4 + "version": 5, + "accounts": { + "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 137, + "paymaster_type": "cw-safe", + "paymaster_address": "0x3A3E25871c5C6C84D5f397829FF316a37F7FD596", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "137:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 137, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://citizenwallet.xyz", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/ctzn.svg", + "name": "Citizen Wallet (CTZN)", + "alias": "ctzn", + "theme": { + "primary": "#9563D3" + }, + "profile": { + "address": "0x8dA817724Eb6A2aA47c0F8d8b8A98b9B3C2Ddb68", + "chain_id": 137 + }, + "description": "The token powering the Citizen Wallet economy.", + "primary_token": { + "address": "0x0D9B0790E97e3426C161580dF4Ee853E4A7C4607", + "chain_id": 137 + }, + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 137 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 137 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/ctzn" }, { "community": { diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index 49b47308..d83f6ff2 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -1,48 +1,18 @@ [ { - "community": { - "name": "Citizen Wallet (CTZN)", - "description": "The token powering the Citizen Wallet economy.", - "url": "https://citizenwallet.xyz", - "alias": "ctzn", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/ctzn.svg", - "theme": { - "primary": "#9563D3" - }, - "profile": { - "address": "0x8dA817724Eb6A2aA47c0F8d8b8A98b9B3C2Ddb68", - "chain_id": 137 - }, - "primary_token": { - "address": "0x0D9B0790E97e3426C161580dF4Ee853E4A7C4607", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "chain_id": 137 - } - }, - "tokens": { - "137:0x0D9B0790E97e3426C161580dF4Ee853E4A7C4607": { - "standard": "erc20", - "name": "Citizen Wallet", - "address": "0x0D9B0790E97e3426C161580dF4Ee853E4A7C4607", - "symbol": "CTZN", - "decimals": 18, - "chain_id": 137 - } + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" }, "scan": { "url": "https://polygonscan.com", "name": "Polygon Explorer" }, - "accounts": { - "137:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { + "cards": { + "137:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", "chain_id": 137, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0x3A3E25871c5C6C84D5f397829FF316a37F7FD596", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" + "instance_id": "cw-discord-1" } }, "chains": { @@ -54,26 +24,80 @@ } } }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "tokens": { + "137:0x0D9B0790E97e3426C161580dF4Ee853E4A7C4607": { + "name": "Citizen Wallet", + "symbol": "CTZN", + "address": "0x0D9B0790E97e3426C161580dF4Ee853E4A7C4607", + "chain_id": 137, + "decimals": 18, + "standard": "erc20" + } }, "plugins": [ { - "name": "About", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/ctzn.svg", "url": "https://citizenwallet.xyz/pay-with-ctzn", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/ctzn.svg", + "name": "About", "launch_mode": "browser" }, { - "name": "Top Up", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/ctzn.svg", "url": "https://my.citizenwallet.xyz/onramp", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/ctzn.svg", + "name": "Top Up", "action": "topup", "signature": true } ], - "config_location": "https://config.internal.citizenwallet.xyz/v4/ctzn.json", - "version": 4 + "version": 5, + "accounts": { + "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 137, + "paymaster_type": "cw-safe", + "paymaster_address": "0x3A3E25871c5C6C84D5f397829FF316a37F7FD596", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "137:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 137, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://citizenwallet.xyz", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/ctzn.svg", + "name": "Citizen Wallet (CTZN)", + "alias": "ctzn", + "theme": { + "primary": "#9563D3" + }, + "profile": { + "address": "0x8dA817724Eb6A2aA47c0F8d8b8A98b9B3C2Ddb68", + "chain_id": 137 + }, + "description": "The token powering the Citizen Wallet economy.", + "primary_token": { + "address": "0x0D9B0790E97e3426C161580dF4Ee853E4A7C4607", + "chain_id": 137 + }, + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 137 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 137 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/ctzn" }, { "community": { From 70517192101f2b284c561007e8e1a68dcc8234af Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 15:03:46 +0530 Subject: [PATCH 024/148] v5 wallet.pay.brussels config from supabase --- assets/config/v5/communities.json | 143 ++++++++++++++----------- assets/config/v5/communities.test.json | 143 ++++++++++++++----------- 2 files changed, 160 insertions(+), 126 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index d83f6ff2..2410f8e5 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -100,69 +100,24 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/ctzn" }, { - "community": { - "name": "Brussels Pay", - "description": "A community for the city of Brussels", - "url": "https://pay.brussels", - "alias": "wallet.pay.brussels", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/wallet.pay.brussels.png", - "custom_domain": "wallet.pay.brussels", - "hidden": false, - "theme": { - "primary": "#4a90e2" - }, - "profile": { - "address": "0x56Cc38bDa01bE6eC6D854513C995f6621Ee71229", - "chain_id": 100 - }, - "primary_token": { - "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", - "chain_id": 100 - }, - "primary_account_factory": { - "address": "0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE", - "chain_id": 100 - }, - "primary_card_manager": { - "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", - "chain_id": 100 - } - }, - "tokens": { - "100:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { - "standard": "erc20", - "name": "pay.brussels", - "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", - "symbol": "EURb", - "decimals": 6, - "chain_id": 100 - } + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" }, "scan": { "url": "https://gnosisscan.io", "name": "Gnosis Explorer" }, - "accounts": { - "100:0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE": { - "chain_id": 100, - "entrypoint_address": "0xAAEb9DC18aDadae9b3aE7ec2b47842565A81113f", - "paymaster_address": "0xcA1B9EC1117340818C1c1fdd1B48Ea79E57C140F", - "account_factory_address": "0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE", - "paymaster_type": "cw" - }, - "100:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { - "chain_id": 100, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0x8fc2e97671C691e7Ff7B42e5c7cCbDD38fC8B729", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" - } - }, "cards": { "100:0x1EaF6B6A6967608aF6c77224f087b042095891EB": { - "chain_id": 100, + "type": "classic", "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", - "type": "classic" + "chain_id": 100 + }, + "100:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 100, + "instance_id": "brussels-pay" } }, "chains": { @@ -174,21 +129,83 @@ } } }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "tokens": { + "100:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { + "name": "pay.brussels", + "symbol": "EURb", + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 100, + "decimals": 6, + "standard": "erc20" + } }, "plugins": [ { - "name": "Top Up", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/wallet.pay.brussels.png", "url": "https://checkout.pay.brussels/topup", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/wallet.pay.brussels.png", + "name": "Top Up", "action": "topup", - "signature": true, - "featured": true + "signature": true } ], - "config_location": "https://wallet.pay.brussels/config/community.json", - "version": 4 + "version": 5, + "accounts": { + "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 100, + "paymaster_type": "cw-safe", + "paymaster_address": "0xE69C843898E21C0E95eA7DD310cD850AAc0aB897", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + }, + "100:0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE": { + "chain_id": 100, + "paymaster_type": "cw", + "paymaster_address": "0xcA1B9EC1117340818C1c1fdd1B48Ea79E57C140F", + "entrypoint_address": "0xAAEb9DC18aDadae9b3aE7ec2b47842565A81113f", + "account_factory_address": "0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE" + } + }, + "sessions": { + "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 100, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://pay.brussels", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/wallet.pay.brussels.png", + "name": "Brussels Pay", + "alias": "wallet.pay.brussels", + "theme": { + "primary": "#4a90e2" + }, + "hidden": false, + "profile": { + "address": "0x56Cc38bDa01bE6eC6D854513C995f6621Ee71229", + "chain_id": 100 + }, + "description": "A community for the city of Brussels", + "custom_domain": "wallet.pay.brussels", + "primary_token": { + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 100 + }, + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 100 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 100 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 100 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.pay.brussels" }, { "community": { diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index d83f6ff2..2410f8e5 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -100,69 +100,24 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/ctzn" }, { - "community": { - "name": "Brussels Pay", - "description": "A community for the city of Brussels", - "url": "https://pay.brussels", - "alias": "wallet.pay.brussels", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/wallet.pay.brussels.png", - "custom_domain": "wallet.pay.brussels", - "hidden": false, - "theme": { - "primary": "#4a90e2" - }, - "profile": { - "address": "0x56Cc38bDa01bE6eC6D854513C995f6621Ee71229", - "chain_id": 100 - }, - "primary_token": { - "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", - "chain_id": 100 - }, - "primary_account_factory": { - "address": "0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE", - "chain_id": 100 - }, - "primary_card_manager": { - "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", - "chain_id": 100 - } - }, - "tokens": { - "100:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { - "standard": "erc20", - "name": "pay.brussels", - "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", - "symbol": "EURb", - "decimals": 6, - "chain_id": 100 - } + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" }, "scan": { "url": "https://gnosisscan.io", "name": "Gnosis Explorer" }, - "accounts": { - "100:0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE": { - "chain_id": 100, - "entrypoint_address": "0xAAEb9DC18aDadae9b3aE7ec2b47842565A81113f", - "paymaster_address": "0xcA1B9EC1117340818C1c1fdd1B48Ea79E57C140F", - "account_factory_address": "0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE", - "paymaster_type": "cw" - }, - "100:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { - "chain_id": 100, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0x8fc2e97671C691e7Ff7B42e5c7cCbDD38fC8B729", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" - } - }, "cards": { "100:0x1EaF6B6A6967608aF6c77224f087b042095891EB": { - "chain_id": 100, + "type": "classic", "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", - "type": "classic" + "chain_id": 100 + }, + "100:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 100, + "instance_id": "brussels-pay" } }, "chains": { @@ -174,21 +129,83 @@ } } }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "tokens": { + "100:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { + "name": "pay.brussels", + "symbol": "EURb", + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 100, + "decimals": 6, + "standard": "erc20" + } }, "plugins": [ { - "name": "Top Up", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/wallet.pay.brussels.png", "url": "https://checkout.pay.brussels/topup", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/wallet.pay.brussels.png", + "name": "Top Up", "action": "topup", - "signature": true, - "featured": true + "signature": true } ], - "config_location": "https://wallet.pay.brussels/config/community.json", - "version": 4 + "version": 5, + "accounts": { + "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 100, + "paymaster_type": "cw-safe", + "paymaster_address": "0xE69C843898E21C0E95eA7DD310cD850AAc0aB897", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + }, + "100:0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE": { + "chain_id": 100, + "paymaster_type": "cw", + "paymaster_address": "0xcA1B9EC1117340818C1c1fdd1B48Ea79E57C140F", + "entrypoint_address": "0xAAEb9DC18aDadae9b3aE7ec2b47842565A81113f", + "account_factory_address": "0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE" + } + }, + "sessions": { + "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 100, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://pay.brussels", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/wallet.pay.brussels.png", + "name": "Brussels Pay", + "alias": "wallet.pay.brussels", + "theme": { + "primary": "#4a90e2" + }, + "hidden": false, + "profile": { + "address": "0x56Cc38bDa01bE6eC6D854513C995f6621Ee71229", + "chain_id": 100 + }, + "description": "A community for the city of Brussels", + "custom_domain": "wallet.pay.brussels", + "primary_token": { + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 100 + }, + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 100 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 100 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 100 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.pay.brussels" }, { "community": { From 7e7bb5a3b0a7fae2a40189bcf863218ae4fb6ea3 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 15:05:30 +0530 Subject: [PATCH 025/148] v5 gratitude config from supabase --- assets/config/v5/communities.json | 171 ++++++++++++++----------- assets/config/v5/communities.test.json | 171 ++++++++++++++----------- 2 files changed, 186 insertions(+), 156 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index 2410f8e5..6a5bc343 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -207,86 +207,101 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.pay.brussels" }, - { - "community": { + +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "cards": { + "42220:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 42220, + "instance_id": "cw-discord-1" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { "name": "Gratitude Token", - "description": "Express your gratitude towards someone by sending them a token of gratitude.", - "url": "https://citizenwallet.xyz/gratitude", - "alias": "gratitude", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/gt.svg", - "theme": { - "primary": "#4EC19D" - }, - "profile": { - "address": "0xEEc0F3257369c6bCD2Fd8755CbEf8A95b12Bc4c9", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD", - "chain_id": 42220 - }, - "primary_card_manager": { - "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { - "standard": "erc20", - "name": "Gratitude Token", - "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", - "symbol": "GT", - "decimals": 0, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "accounts": { - "42220:0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD": { - "chain_id": 42220, - "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", - "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", - "account_factory_address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD", - "paymaster_type": "cw" - }, - "42220:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { - "chain_id": 42220, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0xF05ba2641b31AF70c2678e3324eD8b9C53093FbE", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" - } - }, - "cards": { - "42220:0x1EaF6B6A6967608aF6c77224f087b042095891EB": { - "chain_id": 42220, - "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", - "type": "classic" - } - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "plugins": [], - "config_location": "https://gratitude.citizenwallet.xyz/config/community.json", - "version": 4 + "symbol": "GT", + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 42220, + "decimals": 0, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0xF05ba2641b31AF70c2678e3324eD8b9C53093FbE", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + }, + "42220:0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", + "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", + "account_factory_address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD" + } + }, + "sessions": { + "42220:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 42220, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://citizenwallet.xyz/gratitude", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/gt.svg", + "name": "Gratitude Token", + "alias": "gratitude", + "theme": { + "primary": "#4EC19D" + }, + "profile": { + "address": "0xEEc0F3257369c6bCD2Fd8755CbEf8A95b12Bc4c9", + "chain_id": 42220 + }, + "description": "Express your gratitude towards someone by sending them a token of gratitude.", + "primary_token": { + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 42220 + }, + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 42220 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/gratitude" +}, + { "community": { "name": "SFLUV Community", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index 2410f8e5..6a5bc343 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -207,86 +207,101 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.pay.brussels" }, - { - "community": { + +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "cards": { + "42220:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 42220, + "instance_id": "cw-discord-1" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { "name": "Gratitude Token", - "description": "Express your gratitude towards someone by sending them a token of gratitude.", - "url": "https://citizenwallet.xyz/gratitude", - "alias": "gratitude", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/gt.svg", - "theme": { - "primary": "#4EC19D" - }, - "profile": { - "address": "0xEEc0F3257369c6bCD2Fd8755CbEf8A95b12Bc4c9", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD", - "chain_id": 42220 - }, - "primary_card_manager": { - "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { - "standard": "erc20", - "name": "Gratitude Token", - "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", - "symbol": "GT", - "decimals": 0, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "accounts": { - "42220:0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD": { - "chain_id": 42220, - "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", - "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", - "account_factory_address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD", - "paymaster_type": "cw" - }, - "42220:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { - "chain_id": 42220, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0xF05ba2641b31AF70c2678e3324eD8b9C53093FbE", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" - } - }, - "cards": { - "42220:0x1EaF6B6A6967608aF6c77224f087b042095891EB": { - "chain_id": 42220, - "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", - "type": "classic" - } - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "plugins": [], - "config_location": "https://gratitude.citizenwallet.xyz/config/community.json", - "version": 4 + "symbol": "GT", + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 42220, + "decimals": 0, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0xF05ba2641b31AF70c2678e3324eD8b9C53093FbE", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + }, + "42220:0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", + "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", + "account_factory_address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD" + } + }, + "sessions": { + "42220:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 42220, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://citizenwallet.xyz/gratitude", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/gt.svg", + "name": "Gratitude Token", + "alias": "gratitude", + "theme": { + "primary": "#4EC19D" + }, + "profile": { + "address": "0xEEc0F3257369c6bCD2Fd8755CbEf8A95b12Bc4c9", + "chain_id": 42220 + }, + "description": "Express your gratitude towards someone by sending them a token of gratitude.", + "primary_token": { + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 42220 + }, + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 42220 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/gratitude" +}, + { "community": { "name": "SFLUV Community", From d909b115273a308244a8ca4255f5387273551d29 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 15:07:20 +0530 Subject: [PATCH 026/148] v5 wallet.berachain.sfluv.org config from supabase --- assets/config/v5/communities.json | 164 ++++++++++++++----------- assets/config/v5/communities.test.json | 164 ++++++++++++++----------- 2 files changed, 180 insertions(+), 148 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index 6a5bc343..cf46368e 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -207,7 +207,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.pay.brussels" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -302,86 +301,103 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/gratitude" }, - { - "community": { - "name": "SFLUV Community", - "description": "A community currency for the city of San Francisco.", - "url": "https://sfluv.org", - "alias": "wallet.berachain.sfluv.org", - "custom_domain": "wallet.sfluv.org", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", - "theme": { - "primary": "#eb6c6c" - }, - "profile": { - "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", - "chain_id": 80094 - }, - "primary_token": { - "address": "0x881cad4f885c6701d8481c0ed347f6d35444ea7e", - "chain_id": 80094 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 80094 - } - }, - "tokens": { - "80094:0x881cad4f885c6701d8481c0ed347f6d35444ea7e": { - "standard": "erc20", - "name": "SFLUV V1.1", - "address": "0x881cad4f885c6701d8481c0ed347f6d35444ea7e", - "symbol": "SFLUV", - "decimals": 18, - "chain_id": 80094 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "cards": { + "80094:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 80094, + "instance_id": "cw-discord-1" + } + }, + "chains": { + "80094": { + "id": 80094, + "node": { + "url": "https://80094.engine.citizenwallet.xyz", + "ws_url": "wss://80094.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "80094:0x881cad4f885c6701d8481c0ed347f6d35444ea7e": { + "name": "SFLUV V1.1", + "symbol": "SFLUV", + "address": "0x881cad4f885c6701d8481c0ed347f6d35444ea7e", + "chain_id": 80094, + "decimals": 18, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://app.sfluv.org", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "name": "About", + "hidden": true, + "signature": true, + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "80094:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 80094, + "paymaster_type": "cw-safe", + "paymaster_address": "0x9A5be02B65f9Aa00060cB8c951dAFaBAB9B860cd", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "80094:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 80094, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://sfluv.org", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "name": "SFLUV Community", + "alias": "wallet.berachain.sfluv.org", + "theme": { + "primary": "#eb6c6c" }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" + "profile": { + "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", + "chain_id": 80094 }, - "accounts": { - "80094:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 80094, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0x9A5be02B65f9Aa00060cB8c951dAFaBAB9B860cd", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "paymaster_type": "cw-safe" - } + "description": "A community currency for the city of San Francisco.", + "custom_domain": "wallet.sfluv.org", + "primary_token": { + "address": "0x881cad4f885c6701d8481c0ed347f6d35444ea7e", + "chain_id": 80094 }, - "chains": { - "80094": { - "id": 80094, - "node": { - "url": "https://80094.engine.citizenwallet.xyz", - "ws_url": "wss://80094.engine.citizenwallet.xyz" - } - } + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 80094 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 80094 }, - "plugins": [ - { - "name": "Map", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", - "url": "https://app.sfluv.org/map", - "launch_mode": "webview", - "featured": true, - "signature": true - }, - { - "name": "About", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", - "url": "https://app.sfluv.org", - "launch_mode": "webview", - "signature": true, - "hidden": true - } - ], - "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.sfluv.org.json", - "version": 4 + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 80094 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.berachain.sfluv.org" +}, + { "community": { "name": "SFLUV Community (Polygon)", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index 6a5bc343..cf46368e 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -207,7 +207,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.pay.brussels" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -302,86 +301,103 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/gratitude" }, - { - "community": { - "name": "SFLUV Community", - "description": "A community currency for the city of San Francisco.", - "url": "https://sfluv.org", - "alias": "wallet.berachain.sfluv.org", - "custom_domain": "wallet.sfluv.org", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", - "theme": { - "primary": "#eb6c6c" - }, - "profile": { - "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", - "chain_id": 80094 - }, - "primary_token": { - "address": "0x881cad4f885c6701d8481c0ed347f6d35444ea7e", - "chain_id": 80094 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 80094 - } - }, - "tokens": { - "80094:0x881cad4f885c6701d8481c0ed347f6d35444ea7e": { - "standard": "erc20", - "name": "SFLUV V1.1", - "address": "0x881cad4f885c6701d8481c0ed347f6d35444ea7e", - "symbol": "SFLUV", - "decimals": 18, - "chain_id": 80094 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "cards": { + "80094:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 80094, + "instance_id": "cw-discord-1" + } + }, + "chains": { + "80094": { + "id": 80094, + "node": { + "url": "https://80094.engine.citizenwallet.xyz", + "ws_url": "wss://80094.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "80094:0x881cad4f885c6701d8481c0ed347f6d35444ea7e": { + "name": "SFLUV V1.1", + "symbol": "SFLUV", + "address": "0x881cad4f885c6701d8481c0ed347f6d35444ea7e", + "chain_id": 80094, + "decimals": 18, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://app.sfluv.org", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "name": "About", + "hidden": true, + "signature": true, + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "80094:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 80094, + "paymaster_type": "cw-safe", + "paymaster_address": "0x9A5be02B65f9Aa00060cB8c951dAFaBAB9B860cd", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "80094:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 80094, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://sfluv.org", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "name": "SFLUV Community", + "alias": "wallet.berachain.sfluv.org", + "theme": { + "primary": "#eb6c6c" }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" + "profile": { + "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", + "chain_id": 80094 }, - "accounts": { - "80094:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 80094, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0x9A5be02B65f9Aa00060cB8c951dAFaBAB9B860cd", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "paymaster_type": "cw-safe" - } + "description": "A community currency for the city of San Francisco.", + "custom_domain": "wallet.sfluv.org", + "primary_token": { + "address": "0x881cad4f885c6701d8481c0ed347f6d35444ea7e", + "chain_id": 80094 }, - "chains": { - "80094": { - "id": 80094, - "node": { - "url": "https://80094.engine.citizenwallet.xyz", - "ws_url": "wss://80094.engine.citizenwallet.xyz" - } - } + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 80094 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 80094 }, - "plugins": [ - { - "name": "Map", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", - "url": "https://app.sfluv.org/map", - "launch_mode": "webview", - "featured": true, - "signature": true - }, - { - "name": "About", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", - "url": "https://app.sfluv.org", - "launch_mode": "webview", - "signature": true, - "hidden": true - } - ], - "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.sfluv.org.json", - "version": 4 + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 80094 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.berachain.sfluv.org" +}, + { "community": { "name": "SFLUV Community (Polygon)", From 57c4423a1991c4d0c86ebc7e549307667078b94d Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 15:10:03 +0530 Subject: [PATCH 027/148] v5 wallet.sfluv.org config from supabase --- assets/config/v5/communities.json | 149 +++++++++++++------------ assets/config/v5/communities.test.json | 149 +++++++++++++------------ 2 files changed, 160 insertions(+), 138 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index cf46368e..597d3e30 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -299,8 +299,7 @@ } }, "config_location": "https://my.citizenwallet.xyz/api/communities/gratitude" -}, - +}, { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -398,79 +397,91 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.berachain.sfluv.org" }, - { - "community": { - "name": "SFLUV Community (Polygon)", - "description": "A community currency for the city of San Francisco.", - "url": "https://sfluv.org", - "alias": "wallet.sfluv.org", - "custom_domain": "wallet.polygon.sfluv.org", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", - "theme": { - "primary": "#eb6c6c" - }, - "hidden": true, - "profile": { - "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", - "chain_id": 137 - }, - "primary_token": { - "address": "0x58a2993A618Afee681DE23dECBCF535A58A080BA", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x5e987a6c4bb4239d498E78c34e986acf29c81E8e", - "chain_id": 137 - } - }, - "tokens": { - "137:0x58a2993A618Afee681DE23dECBCF535A58A080BA": { - "standard": "erc20", - "name": "SFLUV V1.1", - "address": "0x58a2993A618Afee681DE23dECBCF535A58A080BA", - "symbol": "SFLUV", - "decimals": 6, - "chain_id": 137 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "137:0x58a2993A618Afee681DE23dECBCF535A58A080BA": { + "name": "SFLUV V1.1", + "symbol": "SFLUV", + "address": "0x58a2993A618Afee681DE23dECBCF535A58A080BA", + "chain_id": 137, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://app.sfluv.org", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "name": "About", + "hidden": true, + "signature": true, + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "137:0x5e987a6c4bb4239d498E78c34e986acf29c81E8e": { + "chain_id": 137, + "paymaster_type": "cw", + "paymaster_address": "0x7FC98D0a2bd7f766bAca37388eB0F6Db37666B33", + "entrypoint_address": "0x2d01C5E40Aa6a8478eD0FFbF2784EBb9bf67C46A", + "account_factory_address": "0x5e987a6c4bb4239d498E78c34e986acf29c81E8e" + } + }, + "sessions": { + "137:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 137, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://sfluv.org", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "name": "SFLUV Community (Polygon)", + "alias": "wallet.sfluv.org", + "theme": { + "primary": "#eb6c6c" }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "accounts": { - "137:0x5e987a6c4bb4239d498E78c34e986acf29c81E8e": { - "chain_id": 137, - "entrypoint_address": "0x2d01C5E40Aa6a8478eD0FFbF2784EBb9bf67C46A", - "paymaster_address": "0x7FC98D0a2bd7f766bAca37388eB0F6Db37666B33", - "account_factory_address": "0x5e987a6c4bb4239d498E78c34e986acf29c81E8e", - "paymaster_type": "cw" - } + "profile": { + "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", + "chain_id": 137 }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } + "description": "A community currency for the city of San Francisco.", + "custom_domain": "wallet.polygon.sfluv.org", + "primary_token": { + "address": "0x58a2993A618Afee681DE23dECBCF535A58A080BA", + "chain_id": 137 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "primary_account_factory": { + "address": "0x5e987a6c4bb4239d498E78c34e986acf29c81E8e", + "chain_id": 137 }, - "plugins": [ - { - "name": "About", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", - "url": "https://app.sfluv.org", - "launch_mode": "webview", - "signature": true, - "hidden": true - } - ], - "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.sfluv.org.json", - "version": 4 + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 137 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.sfluv.org" +}, + { "community": { "name": "Txirrin", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index cf46368e..f0f458cf 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -299,8 +299,7 @@ } }, "config_location": "https://my.citizenwallet.xyz/api/communities/gratitude" -}, - +}, { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -398,79 +397,91 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.berachain.sfluv.org" }, - { - "community": { - "name": "SFLUV Community (Polygon)", - "description": "A community currency for the city of San Francisco.", - "url": "https://sfluv.org", - "alias": "wallet.sfluv.org", - "custom_domain": "wallet.polygon.sfluv.org", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", - "theme": { - "primary": "#eb6c6c" - }, - "hidden": true, - "profile": { - "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", - "chain_id": 137 - }, - "primary_token": { - "address": "0x58a2993A618Afee681DE23dECBCF535A58A080BA", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x5e987a6c4bb4239d498E78c34e986acf29c81E8e", - "chain_id": 137 - } - }, - "tokens": { - "137:0x58a2993A618Afee681DE23dECBCF535A58A080BA": { - "standard": "erc20", - "name": "SFLUV V1.1", - "address": "0x58a2993A618Afee681DE23dECBCF535A58A080BA", - "symbol": "SFLUV", - "decimals": 6, - "chain_id": 137 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "137:0x58a2993A618Afee681DE23dECBCF535A58A080BA": { + "name": "SFLUV V1.1", + "symbol": "SFLUV", + "address": "0x58a2993A618Afee681DE23dECBCF535A58A080BA", + "chain_id": 137, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://app.sfluv.org", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "name": "About", + "hidden": true, + "signature": true, + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "137:0x5e987a6c4bb4239d498E78c34e986acf29c81E8e": { + "chain_id": 137, + "paymaster_type": "cw", + "paymaster_address": "0x7FC98D0a2bd7f766bAca37388eB0F6Db37666B33", + "entrypoint_address": "0x2d01C5E40Aa6a8478eD0FFbF2784EBb9bf67C46A", + "account_factory_address": "0x5e987a6c4bb4239d498E78c34e986acf29c81E8e" + } + }, + "sessions": { + "137:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 137, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://sfluv.org", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "name": "SFLUV Community (Polygon)", + "alias": "wallet.sfluv.org", + "theme": { + "primary": "#eb6c6c" }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "accounts": { - "137:0x5e987a6c4bb4239d498E78c34e986acf29c81E8e": { - "chain_id": 137, - "entrypoint_address": "0x2d01C5E40Aa6a8478eD0FFbF2784EBb9bf67C46A", - "paymaster_address": "0x7FC98D0a2bd7f766bAca37388eB0F6Db37666B33", - "account_factory_address": "0x5e987a6c4bb4239d498E78c34e986acf29c81E8e", - "paymaster_type": "cw" - } + "profile": { + "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", + "chain_id": 137 }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } + "description": "A community currency for the city of San Francisco.", + "custom_domain": "wallet.polygon.sfluv.org", + "primary_token": { + "address": "0x58a2993A618Afee681DE23dECBCF535A58A080BA", + "chain_id": 137 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "primary_account_factory": { + "address": "0x5e987a6c4bb4239d498E78c34e986acf29c81E8e", + "chain_id": 137 }, - "plugins": [ - { - "name": "About", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", - "url": "https://app.sfluv.org", - "launch_mode": "webview", - "signature": true, - "hidden": true - } - ], - "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.sfluv.org.json", - "version": 4 + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 137 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.sfluv.org" +}, + { "community": { "name": "Txirrin", From 5d45a6ca7934875e7b0155fe1181869a6294def4 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 15:11:39 +0530 Subject: [PATCH 028/148] v5 txirrin config from supabase --- assets/config/v5/communities.json | 128 ++++++++++++++----------- assets/config/v5/communities.test.json | 128 ++++++++++++++----------- 2 files changed, 140 insertions(+), 116 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index 597d3e30..a35c534f 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -396,7 +396,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.berachain.sfluv.org" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -482,69 +481,82 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.sfluv.org" }, - { - "community": { - "name": "Txirrin", - "description": "A community for Txirrin", - "url": "https://citizenwallet.xyz/txirrin", - "alias": "txirrin", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/txirrin.png", - "hidden": false, - "theme": { - "primary": "#FB7502" - }, - "profile": { - "address": "0xd47f7198bf335bfe66dD29C0f3EeEf0cFE9D05D8", - "chain_id": 100 - }, - "primary_token": { - "address": "0x6c6611244547a6E9AaCfBA8744115ca1076756fc", - "chain_id": 100 - }, - "primary_account_factory": { - "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "chain_id": 100 - } - }, - "tokens": { - "100:0x6c6611244547a6E9AaCfBA8744115ca1076756fc": { - "standard": "erc20", - "name": "Txirrin", - "address": "0x6c6611244547a6E9AaCfBA8744115ca1076756fc", - "symbol": "TXI", - "decimals": 6, - "chain_id": 100 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://100.engine.citizenwallet.xyz", + "ws_url": "wss://100.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "100:0x6c6611244547a6E9AaCfBA8744115ca1076756fc": { + "name": "Txirrin", + "symbol": "TXI", + "address": "0x6c6611244547a6E9AaCfBA8744115ca1076756fc", + "chain_id": 100, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 100, + "paymaster_type": "cw-safe", + "paymaster_address": "0x33500E7Eb3452421e56c2f4117530B1C4C85E0A5", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 100, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://citizenwallet.xyz/txirrin", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/txirrin.png", + "name": "Txirrin", + "alias": "txirrin", + "theme": { + "primary": "#FB7502" }, - "scan": { - "url": "https://gnosisscan.io", - "name": "Gnosis Explorer" - }, - "accounts": { - "100:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { - "chain_id": 100, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0x33500E7Eb3452421e56c2f4117530B1C4C85E0A5", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" - } + "hidden": false, + "profile": { + "address": "0xd47f7198bf335bfe66dD29C0f3EeEf0cFE9D05D8", + "chain_id": 100 }, - "chains": { - "100": { - "id": 100, - "node": { - "url": "https://100.engine.citizenwallet.xyz", - "ws_url": "wss://100.engine.citizenwallet.xyz" - } - } + "description": "A community for Txirrin", + "primary_token": { + "address": "0x6c6611244547a6E9AaCfBA8744115ca1076756fc", + "chain_id": 100 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 100 }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/txirrin.json", - "version": 4 + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 100 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/txirrin" +}, + { "community": { "name": "Bolivia Pay", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index f0f458cf..852fb0c5 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -396,7 +396,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.berachain.sfluv.org" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -482,69 +481,82 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.sfluv.org" }, - { - "community": { - "name": "Txirrin", - "description": "A community for Txirrin", - "url": "https://citizenwallet.xyz/txirrin", - "alias": "txirrin", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/txirrin.png", - "hidden": false, - "theme": { - "primary": "#FB7502" - }, - "profile": { - "address": "0xd47f7198bf335bfe66dD29C0f3EeEf0cFE9D05D8", - "chain_id": 100 - }, - "primary_token": { - "address": "0x6c6611244547a6E9AaCfBA8744115ca1076756fc", - "chain_id": 100 - }, - "primary_account_factory": { - "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "chain_id": 100 - } - }, - "tokens": { - "100:0x6c6611244547a6E9AaCfBA8744115ca1076756fc": { - "standard": "erc20", - "name": "Txirrin", - "address": "0x6c6611244547a6E9AaCfBA8744115ca1076756fc", - "symbol": "TXI", - "decimals": 6, - "chain_id": 100 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://100.engine.citizenwallet.xyz", + "ws_url": "wss://100.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "100:0x6c6611244547a6E9AaCfBA8744115ca1076756fc": { + "name": "Txirrin", + "symbol": "TXI", + "address": "0x6c6611244547a6E9AaCfBA8744115ca1076756fc", + "chain_id": 100, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 100, + "paymaster_type": "cw-safe", + "paymaster_address": "0x33500E7Eb3452421e56c2f4117530B1C4C85E0A5", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 100, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://citizenwallet.xyz/txirrin", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/txirrin.png", + "name": "Txirrin", + "alias": "txirrin", + "theme": { + "primary": "#FB7502" }, - "scan": { - "url": "https://gnosisscan.io", - "name": "Gnosis Explorer" - }, - "accounts": { - "100:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { - "chain_id": 100, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0x33500E7Eb3452421e56c2f4117530B1C4C85E0A5", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" - } + "hidden": false, + "profile": { + "address": "0xd47f7198bf335bfe66dD29C0f3EeEf0cFE9D05D8", + "chain_id": 100 }, - "chains": { - "100": { - "id": 100, - "node": { - "url": "https://100.engine.citizenwallet.xyz", - "ws_url": "wss://100.engine.citizenwallet.xyz" - } - } + "description": "A community for Txirrin", + "primary_token": { + "address": "0x6c6611244547a6E9AaCfBA8744115ca1076756fc", + "chain_id": 100 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 100 }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/txirrin.json", - "version": 4 + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 100 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/txirrin" +}, + { "community": { "name": "Bolivia Pay", From e8c5c2e45b08d36e44e7995debb16865fc3bfc0e Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 15:13:11 +0530 Subject: [PATCH 029/148] v5 boliviapay config from supabase --- assets/config/v5/communities.json | 127 ++++++++++++++----------- assets/config/v5/communities.test.json | 125 +++++++++++++----------- 2 files changed, 137 insertions(+), 115 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index a35c534f..87cb0aa3 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -479,8 +479,7 @@ } }, "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.sfluv.org" -}, - +}, { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -557,68 +556,80 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/txirrin" }, - { - "community": { - "name": "Bolivia Pay", - "description": "A community for Ethereum Bolivia.", - "url": "https://www.ethereumbolivia.org", - "alias": "boliviapay", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/boliviapay.png", - "theme": { - "primary": "#009393" - }, - "hidden": true, - "profile": { - "address": "0x898C2737f2Cb52622711A89D85A1D5E0B881BDeA", - "chain_id": 137 - }, - "primary_token": { - "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "chain_id": 137 - } - }, - "tokens": { - "137:0xc2132D05D31c914a87C6611C10748AEb04B58e8F": { - "standard": "erc20", - "name": "(PoS) Tether USD", - "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F", - "symbol": "USDT", - "decimals": 6, - "chain_id": 137 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "137:0xc2132D05D31c914a87C6611C10748AEb04B58e8F": { + "name": "(PoS) Tether USD", + "symbol": "USDT", + "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F", + "chain_id": 137, + "decimals": 6, + "standard": "erc20" + } + }, + "version": 5, + "accounts": { + "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 137, + "paymaster_type": "cw-safe", + "paymaster_address": "0x9a81Bd50D56485Cc863Ecb169812c7a821996C8c", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "137:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 137, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://www.ethereumbolivia.org", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/boliviapay.png", + "name": "Bolivia Pay", + "alias": "boliviapay", + "theme": { + "primary": "#009393" }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "accounts": { - "137:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { - "chain_id": 137, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0x9a81Bd50D56485Cc863Ecb169812c7a821996C8c", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" - } + "profile": { + "address": "0x898C2737f2Cb52622711A89D85A1D5E0B881BDeA", + "chain_id": 137 }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } + "description": "A community for Ethereum Bolivia.", + "primary_token": { + "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F", + "chain_id": 137 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 137 }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/boliviapay.json", - "version": 4 + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 137 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/boliviapay" +}, + { "community": { "name": "Bread Cooperative", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index 852fb0c5..97b5019d 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -480,7 +480,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.sfluv.org" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -557,68 +556,80 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/txirrin" }, - { - "community": { - "name": "Bolivia Pay", - "description": "A community for Ethereum Bolivia.", - "url": "https://www.ethereumbolivia.org", - "alias": "boliviapay", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/boliviapay.png", - "theme": { - "primary": "#009393" - }, - "hidden": true, - "profile": { - "address": "0x898C2737f2Cb52622711A89D85A1D5E0B881BDeA", - "chain_id": 137 - }, - "primary_token": { - "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "chain_id": 137 - } - }, - "tokens": { - "137:0xc2132D05D31c914a87C6611C10748AEb04B58e8F": { - "standard": "erc20", - "name": "(PoS) Tether USD", - "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F", - "symbol": "USDT", - "decimals": 6, - "chain_id": 137 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "137:0xc2132D05D31c914a87C6611C10748AEb04B58e8F": { + "name": "(PoS) Tether USD", + "symbol": "USDT", + "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F", + "chain_id": 137, + "decimals": 6, + "standard": "erc20" + } + }, + "version": 5, + "accounts": { + "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 137, + "paymaster_type": "cw-safe", + "paymaster_address": "0x9a81Bd50D56485Cc863Ecb169812c7a821996C8c", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "137:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 137, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://www.ethereumbolivia.org", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/boliviapay.png", + "name": "Bolivia Pay", + "alias": "boliviapay", + "theme": { + "primary": "#009393" }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "accounts": { - "137:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { - "chain_id": 137, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0x9a81Bd50D56485Cc863Ecb169812c7a821996C8c", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" - } + "profile": { + "address": "0x898C2737f2Cb52622711A89D85A1D5E0B881BDeA", + "chain_id": 137 }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } + "description": "A community for Ethereum Bolivia.", + "primary_token": { + "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F", + "chain_id": 137 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 137 }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/boliviapay.json", - "version": 4 + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 137 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/boliviapay" +}, + { "community": { "name": "Bread Cooperative", From 2ab8630ed8ff90d75ef62913149039b7cb5c9a33 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 15:14:43 +0530 Subject: [PATCH 030/148] v5 bread config from supabase --- assets/config/v5/communities.json | 199 ++++++++++++------------ assets/config/v5/communities.test.json | 201 ++++++++++++------------- 2 files changed, 193 insertions(+), 207 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index 87cb0aa3..4f2bec74 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -555,7 +555,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/txirrin" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -630,116 +629,110 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/boliviapay" }, - { - "community": { - "name": "Bread Cooperative", - "description": "Financial tools today. Solidarity forever.", - "url": "https://bread.coop", - "alias": "bread", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", - "theme": { - "primary": "#ea6023" - }, - "profile": { - "address": "0x6b3a1f4277391526413F583c23D5B9EF4d2fE986", - "chain_id": 100 - }, - "primary_token": { - "address": "0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3", - "chain_id": 100 - }, - "primary_account_factory": { - "address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", - "chain_id": 100 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "cards": { + "100:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 100, + "instance_id": "cw-discord-1" + } + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://100.engine.citizenwallet.xyz", + "ws_url": "wss://100.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "100:0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3": { + "name": "Breadchain Community Token", + "symbol": "BREAD", + "address": "0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3", + "chain_id": 100, + "decimals": 18, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://topup.citizenspring.earth/bread", + "icon": "https://bread.citizenwallet.xyz/uploads/logo.svg", + "name": "Top Up", + "action": "topup" }, - "tokens": { - "100:0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3": { - "standard": "erc20", - "name": "Bread Cooperative Community Token", - "address": "0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3", - "symbol": "BREAD", - "decimals": 18, - "chain_id": 100 - } + { + "url": "https://marketplace.citizenwallet.xyz/bread", + "icon": "https://bread.citizenwallet.xyz/uploads/logo.svg", + "name": "Market", + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 100, + "paymaster_type": "cw-safe", + "paymaster_address": "0x5987e57e85014B5A56C880313580346c20a5d1c1", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" }, - "scan": { - "url": "https://gnosisscan.io", - "name": "Gnosis Explorer" + "100:0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9": { + "chain_id": 100, + "paymaster_type": "cw", + "paymaster_address": "0xbE2Cb3358aa14621134e923B68b8429315368E32", + "entrypoint_address": "0xcA0a75EF803a364C83c5EAE7Eb889aE7419c9dF2", + "account_factory_address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9" + } + }, + "sessions": { + "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 100, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://breadchain.xyz/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/bread.svg", + "name": "Breadchain Community Token", + "alias": "bread", + "profile": { + "address": "0x6b3a1f4277391526413F583c23D5B9EF4d2fE986", + "chain_id": 100 }, - "accounts": { - "100:0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9": { - "chain_id": 100, - "entrypoint_address": "0xcA0a75EF803a364C83c5EAE7Eb889aE7419c9dF2", - "paymaster_address": "0xbE2Cb3358aa14621134e923B68b8429315368E32", - "account_factory_address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", - "paymaster_type": "cw" - }, - "100:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { - "chain_id": 100, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0x5C41F1114AB13aF5d66bac485924D03556d0cd51", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" - } + "description": "BREAD is a digital community token and solidarity primitive developed by Breadchain Cooperative that generates yield for post-capitalist organizations", + "primary_token": { + "address": "0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3", + "chain_id": 100 }, - "chains": { - "100": { - "id": 100, - "node": { - "url": "https://100.engine.citizenwallet.xyz", - "ws_url": "wss://100.engine.citizenwallet.xyz" - } - } + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 100 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 100 }, - "plugins": [ - { - "name": "Market", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", - "url": "https://marketplace.citizenwallet.xyz/bread", - "launch_mode": "webview", - "signature": true, - "featured": true - }, - { - "name": "Breadcon 2025 Faucet", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", - "url": "https://faucet.citizenwallet.xyz/breadcon2025", - "launch_mode": "webview", - "signature": true, - "hidden": true - }, - { - "name": "Japan Demo", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", - "url": "https://hackatsuonvoting.vercel.app", - "launch_mode": "webview", - "signature": true, - "hidden": true - }, - { - "name": "Japan Demo", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", - "url": "https://grow-kesennuma.vercel.app", - "launch_mode": "webview", - "signature": true, - "hidden": true - }, - { - "name": "Mutual Vend", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", - "url": "https://mutual-vend.com", - "launch_mode": "webview", - "signature": true, - "hidden": true - } - ], - "config_location": "https://config.internal.citizenwallet.xyz/v4/bread.citizenwallet.xyz.json", - "version": 4 + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 100 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/bread" +}, + { "community": { "url": "https://breadchain.xyz/", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index 97b5019d..cb01afae 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -554,8 +554,7 @@ } }, "config_location": "https://my.citizenwallet.xyz/api/communities/txirrin" -}, - +}, { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -630,116 +629,110 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/boliviapay" }, - { - "community": { - "name": "Bread Cooperative", - "description": "Financial tools today. Solidarity forever.", - "url": "https://bread.coop", - "alias": "bread", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", - "theme": { - "primary": "#ea6023" - }, - "profile": { - "address": "0x6b3a1f4277391526413F583c23D5B9EF4d2fE986", - "chain_id": 100 - }, - "primary_token": { - "address": "0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3", - "chain_id": 100 - }, - "primary_account_factory": { - "address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", - "chain_id": 100 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "cards": { + "100:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 100, + "instance_id": "cw-discord-1" + } + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://100.engine.citizenwallet.xyz", + "ws_url": "wss://100.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "100:0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3": { + "name": "Breadchain Community Token", + "symbol": "BREAD", + "address": "0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3", + "chain_id": 100, + "decimals": 18, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://topup.citizenspring.earth/bread", + "icon": "https://bread.citizenwallet.xyz/uploads/logo.svg", + "name": "Top Up", + "action": "topup" }, - "tokens": { - "100:0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3": { - "standard": "erc20", - "name": "Bread Cooperative Community Token", - "address": "0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3", - "symbol": "BREAD", - "decimals": 18, - "chain_id": 100 - } + { + "url": "https://marketplace.citizenwallet.xyz/bread", + "icon": "https://bread.citizenwallet.xyz/uploads/logo.svg", + "name": "Market", + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 100, + "paymaster_type": "cw-safe", + "paymaster_address": "0x5987e57e85014B5A56C880313580346c20a5d1c1", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" }, - "scan": { - "url": "https://gnosisscan.io", - "name": "Gnosis Explorer" + "100:0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9": { + "chain_id": 100, + "paymaster_type": "cw", + "paymaster_address": "0xbE2Cb3358aa14621134e923B68b8429315368E32", + "entrypoint_address": "0xcA0a75EF803a364C83c5EAE7Eb889aE7419c9dF2", + "account_factory_address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9" + } + }, + "sessions": { + "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 100, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://breadchain.xyz/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/bread.svg", + "name": "Breadchain Community Token", + "alias": "bread", + "profile": { + "address": "0x6b3a1f4277391526413F583c23D5B9EF4d2fE986", + "chain_id": 100 }, - "accounts": { - "100:0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9": { - "chain_id": 100, - "entrypoint_address": "0xcA0a75EF803a364C83c5EAE7Eb889aE7419c9dF2", - "paymaster_address": "0xbE2Cb3358aa14621134e923B68b8429315368E32", - "account_factory_address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", - "paymaster_type": "cw" - }, - "100:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { - "chain_id": 100, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0x5C41F1114AB13aF5d66bac485924D03556d0cd51", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" - } + "description": "BREAD is a digital community token and solidarity primitive developed by Breadchain Cooperative that generates yield for post-capitalist organizations", + "primary_token": { + "address": "0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3", + "chain_id": 100 }, - "chains": { - "100": { - "id": 100, - "node": { - "url": "https://100.engine.citizenwallet.xyz", - "ws_url": "wss://100.engine.citizenwallet.xyz" - } - } + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 100 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 100 }, - "plugins": [ - { - "name": "Market", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", - "url": "https://marketplace.citizenwallet.xyz/bread", - "launch_mode": "webview", - "signature": true, - "featured": true - }, - { - "name": "Breadcon 2025 Faucet", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", - "url": "https://faucet.citizenwallet.xyz/breadcon2025", - "launch_mode": "webview", - "signature": true, - "hidden": true - }, - { - "name": "Japan Demo", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", - "url": "https://hackatsuonvoting.vercel.app", - "launch_mode": "webview", - "signature": true, - "hidden": true - }, - { - "name": "Japan Demo", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", - "url": "https://grow-kesennuma.vercel.app", - "launch_mode": "webview", - "signature": true, - "hidden": true - }, - { - "name": "Mutual Vend", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/bread2.png", - "url": "https://mutual-vend.com", - "launch_mode": "webview", - "signature": true, - "hidden": true - } - ], - "config_location": "https://config.internal.citizenwallet.xyz/v4/bread.citizenwallet.xyz.json", - "version": 4 + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 100 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/bread" +}, + { "community": { "url": "https://breadchain.xyz/", From 74d9d9d765902c3c656e25a3f3023191fb7a1f8d Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 15:46:26 +0530 Subject: [PATCH 031/148] v5 laborhour config from supabase --- assets/config/v5/communities.json | 162 ++++++++++++------------- assets/config/v5/communities.test.json | 160 ++++++++++++------------ 2 files changed, 161 insertions(+), 161 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index 4f2bec74..7d2ba096 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -627,8 +627,7 @@ } }, "config_location": "https://my.citizenwallet.xyz/api/communities/boliviapay" -}, - +}, { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -733,92 +732,93 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/bread" }, - { - "community": { - "url": "https://breadchain.xyz/", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/laborhour.png", - "name": "Labor Hour Token", - "alias": "laborhour", - "theme": { - "primary": "#E52D2D" - }, - "profile": { - "address": "0x673601Eb36820bC9718214AC041E96f79383351B", - "chain_id": 100 - }, - "description": "Labor Hour Token aims to reward contributors for hours of labor, particularly targeting non-blockchain native users", - "primary_token": { - "address": "0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007", - "chain_id": 100 - }, - "primary_card_manager": { - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 100 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 100 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 100 - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://gnosisscan.io", - "name": "Gnosis Explorer" - }, - "cards": { - "100:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { - "type": "safe", - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 100, - "instance_id": "cw-discord-1" +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "cards": { + "100:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 100, + "instance_id": "cw-discord-1" + } + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://100.engine.citizenwallet.xyz", + "ws_url": "wss://100.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "100:0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007": { + "name": "Labor Hour Token", + "symbol": "HOUR", + "address": "0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007", + "chain_id": 100, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 4, + "accounts": { + "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 100, + "paymaster_type": "cw-safe", + "paymaster_address": "0xa7fa16C933f51d8623f39FA0dF34D3065B99Bd1c", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 100, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://breadchain.xyz/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/laborhour.png", + "name": "Labor Hour Token", + "alias": "laborhour", + "theme": { + "primary": "#E52D2D" }, - "chains": { - "100": { - "id": 100, - "node": { - "url": "https://100.engine.citizenwallet.xyz", - "ws_url": "wss://100.engine.citizenwallet.xyz" - } - } + "profile": { + "address": "0x673601Eb36820bC9718214AC041E96f79383351B", + "chain_id": 100 }, - "tokens": { - "100:0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007": { - "name": "Labor Hour Token", - "symbol": "HOUR", - "address": "0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007", - "chain_id": 100, - "decimals": 6, - "standard": "erc20" - } + "description": "Labor Hour Token aims to reward contributors for hours of labor, particularly targeting non-blockchain native users", + "primary_token": { + "address": "0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007", + "chain_id": 100 }, - "plugins": [], - "version": 4, - "accounts": { - "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 100, - "paymaster_type": "cw-safe", - "paymaster_address": "0xa7fa16C933f51d8623f39FA0dF34D3065B99Bd1c", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 100 }, - "sessions": { - "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 100, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" - } + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 100 }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/laborhour.citizenwallet.xyz.json" + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 100 + } }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/laborhour.citizenwallet.xyz.json" +}, + { "community": { "url": "https://rooted.finance/", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index cb01afae..666055ae 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -628,7 +628,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/boliviapay" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -733,92 +732,93 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/bread" }, - { - "community": { - "url": "https://breadchain.xyz/", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/laborhour.png", - "name": "Labor Hour Token", - "alias": "laborhour", - "theme": { - "primary": "#E52D2D" - }, - "profile": { - "address": "0x673601Eb36820bC9718214AC041E96f79383351B", - "chain_id": 100 - }, - "description": "Labor Hour Token aims to reward contributors for hours of labor, particularly targeting non-blockchain native users", - "primary_token": { - "address": "0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007", - "chain_id": 100 - }, - "primary_card_manager": { - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 100 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 100 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 100 - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://gnosisscan.io", - "name": "Gnosis Explorer" - }, - "cards": { - "100:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { - "type": "safe", - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 100, - "instance_id": "cw-discord-1" +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "cards": { + "100:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 100, + "instance_id": "cw-discord-1" + } + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://100.engine.citizenwallet.xyz", + "ws_url": "wss://100.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "100:0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007": { + "name": "Labor Hour Token", + "symbol": "HOUR", + "address": "0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007", + "chain_id": 100, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 4, + "accounts": { + "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 100, + "paymaster_type": "cw-safe", + "paymaster_address": "0xa7fa16C933f51d8623f39FA0dF34D3065B99Bd1c", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 100, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://breadchain.xyz/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/laborhour.png", + "name": "Labor Hour Token", + "alias": "laborhour", + "theme": { + "primary": "#E52D2D" }, - "chains": { - "100": { - "id": 100, - "node": { - "url": "https://100.engine.citizenwallet.xyz", - "ws_url": "wss://100.engine.citizenwallet.xyz" - } - } + "profile": { + "address": "0x673601Eb36820bC9718214AC041E96f79383351B", + "chain_id": 100 }, - "tokens": { - "100:0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007": { - "name": "Labor Hour Token", - "symbol": "HOUR", - "address": "0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007", - "chain_id": 100, - "decimals": 6, - "standard": "erc20" - } + "description": "Labor Hour Token aims to reward contributors for hours of labor, particularly targeting non-blockchain native users", + "primary_token": { + "address": "0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007", + "chain_id": 100 }, - "plugins": [], - "version": 4, - "accounts": { - "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 100, - "paymaster_type": "cw-safe", - "paymaster_address": "0xa7fa16C933f51d8623f39FA0dF34D3065B99Bd1c", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 100 }, - "sessions": { - "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 100, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" - } + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 100 }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/laborhour.citizenwallet.xyz.json" + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 100 + } }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/laborhour.citizenwallet.xyz.json" +}, + { "community": { "url": "https://rooted.finance/", From 4e087ef74f3f4f40c1277e650d2b077dc45a0208 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 15:47:55 +0530 Subject: [PATCH 032/148] v5 rooted config from supabase --- assets/config/v5/communities.json | 163 ++++++++++++------------- assets/config/v5/communities.test.json | 161 ++++++++++++------------ 2 files changed, 161 insertions(+), 163 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index 7d2ba096..fcfa31f4 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -730,8 +730,7 @@ } }, "config_location": "https://my.citizenwallet.xyz/api/communities/bread" -}, - +}, { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -819,93 +818,93 @@ "config_location": "https://config.internal.citizenwallet.xyz/v4/laborhour.citizenwallet.xyz.json" }, - { - "community": { - "url": "https://rooted.finance/", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rooted.png", - "name": "Rooted.Finance", - "alias": "rooted", - "theme": { - "primary": "#ff4c02" - }, - "hidden": true, - "profile": { - "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", - "chain_id": 8453 - }, - "description": "Rooted in your values.", - "primary_token": { - "address": "0x3595ca37596d5895b70efab592ac315d5b9809b2", - "chain_id": 8453 - }, - "primary_card_manager": { - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 8453 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 8453 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 8453 - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://gnosisscan.io", - "name": "Gnosis Explorer" - }, - "cards": { - "8453:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { - "type": "safe", - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 8453, - "instance_id": "cw-discord-1" +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "cards": { + "8453:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 8453, + "instance_id": "cw-discord-1" + } + }, + "chains": { + "8453": { + "id": 8453, + "node": { + "url": "https://8453.engine.citizenwallet.xyz", + "ws_url": "wss://8453.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "8453:0x3595ca37596d5895b70efab592ac315d5b9809b2": { + "name": "Azos Stablecoin", + "symbol": "AZUSD", + "address": "0x3595ca37596d5895b70efab592ac315d5b9809b2", + "chain_id": 8453, + "decimals": 18, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "8453:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 8453, + "paymaster_type": "cw-safe", + "paymaster_address": "0x02cd43b3d7a946dCaa8dF12ac0A6Cd50aF9cDd64", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "8453:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 8453, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0x0c2e78DB6FaF8D4d68984A830339764AD9f800D4" + } + }, + "community": { + "url": "https://rooted.finance/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rooted.png", + "name": "Rooted.Finance", + "alias": "rooted", + "theme": { + "primary": "#ff4c02" }, - "chains": { - "8453": { - "id": 8453, - "node": { - "url": "https://8453.engine.citizenwallet.xyz", - "ws_url": "wss://8453.engine.citizenwallet.xyz" - } - } + "profile": { + "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", + "chain_id": 8453 }, - "tokens": { - "8453:0x3595ca37596d5895b70efab592ac315d5b9809b2": { - "name": "Azos Stablecoin", - "symbol": "AZUSD", - "address": "0x3595ca37596d5895b70efab592ac315d5b9809b2", - "chain_id": 8453, - "decimals": 18, - "standard": "erc20" - } + "description": "Rooted in your values.", + "primary_token": { + "address": "0x3595ca37596d5895b70efab592ac315d5b9809b2", + "chain_id": 8453 }, - "plugins": [], - "version": 4, - "accounts": { - "8453:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 8453, - "paymaster_type": "cw-safe", - "paymaster_address": "0x02cd43b3d7a946dCaa8dF12ac0A6Cd50aF9cDd64", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 8453 }, - "sessions": { - "8453:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 8453, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0x0c2e78DB6FaF8D4d68984A830339764AD9f800D4" - } + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 8453 }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/rooted.citizenwallet.xyz.json" + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 8453 + } }, + "config_location": "https://my.citizenwallet.xyz/communities/rooted" +}, + { "community": { "name": "Commons Hub Brussels", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index 666055ae..6494639b 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -731,7 +731,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/bread" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -819,93 +818,93 @@ "config_location": "https://config.internal.citizenwallet.xyz/v4/laborhour.citizenwallet.xyz.json" }, - { - "community": { - "url": "https://rooted.finance/", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rooted.png", - "name": "Rooted.Finance", - "alias": "rooted", - "theme": { - "primary": "#ff4c02" - }, - "hidden": true, - "profile": { - "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", - "chain_id": 8453 - }, - "description": "Rooted in your values.", - "primary_token": { - "address": "0x3595ca37596d5895b70efab592ac315d5b9809b2", - "chain_id": 8453 - }, - "primary_card_manager": { - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 8453 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 8453 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 8453 - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://gnosisscan.io", - "name": "Gnosis Explorer" - }, - "cards": { - "8453:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { - "type": "safe", - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 8453, - "instance_id": "cw-discord-1" +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "cards": { + "8453:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 8453, + "instance_id": "cw-discord-1" + } + }, + "chains": { + "8453": { + "id": 8453, + "node": { + "url": "https://8453.engine.citizenwallet.xyz", + "ws_url": "wss://8453.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "8453:0x3595ca37596d5895b70efab592ac315d5b9809b2": { + "name": "Azos Stablecoin", + "symbol": "AZUSD", + "address": "0x3595ca37596d5895b70efab592ac315d5b9809b2", + "chain_id": 8453, + "decimals": 18, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "8453:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 8453, + "paymaster_type": "cw-safe", + "paymaster_address": "0x02cd43b3d7a946dCaa8dF12ac0A6Cd50aF9cDd64", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "8453:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 8453, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0x0c2e78DB6FaF8D4d68984A830339764AD9f800D4" + } + }, + "community": { + "url": "https://rooted.finance/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rooted.png", + "name": "Rooted.Finance", + "alias": "rooted", + "theme": { + "primary": "#ff4c02" }, - "chains": { - "8453": { - "id": 8453, - "node": { - "url": "https://8453.engine.citizenwallet.xyz", - "ws_url": "wss://8453.engine.citizenwallet.xyz" - } - } + "profile": { + "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", + "chain_id": 8453 }, - "tokens": { - "8453:0x3595ca37596d5895b70efab592ac315d5b9809b2": { - "name": "Azos Stablecoin", - "symbol": "AZUSD", - "address": "0x3595ca37596d5895b70efab592ac315d5b9809b2", - "chain_id": 8453, - "decimals": 18, - "standard": "erc20" - } + "description": "Rooted in your values.", + "primary_token": { + "address": "0x3595ca37596d5895b70efab592ac315d5b9809b2", + "chain_id": 8453 }, - "plugins": [], - "version": 4, - "accounts": { - "8453:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 8453, - "paymaster_type": "cw-safe", - "paymaster_address": "0x02cd43b3d7a946dCaa8dF12ac0A6Cd50aF9cDd64", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 8453 }, - "sessions": { - "8453:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 8453, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0x0c2e78DB6FaF8D4d68984A830339764AD9f800D4" - } + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 8453 }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/rooted.citizenwallet.xyz.json" + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 8453 + } }, + "config_location": "https://my.citizenwallet.xyz/communities/rooted" +}, + { "community": { "name": "Commons Hub Brussels", From 0076071beb0d9a7bd4e774a4997f9cca0ebbc77b Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 15:49:43 +0530 Subject: [PATCH 033/148] v5 wallet.commonshub.brussels config from supabase --- assets/config/v5/communities.json | 163 ++++++++++++++----------- assets/config/v5/communities.test.json | 163 ++++++++++++++----------- 2 files changed, 182 insertions(+), 144 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index fcfa31f4..e3315e64 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -817,7 +817,6 @@ }, "config_location": "https://config.internal.citizenwallet.xyz/v4/laborhour.citizenwallet.xyz.json" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -905,84 +904,104 @@ "config_location": "https://my.citizenwallet.xyz/communities/rooted" }, - { - "community": { - "name": "Commons Hub Brussels", - "description": "Community Token for the Commons Hub Brussels community", - "url": "https://commonshub.brussels", - "alias": "wallet.commonshub.brussels", - "custom_domain": "wallet.commonshub.brussels", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/chb.png", - "theme": { - "primary": "#ff4c02" - }, - "profile": { - "address": "0xc06bE1BbbeEAF2f34F3d5b76069D2560aee184Ae", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x65DD32834927de9E57E72a3E2130a19f81C6371D", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x65DD32834927de9E57E72a3E2130a19f81C6371D": { - "standard": "erc20", - "name": "Commons Hub Token", - "address": "0x65DD32834927de9E57E72a3E2130a19f81C6371D", - "symbol": "CHT", - "decimals": 6, - "chain_id": 42220 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "cards": { + "42220:0xc0F9e0907C8de79fd5902b61e463dFEdc5dc8570": { + "type": "classic", + "address": "0xc0F9e0907C8de79fd5902b61e463dFEdc5dc8570", + "chain_id": 42220 + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "42220:0x65DD32834927de9E57E72a3E2130a19f81C6371D": { + "name": "Commons Hub Token", + "symbol": "CHT", + "address": "0x65DD32834927de9E57E72a3E2130a19f81C6371D", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://marketplace.citizenwallet.xyz/wallet.commonshub.brussels", + "icon": "https://marketplace.citizenwallet.xyz/marketplace.svg", + "name": "Market", + "signature": true, + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "42220:0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x4E127A1DAa66568B4a91E8c5615120a6Ea5442E3", + "entrypoint_address": "0xb7608dDA592d319687C89c4479e320b5a7740117", + "account_factory_address": "0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87" }, - "scan": { - "url": "https://celoscan.io", - "name": "CELO Explorer" - }, - "accounts": { - "42220:0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87": { - "chain_id": 42220, - "entrypoint_address": "0xb7608dDA592d319687C89c4479e320b5a7740117", - "paymaster_address": "0x4E127A1DAa66568B4a91E8c5615120a6Ea5442E3", - "account_factory_address": "0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87", - "paymaster_type": "cw" - } + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x4860C0f127500F0cbF4a5Bd797cBb5aA50Eb0FbA", + "entrypoint_address": "0xb7608dDA592d319687C89c4479e320b5a7740117", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "42220:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 42220, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://commonshub.brussels", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/chb.png", + "name": "Commons Hub Brussels", + "alias": "wallet.commonshub.brussels", + "theme": { + "primary": "#ff4c02" }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "profile": { + "address": "0xc06bE1BbbeEAF2f34F3d5b76069D2560aee184Ae", + "chain_id": 42220 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "Community Token for the Commons Hub Brussels community", + "custom_domain": "wallet.commonshub.brussels", + "primary_token": { + "address": "0x65DD32834927de9E57E72a3E2130a19f81C6371D", + "chain_id": 42220 }, - "cards": { - "42220:0xc0F9e0907C8de79fd5902b61e463dFEdc5dc8570": { - "chain_id": 42220, - "address": "0xc0F9e0907C8de79fd5902b61e463dFEdc5dc8570", - "type": "classic" - } + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 }, - "plugins": [ - { - "name": "Market", - "icon": "https://marketplace.citizenwallet.xyz/marketplace.svg", - "url": "https://marketplace.citizenwallet.xyz/wallet.commonshub.brussels", - "launch_mode": "webview", - "signature": true - } - ], - "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.commonshub.brussels.json", - "version": 4 + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 42220 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.commonshub.brussels" +}, + { "community": { "name": "Sel de Salm", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index 6494639b..162b3bed 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -817,7 +817,6 @@ }, "config_location": "https://config.internal.citizenwallet.xyz/v4/laborhour.citizenwallet.xyz.json" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -905,84 +904,104 @@ "config_location": "https://my.citizenwallet.xyz/communities/rooted" }, - { - "community": { - "name": "Commons Hub Brussels", - "description": "Community Token for the Commons Hub Brussels community", - "url": "https://commonshub.brussels", - "alias": "wallet.commonshub.brussels", - "custom_domain": "wallet.commonshub.brussels", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/chb.png", - "theme": { - "primary": "#ff4c02" - }, - "profile": { - "address": "0xc06bE1BbbeEAF2f34F3d5b76069D2560aee184Ae", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x65DD32834927de9E57E72a3E2130a19f81C6371D", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x65DD32834927de9E57E72a3E2130a19f81C6371D": { - "standard": "erc20", - "name": "Commons Hub Token", - "address": "0x65DD32834927de9E57E72a3E2130a19f81C6371D", - "symbol": "CHT", - "decimals": 6, - "chain_id": 42220 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "cards": { + "42220:0xc0F9e0907C8de79fd5902b61e463dFEdc5dc8570": { + "type": "classic", + "address": "0xc0F9e0907C8de79fd5902b61e463dFEdc5dc8570", + "chain_id": 42220 + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "42220:0x65DD32834927de9E57E72a3E2130a19f81C6371D": { + "name": "Commons Hub Token", + "symbol": "CHT", + "address": "0x65DD32834927de9E57E72a3E2130a19f81C6371D", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://marketplace.citizenwallet.xyz/wallet.commonshub.brussels", + "icon": "https://marketplace.citizenwallet.xyz/marketplace.svg", + "name": "Market", + "signature": true, + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "42220:0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x4E127A1DAa66568B4a91E8c5615120a6Ea5442E3", + "entrypoint_address": "0xb7608dDA592d319687C89c4479e320b5a7740117", + "account_factory_address": "0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87" }, - "scan": { - "url": "https://celoscan.io", - "name": "CELO Explorer" - }, - "accounts": { - "42220:0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87": { - "chain_id": 42220, - "entrypoint_address": "0xb7608dDA592d319687C89c4479e320b5a7740117", - "paymaster_address": "0x4E127A1DAa66568B4a91E8c5615120a6Ea5442E3", - "account_factory_address": "0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87", - "paymaster_type": "cw" - } + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x4860C0f127500F0cbF4a5Bd797cBb5aA50Eb0FbA", + "entrypoint_address": "0xb7608dDA592d319687C89c4479e320b5a7740117", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "42220:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 42220, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://commonshub.brussels", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/chb.png", + "name": "Commons Hub Brussels", + "alias": "wallet.commonshub.brussels", + "theme": { + "primary": "#ff4c02" }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "profile": { + "address": "0xc06bE1BbbeEAF2f34F3d5b76069D2560aee184Ae", + "chain_id": 42220 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "Community Token for the Commons Hub Brussels community", + "custom_domain": "wallet.commonshub.brussels", + "primary_token": { + "address": "0x65DD32834927de9E57E72a3E2130a19f81C6371D", + "chain_id": 42220 }, - "cards": { - "42220:0xc0F9e0907C8de79fd5902b61e463dFEdc5dc8570": { - "chain_id": 42220, - "address": "0xc0F9e0907C8de79fd5902b61e463dFEdc5dc8570", - "type": "classic" - } + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 }, - "plugins": [ - { - "name": "Market", - "icon": "https://marketplace.citizenwallet.xyz/marketplace.svg", - "url": "https://marketplace.citizenwallet.xyz/wallet.commonshub.brussels", - "launch_mode": "webview", - "signature": true - } - ], - "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.commonshub.brussels.json", - "version": 4 + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 42220 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.commonshub.brussels" +}, + { "community": { "name": "Sel de Salm", From 2683d3938e552d9d2985b90a6611371e7a374030 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 15:50:53 +0530 Subject: [PATCH 034/148] v5 seldesalm config from supabase --- assets/config/v5/communities.json | 175 +++++++++++++------------ assets/config/v5/communities.test.json | 175 +++++++++++++------------ 2 files changed, 186 insertions(+), 164 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index e3315e64..08116f6d 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -903,7 +903,6 @@ }, "config_location": "https://my.citizenwallet.xyz/communities/rooted" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1002,95 +1001,107 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.commonshub.brussels" }, - { - "community": { - "name": "Sel de Salm", - "description": "La communauté de Sel de Salm", - "url": "https://citizenwallet.xyz/community-currency-documentation/sel-de-salm", - "alias": "seldesalm", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", - "theme": { - "primary": "#6B5CA4" - }, - "profile": { - "address": "0x4083724953cC1cC13e76b436149B2b1e1a3E5970", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "chain_id": 42220 - }, - "primary_card_manager": { - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2": { - "standard": "erc20", - "name": "Myrtille", - "address": "0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2", - "symbol": "MYRT", - "decimals": 6, - "chain_id": 42220 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "cards": { + "42220:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 42220, + "instance_id": "cw-seldesalm" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "42220:0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2": { + "name": "Myrtille", + "symbol": "MYRT", + "address": "0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://citizenwallet.xyz/community-currency-documentation/sel-de-salm", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", + "name": "Informations Générales", + "launch_mode": "webview" }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" + { + "url": "https://marketplace.citizenwallet.xyz/seldesalm", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", + "name": "Échanges", + "signature": true, + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0xd07412020dA5054c3b49f47Ca61224637F1703af", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "42220:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 42220, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://citizenwallet.xyz/community-currency-documentation/sel-de-salm", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", + "name": "Sel de Salm", + "alias": "seldesalm", + "theme": { + "primary": "#6B5CA4" }, - "accounts": { - "42220:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { - "chain_id": 42220, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0xd07412020dA5054c3b49f47Ca61224637F1703af", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" - } + "profile": { + "address": "0x4083724953cC1cC13e76b436149B2b1e1a3E5970", + "chain_id": 42220 }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "description": "La communauté de Sel de Salm", + "primary_token": { + "address": "0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2", + "chain_id": 42220 }, - "cards": { - "42220:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { - "chain_id": 42220, - "instance_id": "cw-seldesalm", - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "type": "safe" - } + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 42220 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 }, - "plugins": [ - { - "name": "Informations Générales", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", - "url": "https://citizenwallet.xyz/community-currency-documentation/sel-de-salm", - "launch_mode": "webview" - }, - { - "name": "Échanges", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", - "url": "https://marketplace.citizenwallet.xyz/seldesalm", - "launch_mode": "webview", - "signature": true, - "featured": true - } - ], - "config_location": "https://seldesalm.citizenwallet.xyz/config/community.json", - "version": 4 + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 42220 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/seldesalm" +}, + { "community": { "name": "TECHI", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index 162b3bed..71b80530 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -903,7 +903,6 @@ }, "config_location": "https://my.citizenwallet.xyz/communities/rooted" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1002,95 +1001,107 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.commonshub.brussels" }, - { - "community": { - "name": "Sel de Salm", - "description": "La communauté de Sel de Salm", - "url": "https://citizenwallet.xyz/community-currency-documentation/sel-de-salm", - "alias": "seldesalm", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", - "theme": { - "primary": "#6B5CA4" - }, - "profile": { - "address": "0x4083724953cC1cC13e76b436149B2b1e1a3E5970", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "chain_id": 42220 - }, - "primary_card_manager": { - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2": { - "standard": "erc20", - "name": "Myrtille", - "address": "0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2", - "symbol": "MYRT", - "decimals": 6, - "chain_id": 42220 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "cards": { + "42220:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 42220, + "instance_id": "cw-seldesalm" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "42220:0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2": { + "name": "Myrtille", + "symbol": "MYRT", + "address": "0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://citizenwallet.xyz/community-currency-documentation/sel-de-salm", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", + "name": "Informations Générales", + "launch_mode": "webview" }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" + { + "url": "https://marketplace.citizenwallet.xyz/seldesalm", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", + "name": "Échanges", + "signature": true, + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0xd07412020dA5054c3b49f47Ca61224637F1703af", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "42220:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 42220, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://citizenwallet.xyz/community-currency-documentation/sel-de-salm", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", + "name": "Sel de Salm", + "alias": "seldesalm", + "theme": { + "primary": "#6B5CA4" }, - "accounts": { - "42220:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { - "chain_id": 42220, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0xd07412020dA5054c3b49f47Ca61224637F1703af", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" - } + "profile": { + "address": "0x4083724953cC1cC13e76b436149B2b1e1a3E5970", + "chain_id": 42220 }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "description": "La communauté de Sel de Salm", + "primary_token": { + "address": "0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2", + "chain_id": 42220 }, - "cards": { - "42220:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { - "chain_id": 42220, - "instance_id": "cw-seldesalm", - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "type": "safe" - } + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 42220 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 }, - "plugins": [ - { - "name": "Informations Générales", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", - "url": "https://citizenwallet.xyz/community-currency-documentation/sel-de-salm", - "launch_mode": "webview" - }, - { - "name": "Échanges", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", - "url": "https://marketplace.citizenwallet.xyz/seldesalm", - "launch_mode": "webview", - "signature": true, - "featured": true - } - ], - "config_location": "https://seldesalm.citizenwallet.xyz/config/community.json", - "version": 4 + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 42220 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/seldesalm" +}, + { "community": { "name": "TECHI", From f5f08f86c3a83509df5be1071d0be5fc01728ab5 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 15:52:21 +0530 Subject: [PATCH 035/148] v5 my.techi.be config from supabase --- assets/config/v5/communities.json | 132 +++++++++++++------------ assets/config/v5/communities.test.json | 132 +++++++++++++------------ 2 files changed, 140 insertions(+), 124 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index 08116f6d..6e38d481 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -1000,7 +1000,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.commonshub.brussels" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1102,73 +1101,82 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/seldesalm" }, - { - "community": { - "name": "TECHI", - "description": "A community for TECHI users", - "url": "https://my.techi.be", - "alias": "my.techi.be", - "logo": "https://my.techi.be/assets/token.svg", - "hidden": false, - "theme": { - "primary": "#617FF8" - }, - "profile": { - "address": "0x80C141861607b8FEfD53C9E71a9c7D2D3e2e76dc", - "chain_id": 100 - }, - "primary_token": { - "address": "0x01D0E7117510b371Ac38f52Cc6689ff8875280FA", - "chain_id": 100 - }, - "primary_account_factory": { - "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "chain_id": 100 - }, - "primary_card_manager": { - "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", - "chain_id": 100 - } - }, - "tokens": { - "100:0x01D0E7117510b371Ac38f52Cc6689ff8875280FA": { - "standard": "erc20", - "name": "TECHI", - "address": "0x01D0E7117510b371Ac38f52Cc6689ff8875280FA", - "symbol": "TECHI", - "decimals": 6, - "chain_id": 100 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://engine.my.techi.be", + "ws_url": "wss://engine.my.techi.be" } + } + }, + "tokens": { + "100:0x01D0E7117510b371Ac38f52Cc6689ff8875280FA": { + "name": "TECHI", + "symbol": "TECHI", + "address": "0x01D0E7117510b371Ac38f52Cc6689ff8875280FA", + "chain_id": 100, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 100, + "paymaster_type": "cw-safe", + "paymaster_address": "0x68c5a20f233264DB124a3c95a200bbD20b3b9762", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 100, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://my.techi.be", + "logo": "https://my.techi.be/assets/token.svg", + "name": "TECHI", + "alias": "my.techi.be", + "theme": { + "primary": "#617FF8" }, - "scan": { - "url": "https://gnosisscan.io", - "name": "Gnosis Explorer" - }, - "accounts": { - "100:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { - "chain_id": 100, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0x68c5a20f233264DB124a3c95a200bbD20b3b9762", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" - } + "hidden": false, + "profile": { + "address": "0x80C141861607b8FEfD53C9E71a9c7D2D3e2e76dc", + "chain_id": 100 }, - "chains": { - "100": { - "id": 100, - "node": { - "url": "https://engine.my.techi.be", - "ws_url": "wss://engine.my.techi.be" - } - } + "description": "A community for TECHI users", + "primary_token": { + "address": "0x01D0E7117510b371Ac38f52Cc6689ff8875280FA", + "chain_id": 100 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 100 }, - "plugins": [], - "config_location": "https://my.techi.be/assets/community.json", - "version": 4 + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 100 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/my.techi.be" +}, + { "community": { "name": "Regens Unite", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index 71b80530..734d33b7 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -1000,7 +1000,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.commonshub.brussels" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1102,73 +1101,82 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/seldesalm" }, - { - "community": { - "name": "TECHI", - "description": "A community for TECHI users", - "url": "https://my.techi.be", - "alias": "my.techi.be", - "logo": "https://my.techi.be/assets/token.svg", - "hidden": false, - "theme": { - "primary": "#617FF8" - }, - "profile": { - "address": "0x80C141861607b8FEfD53C9E71a9c7D2D3e2e76dc", - "chain_id": 100 - }, - "primary_token": { - "address": "0x01D0E7117510b371Ac38f52Cc6689ff8875280FA", - "chain_id": 100 - }, - "primary_account_factory": { - "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "chain_id": 100 - }, - "primary_card_manager": { - "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", - "chain_id": 100 - } - }, - "tokens": { - "100:0x01D0E7117510b371Ac38f52Cc6689ff8875280FA": { - "standard": "erc20", - "name": "TECHI", - "address": "0x01D0E7117510b371Ac38f52Cc6689ff8875280FA", - "symbol": "TECHI", - "decimals": 6, - "chain_id": 100 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://engine.my.techi.be", + "ws_url": "wss://engine.my.techi.be" } + } + }, + "tokens": { + "100:0x01D0E7117510b371Ac38f52Cc6689ff8875280FA": { + "name": "TECHI", + "symbol": "TECHI", + "address": "0x01D0E7117510b371Ac38f52Cc6689ff8875280FA", + "chain_id": 100, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 100, + "paymaster_type": "cw-safe", + "paymaster_address": "0x68c5a20f233264DB124a3c95a200bbD20b3b9762", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 100, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://my.techi.be", + "logo": "https://my.techi.be/assets/token.svg", + "name": "TECHI", + "alias": "my.techi.be", + "theme": { + "primary": "#617FF8" }, - "scan": { - "url": "https://gnosisscan.io", - "name": "Gnosis Explorer" - }, - "accounts": { - "100:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { - "chain_id": 100, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0x68c5a20f233264DB124a3c95a200bbD20b3b9762", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" - } + "hidden": false, + "profile": { + "address": "0x80C141861607b8FEfD53C9E71a9c7D2D3e2e76dc", + "chain_id": 100 }, - "chains": { - "100": { - "id": 100, - "node": { - "url": "https://engine.my.techi.be", - "ws_url": "wss://engine.my.techi.be" - } - } + "description": "A community for TECHI users", + "primary_token": { + "address": "0x01D0E7117510b371Ac38f52Cc6689ff8875280FA", + "chain_id": 100 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 100 }, - "plugins": [], - "config_location": "https://my.techi.be/assets/community.json", - "version": 4 + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 100 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/my.techi.be" +}, + { "community": { "name": "Regens Unite", From 68ec7f82c2a801d81ab160187e3d6b1de80b9d26 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 15:55:26 +0530 Subject: [PATCH 036/148] v5 wallet.regensunite.earth config from supabase --- assets/config/v5/communities.json | 123 +++++++++++++------------ assets/config/v5/communities.test.json | 123 +++++++++++++------------ 2 files changed, 130 insertions(+), 116 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index 6e38d481..ab3cf144 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -1100,7 +1100,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/seldesalm" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1177,68 +1176,76 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/my.techi.be" }, - { - "community": { - "name": "Regens Unite", - "description": "A community currency for the Regens Unite community.", - "url": "https://www.regensunite.earth/", - "alias": "wallet.regensunite.earth", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", - "custom_domain": "wallet.regensunite.earth", - "hidden": true, - "profile": { - "address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", - "chain_id": 137 - }, - "primary_token": { - "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x9406Cc6185a346906296840746125a0E44976454", - "chain_id": 137 - } - }, - "tokens": { - "137:0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e": { - "standard": "erc20", - "name": "Regens Unite Token", - "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", - "symbol": "RGN", - "decimals": 6, - "chain_id": 137 - } - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "accounts": { - "137:0x9406Cc6185a346906296840746125a0E44976454": { - "chain_id": 137, - "entrypoint_address": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", - "paymaster_address": "0x250711045d58b6310f0635C7D110BFe663cE1da5", - "account_factory_address": "0x9406Cc6185a346906296840746125a0E44976454", - "paymaster_type": "payg", - "gas_extra_percentage": 50 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "137:0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e": { + "name": "Regens Unite Token", + "symbol": "RGN", + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "chain_id": 137, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 137, + "paymaster_type": "cw-safe", + "paymaster_address": "0x250711045d58b6310f0635C7D110BFe663cE1da5", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } + "137:0x9406Cc6185a346906296840746125a0E44976454": { + "chain_id": 137, + "paymaster_type": "payg", + "paymaster_address": "0x250711045d58b6310f0635C7D110BFe663cE1da5", + "entrypoint_address": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", + "gas_extra_percentage": 50, + "account_factory_address": "0x9406Cc6185a346906296840746125a0E44976454" + } + }, + "community": { + "url": "https://www.regensunite.earth/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", + "name": "Regens Unite", + "alias": "wallet.regensunite.earth", + "hidden": true, + "profile": { + "address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", + "chain_id": 137 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "A community currency for the Regens Unite community.", + "custom_domain": "wallet.regensunite.earth", + "primary_token": { + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "chain_id": 137 }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.regensunite.earth.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 137 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.regensunite.earth" +}, + { "community": { "name": "Gratitude Token", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index 734d33b7..fa7dcc77 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -1100,7 +1100,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/seldesalm" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1177,68 +1176,76 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/my.techi.be" }, - { - "community": { - "name": "Regens Unite", - "description": "A community currency for the Regens Unite community.", - "url": "https://www.regensunite.earth/", - "alias": "wallet.regensunite.earth", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", - "custom_domain": "wallet.regensunite.earth", - "hidden": true, - "profile": { - "address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", - "chain_id": 137 - }, - "primary_token": { - "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x9406Cc6185a346906296840746125a0E44976454", - "chain_id": 137 - } - }, - "tokens": { - "137:0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e": { - "standard": "erc20", - "name": "Regens Unite Token", - "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", - "symbol": "RGN", - "decimals": 6, - "chain_id": 137 - } - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "accounts": { - "137:0x9406Cc6185a346906296840746125a0E44976454": { - "chain_id": 137, - "entrypoint_address": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", - "paymaster_address": "0x250711045d58b6310f0635C7D110BFe663cE1da5", - "account_factory_address": "0x9406Cc6185a346906296840746125a0E44976454", - "paymaster_type": "payg", - "gas_extra_percentage": 50 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "137:0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e": { + "name": "Regens Unite Token", + "symbol": "RGN", + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "chain_id": 137, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 137, + "paymaster_type": "cw-safe", + "paymaster_address": "0x250711045d58b6310f0635C7D110BFe663cE1da5", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } + "137:0x9406Cc6185a346906296840746125a0E44976454": { + "chain_id": 137, + "paymaster_type": "payg", + "paymaster_address": "0x250711045d58b6310f0635C7D110BFe663cE1da5", + "entrypoint_address": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", + "gas_extra_percentage": 50, + "account_factory_address": "0x9406Cc6185a346906296840746125a0E44976454" + } + }, + "community": { + "url": "https://www.regensunite.earth/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", + "name": "Regens Unite", + "alias": "wallet.regensunite.earth", + "hidden": true, + "profile": { + "address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", + "chain_id": 137 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "A community currency for the Regens Unite community.", + "custom_domain": "wallet.regensunite.earth", + "primary_token": { + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "chain_id": 137 }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.regensunite.earth.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 137 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.regensunite.earth" +}, + { "community": { "name": "Gratitude Token", From 9fc8cf00529440e7c67aa4a7d0c0b8944a2d1375 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 15:57:00 +0530 Subject: [PATCH 037/148] v5 gt.celo config from supabase --- assets/config/v5/communities.json | 125 +++++++++++++------------ assets/config/v5/communities.test.json | 125 +++++++++++++------------ 2 files changed, 132 insertions(+), 118 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index ab3cf144..cc67506a 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -1175,7 +1175,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/my.techi.be" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1246,70 +1245,78 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.regensunite.earth" }, - { - "community": { - "name": "Gratitude Token", - "description": "Express your gratitude towards someone by sending them a token.", - "url": "https://citizenwallet.xyz/gratitude", - "alias": "gt.celo", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/gt.svg", - "custom_domain": null, - "hidden": true, - "theme": { - "primary": "#a256ff" - }, - "profile": { - "address": "0xEEc0F3257369c6bCD2Fd8755CbEf8A95b12Bc4c9", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { - "standard": "erc20", - "name": "Gratitude Token", - "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", - "symbol": "GT", - "decimals": 0, - "chain_id": 42220 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "42220:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { + "name": "Gratitude Token", + "symbol": "GT", + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 42220, + "decimals": 0, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", + "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "accounts": { - "42220:0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD": { - "chain_id": 42220, - "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", - "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", - "account_factory_address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD", - "paymaster_type": "cw" - } + "42220:0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", + "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", + "account_factory_address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD" + } + }, + "community": { + "url": "https://citizenwallet.xyz/gratitude", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/gt.svg", + "name": "Gratitude Token", + "alias": "gt.celo", + "theme": { + "primary": "#a256ff" }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "hidden": true, + "profile": { + "address": "0xEEc0F3257369c6bCD2Fd8755CbEf8A95b12Bc4c9", + "chain_id": 42220 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "Express your gratitude towards someone by sending them a token.", + "custom_domain": null, + "primary_token": { + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 42220 }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/gt.celo.citizenwallet.xyz.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/gt.celo" +}, + { "community": { "name": "Celo Euro", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index fa7dcc77..55ef904f 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -1175,7 +1175,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/my.techi.be" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1246,70 +1245,78 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.regensunite.earth" }, - { - "community": { - "name": "Gratitude Token", - "description": "Express your gratitude towards someone by sending them a token.", - "url": "https://citizenwallet.xyz/gratitude", - "alias": "gt.celo", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/gt.svg", - "custom_domain": null, - "hidden": true, - "theme": { - "primary": "#a256ff" - }, - "profile": { - "address": "0xEEc0F3257369c6bCD2Fd8755CbEf8A95b12Bc4c9", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { - "standard": "erc20", - "name": "Gratitude Token", - "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", - "symbol": "GT", - "decimals": 0, - "chain_id": 42220 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "42220:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { + "name": "Gratitude Token", + "symbol": "GT", + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 42220, + "decimals": 0, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", + "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "accounts": { - "42220:0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD": { - "chain_id": 42220, - "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", - "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", - "account_factory_address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD", - "paymaster_type": "cw" - } + "42220:0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", + "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", + "account_factory_address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD" + } + }, + "community": { + "url": "https://citizenwallet.xyz/gratitude", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/gt.svg", + "name": "Gratitude Token", + "alias": "gt.celo", + "theme": { + "primary": "#a256ff" }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "hidden": true, + "profile": { + "address": "0xEEc0F3257369c6bCD2Fd8755CbEf8A95b12Bc4c9", + "chain_id": 42220 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "Express your gratitude towards someone by sending them a token.", + "custom_domain": null, + "primary_token": { + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 42220 }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/gt.celo.citizenwallet.xyz.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/gt.celo" +}, + { "community": { "name": "Celo Euro", From 9723675c5f450398b5763afbbb23fb4ce8d7cc80 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 15:58:37 +0530 Subject: [PATCH 038/148] v5 ceur.celo config from supabase --- assets/config/v5/communities.json | 123 +++++++++++++------------ assets/config/v5/communities.test.json | 123 +++++++++++++------------ 2 files changed, 130 insertions(+), 116 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index cc67506a..92b6993e 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -1244,7 +1244,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.regensunite.earth" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1317,69 +1316,77 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/gt.celo" }, - { - "community": { - "name": "Celo Euro", - "description": "Celo Euro is a stablecoin for the Celo Community.", - "url": "https://celo.org/", - "alias": "ceur.celo", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/ceur.svg", - "hidden": true, - "theme": { - "primary": "#a256ff" - }, - "profile": { - "address": "0x0334C579E61aF6922D5deFEF02A361FBb2D6f406", - "chain_id": 42220 - }, - "primary_token": { - "address": "0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73": { - "standard": "erc20", - "name": "Celo Euro", - "address": "0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73", - "symbol": "cEUR", - "decimals": 18, - "chain_id": 42220 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "42220:0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73": { + "name": "Celo Euro", + "symbol": "cEUR", + "address": "0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73", + "chain_id": 42220, + "decimals": 18, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0xedbEA8c0F25B34510149EaD4f72867B0d3D2264F", + "entrypoint_address": "0xc3142BCBA2285d0a48A38e7Ea9Cbf28a12B235bB", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "accounts": { - "42220:0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098": { - "chain_id": 42220, - "entrypoint_address": "0xc3142BCBA2285d0a48A38e7Ea9Cbf28a12B235bB", - "paymaster_address": "0xedbEA8c0F25B34510149EaD4f72867B0d3D2264F", - "account_factory_address": "0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098", - "paymaster_type": "cw" - } + "42220:0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0xedbEA8c0F25B34510149EaD4f72867B0d3D2264F", + "entrypoint_address": "0xc3142BCBA2285d0a48A38e7Ea9Cbf28a12B235bB", + "account_factory_address": "0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098" + } + }, + "community": { + "url": "https://celo.org/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/ceur.svg", + "name": "Celo Euro", + "alias": "ceur.celo", + "theme": { + "primary": "#a256ff" }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "hidden": true, + "profile": { + "address": "0x0334C579E61aF6922D5deFEF02A361FBb2D6f406", + "chain_id": 42220 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "Celo Euro is a stablecoin for the Celo Community.", + "primary_token": { + "address": "0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73", + "chain_id": 42220 }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/ceur.celo.citizenwallet.xyz.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/ceur.celo" +}, + { "community": { "name": "EUR e-money", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index 55ef904f..09185042 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -1244,7 +1244,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.regensunite.earth" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1317,69 +1316,77 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/gt.celo" }, - { - "community": { - "name": "Celo Euro", - "description": "Celo Euro is a stablecoin for the Celo Community.", - "url": "https://celo.org/", - "alias": "ceur.celo", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/ceur.svg", - "hidden": true, - "theme": { - "primary": "#a256ff" - }, - "profile": { - "address": "0x0334C579E61aF6922D5deFEF02A361FBb2D6f406", - "chain_id": 42220 - }, - "primary_token": { - "address": "0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73": { - "standard": "erc20", - "name": "Celo Euro", - "address": "0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73", - "symbol": "cEUR", - "decimals": 18, - "chain_id": 42220 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "42220:0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73": { + "name": "Celo Euro", + "symbol": "cEUR", + "address": "0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73", + "chain_id": 42220, + "decimals": 18, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0xedbEA8c0F25B34510149EaD4f72867B0d3D2264F", + "entrypoint_address": "0xc3142BCBA2285d0a48A38e7Ea9Cbf28a12B235bB", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "accounts": { - "42220:0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098": { - "chain_id": 42220, - "entrypoint_address": "0xc3142BCBA2285d0a48A38e7Ea9Cbf28a12B235bB", - "paymaster_address": "0xedbEA8c0F25B34510149EaD4f72867B0d3D2264F", - "account_factory_address": "0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098", - "paymaster_type": "cw" - } + "42220:0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0xedbEA8c0F25B34510149EaD4f72867B0d3D2264F", + "entrypoint_address": "0xc3142BCBA2285d0a48A38e7Ea9Cbf28a12B235bB", + "account_factory_address": "0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098" + } + }, + "community": { + "url": "https://celo.org/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/ceur.svg", + "name": "Celo Euro", + "alias": "ceur.celo", + "theme": { + "primary": "#a256ff" }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "hidden": true, + "profile": { + "address": "0x0334C579E61aF6922D5deFEF02A361FBb2D6f406", + "chain_id": 42220 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "Celo Euro is a stablecoin for the Celo Community.", + "primary_token": { + "address": "0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73", + "chain_id": 42220 }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/ceur.celo.citizenwallet.xyz.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/ceur.celo" +}, + { "community": { "name": "EUR e-money", From 006f77957f17d87d95c0940c00349502133acff0 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 16:00:04 +0530 Subject: [PATCH 039/148] v5 eure.polygon config from supabase --- assets/config/v5/communities.json | 121 +++++++++++++------------ assets/config/v5/communities.test.json | 121 +++++++++++++------------ 2 files changed, 128 insertions(+), 114 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index 92b6993e..14429964 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -1315,7 +1315,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/gt.celo" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1387,67 +1386,75 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/ceur.celo" }, - { - "community": { - "name": "EUR e-money", - "description": "Token by Monerium EMI, a regulated entity, licensed in the EEA.", - "url": "https://monerium.com/tokens/", - "alias": "eure.polygon", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/eure.svg", - "hidden": true, - "profile": { - "address": "0xF5F7317EDb8E88CaE09071B0C4F0fd6EA20B21f9", - "chain_id": 137 - }, - "primary_token": { - "address": "0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616", - "chain_id": 137 - } - }, - "tokens": { - "137:0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6": { - "standard": "erc20", - "name": "EUR emoney", - "address": "0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6", - "symbol": "EURe", - "decimals": 18, - "chain_id": 137 - } - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "accounts": { - "137:0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616": { - "chain_id": 137, - "entrypoint_address": "0x2027Bde7C276D5F128587E3107c68A488ee31c72", - "paymaster_address": "0xB2cb6b75C2357Ca94dBdF58897E468E45fAC83Ec", - "account_factory_address": "0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616", - "paymaster_type": "cw", - "gas_extra_percentage": 50 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "137:0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6": { + "name": "EUR emoney", + "symbol": "EURe", + "address": "0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6", + "chain_id": 137, + "decimals": 18, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "137:0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616": { + "chain_id": 137, + "paymaster_type": "cw", + "paymaster_address": "0xB2cb6b75C2357Ca94dBdF58897E468E45fAC83Ec", + "entrypoint_address": "0x2027Bde7C276D5F128587E3107c68A488ee31c72", + "gas_extra_percentage": 50, + "account_factory_address": "0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616" }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } + "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 137, + "paymaster_type": "cw-safe", + "paymaster_address": "0xB2cb6b75C2357Ca94dBdF58897E468E45fAC83Ec", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://monerium.com/tokens/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/eure.svg", + "name": "EUR e-money", + "alias": "eure.polygon", + "hidden": true, + "profile": { + "address": "0xF5F7317EDb8E88CaE09071B0C4F0fd6EA20B21f9", + "chain_id": 137 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "Token by Monerium EMI, a regulated entity, licensed in the EEA.", + "primary_token": { + "address": "0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6", + "chain_id": 137 }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/eure.polygon.citizenwallet.xyz.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 137 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/eure.polygon" +}, + { "community": { "name": "USDC on Polygon", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index 09185042..5dfa011e 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -1315,7 +1315,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/gt.celo" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1387,67 +1386,75 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/ceur.celo" }, - { - "community": { - "name": "EUR e-money", - "description": "Token by Monerium EMI, a regulated entity, licensed in the EEA.", - "url": "https://monerium.com/tokens/", - "alias": "eure.polygon", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/eure.svg", - "hidden": true, - "profile": { - "address": "0xF5F7317EDb8E88CaE09071B0C4F0fd6EA20B21f9", - "chain_id": 137 - }, - "primary_token": { - "address": "0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616", - "chain_id": 137 - } - }, - "tokens": { - "137:0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6": { - "standard": "erc20", - "name": "EUR emoney", - "address": "0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6", - "symbol": "EURe", - "decimals": 18, - "chain_id": 137 - } - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "accounts": { - "137:0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616": { - "chain_id": 137, - "entrypoint_address": "0x2027Bde7C276D5F128587E3107c68A488ee31c72", - "paymaster_address": "0xB2cb6b75C2357Ca94dBdF58897E468E45fAC83Ec", - "account_factory_address": "0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616", - "paymaster_type": "cw", - "gas_extra_percentage": 50 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "137:0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6": { + "name": "EUR emoney", + "symbol": "EURe", + "address": "0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6", + "chain_id": 137, + "decimals": 18, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "137:0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616": { + "chain_id": 137, + "paymaster_type": "cw", + "paymaster_address": "0xB2cb6b75C2357Ca94dBdF58897E468E45fAC83Ec", + "entrypoint_address": "0x2027Bde7C276D5F128587E3107c68A488ee31c72", + "gas_extra_percentage": 50, + "account_factory_address": "0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616" }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } + "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 137, + "paymaster_type": "cw-safe", + "paymaster_address": "0xB2cb6b75C2357Ca94dBdF58897E468E45fAC83Ec", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://monerium.com/tokens/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/eure.svg", + "name": "EUR e-money", + "alias": "eure.polygon", + "hidden": true, + "profile": { + "address": "0xF5F7317EDb8E88CaE09071B0C4F0fd6EA20B21f9", + "chain_id": 137 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "Token by Monerium EMI, a regulated entity, licensed in the EEA.", + "primary_token": { + "address": "0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6", + "chain_id": 137 }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/eure.polygon.citizenwallet.xyz.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 137 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/eure.polygon" +}, + { "community": { "name": "USDC on Polygon", From 6b56cdf9cad432d952194834ca2df51017ed9845 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 16:01:32 +0530 Subject: [PATCH 040/148] v5 app config from supabase --- assets/config/v5/communities.json | 125 +++++++++++++------------ assets/config/v5/communities.test.json | 125 +++++++++++++------------ 2 files changed, 132 insertions(+), 118 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index 14429964..b538dcd5 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -1385,7 +1385,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/ceur.celo" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1455,70 +1454,78 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/eure.polygon" }, - { - "community": { - "name": "USDC on Polygon", - "description": "The community of people using USDC on Polygon.", - "url": "https://en.wikipedia.org/wiki/USD_Coin", - "alias": "app", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/usdc.svg", - "hidden": true, - "theme": { - "primary": "#0052ff" - }, - "profile": { - "address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", - "chain_id": 137 - }, - "primary_token": { - "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x270758454C012A1f51428b68aE473D728CCdFe88", - "chain_id": 137 - } - }, - "tokens": { - "137:0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174": { - "standard": "erc20", - "name": "USD Coin", - "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", - "symbol": "USDC", - "decimals": 6, - "chain_id": 137 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "137:0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174": { + "name": "USD Coin", + "symbol": "USDC", + "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", + "chain_id": 137, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "137:0x270758454C012A1f51428b68aE473D728CCdFe88": { + "chain_id": 137, + "paymaster_type": "cw", + "paymaster_address": "0xB5D1C0167E6325466E2918e9fda8cc41384C0291", + "entrypoint_address": "0x466AA6ed2B7Bb829841F5aAEA9e82B840eC0feF9", + "gas_extra_percentage": 50, + "account_factory_address": "0x270758454C012A1f51428b68aE473D728CCdFe88" }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "accounts": { - "137:0x270758454C012A1f51428b68aE473D728CCdFe88": { - "chain_id": 137, - "entrypoint_address": "0x466AA6ed2B7Bb829841F5aAEA9e82B840eC0feF9", - "paymaster_address": "0xB5D1C0167E6325466E2918e9fda8cc41384C0291", - "account_factory_address": "0x270758454C012A1f51428b68aE473D728CCdFe88", - "paymaster_type": "cw", - "gas_extra_percentage": 50 - } + "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 137, + "paymaster_type": "cw-safe", + "paymaster_address": "0xB5D1C0167E6325466E2918e9fda8cc41384C0291", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://en.wikipedia.org/wiki/USD_Coin", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/usdc.svg", + "name": "USDC on Polygon", + "alias": "app", + "theme": { + "primary": "#0052ff" }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } + "hidden": true, + "profile": { + "address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", + "chain_id": 137 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "The community of people using USDC on Polygon.", + "primary_token": { + "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", + "chain_id": 137 }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/app.citizenwallet.xyz.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 137 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/app" +}, + { "community": { "name": "USDC on Base", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index 5dfa011e..b3a26a7b 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -1385,7 +1385,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/ceur.celo" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1455,70 +1454,78 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/eure.polygon" }, - { - "community": { - "name": "USDC on Polygon", - "description": "The community of people using USDC on Polygon.", - "url": "https://en.wikipedia.org/wiki/USD_Coin", - "alias": "app", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/usdc.svg", - "hidden": true, - "theme": { - "primary": "#0052ff" - }, - "profile": { - "address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", - "chain_id": 137 - }, - "primary_token": { - "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x270758454C012A1f51428b68aE473D728CCdFe88", - "chain_id": 137 - } - }, - "tokens": { - "137:0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174": { - "standard": "erc20", - "name": "USD Coin", - "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", - "symbol": "USDC", - "decimals": 6, - "chain_id": 137 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "137:0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174": { + "name": "USD Coin", + "symbol": "USDC", + "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", + "chain_id": 137, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "137:0x270758454C012A1f51428b68aE473D728CCdFe88": { + "chain_id": 137, + "paymaster_type": "cw", + "paymaster_address": "0xB5D1C0167E6325466E2918e9fda8cc41384C0291", + "entrypoint_address": "0x466AA6ed2B7Bb829841F5aAEA9e82B840eC0feF9", + "gas_extra_percentage": 50, + "account_factory_address": "0x270758454C012A1f51428b68aE473D728CCdFe88" }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "accounts": { - "137:0x270758454C012A1f51428b68aE473D728CCdFe88": { - "chain_id": 137, - "entrypoint_address": "0x466AA6ed2B7Bb829841F5aAEA9e82B840eC0feF9", - "paymaster_address": "0xB5D1C0167E6325466E2918e9fda8cc41384C0291", - "account_factory_address": "0x270758454C012A1f51428b68aE473D728CCdFe88", - "paymaster_type": "cw", - "gas_extra_percentage": 50 - } + "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 137, + "paymaster_type": "cw-safe", + "paymaster_address": "0xB5D1C0167E6325466E2918e9fda8cc41384C0291", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://en.wikipedia.org/wiki/USD_Coin", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/usdc.svg", + "name": "USDC on Polygon", + "alias": "app", + "theme": { + "primary": "#0052ff" }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } + "hidden": true, + "profile": { + "address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", + "chain_id": 137 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "The community of people using USDC on Polygon.", + "primary_token": { + "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", + "chain_id": 137 }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/app.citizenwallet.xyz.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 137 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/app" +}, + { "community": { "name": "USDC on Base", From 8f59dd4be057a11741ca98933213f5e39f44fc2b Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 16:03:11 +0530 Subject: [PATCH 041/148] v5 usdc.base config from supabase --- assets/config/v5/communities.json | 125 +++++++++++++------------ assets/config/v5/communities.test.json | 125 +++++++++++++------------ 2 files changed, 132 insertions(+), 118 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index b538dcd5..1ea4c712 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -1453,7 +1453,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/eure.polygon" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1526,70 +1525,78 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/app" }, - { - "community": { - "name": "USDC on Base", - "description": "The community of people using USDC on Base.", - "url": "https://en.wikipedia.org/wiki/USD_Coin", - "alias": "usdc.base", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/usdc.svg", - "hidden": true, - "theme": { - "primary": "#0052ff" - }, - "profile": { - "address": "0x51Ef5Add405CCF63c206A80AF8c2B3cEE0282830", - "chain_id": 8453 - }, - "primary_token": { - "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", - "chain_id": 8453 - }, - "primary_account_factory": { - "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", - "chain_id": 8453 - } - }, - "tokens": { - "8453:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913": { - "standard": "erc20", - "name": "USD Coin", - "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", - "symbol": "USDC", - "decimals": 6, - "chain_id": 8453 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://basescan.org", + "name": "Base Explorer" + }, + "chains": { + "8453": { + "id": 8453, + "node": { + "url": "https://8453.engine.citizenwallet.xyz", + "ws_url": "wss://8453.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "8453:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913": { + "name": "USD Coin", + "symbol": "USDC", + "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", + "chain_id": 8453, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "8453:0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99": { + "chain_id": 8453, + "paymaster_type": "cw", + "paymaster_address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", + "entrypoint_address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", + "gas_extra_percentage": 50, + "account_factory_address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99" }, - "scan": { - "url": "https://basescan.org", - "name": "Base Explorer" - }, - "accounts": { - "8453:0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99": { - "chain_id": 8453, - "entrypoint_address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", - "paymaster_address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", - "account_factory_address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", - "paymaster_type": "cw", - "gas_extra_percentage": 50 - } + "8453:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 8453, + "paymaster_type": "cw-safe", + "paymaster_address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://en.wikipedia.org/wiki/USD_Coin", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/usdc.svg", + "name": "USDC on Base", + "alias": "usdc.base", + "theme": { + "primary": "#0052ff" }, - "chains": { - "8453": { - "id": 8453, - "node": { - "url": "https://8453.engine.citizenwallet.xyz", - "ws_url": "wss://8453.engine.citizenwallet.xyz" - } - } + "hidden": true, + "profile": { + "address": "0x51Ef5Add405CCF63c206A80AF8c2B3cEE0282830", + "chain_id": 8453 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "The community of people using USDC on Base.", + "primary_token": { + "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", + "chain_id": 8453 }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/usdc.base.citizenwallet.xyz.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 8453 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/usdc.base" +}, + { "community": { "name": "OAK Community", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index b3a26a7b..4bf7a201 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -1453,7 +1453,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/eure.polygon" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1526,70 +1525,78 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/app" }, - { - "community": { - "name": "USDC on Base", - "description": "The community of people using USDC on Base.", - "url": "https://en.wikipedia.org/wiki/USD_Coin", - "alias": "usdc.base", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/usdc.svg", - "hidden": true, - "theme": { - "primary": "#0052ff" - }, - "profile": { - "address": "0x51Ef5Add405CCF63c206A80AF8c2B3cEE0282830", - "chain_id": 8453 - }, - "primary_token": { - "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", - "chain_id": 8453 - }, - "primary_account_factory": { - "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", - "chain_id": 8453 - } - }, - "tokens": { - "8453:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913": { - "standard": "erc20", - "name": "USD Coin", - "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", - "symbol": "USDC", - "decimals": 6, - "chain_id": 8453 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://basescan.org", + "name": "Base Explorer" + }, + "chains": { + "8453": { + "id": 8453, + "node": { + "url": "https://8453.engine.citizenwallet.xyz", + "ws_url": "wss://8453.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "8453:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913": { + "name": "USD Coin", + "symbol": "USDC", + "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", + "chain_id": 8453, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "8453:0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99": { + "chain_id": 8453, + "paymaster_type": "cw", + "paymaster_address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", + "entrypoint_address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", + "gas_extra_percentage": 50, + "account_factory_address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99" }, - "scan": { - "url": "https://basescan.org", - "name": "Base Explorer" - }, - "accounts": { - "8453:0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99": { - "chain_id": 8453, - "entrypoint_address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", - "paymaster_address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", - "account_factory_address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", - "paymaster_type": "cw", - "gas_extra_percentage": 50 - } + "8453:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 8453, + "paymaster_type": "cw-safe", + "paymaster_address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://en.wikipedia.org/wiki/USD_Coin", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/usdc.svg", + "name": "USDC on Base", + "alias": "usdc.base", + "theme": { + "primary": "#0052ff" }, - "chains": { - "8453": { - "id": 8453, - "node": { - "url": "https://8453.engine.citizenwallet.xyz", - "ws_url": "wss://8453.engine.citizenwallet.xyz" - } - } + "hidden": true, + "profile": { + "address": "0x51Ef5Add405CCF63c206A80AF8c2B3cEE0282830", + "chain_id": 8453 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "The community of people using USDC on Base.", + "primary_token": { + "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", + "chain_id": 8453 }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/usdc.base.citizenwallet.xyz.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 8453 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/usdc.base" +}, + { "community": { "name": "OAK Community", From 8746e496c6499bbb52b8b96679ebd856a23814cc Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 16:04:31 +0530 Subject: [PATCH 042/148] v5 wallet.oak.community config from supabase --- assets/config/v5/communities.json | 121 +++++++++++++------------ assets/config/v5/communities.test.json | 121 +++++++++++++------------ 2 files changed, 128 insertions(+), 114 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index 1ea4c712..18a5dde7 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -1524,7 +1524,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/app" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1597,67 +1596,75 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/usdc.base" }, - { - "community": { - "name": "OAK Community", - "description": "A community currency for the city of Oakland.", - "url": "https://www.oak.community/", - "alias": "wallet.oak.community", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/oak.svg", - "custom_domain": "wallet.oak.community", - "hidden": true, - "profile": { - "address": "0xFE213c74e25505B232CE4C7f89647408bE6f71d2", - "chain_id": 8453 - }, - "primary_token": { - "address": "0x845598Da418890a674cbaBA26b70807aF0c61dFE", - "chain_id": 8453 - }, - "primary_account_factory": { - "address": "0x9406Cc6185a346906296840746125a0E44976454", - "chain_id": 8453 - } - }, - "tokens": { - "8453:0x845598Da418890a674cbaBA26b70807aF0c61dFE": { - "standard": "erc20", - "name": "OAK Community Currency", - "address": "0x845598Da418890a674cbaBA26b70807aF0c61dFE", - "symbol": "OAK", - "decimals": 6, - "chain_id": 8453 - } - }, - "scan": { - "url": "https://basescan.org", - "name": "Base Explorer" - }, - "accounts": { - "8453:0x9406Cc6185a346906296840746125a0E44976454": { - "chain_id": 8453, - "entrypoint_address": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", - "paymaster_address": "0x123", - "account_factory_address": "0x9406Cc6185a346906296840746125a0E44976454", - "paymaster_type": "payg" +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://basescan.org", + "name": "Base Explorer" + }, + "chains": { + "8453": { + "id": 8453, + "node": { + "url": "https://8453.engine.citizenwallet.xyz", + "ws_url": "wss://8453.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "8453:0x845598Da418890a674cbaBA26b70807aF0c61dFE": { + "name": "OAK Community Currency", + "symbol": "OAK", + "address": "0x845598Da418890a674cbaBA26b70807aF0c61dFE", + "chain_id": 8453, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "8453:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 8453, + "paymaster_type": "cw-safe", + "paymaster_address": "0x123", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" }, - "chains": { - "8453": { - "id": 8453, - "node": { - "url": "https://8453.engine.citizenwallet.xyz", - "ws_url": "wss://8453.engine.citizenwallet.xyz" - } - } + "8453:0x9406Cc6185a346906296840746125a0E44976454": { + "chain_id": 8453, + "paymaster_type": "payg", + "paymaster_address": "0x123", + "entrypoint_address": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", + "account_factory_address": "0x9406Cc6185a346906296840746125a0E44976454" + } + }, + "community": { + "url": "https://www.oak.community/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/oak.svg", + "name": "OAK Community", + "alias": "wallet.oak.community", + "hidden": true, + "profile": { + "address": "0xFE213c74e25505B232CE4C7f89647408bE6f71d2", + "chain_id": 8453 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "A community currency for the city of Oakland.", + "custom_domain": "wallet.oak.community", + "primary_token": { + "address": "0x845598Da418890a674cbaBA26b70807aF0c61dFE", + "chain_id": 8453 }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.oak.community.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 8453 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.oak.community" +}, + { "community": { "name": "Stable Coin", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index 4bf7a201..819b99c3 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -1524,7 +1524,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/app" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1597,67 +1596,75 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/usdc.base" }, - { - "community": { - "name": "OAK Community", - "description": "A community currency for the city of Oakland.", - "url": "https://www.oak.community/", - "alias": "wallet.oak.community", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/oak.svg", - "custom_domain": "wallet.oak.community", - "hidden": true, - "profile": { - "address": "0xFE213c74e25505B232CE4C7f89647408bE6f71d2", - "chain_id": 8453 - }, - "primary_token": { - "address": "0x845598Da418890a674cbaBA26b70807aF0c61dFE", - "chain_id": 8453 - }, - "primary_account_factory": { - "address": "0x9406Cc6185a346906296840746125a0E44976454", - "chain_id": 8453 - } - }, - "tokens": { - "8453:0x845598Da418890a674cbaBA26b70807aF0c61dFE": { - "standard": "erc20", - "name": "OAK Community Currency", - "address": "0x845598Da418890a674cbaBA26b70807aF0c61dFE", - "symbol": "OAK", - "decimals": 6, - "chain_id": 8453 - } - }, - "scan": { - "url": "https://basescan.org", - "name": "Base Explorer" - }, - "accounts": { - "8453:0x9406Cc6185a346906296840746125a0E44976454": { - "chain_id": 8453, - "entrypoint_address": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", - "paymaster_address": "0x123", - "account_factory_address": "0x9406Cc6185a346906296840746125a0E44976454", - "paymaster_type": "payg" +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://basescan.org", + "name": "Base Explorer" + }, + "chains": { + "8453": { + "id": 8453, + "node": { + "url": "https://8453.engine.citizenwallet.xyz", + "ws_url": "wss://8453.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "8453:0x845598Da418890a674cbaBA26b70807aF0c61dFE": { + "name": "OAK Community Currency", + "symbol": "OAK", + "address": "0x845598Da418890a674cbaBA26b70807aF0c61dFE", + "chain_id": 8453, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "8453:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 8453, + "paymaster_type": "cw-safe", + "paymaster_address": "0x123", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" }, - "chains": { - "8453": { - "id": 8453, - "node": { - "url": "https://8453.engine.citizenwallet.xyz", - "ws_url": "wss://8453.engine.citizenwallet.xyz" - } - } + "8453:0x9406Cc6185a346906296840746125a0E44976454": { + "chain_id": 8453, + "paymaster_type": "payg", + "paymaster_address": "0x123", + "entrypoint_address": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", + "account_factory_address": "0x9406Cc6185a346906296840746125a0E44976454" + } + }, + "community": { + "url": "https://www.oak.community/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/oak.svg", + "name": "OAK Community", + "alias": "wallet.oak.community", + "hidden": true, + "profile": { + "address": "0xFE213c74e25505B232CE4C7f89647408bE6f71d2", + "chain_id": 8453 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "A community currency for the city of Oakland.", + "custom_domain": "wallet.oak.community", + "primary_token": { + "address": "0x845598Da418890a674cbaBA26b70807aF0c61dFE", + "chain_id": 8453 }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.oak.community.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 8453 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.oak.community" +}, + { "community": { "name": "Stable Coin", From dad9d9e786a9a4545dba02229974fb9e0e8296fc Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 16:05:59 +0530 Subject: [PATCH 043/148] v5 sbc.polygon config from supabase --- assets/config/v5/communities.json | 119 +++++++++++++------------ assets/config/v5/communities.test.json | 119 +++++++++++++------------ 2 files changed, 126 insertions(+), 112 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index 18a5dde7..39d8942c 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -1595,7 +1595,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/usdc.base" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1665,66 +1664,74 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.oak.community" }, - { - "community": { - "name": "Stable Coin", - "description": "SBC is a digital dollar stablecoin issued by Brale", - "url": "https://brale.xyz/", - "alias": "sbc.polygon", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sbc.svg", - "hidden": true, - "profile": { - "address": "0xcA0a75EF803a364C83c5EAE7Eb889aE7419c9dF2", - "chain_id": 137 - }, - "primary_token": { - "address": "0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5", - "chain_id": 137 - } - }, - "tokens": { - "137:0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798": { - "standard": "erc20", - "name": "Stable Coin", - "address": "0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798", - "symbol": "SBC", - "decimals": 18, - "chain_id": 137 - } - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "accounts": { - "137:0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5": { - "chain_id": 137, - "entrypoint_address": "0xe84423Ba1A3f3535B09237245e22dBda5E27eB88", - "paymaster_address": "0x123", - "account_factory_address": "0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5", - "paymaster_type": "cw" +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "137:0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798": { + "name": "Stable Coin", + "symbol": "SBC", + "address": "0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798", + "chain_id": 137, + "decimals": 18, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "137:0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5": { + "chain_id": 137, + "paymaster_type": "cw", + "paymaster_address": "0x123", + "entrypoint_address": "0xe84423Ba1A3f3535B09237245e22dBda5E27eB88", + "account_factory_address": "0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5" }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } + "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 137, + "paymaster_type": "cw-safe", + "paymaster_address": "0x123", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://brale.xyz/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sbc.svg", + "name": "Stable Coin", + "alias": "sbc.polygon", + "hidden": true, + "profile": { + "address": "0xcA0a75EF803a364C83c5EAE7Eb889aE7419c9dF2", + "chain_id": 137 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "SBC is a digital dollar stablecoin issued by Brale", + "primary_token": { + "address": "0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798", + "chain_id": 137 }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/sbc.polygon.citizenwallet.xyz.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 137 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/sbc.polygon" +}, + { "community": { "name": "Zinne.brussels", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index 819b99c3..e785bef5 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -1595,7 +1595,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/usdc.base" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1665,66 +1664,74 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.oak.community" }, - { - "community": { - "name": "Stable Coin", - "description": "SBC is a digital dollar stablecoin issued by Brale", - "url": "https://brale.xyz/", - "alias": "sbc.polygon", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sbc.svg", - "hidden": true, - "profile": { - "address": "0xcA0a75EF803a364C83c5EAE7Eb889aE7419c9dF2", - "chain_id": 137 - }, - "primary_token": { - "address": "0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5", - "chain_id": 137 - } - }, - "tokens": { - "137:0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798": { - "standard": "erc20", - "name": "Stable Coin", - "address": "0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798", - "symbol": "SBC", - "decimals": 18, - "chain_id": 137 - } - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "accounts": { - "137:0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5": { - "chain_id": 137, - "entrypoint_address": "0xe84423Ba1A3f3535B09237245e22dBda5E27eB88", - "paymaster_address": "0x123", - "account_factory_address": "0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5", - "paymaster_type": "cw" +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "137:0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798": { + "name": "Stable Coin", + "symbol": "SBC", + "address": "0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798", + "chain_id": 137, + "decimals": 18, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "137:0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5": { + "chain_id": 137, + "paymaster_type": "cw", + "paymaster_address": "0x123", + "entrypoint_address": "0xe84423Ba1A3f3535B09237245e22dBda5E27eB88", + "account_factory_address": "0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5" }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } + "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 137, + "paymaster_type": "cw-safe", + "paymaster_address": "0x123", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://brale.xyz/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sbc.svg", + "name": "Stable Coin", + "alias": "sbc.polygon", + "hidden": true, + "profile": { + "address": "0xcA0a75EF803a364C83c5EAE7Eb889aE7419c9dF2", + "chain_id": 137 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "SBC is a digital dollar stablecoin issued by Brale", + "primary_token": { + "address": "0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798", + "chain_id": 137 }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/sbc.polygon.citizenwallet.xyz.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 137 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/sbc.polygon" +}, + { "community": { "name": "Zinne.brussels", From 6196e3ce481e29322fd6d970d9c2f5b4ca61ea75 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 16:07:17 +0530 Subject: [PATCH 044/148] v5 zinne config from supabase --- assets/config/v5/communities.json | 119 +++++++++++++------------ assets/config/v5/communities.test.json | 119 +++++++++++++------------ 2 files changed, 126 insertions(+), 112 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index 39d8942c..e5b152f2 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -1663,7 +1663,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.oak.community" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1732,66 +1731,74 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/sbc.polygon" }, - { - "community": { - "name": "Zinne.brussels", - "description": "A community currency for the city of Brussels", - "url": "https://zinne.brussels", - "alias": "zinne", - "logo": "https://citizenwallet.xyz/zinne/zinne-coin.svg", - "hidden": true, - "profile": { - "address": "0x23DB3D3Da510e60aF40902A04850E1F3a744905c", - "chain_id": 137 - }, - "primary_token": { - "address": "0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x11af2639817692D2b805BcE0e1e405E530B20006", - "chain_id": 137 - } - }, - "tokens": { - "137:0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D": { - "standard": "erc20", - "name": "Zinne.brussels Token", - "address": "0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D", - "symbol": "ZINNE", - "decimals": 6, - "chain_id": 137 - } - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "accounts": { - "137:0x11af2639817692D2b805BcE0e1e405E530B20006": { - "chain_id": 137, - "entrypoint_address": "0xF5507B3042f1C63625D856a2ABFF046243A5D74e", - "paymaster_address": "0xBb796D122Ec1aBDeD081D50B06a072f981c7E62b", - "account_factory_address": "0x11af2639817692D2b805BcE0e1e405E530B20006", - "paymaster_type": "cw" +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "137:0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D": { + "name": "Zinne.brussels Token", + "symbol": "ZINNE", + "address": "0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D", + "chain_id": 137, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "137:0x11af2639817692D2b805BcE0e1e405E530B20006": { + "chain_id": 137, + "paymaster_type": "cw", + "paymaster_address": "0xBb796D122Ec1aBDeD081D50B06a072f981c7E62b", + "entrypoint_address": "0xF5507B3042f1C63625D856a2ABFF046243A5D74e", + "account_factory_address": "0x11af2639817692D2b805BcE0e1e405E530B20006" }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } + "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 137, + "paymaster_type": "cw-safe", + "paymaster_address": "0xBb796D122Ec1aBDeD081D50B06a072f981c7E62b", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://zinne.brussels", + "logo": "https://citizenwallet.xyz/zinne/zinne-coin.svg", + "name": "Zinne.brussels", + "alias": "zinne", + "hidden": true, + "profile": { + "address": "0x23DB3D3Da510e60aF40902A04850E1F3a744905c", + "chain_id": 137 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "A community currency for the city of Brussels", + "primary_token": { + "address": "0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D", + "chain_id": 137 }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/zinne.brussels.citizenwallet.xyz.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 137 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/zinne" +}, + { "community": { "name": "Regens Unite Time Bank", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index e785bef5..972edd46 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -1663,7 +1663,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.oak.community" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1732,66 +1731,74 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/sbc.polygon" }, - { - "community": { - "name": "Zinne.brussels", - "description": "A community currency for the city of Brussels", - "url": "https://zinne.brussels", - "alias": "zinne", - "logo": "https://citizenwallet.xyz/zinne/zinne-coin.svg", - "hidden": true, - "profile": { - "address": "0x23DB3D3Da510e60aF40902A04850E1F3a744905c", - "chain_id": 137 - }, - "primary_token": { - "address": "0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x11af2639817692D2b805BcE0e1e405E530B20006", - "chain_id": 137 - } - }, - "tokens": { - "137:0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D": { - "standard": "erc20", - "name": "Zinne.brussels Token", - "address": "0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D", - "symbol": "ZINNE", - "decimals": 6, - "chain_id": 137 - } - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "accounts": { - "137:0x11af2639817692D2b805BcE0e1e405E530B20006": { - "chain_id": 137, - "entrypoint_address": "0xF5507B3042f1C63625D856a2ABFF046243A5D74e", - "paymaster_address": "0xBb796D122Ec1aBDeD081D50B06a072f981c7E62b", - "account_factory_address": "0x11af2639817692D2b805BcE0e1e405E530B20006", - "paymaster_type": "cw" +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "137:0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D": { + "name": "Zinne.brussels Token", + "symbol": "ZINNE", + "address": "0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D", + "chain_id": 137, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "137:0x11af2639817692D2b805BcE0e1e405E530B20006": { + "chain_id": 137, + "paymaster_type": "cw", + "paymaster_address": "0xBb796D122Ec1aBDeD081D50B06a072f981c7E62b", + "entrypoint_address": "0xF5507B3042f1C63625D856a2ABFF046243A5D74e", + "account_factory_address": "0x11af2639817692D2b805BcE0e1e405E530B20006" }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } + "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 137, + "paymaster_type": "cw-safe", + "paymaster_address": "0xBb796D122Ec1aBDeD081D50B06a072f981c7E62b", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://zinne.brussels", + "logo": "https://citizenwallet.xyz/zinne/zinne-coin.svg", + "name": "Zinne.brussels", + "alias": "zinne", + "hidden": true, + "profile": { + "address": "0x23DB3D3Da510e60aF40902A04850E1F3a744905c", + "chain_id": 137 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "A community currency for the city of Brussels", + "primary_token": { + "address": "0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D", + "chain_id": 137 }, - "plugins": [], - "config_location": "https://config.internal.citizenwallet.xyz/v4/zinne.brussels.citizenwallet.xyz.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 137 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/zinne" +}, + { "community": { "name": "Regens Unite Time Bank", From 219ef6003370108bb5c1289f1196cbeb8de6eca2 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 16:08:42 +0530 Subject: [PATCH 045/148] v5 timebank.regensunite.earth config from supabase --- assets/config/v5/communities.json | 135 +++++++++++++------------ assets/config/v5/communities.test.json | 135 +++++++++++++------------ 2 files changed, 142 insertions(+), 128 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index e5b152f2..2296af3f 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -1730,7 +1730,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/sbc.polygon" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1799,74 +1798,82 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/zinne" }, - { - "community": { - "name": "Regens Unite Time Bank", - "description": "Make time to regen", - "url": "https://regensunite.earth", - "alias": "timebank.regensunite.earth", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", - "hidden": true, - "profile": { - "address": "0x605A827DF8C405D16Ec70AAb8d9a47D21db45c09", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x186DaBD027e228C988777907465807FDab270894", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x39b77d77f7677997871b304094a05295eb71e240", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x186DaBD027e228C988777907465807FDab270894": { - "standard": "erc20", - "name": "Regen Hour", - "address": "0x186DaBD027e228C988777907465807FDab270894", - "symbol": "rHour", - "decimals": 6, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "CELO Explorer" - }, - "accounts": { - "42220:0x39b77d77f7677997871b304094a05295eb71e240": { - "chain_id": 42220, - "entrypoint_address": "0x41176F0C9b8f795Cb99e2DD5Db16017978eeFa4d", - "paymaster_address": "0xe45858bf63176595c2920822581917c7C705a12f", - "account_factory_address": "0x39b77d77f7677997871b304094a05295eb71e240", - "paymaster_type": "cw" +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "42220:0x186DaBD027e228C988777907465807FDab270894": { + "name": "Regen Hour", + "symbol": "rHour", + "address": "0x186DaBD027e228C988777907465807FDab270894", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://marketplace.citizenwallet.xyz/timebank.regensunite.earth", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", + "name": "Market", + "signature": true, + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "42220:0x39b77d77f7677997871b304094a05295eb71e240": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0xe45858bf63176595c2920822581917c7C705a12f", + "entrypoint_address": "0x41176F0C9b8f795Cb99e2DD5Db16017978eeFa4d", + "account_factory_address": "0x39b77d77f7677997871b304094a05295eb71e240" }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0xe45858bf63176595c2920822581917c7C705a12f", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://regensunite.earth", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", + "name": "Regens Unite Time Bank", + "alias": "timebank.regensunite.earth", + "hidden": true, + "profile": { + "address": "0x605A827DF8C405D16Ec70AAb8d9a47D21db45c09", + "chain_id": 42220 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "Make time to regen", + "primary_token": { + "address": "0x186DaBD027e228C988777907465807FDab270894", + "chain_id": 42220 }, - "plugins": [ - { - "name": "Market", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", - "url": "https://marketplace.citizenwallet.xyz/timebank.regensunite.earth", - "launch_mode": "webview", - "signature": true - } - ], - "config_location": "https://timebank.regensunite.earth/indexer", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/timebank.regensunite.earth" +}, + { "community": { "name": "MOOS Token", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index 972edd46..b212dc23 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -1730,7 +1730,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/sbc.polygon" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1799,74 +1798,82 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/zinne" }, - { - "community": { - "name": "Regens Unite Time Bank", - "description": "Make time to regen", - "url": "https://regensunite.earth", - "alias": "timebank.regensunite.earth", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", - "hidden": true, - "profile": { - "address": "0x605A827DF8C405D16Ec70AAb8d9a47D21db45c09", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x186DaBD027e228C988777907465807FDab270894", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x39b77d77f7677997871b304094a05295eb71e240", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x186DaBD027e228C988777907465807FDab270894": { - "standard": "erc20", - "name": "Regen Hour", - "address": "0x186DaBD027e228C988777907465807FDab270894", - "symbol": "rHour", - "decimals": 6, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "CELO Explorer" - }, - "accounts": { - "42220:0x39b77d77f7677997871b304094a05295eb71e240": { - "chain_id": 42220, - "entrypoint_address": "0x41176F0C9b8f795Cb99e2DD5Db16017978eeFa4d", - "paymaster_address": "0xe45858bf63176595c2920822581917c7C705a12f", - "account_factory_address": "0x39b77d77f7677997871b304094a05295eb71e240", - "paymaster_type": "cw" +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "42220:0x186DaBD027e228C988777907465807FDab270894": { + "name": "Regen Hour", + "symbol": "rHour", + "address": "0x186DaBD027e228C988777907465807FDab270894", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://marketplace.citizenwallet.xyz/timebank.regensunite.earth", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", + "name": "Market", + "signature": true, + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "42220:0x39b77d77f7677997871b304094a05295eb71e240": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0xe45858bf63176595c2920822581917c7C705a12f", + "entrypoint_address": "0x41176F0C9b8f795Cb99e2DD5Db16017978eeFa4d", + "account_factory_address": "0x39b77d77f7677997871b304094a05295eb71e240" }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0xe45858bf63176595c2920822581917c7C705a12f", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://regensunite.earth", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", + "name": "Regens Unite Time Bank", + "alias": "timebank.regensunite.earth", + "hidden": true, + "profile": { + "address": "0x605A827DF8C405D16Ec70AAb8d9a47D21db45c09", + "chain_id": 42220 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "Make time to regen", + "primary_token": { + "address": "0x186DaBD027e228C988777907465807FDab270894", + "chain_id": 42220 }, - "plugins": [ - { - "name": "Market", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", - "url": "https://marketplace.citizenwallet.xyz/timebank.regensunite.earth", - "launch_mode": "webview", - "signature": true - } - ], - "config_location": "https://timebank.regensunite.earth/indexer", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/timebank.regensunite.earth" +}, + { "community": { "name": "MOOS Token", From d47cdfa1f431e85c8092db7209a3f7a50a8c49af Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 16:10:00 +0530 Subject: [PATCH 046/148] v5 moos config from supabase --- assets/config/v5/communities.json | 135 +++++++++++++------------ assets/config/v5/communities.test.json | 135 +++++++++++++------------ 2 files changed, 142 insertions(+), 128 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index 2296af3f..fb92e779 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -1797,7 +1797,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/zinne" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1874,74 +1873,82 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/timebank.regensunite.earth" }, - { - "community": { - "name": "MOOS Token", - "description": "A community currency for MOOS.", - "url": "https://www.moos.garden/", - "alias": "moos", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/moos.svg", - "hidden": true, - "profile": { - "address": "0x2e4542Be47408d05F41703386eFaf4338Ee1D341", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x671f0662de72268d0f3966Fb62dFc6ee6389e244", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3": { - "standard": "erc20", - "name": "MOOS Token", - "address": "0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3", - "symbol": "MOOS", - "decimals": 6, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "accounts": { - "42220:0x671f0662de72268d0f3966Fb62dFc6ee6389e244": { - "chain_id": 42220, - "entrypoint_address": "0x45a8e6AaDCc48D1Ce19eCbE07Ccd3a536EF712ed", - "paymaster_address": "0x55E519bfD63c7152D9F7B88Acd712A37F0BEC482", - "account_factory_address": "0x671f0662de72268d0f3966Fb62dFc6ee6389e244", - "paymaster_type": "cw" +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "42220:0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3": { + "name": "MOOS Token", + "symbol": "MOOS", + "address": "0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://marketplace.citizenwallet.xyz/moos", + "icon": "https://moos.citizenwallet.xyz/wallet-config/_images/moos.svg", + "name": "Market", + "signature": true, + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "42220:0x671f0662de72268d0f3966Fb62dFc6ee6389e244": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x55E519bfD63c7152D9F7B88Acd712A37F0BEC482", + "entrypoint_address": "0x45a8e6AaDCc48D1Ce19eCbE07Ccd3a536EF712ed", + "account_factory_address": "0x671f0662de72268d0f3966Fb62dFc6ee6389e244" }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x55E519bfD63c7152D9F7B88Acd712A37F0BEC482", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://www.moos.garden/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/moos.svg", + "name": "MOOS Token", + "alias": "moos", + "hidden": true, + "profile": { + "address": "0x2e4542Be47408d05F41703386eFaf4338Ee1D341", + "chain_id": 42220 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "A community currency for MOOS.", + "primary_token": { + "address": "0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3", + "chain_id": 42220 }, - "plugins": [ - { - "name": "Market", - "icon": "https://moos.citizenwallet.xyz/wallet-config/_images/moos.svg", - "url": "https://marketplace.citizenwallet.xyz/moos", - "launch_mode": "webview", - "signature": true - } - ], - "config_location": "https://config.internal.citizenwallet.xyz/v4/moos.citizenwallet.xyz.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/moos" +}, + { "community": { "name": "Bonne Heure", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index b212dc23..d8ecfc7a 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -1797,7 +1797,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/zinne" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1874,74 +1873,82 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/timebank.regensunite.earth" }, - { - "community": { - "name": "MOOS Token", - "description": "A community currency for MOOS.", - "url": "https://www.moos.garden/", - "alias": "moos", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/moos.svg", - "hidden": true, - "profile": { - "address": "0x2e4542Be47408d05F41703386eFaf4338Ee1D341", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x671f0662de72268d0f3966Fb62dFc6ee6389e244", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3": { - "standard": "erc20", - "name": "MOOS Token", - "address": "0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3", - "symbol": "MOOS", - "decimals": 6, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "accounts": { - "42220:0x671f0662de72268d0f3966Fb62dFc6ee6389e244": { - "chain_id": 42220, - "entrypoint_address": "0x45a8e6AaDCc48D1Ce19eCbE07Ccd3a536EF712ed", - "paymaster_address": "0x55E519bfD63c7152D9F7B88Acd712A37F0BEC482", - "account_factory_address": "0x671f0662de72268d0f3966Fb62dFc6ee6389e244", - "paymaster_type": "cw" +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "42220:0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3": { + "name": "MOOS Token", + "symbol": "MOOS", + "address": "0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://marketplace.citizenwallet.xyz/moos", + "icon": "https://moos.citizenwallet.xyz/wallet-config/_images/moos.svg", + "name": "Market", + "signature": true, + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "42220:0x671f0662de72268d0f3966Fb62dFc6ee6389e244": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x55E519bfD63c7152D9F7B88Acd712A37F0BEC482", + "entrypoint_address": "0x45a8e6AaDCc48D1Ce19eCbE07Ccd3a536EF712ed", + "account_factory_address": "0x671f0662de72268d0f3966Fb62dFc6ee6389e244" }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x55E519bfD63c7152D9F7B88Acd712A37F0BEC482", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://www.moos.garden/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/moos.svg", + "name": "MOOS Token", + "alias": "moos", + "hidden": true, + "profile": { + "address": "0x2e4542Be47408d05F41703386eFaf4338Ee1D341", + "chain_id": 42220 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "A community currency for MOOS.", + "primary_token": { + "address": "0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3", + "chain_id": 42220 }, - "plugins": [ - { - "name": "Market", - "icon": "https://moos.citizenwallet.xyz/wallet-config/_images/moos.svg", - "url": "https://marketplace.citizenwallet.xyz/moos", - "launch_mode": "webview", - "signature": true - } - ], - "config_location": "https://config.internal.citizenwallet.xyz/v4/moos.citizenwallet.xyz.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/moos" +}, + { "community": { "name": "Bonne Heure", From 7a5b27e9824d3d0e5b3e9fafa719689d0839d5e6 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 16:11:34 +0530 Subject: [PATCH 047/148] v5 selcoupdepouce config from supabase --- assets/config/v5/communities.json | 135 +++++++++++++------------ assets/config/v5/communities.test.json | 135 +++++++++++++------------ 2 files changed, 142 insertions(+), 128 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index fb92e779..afac98a6 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -1872,7 +1872,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/timebank.regensunite.earth" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1949,74 +1948,82 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/moos" }, - { - "community": { - "name": "Bonne Heure", - "description": "Système d'Échange Local de Villers-la-Ville", - "url": "https://selcoupdepouce.be", - "alias": "selcoupdepouce", - "logo": "https://topup.citizenwallet.xyz/communities/selcoupdepouce/sel-coin.svg", - "hidden": true, - "profile": { - "address": "0xfB8F1e7ED42599638B3c509679E2F43937002C56", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3": { - "standard": "erc20", - "name": "Bonne Heure", - "address": "0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3", - "symbol": "BHR", - "decimals": 6, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "accounts": { - "42220:0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284": { - "chain_id": 42220, - "entrypoint_address": "0xA90904F33df36899d810d040b8d5b3b77265Bb05", - "paymaster_address": "0x635032605337aB36A46D767905108e67EE687a72", - "account_factory_address": "0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284", - "paymaster_type": "cw" +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "42220:0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3": { + "name": "Bonne Heure", + "symbol": "BHR", + "address": "0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://marketplace.citizenwallet.xyz/selcoupdepouce", + "icon": "https://marketplace.citizenwallet.xyz/marketplace.svg", + "name": "Market", + "signature": true, + "launch_mode": "browser" + } + ], + "version": 5, + "accounts": { + "42220:0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x635032605337aB36A46D767905108e67EE687a72", + "entrypoint_address": "0xA90904F33df36899d810d040b8d5b3b77265Bb05", + "account_factory_address": "0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284" }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x635032605337aB36A46D767905108e67EE687a72", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://selcoupdepouce.be", + "logo": "https://topup.citizenwallet.xyz/communities/selcoupdepouce/sel-coin.svg", + "name": "Bonne Heure", + "alias": "selcoupdepouce", + "hidden": true, + "profile": { + "address": "0xfB8F1e7ED42599638B3c509679E2F43937002C56", + "chain_id": 42220 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "Système d'Échange Local de Villers-la-Ville", + "primary_token": { + "address": "0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3", + "chain_id": 42220 }, - "plugins": [ - { - "name": "Market", - "icon": "https://marketplace.citizenwallet.xyz/marketplace.svg", - "url": "https://marketplace.citizenwallet.xyz/selcoupdepouce", - "launch_mode": "browser", - "signature": true - } - ], - "config_location": "https://config.internal.citizenwallet.xyz/v4/selcoupdepouce.citizenwallet.xyz.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/selcoupdepouce" +}, + { "community": { "name": "CI token", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index d8ecfc7a..16c70375 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -1872,7 +1872,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/timebank.regensunite.earth" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -1949,74 +1948,82 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/moos" }, - { - "community": { - "name": "Bonne Heure", - "description": "Système d'Échange Local de Villers-la-Ville", - "url": "https://selcoupdepouce.be", - "alias": "selcoupdepouce", - "logo": "https://topup.citizenwallet.xyz/communities/selcoupdepouce/sel-coin.svg", - "hidden": true, - "profile": { - "address": "0xfB8F1e7ED42599638B3c509679E2F43937002C56", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3": { - "standard": "erc20", - "name": "Bonne Heure", - "address": "0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3", - "symbol": "BHR", - "decimals": 6, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "accounts": { - "42220:0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284": { - "chain_id": 42220, - "entrypoint_address": "0xA90904F33df36899d810d040b8d5b3b77265Bb05", - "paymaster_address": "0x635032605337aB36A46D767905108e67EE687a72", - "account_factory_address": "0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284", - "paymaster_type": "cw" +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "42220:0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3": { + "name": "Bonne Heure", + "symbol": "BHR", + "address": "0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://marketplace.citizenwallet.xyz/selcoupdepouce", + "icon": "https://marketplace.citizenwallet.xyz/marketplace.svg", + "name": "Market", + "signature": true, + "launch_mode": "browser" + } + ], + "version": 5, + "accounts": { + "42220:0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x635032605337aB36A46D767905108e67EE687a72", + "entrypoint_address": "0xA90904F33df36899d810d040b8d5b3b77265Bb05", + "account_factory_address": "0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284" }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x635032605337aB36A46D767905108e67EE687a72", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://selcoupdepouce.be", + "logo": "https://topup.citizenwallet.xyz/communities/selcoupdepouce/sel-coin.svg", + "name": "Bonne Heure", + "alias": "selcoupdepouce", + "hidden": true, + "profile": { + "address": "0xfB8F1e7ED42599638B3c509679E2F43937002C56", + "chain_id": 42220 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "Système d'Échange Local de Villers-la-Ville", + "primary_token": { + "address": "0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3", + "chain_id": 42220 }, - "plugins": [ - { - "name": "Market", - "icon": "https://marketplace.citizenwallet.xyz/marketplace.svg", - "url": "https://marketplace.citizenwallet.xyz/selcoupdepouce", - "launch_mode": "browser", - "signature": true - } - ], - "config_location": "https://config.internal.citizenwallet.xyz/v4/selcoupdepouce.citizenwallet.xyz.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/selcoupdepouce" +}, + { "community": { "name": "CI token", From a0217062bc63cc8344031e2dfa79b0e95072e32b Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 16:13:06 +0530 Subject: [PATCH 048/148] v5 cit.celo config from supabase --- assets/config/v5/communities.json | 117 +++++++++++++------------ assets/config/v5/communities.test.json | 117 +++++++++++++------------ 2 files changed, 124 insertions(+), 110 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index afac98a6..1e106360 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -1947,7 +1947,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/moos" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -2024,65 +2023,73 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/selcoupdepouce" }, - { - "community": { - "name": "CI token", - "description": "Monnaie locale du Cercle Informatique de l’ULB", - "url": "https://citizenwallet.xyz/cit", - "alias": "cit.celo", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/cit.celo.svg", - "hidden": true, - "profile": { - "address": "0x4cB296BEc9FAd0B5e1E4FF1A2F307B425724AC82", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9": { - "standard": "erc20", - "name": "CI token", - "address": "0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9", - "symbol": "CIT", - "decimals": 6, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "accounts": { - "42220:0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970": { - "chain_id": 42220, - "entrypoint_address": "0xB8d9412f3A91A00ca762B5c35cd0863E9b716D68", - "paymaster_address": "0x452F7ff3e55fe29f481841985dE7f4939FD645fa", - "account_factory_address": "0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970", - "paymaster_type": "cw" +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "42220:0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9": { + "name": "CI token", + "symbol": "CIT", + "address": "0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "version": 5, + "accounts": { + "42220:0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x452F7ff3e55fe29f481841985dE7f4939FD645fa", + "entrypoint_address": "0xB8d9412f3A91A00ca762B5c35cd0863E9b716D68", + "account_factory_address": "0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970" }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x452F7ff3e55fe29f481841985dE7f4939FD645fa", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://citizenwallet.xyz/cit", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/cit.celo.svg", + "name": "CI token", + "alias": "cit.celo", + "hidden": true, + "profile": { + "address": "0x4cB296BEc9FAd0B5e1E4FF1A2F307B425724AC82", + "chain_id": 42220 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "Monnaie locale du Cercle Informatique de l’ULB", + "primary_token": { + "address": "0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9", + "chain_id": 42220 }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/cit.celo.citizenwallet.xyz.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/cit.celo" +}, + { "community": { "name": "Wolugo", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index 16c70375..9c3c6e39 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -1947,7 +1947,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/moos" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -2024,65 +2023,73 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/selcoupdepouce" }, - { - "community": { - "name": "CI token", - "description": "Monnaie locale du Cercle Informatique de l’ULB", - "url": "https://citizenwallet.xyz/cit", - "alias": "cit.celo", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/cit.celo.svg", - "hidden": true, - "profile": { - "address": "0x4cB296BEc9FAd0B5e1E4FF1A2F307B425724AC82", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9": { - "standard": "erc20", - "name": "CI token", - "address": "0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9", - "symbol": "CIT", - "decimals": 6, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "accounts": { - "42220:0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970": { - "chain_id": 42220, - "entrypoint_address": "0xB8d9412f3A91A00ca762B5c35cd0863E9b716D68", - "paymaster_address": "0x452F7ff3e55fe29f481841985dE7f4939FD645fa", - "account_factory_address": "0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970", - "paymaster_type": "cw" +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "42220:0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9": { + "name": "CI token", + "symbol": "CIT", + "address": "0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "version": 5, + "accounts": { + "42220:0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x452F7ff3e55fe29f481841985dE7f4939FD645fa", + "entrypoint_address": "0xB8d9412f3A91A00ca762B5c35cd0863E9b716D68", + "account_factory_address": "0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970" }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x452F7ff3e55fe29f481841985dE7f4939FD645fa", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://citizenwallet.xyz/cit", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/cit.celo.svg", + "name": "CI token", + "alias": "cit.celo", + "hidden": true, + "profile": { + "address": "0x4cB296BEc9FAd0B5e1E4FF1A2F307B425724AC82", + "chain_id": 42220 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "Monnaie locale du Cercle Informatique de l’ULB", + "primary_token": { + "address": "0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9", + "chain_id": 42220 }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/cit.celo.citizenwallet.xyz.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/cit.celo" +}, + { "community": { "name": "Wolugo", From 7d00c3489afa4d00d33300211861957cb81eb89b Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 16:14:25 +0530 Subject: [PATCH 049/148] v5 wallet.wolugo.be config from supabase --- assets/config/v5/communities.json | 143 +++++++++++++------------ assets/config/v5/communities.test.json | 143 +++++++++++++------------ 2 files changed, 150 insertions(+), 136 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index 1e106360..3f348c5d 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -2022,7 +2022,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/selcoupdepouce" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -2090,80 +2089,88 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/cit.celo" }, - { - "community": { - "name": "Wolugo", - "description": "A community for the Woluwe-Saint-Pierre civic engagement platform", - "url": "https://wolugo.be", - "alias": "wallet.wolugo.be", - "custom_domain": "wallet.wolugo.be", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/wolugo.svg", - "theme": { - "primary": "#81e2c1" - }, - "hidden": true, - "profile": { - "address": "0x07e7b95B35866302b3A089feF4CFA3061061a51d", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x8474153A00C959f2cB64852949954DBC68415Bb3", - "chain_id": 42220 - }, - "card_factory": { - "address": "0xA3E1446E332a098A1f3b0555c5d149b4784A095F", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451": { - "standard": "erc20", - "name": "Wolu", - "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", - "symbol": "WOLU", - "decimals": 6, - "chain_id": 42220 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "cards": { + "42220:0xA3E1446E332a098A1f3b0555c5d149b4784A095F": { + "type": "classic", + "address": "0xA3E1446E332a098A1f3b0555c5d149b4784A095F", + "chain_id": 42220 + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "42220:0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451": { + "name": "Wolu", + "symbol": "WOLU", + "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0xF2EFEC3cBFaDE0bB6108620cbF7Cc608d27DCF3c", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" }, - "scan": { - "url": "https://celoscan.io", - "name": "CELO Explorer" - }, - "accounts": { - "42220:0x8474153A00C959f2cB64852949954DBC68415Bb3": { - "chain_id": 42220, - "entrypoint_address": "0x0F805BC1ED718FB9C7C18439cB11E1C17C6538C4", - "paymaster_address": "0xF2EFEC3cBFaDE0bB6108620cbF7Cc608d27DCF3c", - "account_factory_address": "0x8474153A00C959f2cB64852949954DBC68415Bb3", - "paymaster_type": "cw" - } + "42220:0x8474153A00C959f2cB64852949954DBC68415Bb3": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0xF2EFEC3cBFaDE0bB6108620cbF7Cc608d27DCF3c", + "entrypoint_address": "0x0F805BC1ED718FB9C7C18439cB11E1C17C6538C4", + "account_factory_address": "0x8474153A00C959f2cB64852949954DBC68415Bb3" + } + }, + "community": { + "url": "https://wolugo.be", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/wolugo.svg", + "name": "Wolugo", + "alias": "wallet.wolugo.be", + "theme": { + "primary": "#81e2c1" }, - "cards": { - "42220:0xA3E1446E332a098A1f3b0555c5d149b4784A095F": { - "chain_id": 42220, - "address": "0xA3E1446E332a098A1f3b0555c5d149b4784A095F", - "type": "classic" - } + "hidden": true, + "profile": { + "address": "0x07e7b95B35866302b3A089feF4CFA3061061a51d", + "chain_id": 42220 }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "description": "A community for the Woluwe-Saint-Pierre civic engagement platform", + "card_factory": { + "address": "0xA3E1446E332a098A1f3b0555c5d149b4784A095F", + "chain_id": 42220 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "custom_domain": "wallet.wolugo.be", + "primary_token": { + "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", + "chain_id": 42220 }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.wolugo.be.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.wolugo.be" +}, + { "community": { "name": "Woluwe Test", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index 9c3c6e39..97f353fe 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -2022,7 +2022,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/selcoupdepouce" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -2090,80 +2089,88 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/cit.celo" }, - { - "community": { - "name": "Wolugo", - "description": "A community for the Woluwe-Saint-Pierre civic engagement platform", - "url": "https://wolugo.be", - "alias": "wallet.wolugo.be", - "custom_domain": "wallet.wolugo.be", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/wolugo.svg", - "theme": { - "primary": "#81e2c1" - }, - "hidden": true, - "profile": { - "address": "0x07e7b95B35866302b3A089feF4CFA3061061a51d", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x8474153A00C959f2cB64852949954DBC68415Bb3", - "chain_id": 42220 - }, - "card_factory": { - "address": "0xA3E1446E332a098A1f3b0555c5d149b4784A095F", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451": { - "standard": "erc20", - "name": "Wolu", - "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", - "symbol": "WOLU", - "decimals": 6, - "chain_id": 42220 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "cards": { + "42220:0xA3E1446E332a098A1f3b0555c5d149b4784A095F": { + "type": "classic", + "address": "0xA3E1446E332a098A1f3b0555c5d149b4784A095F", + "chain_id": 42220 + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "42220:0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451": { + "name": "Wolu", + "symbol": "WOLU", + "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0xF2EFEC3cBFaDE0bB6108620cbF7Cc608d27DCF3c", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" }, - "scan": { - "url": "https://celoscan.io", - "name": "CELO Explorer" - }, - "accounts": { - "42220:0x8474153A00C959f2cB64852949954DBC68415Bb3": { - "chain_id": 42220, - "entrypoint_address": "0x0F805BC1ED718FB9C7C18439cB11E1C17C6538C4", - "paymaster_address": "0xF2EFEC3cBFaDE0bB6108620cbF7Cc608d27DCF3c", - "account_factory_address": "0x8474153A00C959f2cB64852949954DBC68415Bb3", - "paymaster_type": "cw" - } + "42220:0x8474153A00C959f2cB64852949954DBC68415Bb3": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0xF2EFEC3cBFaDE0bB6108620cbF7Cc608d27DCF3c", + "entrypoint_address": "0x0F805BC1ED718FB9C7C18439cB11E1C17C6538C4", + "account_factory_address": "0x8474153A00C959f2cB64852949954DBC68415Bb3" + } + }, + "community": { + "url": "https://wolugo.be", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/wolugo.svg", + "name": "Wolugo", + "alias": "wallet.wolugo.be", + "theme": { + "primary": "#81e2c1" }, - "cards": { - "42220:0xA3E1446E332a098A1f3b0555c5d149b4784A095F": { - "chain_id": 42220, - "address": "0xA3E1446E332a098A1f3b0555c5d149b4784A095F", - "type": "classic" - } + "hidden": true, + "profile": { + "address": "0x07e7b95B35866302b3A089feF4CFA3061061a51d", + "chain_id": 42220 }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "description": "A community for the Woluwe-Saint-Pierre civic engagement platform", + "card_factory": { + "address": "0xA3E1446E332a098A1f3b0555c5d149b4784A095F", + "chain_id": 42220 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "custom_domain": "wallet.wolugo.be", + "primary_token": { + "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", + "chain_id": 42220 }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.wolugo.be.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.wolugo.be" +}, + { "community": { "name": "Woluwe Test", From 0cc919d21175860d7558c74c167f018f7d165718 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 16:15:45 +0530 Subject: [PATCH 050/148] v5 wtc.celo config from supabase --- assets/config/v5/communities.json | 117 +++++++++++++------------ assets/config/v5/communities.test.json | 117 +++++++++++++------------ 2 files changed, 124 insertions(+), 110 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index 3f348c5d..7fd207ac 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -2088,7 +2088,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/cit.celo" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -2171,65 +2170,73 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.wolugo.be" }, - { - "community": { - "name": "Woluwe Test", - "description": "Local currency for the Woluwe Test community.", - "url": "https://wollet-v2.citizenwallet.net/token", - "alias": "wtc.celo", - "logo": "https://wtc.celo.citizenwallet.xyz/wallet-config/_images/wtc.celo.svg", - "hidden": true, - "profile": { - "address": "0xB99a7B1574f051020EB4cb2fce5d48EE07592AfF", - "chain_id": 42220 - }, - "primary_token": { - "address": "0xc53Cb35591959cA62471dA9fF6AC16629A89874a", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0xE79E19594A749330036280c685E2719d58d99052", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0xc53Cb35591959cA62471dA9fF6AC16629A89874a": { - "standard": "erc20", - "name": "Woluwe Test Coin", - "address": "0xc53Cb35591959cA62471dA9fF6AC16629A89874a", - "symbol": "WTC", - "decimals": 6, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "accounts": { - "42220:0xE79E19594A749330036280c685E2719d58d99052": { - "chain_id": 42220, - "entrypoint_address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", - "paymaster_address": "0x3fefC19674f3F6E43B1dFf1861E07c303B9eAAc9", - "account_factory_address": "0xE79E19594A749330036280c685E2719d58d99052", - "paymaster_type": "cw" +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "42220:0xc53Cb35591959cA62471dA9fF6AC16629A89874a": { + "name": "Woluwe Test Coin", + "symbol": "WTC", + "address": "0xc53Cb35591959cA62471dA9fF6AC16629A89874a", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x3fefC19674f3F6E43B1dFf1861E07c303B9eAAc9", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "42220:0xE79E19594A749330036280c685E2719d58d99052": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x3fefC19674f3F6E43B1dFf1861E07c303B9eAAc9", + "entrypoint_address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "account_factory_address": "0xE79E19594A749330036280c685E2719d58d99052" + } + }, + "community": { + "url": "https://wollet-v2.citizenwallet.net/token", + "logo": "https://wtc.celo.citizenwallet.xyz/wallet-config/_images/wtc.celo.svg", + "name": "Woluwe Test", + "alias": "wtc.celo", + "hidden": true, + "profile": { + "address": "0xB99a7B1574f051020EB4cb2fce5d48EE07592AfF", + "chain_id": 42220 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "Local currency for the Woluwe Test community.", + "primary_token": { + "address": "0xc53Cb35591959cA62471dA9fF6AC16629A89874a", + "chain_id": 42220 }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/wtc.celo.citizenwallet.xyz.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wtc.celo" +}, + { "community": { "name": "ETHGlobal London Token", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index 97f353fe..e3f06cc7 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -2088,7 +2088,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/cit.celo" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -2171,65 +2170,73 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.wolugo.be" }, - { - "community": { - "name": "Woluwe Test", - "description": "Local currency for the Woluwe Test community.", - "url": "https://wollet-v2.citizenwallet.net/token", - "alias": "wtc.celo", - "logo": "https://wtc.celo.citizenwallet.xyz/wallet-config/_images/wtc.celo.svg", - "hidden": true, - "profile": { - "address": "0xB99a7B1574f051020EB4cb2fce5d48EE07592AfF", - "chain_id": 42220 - }, - "primary_token": { - "address": "0xc53Cb35591959cA62471dA9fF6AC16629A89874a", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0xE79E19594A749330036280c685E2719d58d99052", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0xc53Cb35591959cA62471dA9fF6AC16629A89874a": { - "standard": "erc20", - "name": "Woluwe Test Coin", - "address": "0xc53Cb35591959cA62471dA9fF6AC16629A89874a", - "symbol": "WTC", - "decimals": 6, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "accounts": { - "42220:0xE79E19594A749330036280c685E2719d58d99052": { - "chain_id": 42220, - "entrypoint_address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", - "paymaster_address": "0x3fefC19674f3F6E43B1dFf1861E07c303B9eAAc9", - "account_factory_address": "0xE79E19594A749330036280c685E2719d58d99052", - "paymaster_type": "cw" +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "42220:0xc53Cb35591959cA62471dA9fF6AC16629A89874a": { + "name": "Woluwe Test Coin", + "symbol": "WTC", + "address": "0xc53Cb35591959cA62471dA9fF6AC16629A89874a", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x3fefC19674f3F6E43B1dFf1861E07c303B9eAAc9", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "42220:0xE79E19594A749330036280c685E2719d58d99052": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x3fefC19674f3F6E43B1dFf1861E07c303B9eAAc9", + "entrypoint_address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "account_factory_address": "0xE79E19594A749330036280c685E2719d58d99052" + } + }, + "community": { + "url": "https://wollet-v2.citizenwallet.net/token", + "logo": "https://wtc.celo.citizenwallet.xyz/wallet-config/_images/wtc.celo.svg", + "name": "Woluwe Test", + "alias": "wtc.celo", + "hidden": true, + "profile": { + "address": "0xB99a7B1574f051020EB4cb2fce5d48EE07592AfF", + "chain_id": 42220 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "Local currency for the Woluwe Test community.", + "primary_token": { + "address": "0xc53Cb35591959cA62471dA9fF6AC16629A89874a", + "chain_id": 42220 }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/wtc.celo.citizenwallet.xyz.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wtc.celo" +}, + { "community": { "name": "ETHGlobal London Token", From 692694a717557de0fdd5482deb23c3f0d31f7a2d Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 16:17:00 +0530 Subject: [PATCH 051/148] v5 testnet-ethldn config from supabase --- assets/config/v5/communities.json | 117 ++++++++++++----------- assets/config/v5/communities.test.json | 127 +++++++++++++------------ 2 files changed, 129 insertions(+), 115 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index 7fd207ac..5d798912 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -2169,7 +2169,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.wolugo.be" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -2237,65 +2236,73 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/wtc.celo" }, - { - "community": { - "name": "ETHGlobal London Token", - "description": "The community of people using ETHLDN on Base.", - "url": "https://en.wikipedia.org/wiki/USD_Coin", - "alias": "testnet-ethldn", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/testnet-ethldn.svg", - "hidden": true, - "profile": { - "address": "0x0785D720279f42326846D5396b5F44b97d0BfECd", - "chain_id": 84532 - }, - "primary_token": { - "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", - "chain_id": 84532 - }, - "primary_account_factory": { - "address": "0xc1654087C580f868F08E34cd1c01eDB1d3673b82", - "chain_id": 84532 - } - }, - "tokens": { - "84532:0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e": { - "standard": "erc20", - "name": "ETHGlobal London Token", - "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", - "symbol": "ETHLDN", - "decimals": 6, - "chain_id": 84532 - } - }, - "scan": { - "url": "https://sepolia.basescan.org", - "name": "Base Sepolia Explorer" - }, - "accounts": { - "84532:0xc1654087C580f868F08E34cd1c01eDB1d3673b82": { - "chain_id": 84532, - "entrypoint_address": "0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE", - "paymaster_address": "0x389182aCCeE26D953d5188BF4b92c49339DcC9FC", - "account_factory_address": "0xc1654087C580f868F08E34cd1c01eDB1d3673b82", - "paymaster_type": "cw" +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://sepolia.basescan.org", + "name": "Base Sepolia Explorer" + }, + "chains": { + "84532": { + "id": 84532, + "node": { + "url": "https://84532.engine.citizenwallet.xyz", + "ws_url": "wss://84532.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "84532:0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e": { + "name": "ETHGlobal London Token", + "symbol": "ETHLDN", + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "chain_id": 84532, + "decimals": 6, + "standard": "erc20" + } + }, + "version": 5, + "accounts": { + "84532:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 84532, + "paymaster_type": "cw-safe", + "paymaster_address": "0x389182aCCeE26D953d5188BF4b92c49339DcC9FC", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" }, - "chains": { - "84532": { - "id": 84532, - "node": { - "url": "https://84532.engine.citizenwallet.xyz", - "ws_url": "wss://84532.engine.citizenwallet.xyz" - } - } + "84532:0xc1654087C580f868F08E34cd1c01eDB1d3673b82": { + "chain_id": 84532, + "paymaster_type": "cw", + "paymaster_address": "0x389182aCCeE26D953d5188BF4b92c49339DcC9FC", + "entrypoint_address": "0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE", + "account_factory_address": "0xc1654087C580f868F08E34cd1c01eDB1d3673b82" + } + }, + "community": { + "url": "https://en.wikipedia.org/wiki/USD_Coin", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/testnet-ethldn.svg", + "name": "ETHGlobal London Token", + "alias": "testnet-ethldn", + "hidden": true, + "profile": { + "address": "0x0785D720279f42326846D5396b5F44b97d0BfECd", + "chain_id": 84532 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "The community of people using ETHLDN on Base.", + "primary_token": { + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "chain_id": 84532 }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/testnet-ethldn.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 84532 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/testnet-ethldn" +}, + { "community": { "name": "Celo Community Point", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index e3f06cc7..611c1c29 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -2169,7 +2169,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.wolugo.be" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -2237,65 +2236,73 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/wtc.celo" }, - { - "community": { - "name": "ETHGlobal London Token", - "description": "The community of people using ETHLDN on Base.", - "url": "https://en.wikipedia.org/wiki/USD_Coin", - "alias": "testnet-ethldn", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/testnet-ethldn.svg", - "hidden": true, - "profile": { - "address": "0x0785D720279f42326846D5396b5F44b97d0BfECd", - "chain_id": 84532 - }, - "primary_token": { - "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", - "chain_id": 84532 - }, - "primary_account_factory": { - "address": "0xc1654087C580f868F08E34cd1c01eDB1d3673b82", - "chain_id": 84532 - } - }, - "tokens": { - "84532:0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e": { - "standard": "erc20", - "name": "ETHGlobal London Token", - "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", - "symbol": "ETHLDN", - "decimals": 6, - "chain_id": 84532 - } - }, - "scan": { - "url": "https://sepolia.basescan.org", - "name": "Base Sepolia Explorer" - }, - "accounts": { - "84532:0xc1654087C580f868F08E34cd1c01eDB1d3673b82": { - "chain_id": 84532, - "entrypoint_address": "0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE", - "paymaster_address": "0x389182aCCeE26D953d5188BF4b92c49339DcC9FC", - "account_factory_address": "0xc1654087C580f868F08E34cd1c01eDB1d3673b82", - "paymaster_type": "cw" - } - }, - "chains": { - "84532": { - "id": 84532, - "node": { - "url": "https://84532.engine.citizenwallet.xyz", - "ws_url": "wss://84532.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/testnet-ethldn.json", - "version": 4 - }, + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://sepolia.basescan.org", + "name": "Base Sepolia Explorer" + }, + "chains": { + "84532": { + "id": 84532, + "node": { + "url": "https://84532.engine.citizenwallet.xyz", + "ws_url": "wss://84532.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "84532:0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e": { + "name": "ETHGlobal London Token", + "symbol": "ETHLDN", + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "chain_id": 84532, + "decimals": 6, + "standard": "erc20" + } + }, + "version": 5, + "accounts": { + "84532:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 84532, + "paymaster_type": "cw-safe", + "paymaster_address": "0x389182aCCeE26D953d5188BF4b92c49339DcC9FC", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + }, + "84532:0xc1654087C580f868F08E34cd1c01eDB1d3673b82": { + "chain_id": 84532, + "paymaster_type": "cw", + "paymaster_address": "0x389182aCCeE26D953d5188BF4b92c49339DcC9FC", + "entrypoint_address": "0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE", + "account_factory_address": "0xc1654087C580f868F08E34cd1c01eDB1d3673b82" + } + }, + "community": { + "url": "https://en.wikipedia.org/wiki/USD_Coin", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/testnet-ethldn.svg", + "name": "ETHGlobal London Token", + "alias": "testnet-ethldn", + "hidden": true, + "profile": { + "address": "0x0785D720279f42326846D5396b5F44b97d0BfECd", + "chain_id": 84532 + }, + "description": "The community of people using ETHLDN on Base.", + "primary_token": { + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "chain_id": 84532 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 84532 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/testnet-ethldn" + }, + { "community": { "name": "Celo Community Point", From b0cc8b053652cb03901da41fad59b42fdcac0d33 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 16:18:29 +0530 Subject: [PATCH 052/148] v5 celo-c.citizenwallet.xyz config from supabase --- assets/config/v5/communities.json | 117 +++++++++++++------------ assets/config/v5/communities.test.json | 117 +++++++++++++------------ 2 files changed, 124 insertions(+), 110 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index 5d798912..8e8315fd 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -2235,7 +2235,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/wtc.celo" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -2303,65 +2302,73 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/testnet-ethldn" }, - { - "community": { - "name": "Celo Community Point", - "description": "This is a community for the Celo Point", - "url": "https://citizenwallet.xyz", - "alias": "celo-c.citizenwallet.xyz", - "logo": "https://celo-c.citizenwallet.xyz/uploads/logo.svg", - "hidden": true, - "profile": { - "address": "0x14004E13907282cFaD05f742022E56926eE92dAd", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x3C960E72BBbD837293e75080E1d0Fee6a4640357", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x3C960E72BBbD837293e75080E1d0Fee6a4640357": { - "standard": "erc20", - "name": "Celo Community Point", - "address": "0x3C960E72BBbD837293e75080E1d0Fee6a4640357", - "symbol": "CeloC", - "decimals": 6, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "CELO Explorer" - }, - "accounts": { - "42220:0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA": { - "chain_id": 42220, - "entrypoint_address": "0x66fE9c22CcA49B257dd4F00508AC90198d99Bf27", - "paymaster_address": "0x7f4011845Ea914b6cefc60629e1e00600c972c75", - "account_factory_address": "0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA", - "paymaster_type": "cw" +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "42220:0x3C960E72BBbD837293e75080E1d0Fee6a4640357": { + "name": "Celo Community Point", + "symbol": "CeloC", + "address": "0x3C960E72BBbD837293e75080E1d0Fee6a4640357", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x7f4011845Ea914b6cefc60629e1e00600c972c75", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "42220:0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x7f4011845Ea914b6cefc60629e1e00600c972c75", + "entrypoint_address": "0x66fE9c22CcA49B257dd4F00508AC90198d99Bf27", + "account_factory_address": "0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA" + } + }, + "community": { + "url": "https://citizenwallet.xyz", + "logo": "https://celo-c.citizenwallet.xyz/uploads/logo.svg", + "name": "Celo Community Point", + "alias": "celo-c.citizenwallet.xyz", + "hidden": true, + "profile": { + "address": "0x14004E13907282cFaD05f742022E56926eE92dAd", + "chain_id": 42220 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "This is a community for the Celo Point", + "primary_token": { + "address": "0x3C960E72BBbD837293e75080E1d0Fee6a4640357", + "chain_id": 42220 }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/celo-c.citizenwallet.xyz.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/celo-c.citizenwallet.xyz" +}, + { "community": { "name": "KFMEDIA℠", diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index 611c1c29..921f3627 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -2235,7 +2235,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/wtc.celo" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -2303,65 +2302,73 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/testnet-ethldn" }, - { - "community": { - "name": "Celo Community Point", - "description": "This is a community for the Celo Point", - "url": "https://citizenwallet.xyz", - "alias": "celo-c.citizenwallet.xyz", - "logo": "https://celo-c.citizenwallet.xyz/uploads/logo.svg", - "hidden": true, - "profile": { - "address": "0x14004E13907282cFaD05f742022E56926eE92dAd", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x3C960E72BBbD837293e75080E1d0Fee6a4640357", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x3C960E72BBbD837293e75080E1d0Fee6a4640357": { - "standard": "erc20", - "name": "Celo Community Point", - "address": "0x3C960E72BBbD837293e75080E1d0Fee6a4640357", - "symbol": "CeloC", - "decimals": 6, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "CELO Explorer" - }, - "accounts": { - "42220:0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA": { - "chain_id": 42220, - "entrypoint_address": "0x66fE9c22CcA49B257dd4F00508AC90198d99Bf27", - "paymaster_address": "0x7f4011845Ea914b6cefc60629e1e00600c972c75", - "account_factory_address": "0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA", - "paymaster_type": "cw" +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "42220:0x3C960E72BBbD837293e75080E1d0Fee6a4640357": { + "name": "Celo Community Point", + "symbol": "CeloC", + "address": "0x3C960E72BBbD837293e75080E1d0Fee6a4640357", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x7f4011845Ea914b6cefc60629e1e00600c972c75", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "42220:0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x7f4011845Ea914b6cefc60629e1e00600c972c75", + "entrypoint_address": "0x66fE9c22CcA49B257dd4F00508AC90198d99Bf27", + "account_factory_address": "0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA" + } + }, + "community": { + "url": "https://citizenwallet.xyz", + "logo": "https://celo-c.citizenwallet.xyz/uploads/logo.svg", + "name": "Celo Community Point", + "alias": "celo-c.citizenwallet.xyz", + "hidden": true, + "profile": { + "address": "0x14004E13907282cFaD05f742022E56926eE92dAd", + "chain_id": 42220 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "description": "This is a community for the Celo Point", + "primary_token": { + "address": "0x3C960E72BBbD837293e75080E1d0Fee6a4640357", + "chain_id": 42220 }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/celo-c.citizenwallet.xyz.json", - "version": 4 + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } }, + "config_location": "https://my.citizenwallet.xyz/api/communities/celo-c.citizenwallet.xyz" +}, + { "community": { "name": "KFMEDIA℠", From 2800520ffbb9180b39ce8cec30b5dbb6a72adb9a Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 16:20:24 +0530 Subject: [PATCH 053/148] v5 wallet.kingfishersmedia.io config from supabase --- assets/config/v5/communities.json | 131 +++++++++++++------------ assets/config/v5/communities.test.json | 131 +++++++++++++------------ assets/config/v5/debug.json | 96 +++++++++--------- 3 files changed, 190 insertions(+), 168 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index 8e8315fd..ad5a248e 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -2301,7 +2301,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/testnet-ethldn" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -2369,70 +2368,78 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/celo-c.citizenwallet.xyz" }, - { - "community": { - "name": "KFMEDIA℠", - "description": "Certified Education Organization. Solving systemic educational disparity using Web3 solutions, removing barriers of entry for underdeveloped economies.", - "url": "https://kingfishersmedia.io", - "alias": "wallet.kingfishersmedia.io", - "custom_domain": "wallet.kingfishersmedia.io", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/kfmpfl.png", - "theme": { - "primary": "#88292c" - }, - "profile": { - "address": "0x5f6FEb03ad8EfeCdD2a837FAA1a29DEA2bAcfd55", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "chain_id": 42220 - }, - "primary_card_manager": { - "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x56744910f7dEcD48c1a7FA61B4C317b15E99F156": { - "standard": "erc1155", - "name": "KFMEDIA℠ Pathways for LATAM™", - "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", - "symbol": "KFMPFL", - "decimals": 0, - "chain_id": 42220 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "42220:0x56744910f7dEcD48c1a7FA61B4C317b15E99F156": { + "name": "KFMEDIA℠ Pathways for LATAM™", + "symbol": "KFMPFL", + "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", + "chain_id": 42220, + "decimals": 0, + "standard": "erc1155" + } + }, + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x02BDA8370d9497A5C808B2db237cfaA8f0733F36", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "42220:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 42220, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://kingfishersmedia.io", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/kfmpfl.png", + "name": "KFMEDIA℠", + "alias": "wallet.kingfishersmedia.io", + "theme": { + "primary": "#88292c" }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "accounts": { - "42220:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { - "chain_id": 42220, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0x02BDA8370d9497A5C808B2db237cfaA8f0733F36", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" - } + "profile": { + "address": "0x5f6FEb03ad8EfeCdD2a837FAA1a29DEA2bAcfd55", + "chain_id": 42220 }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "description": "Certified Education Organization. Solving systemic educational disparity using Web3 solutions, removing barriers of entry for underdeveloped economies.", + "custom_domain": "wallet.kingfishersmedia.io", + "primary_token": { + "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", + "chain_id": 42220 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.kingfishersmedia.io.json", - "version": 4 - } + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.kingfishersmedia.io" +} ] diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index 921f3627..711c09c3 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -2301,7 +2301,6 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/testnet-ethldn" }, - { "ipfs": { "url": "https://ipfs.internal.citizenwallet.xyz" @@ -2369,70 +2368,78 @@ "config_location": "https://my.citizenwallet.xyz/api/communities/celo-c.citizenwallet.xyz" }, - { - "community": { - "name": "KFMEDIA℠", - "description": "Certified Education Organization. Solving systemic educational disparity using Web3 solutions, removing barriers of entry for underdeveloped economies.", - "url": "https://kingfishersmedia.io", - "alias": "wallet.kingfishersmedia.io", - "custom_domain": "wallet.kingfishersmedia.io", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/kfmpfl.png", - "theme": { - "primary": "#88292c" - }, - "profile": { - "address": "0x5f6FEb03ad8EfeCdD2a837FAA1a29DEA2bAcfd55", - "chain_id": 42220 - }, - "primary_token": { - "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "chain_id": 42220 - }, - "primary_card_manager": { - "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", - "chain_id": 42220 - } - }, - "tokens": { - "42220:0x56744910f7dEcD48c1a7FA61B4C317b15E99F156": { - "standard": "erc1155", - "name": "KFMEDIA℠ Pathways for LATAM™", - "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", - "symbol": "KFMPFL", - "decimals": 0, - "chain_id": 42220 +{ + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" } + } + }, + "tokens": { + "42220:0x56744910f7dEcD48c1a7FA61B4C317b15E99F156": { + "name": "KFMEDIA℠ Pathways for LATAM™", + "symbol": "KFMPFL", + "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", + "chain_id": 42220, + "decimals": 0, + "standard": "erc1155" + } + }, + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x02BDA8370d9497A5C808B2db237cfaA8f0733F36", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "42220:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 42220, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://kingfishersmedia.io", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/kfmpfl.png", + "name": "KFMEDIA℠", + "alias": "wallet.kingfishersmedia.io", + "theme": { + "primary": "#88292c" }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "accounts": { - "42220:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { - "chain_id": 42220, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0x02BDA8370d9497A5C808B2db237cfaA8f0733F36", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" - } + "profile": { + "address": "0x5f6FEb03ad8EfeCdD2a837FAA1a29DEA2bAcfd55", + "chain_id": 42220 }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "description": "Certified Education Organization. Solving systemic educational disparity using Web3 solutions, removing barriers of entry for underdeveloped economies.", + "custom_domain": "wallet.kingfishersmedia.io", + "primary_token": { + "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", + "chain_id": 42220 }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.kingfishersmedia.io.json", - "version": 4 - } + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.kingfishersmedia.io" +} ] diff --git a/assets/config/v5/debug.json b/assets/config/v5/debug.json index 37b04ad9..c1b27ccd 100644 --- a/assets/config/v5/debug.json +++ b/assets/config/v5/debug.json @@ -1,11 +1,53 @@ { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0x56744910f7dEcD48c1a7FA61B4C317b15E99F156": { + "name": "KFMEDIA℠ Pathways for LATAM™", + "symbol": "KFMPFL", + "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", + "chain_id": 42220, + "decimals": 0, + "standard": "erc1155" + } + }, + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x02BDA8370d9497A5C808B2db237cfaA8f0733F36", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "42220:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 42220, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, "community": { - "name": "KFMEDIA℠", - "description": "Certified Education Organization. Solving systemic educational disparity using Web3 solutions, removing barriers of entry for underdeveloped economies.", "url": "https://kingfishersmedia.io", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/kfmpfl.png", + "name": "KFMEDIA℠", "alias": "wallet.kingfishersmedia.io", - "custom_domain": "wallet.kingfishersmedia.io", - "logo": "https://config.internal.citizenwallet.xyz/_images/kfmpfl.png", "theme": { "primary": "#88292c" }, @@ -13,54 +55,20 @@ "address": "0x5f6FEb03ad8EfeCdD2a837FAA1a29DEA2bAcfd55", "chain_id": 42220 }, + "description": "Certified Education Organization. Solving systemic educational disparity using Web3 solutions, removing barriers of entry for underdeveloped economies.", + "custom_domain": "wallet.kingfishersmedia.io", "primary_token": { "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", "chain_id": 42220 }, "primary_account_factory": { - "address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", "chain_id": 42220 }, - "primary_card_manager": { - "address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", "chain_id": 42220 } }, - "tokens": { - "42220:0x56744910f7dEcD48c1a7FA61B4C317b15E99F156": { - "standard": "erc1155", - "name": "KFMEDIA℠ Pathways for LATAM™", - "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", - "symbol": "KFMPFL", - "decimals": 0, - "chain_id": 42220 - } - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "accounts": { - "42220:0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2": { - "chain_id": 42220, - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "paymaster_address": "0x250711045d58b6310f0635C7D110BFe663cE1da5", - "account_factory_address": "0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2", - "paymaster_type": "cw-safe" - } - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/wallet.kingfishersmedia.io.json", - "version": 4 + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.kingfishersmedia.io" } From ca34821d38171f0b41be35d67a36f8b145dfdc04 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 16:23:22 +0530 Subject: [PATCH 054/148] uniform formatting --- assets/config/v5/communities.json | 4385 ++++++++++++----------- assets/config/v5/communities.test.json | 4389 ++++++++++++------------ 2 files changed, 4386 insertions(+), 4388 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index ad5a248e..396deeb6 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -207,2239 +207,2238 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.pay.brussels" }, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "cards": { - "42220:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { - "type": "safe", - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 42220, - "instance_id": "cw-discord-1" - } - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "42220:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "cards": { + "42220:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 42220, + "instance_id": "cw-discord-1" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { + "name": "Gratitude Token", + "symbol": "GT", + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 42220, + "decimals": 0, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0xF05ba2641b31AF70c2678e3324eD8b9C53093FbE", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + }, + "42220:0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", + "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", + "account_factory_address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD" + } + }, + "sessions": { + "42220:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 42220, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://citizenwallet.xyz/gratitude", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/gt.svg", "name": "Gratitude Token", - "symbol": "GT", - "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", - "chain_id": 42220, - "decimals": 0, - "standard": "erc20" - } - }, - "plugins": [], - "version": 5, - "accounts": { - "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 42220, - "paymaster_type": "cw-safe", - "paymaster_address": "0xF05ba2641b31AF70c2678e3324eD8b9C53093FbE", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - }, - "42220:0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD": { - "chain_id": 42220, - "paymaster_type": "cw", - "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", - "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", - "account_factory_address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD" - } - }, - "sessions": { - "42220:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 42220, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" - } - }, - "community": { - "url": "https://citizenwallet.xyz/gratitude", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/gt.svg", - "name": "Gratitude Token", - "alias": "gratitude", - "theme": { - "primary": "#4EC19D" - }, - "profile": { - "address": "0xEEc0F3257369c6bCD2Fd8755CbEf8A95b12Bc4c9", - "chain_id": 42220 - }, - "description": "Express your gratitude towards someone by sending them a token of gratitude.", - "primary_token": { - "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", - "chain_id": 42220 - }, - "primary_card_manager": { - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 42220 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 42220 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/gratitude" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "cards": { - "80094:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { - "type": "safe", - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 80094, - "instance_id": "cw-discord-1" - } - }, - "chains": { - "80094": { - "id": 80094, - "node": { - "url": "https://80094.engine.citizenwallet.xyz", - "ws_url": "wss://80094.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "80094:0x881cad4f885c6701d8481c0ed347f6d35444ea7e": { - "name": "SFLUV V1.1", - "symbol": "SFLUV", - "address": "0x881cad4f885c6701d8481c0ed347f6d35444ea7e", - "chain_id": 80094, - "decimals": 18, - "standard": "erc20" - } - }, - "plugins": [ - { - "url": "https://app.sfluv.org", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", - "name": "About", - "hidden": true, - "signature": true, - "launch_mode": "webview" - } - ], - "version": 5, - "accounts": { - "80094:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 80094, - "paymaster_type": "cw-safe", - "paymaster_address": "0x9A5be02B65f9Aa00060cB8c951dAFaBAB9B860cd", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "sessions": { - "80094:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 80094, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" - } - }, - "community": { - "url": "https://sfluv.org", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", - "name": "SFLUV Community", - "alias": "wallet.berachain.sfluv.org", - "theme": { - "primary": "#eb6c6c" - }, - "profile": { - "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", - "chain_id": 80094 - }, - "description": "A community currency for the city of San Francisco.", - "custom_domain": "wallet.sfluv.org", - "primary_token": { - "address": "0x881cad4f885c6701d8481c0ed347f6d35444ea7e", - "chain_id": 80094 - }, - "primary_card_manager": { - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 80094 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 80094 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 80094 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.berachain.sfluv.org" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "137:0x58a2993A618Afee681DE23dECBCF535A58A080BA": { - "name": "SFLUV V1.1", - "symbol": "SFLUV", - "address": "0x58a2993A618Afee681DE23dECBCF535A58A080BA", - "chain_id": 137, - "decimals": 6, - "standard": "erc20" - } - }, - "plugins": [ - { - "url": "https://app.sfluv.org", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", - "name": "About", - "hidden": true, - "signature": true, - "launch_mode": "webview" - } - ], - "version": 5, - "accounts": { - "137:0x5e987a6c4bb4239d498E78c34e986acf29c81E8e": { - "chain_id": 137, - "paymaster_type": "cw", - "paymaster_address": "0x7FC98D0a2bd7f766bAca37388eB0F6Db37666B33", - "entrypoint_address": "0x2d01C5E40Aa6a8478eD0FFbF2784EBb9bf67C46A", - "account_factory_address": "0x5e987a6c4bb4239d498E78c34e986acf29c81E8e" - } - }, - "sessions": { - "137:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 137, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" - } - }, - "community": { - "url": "https://sfluv.org", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", - "name": "SFLUV Community (Polygon)", - "alias": "wallet.sfluv.org", - "theme": { - "primary": "#eb6c6c" - }, - "profile": { - "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", - "chain_id": 137 - }, - "description": "A community currency for the city of San Francisco.", - "custom_domain": "wallet.polygon.sfluv.org", - "primary_token": { - "address": "0x58a2993A618Afee681DE23dECBCF535A58A080BA", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x5e987a6c4bb4239d498E78c34e986acf29c81E8e", - "chain_id": 137 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 137 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.sfluv.org" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "alias": "gratitude", + "theme": { + "primary": "#4EC19D" + }, + "profile": { + "address": "0xEEc0F3257369c6bCD2Fd8755CbEf8A95b12Bc4c9", + "chain_id": 42220 + }, + "description": "Express your gratitude towards someone by sending them a token of gratitude.", + "primary_token": { + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 42220 + }, + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/gratitude" }, - "scan": { - "url": "https://gnosisscan.io", - "name": "Gnosis Explorer" + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "cards": { + "80094:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 80094, + "instance_id": "cw-discord-1" + } + }, + "chains": { + "80094": { + "id": 80094, + "node": { + "url": "https://80094.engine.citizenwallet.xyz", + "ws_url": "wss://80094.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "80094:0x881cad4f885c6701d8481c0ed347f6d35444ea7e": { + "name": "SFLUV V1.1", + "symbol": "SFLUV", + "address": "0x881cad4f885c6701d8481c0ed347f6d35444ea7e", + "chain_id": 80094, + "decimals": 18, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://app.sfluv.org", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "name": "About", + "hidden": true, + "signature": true, + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "80094:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 80094, + "paymaster_type": "cw-safe", + "paymaster_address": "0x9A5be02B65f9Aa00060cB8c951dAFaBAB9B860cd", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "80094:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 80094, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://sfluv.org", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "name": "SFLUV Community", + "alias": "wallet.berachain.sfluv.org", + "theme": { + "primary": "#eb6c6c" + }, + "profile": { + "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", + "chain_id": 80094 + }, + "description": "A community currency for the city of San Francisco.", + "custom_domain": "wallet.sfluv.org", + "primary_token": { + "address": "0x881cad4f885c6701d8481c0ed347f6d35444ea7e", + "chain_id": 80094 + }, + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 80094 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 80094 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 80094 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.berachain.sfluv.org" }, - "chains": { - "100": { - "id": 100, - "node": { - "url": "https://100.engine.citizenwallet.xyz", - "ws_url": "wss://100.engine.citizenwallet.xyz" - } - } + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "137:0x58a2993A618Afee681DE23dECBCF535A58A080BA": { + "name": "SFLUV V1.1", + "symbol": "SFLUV", + "address": "0x58a2993A618Afee681DE23dECBCF535A58A080BA", + "chain_id": 137, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://app.sfluv.org", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "name": "About", + "hidden": true, + "signature": true, + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "137:0x5e987a6c4bb4239d498E78c34e986acf29c81E8e": { + "chain_id": 137, + "paymaster_type": "cw", + "paymaster_address": "0x7FC98D0a2bd7f766bAca37388eB0F6Db37666B33", + "entrypoint_address": "0x2d01C5E40Aa6a8478eD0FFbF2784EBb9bf67C46A", + "account_factory_address": "0x5e987a6c4bb4239d498E78c34e986acf29c81E8e" + } + }, + "sessions": { + "137:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 137, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://sfluv.org", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "name": "SFLUV Community (Polygon)", + "alias": "wallet.sfluv.org", + "theme": { + "primary": "#eb6c6c" + }, + "profile": { + "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", + "chain_id": 137 + }, + "description": "A community currency for the city of San Francisco.", + "custom_domain": "wallet.polygon.sfluv.org", + "primary_token": { + "address": "0x58a2993A618Afee681DE23dECBCF535A58A080BA", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x5e987a6c4bb4239d498E78c34e986acf29c81E8e", + "chain_id": 137 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 137 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.sfluv.org" }, - "tokens": { - "100:0x6c6611244547a6E9AaCfBA8744115ca1076756fc": { + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://100.engine.citizenwallet.xyz", + "ws_url": "wss://100.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "100:0x6c6611244547a6E9AaCfBA8744115ca1076756fc": { + "name": "Txirrin", + "symbol": "TXI", + "address": "0x6c6611244547a6E9AaCfBA8744115ca1076756fc", + "chain_id": 100, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 100, + "paymaster_type": "cw-safe", + "paymaster_address": "0x33500E7Eb3452421e56c2f4117530B1C4C85E0A5", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 100, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://citizenwallet.xyz/txirrin", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/txirrin.png", "name": "Txirrin", - "symbol": "TXI", - "address": "0x6c6611244547a6E9AaCfBA8744115ca1076756fc", - "chain_id": 100, - "decimals": 6, - "standard": "erc20" - } - }, - "plugins": [], - "version": 5, - "accounts": { - "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 100, - "paymaster_type": "cw-safe", - "paymaster_address": "0x33500E7Eb3452421e56c2f4117530B1C4C85E0A5", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "sessions": { - "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 100, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" - } - }, - "community": { - "url": "https://citizenwallet.xyz/txirrin", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/txirrin.png", - "name": "Txirrin", - "alias": "txirrin", - "theme": { - "primary": "#FB7502" - }, - "hidden": false, - "profile": { - "address": "0xd47f7198bf335bfe66dD29C0f3EeEf0cFE9D05D8", - "chain_id": 100 - }, - "description": "A community for Txirrin", - "primary_token": { - "address": "0x6c6611244547a6E9AaCfBA8744115ca1076756fc", - "chain_id": 100 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 100 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 100 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/txirrin" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "137:0xc2132D05D31c914a87C6611C10748AEb04B58e8F": { - "name": "(PoS) Tether USD", - "symbol": "USDT", - "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F", - "chain_id": 137, - "decimals": 6, - "standard": "erc20" - } - }, - "version": 5, - "accounts": { - "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 137, - "paymaster_type": "cw-safe", - "paymaster_address": "0x9a81Bd50D56485Cc863Ecb169812c7a821996C8c", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "sessions": { - "137:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 137, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" - } - }, - "community": { - "url": "https://www.ethereumbolivia.org", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/boliviapay.png", - "name": "Bolivia Pay", - "alias": "boliviapay", - "theme": { - "primary": "#009393" - }, - "profile": { - "address": "0x898C2737f2Cb52622711A89D85A1D5E0B881BDeA", - "chain_id": 137 - }, - "description": "A community for Ethereum Bolivia.", - "primary_token": { - "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 137 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 137 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/boliviapay" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://gnosisscan.io", - "name": "Gnosis Explorer" - }, - "cards": { - "100:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { - "type": "safe", - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 100, - "instance_id": "cw-discord-1" - } + "alias": "txirrin", + "theme": { + "primary": "#FB7502" + }, + "hidden": false, + "profile": { + "address": "0xd47f7198bf335bfe66dD29C0f3EeEf0cFE9D05D8", + "chain_id": 100 + }, + "description": "A community for Txirrin", + "primary_token": { + "address": "0x6c6611244547a6E9AaCfBA8744115ca1076756fc", + "chain_id": 100 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 100 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 100 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/txirrin" }, - "chains": { - "100": { - "id": 100, - "node": { - "url": "https://100.engine.citizenwallet.xyz", - "ws_url": "wss://100.engine.citizenwallet.xyz" - } - } + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "137:0xc2132D05D31c914a87C6611C10748AEb04B58e8F": { + "name": "(PoS) Tether USD", + "symbol": "USDT", + "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F", + "chain_id": 137, + "decimals": 6, + "standard": "erc20" + } + }, + "version": 5, + "accounts": { + "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 137, + "paymaster_type": "cw-safe", + "paymaster_address": "0x9a81Bd50D56485Cc863Ecb169812c7a821996C8c", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "137:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 137, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://www.ethereumbolivia.org", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/boliviapay.png", + "name": "Bolivia Pay", + "alias": "boliviapay", + "theme": { + "primary": "#009393" + }, + "profile": { + "address": "0x898C2737f2Cb52622711A89D85A1D5E0B881BDeA", + "chain_id": 137 + }, + "description": "A community for Ethereum Bolivia.", + "primary_token": { + "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 137 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 137 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/boliviapay" }, - "tokens": { - "100:0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3": { + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "cards": { + "100:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 100, + "instance_id": "cw-discord-1" + } + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://100.engine.citizenwallet.xyz", + "ws_url": "wss://100.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "100:0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3": { + "name": "Breadchain Community Token", + "symbol": "BREAD", + "address": "0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3", + "chain_id": 100, + "decimals": 18, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://topup.citizenspring.earth/bread", + "icon": "https://bread.citizenwallet.xyz/uploads/logo.svg", + "name": "Top Up", + "action": "topup" + }, + { + "url": "https://marketplace.citizenwallet.xyz/bread", + "icon": "https://bread.citizenwallet.xyz/uploads/logo.svg", + "name": "Market", + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 100, + "paymaster_type": "cw-safe", + "paymaster_address": "0x5987e57e85014B5A56C880313580346c20a5d1c1", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + }, + "100:0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9": { + "chain_id": 100, + "paymaster_type": "cw", + "paymaster_address": "0xbE2Cb3358aa14621134e923B68b8429315368E32", + "entrypoint_address": "0xcA0a75EF803a364C83c5EAE7Eb889aE7419c9dF2", + "account_factory_address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9" + } + }, + "sessions": { + "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 100, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://breadchain.xyz/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/bread.svg", "name": "Breadchain Community Token", - "symbol": "BREAD", - "address": "0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3", - "chain_id": 100, - "decimals": 18, - "standard": "erc20" - } - }, - "plugins": [ - { - "url": "https://topup.citizenspring.earth/bread", - "icon": "https://bread.citizenwallet.xyz/uploads/logo.svg", - "name": "Top Up", - "action": "topup" - }, - { - "url": "https://marketplace.citizenwallet.xyz/bread", - "icon": "https://bread.citizenwallet.xyz/uploads/logo.svg", - "name": "Market", - "launch_mode": "webview" - } - ], - "version": 5, - "accounts": { - "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 100, - "paymaster_type": "cw-safe", - "paymaster_address": "0x5987e57e85014B5A56C880313580346c20a5d1c1", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - }, - "100:0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9": { - "chain_id": 100, - "paymaster_type": "cw", - "paymaster_address": "0xbE2Cb3358aa14621134e923B68b8429315368E32", - "entrypoint_address": "0xcA0a75EF803a364C83c5EAE7Eb889aE7419c9dF2", - "account_factory_address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9" - } - }, - "sessions": { - "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 100, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" - } - }, - "community": { - "url": "https://breadchain.xyz/", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/bread.svg", - "name": "Breadchain Community Token", - "alias": "bread", - "profile": { - "address": "0x6b3a1f4277391526413F583c23D5B9EF4d2fE986", - "chain_id": 100 - }, - "description": "BREAD is a digital community token and solidarity primitive developed by Breadchain Cooperative that generates yield for post-capitalist organizations", - "primary_token": { - "address": "0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3", - "chain_id": 100 - }, - "primary_card_manager": { - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 100 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 100 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 100 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/bread" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://gnosisscan.io", - "name": "Gnosis Explorer" - }, - "cards": { - "100:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { - "type": "safe", - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 100, - "instance_id": "cw-discord-1" - } - }, - "chains": { - "100": { - "id": 100, - "node": { - "url": "https://100.engine.citizenwallet.xyz", - "ws_url": "wss://100.engine.citizenwallet.xyz" - } - } + "alias": "bread", + "profile": { + "address": "0x6b3a1f4277391526413F583c23D5B9EF4d2fE986", + "chain_id": 100 + }, + "description": "BREAD is a digital community token and solidarity primitive developed by Breadchain Cooperative that generates yield for post-capitalist organizations", + "primary_token": { + "address": "0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3", + "chain_id": 100 + }, + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 100 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 100 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 100 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/bread" }, - "tokens": { - "100:0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007": { + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "cards": { + "100:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 100, + "instance_id": "cw-discord-1" + } + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://100.engine.citizenwallet.xyz", + "ws_url": "wss://100.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "100:0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007": { + "name": "Labor Hour Token", + "symbol": "HOUR", + "address": "0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007", + "chain_id": 100, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 4, + "accounts": { + "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 100, + "paymaster_type": "cw-safe", + "paymaster_address": "0xa7fa16C933f51d8623f39FA0dF34D3065B99Bd1c", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 100, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://breadchain.xyz/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/laborhour.png", "name": "Labor Hour Token", - "symbol": "HOUR", - "address": "0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007", - "chain_id": 100, - "decimals": 6, - "standard": "erc20" - } - }, - "plugins": [], - "version": 4, - "accounts": { - "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 100, - "paymaster_type": "cw-safe", - "paymaster_address": "0xa7fa16C933f51d8623f39FA0dF34D3065B99Bd1c", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "sessions": { - "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 100, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" - } - }, - "community": { - "url": "https://breadchain.xyz/", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/laborhour.png", - "name": "Labor Hour Token", - "alias": "laborhour", - "theme": { - "primary": "#E52D2D" - }, - "profile": { - "address": "0x673601Eb36820bC9718214AC041E96f79383351B", - "chain_id": 100 - }, - "description": "Labor Hour Token aims to reward contributors for hours of labor, particularly targeting non-blockchain native users", - "primary_token": { - "address": "0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007", - "chain_id": 100 - }, - "primary_card_manager": { - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 100 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 100 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 100 - } - }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/laborhour.citizenwallet.xyz.json" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://gnosisscan.io", - "name": "Gnosis Explorer" - }, - "cards": { - "8453:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { - "type": "safe", - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 8453, - "instance_id": "cw-discord-1" - } - }, - "chains": { - "8453": { - "id": 8453, - "node": { - "url": "https://8453.engine.citizenwallet.xyz", - "ws_url": "wss://8453.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "8453:0x3595ca37596d5895b70efab592ac315d5b9809b2": { - "name": "Azos Stablecoin", - "symbol": "AZUSD", - "address": "0x3595ca37596d5895b70efab592ac315d5b9809b2", - "chain_id": 8453, - "decimals": 18, - "standard": "erc20" - } - }, - "plugins": [], - "version": 5, - "accounts": { - "8453:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 8453, - "paymaster_type": "cw-safe", - "paymaster_address": "0x02cd43b3d7a946dCaa8dF12ac0A6Cd50aF9cDd64", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "sessions": { - "8453:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 8453, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0x0c2e78DB6FaF8D4d68984A830339764AD9f800D4" - } - }, - "community": { - "url": "https://rooted.finance/", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rooted.png", - "name": "Rooted.Finance", - "alias": "rooted", - "theme": { - "primary": "#ff4c02" - }, - "profile": { - "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", - "chain_id": 8453 - }, - "description": "Rooted in your values.", - "primary_token": { - "address": "0x3595ca37596d5895b70efab592ac315d5b9809b2", - "chain_id": 8453 - }, - "primary_card_manager": { - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 8453 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 8453 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 8453 - } - }, - "config_location": "https://my.citizenwallet.xyz/communities/rooted" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://celoscan.io", - "name": "CELO Explorer" - }, - "cards": { - "42220:0xc0F9e0907C8de79fd5902b61e463dFEdc5dc8570": { - "type": "classic", - "address": "0xc0F9e0907C8de79fd5902b61e463dFEdc5dc8570", - "chain_id": 42220 - } - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "42220:0x65DD32834927de9E57E72a3E2130a19f81C6371D": { - "name": "Commons Hub Token", - "symbol": "CHT", - "address": "0x65DD32834927de9E57E72a3E2130a19f81C6371D", - "chain_id": 42220, - "decimals": 6, - "standard": "erc20" - } - }, - "plugins": [ - { - "url": "https://marketplace.citizenwallet.xyz/wallet.commonshub.brussels", - "icon": "https://marketplace.citizenwallet.xyz/marketplace.svg", - "name": "Market", - "signature": true, - "launch_mode": "webview" - } - ], - "version": 5, - "accounts": { - "42220:0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87": { - "chain_id": 42220, - "paymaster_type": "cw", - "paymaster_address": "0x4E127A1DAa66568B4a91E8c5615120a6Ea5442E3", - "entrypoint_address": "0xb7608dDA592d319687C89c4479e320b5a7740117", - "account_factory_address": "0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87" - }, - "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 42220, - "paymaster_type": "cw-safe", - "paymaster_address": "0x4860C0f127500F0cbF4a5Bd797cBb5aA50Eb0FbA", - "entrypoint_address": "0xb7608dDA592d319687C89c4479e320b5a7740117", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "sessions": { - "42220:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 42220, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" - } - }, - "community": { - "url": "https://commonshub.brussels", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/chb.png", - "name": "Commons Hub Brussels", - "alias": "wallet.commonshub.brussels", - "theme": { - "primary": "#ff4c02" - }, - "profile": { - "address": "0xc06bE1BbbeEAF2f34F3d5b76069D2560aee184Ae", - "chain_id": 42220 - }, - "description": "Community Token for the Commons Hub Brussels community", - "custom_domain": "wallet.commonshub.brussels", - "primary_token": { - "address": "0x65DD32834927de9E57E72a3E2130a19f81C6371D", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 42220 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 42220 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.commonshub.brussels" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "cards": { - "42220:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { - "type": "safe", - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 42220, - "instance_id": "cw-seldesalm" - } + "alias": "laborhour", + "theme": { + "primary": "#E52D2D" + }, + "profile": { + "address": "0x673601Eb36820bC9718214AC041E96f79383351B", + "chain_id": 100 + }, + "description": "Labor Hour Token aims to reward contributors for hours of labor, particularly targeting non-blockchain native users", + "primary_token": { + "address": "0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007", + "chain_id": 100 + }, + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 100 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 100 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 100 + } + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/laborhour.citizenwallet.xyz.json" }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "cards": { + "8453:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 8453, + "instance_id": "cw-discord-1" + } + }, + "chains": { + "8453": { + "id": 8453, + "node": { + "url": "https://8453.engine.citizenwallet.xyz", + "ws_url": "wss://8453.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "8453:0x3595ca37596d5895b70efab592ac315d5b9809b2": { + "name": "Azos Stablecoin", + "symbol": "AZUSD", + "address": "0x3595ca37596d5895b70efab592ac315d5b9809b2", + "chain_id": 8453, + "decimals": 18, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "8453:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 8453, + "paymaster_type": "cw-safe", + "paymaster_address": "0x02cd43b3d7a946dCaa8dF12ac0A6Cd50aF9cDd64", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "8453:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 8453, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0x0c2e78DB6FaF8D4d68984A830339764AD9f800D4" + } + }, + "community": { + "url": "https://rooted.finance/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rooted.png", + "name": "Rooted.Finance", + "alias": "rooted", + "theme": { + "primary": "#ff4c02" + }, + "profile": { + "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", + "chain_id": 8453 + }, + "description": "Rooted in your values.", + "primary_token": { + "address": "0x3595ca37596d5895b70efab592ac315d5b9809b2", + "chain_id": 8453 + }, + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 8453 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 8453 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 8453 + } + }, + "config_location": "https://my.citizenwallet.xyz/communities/rooted" }, - "tokens": { - "42220:0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2": { - "name": "Myrtille", - "symbol": "MYRT", - "address": "0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2", - "chain_id": 42220, - "decimals": 6, - "standard": "erc20" - } + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "cards": { + "42220:0xc0F9e0907C8de79fd5902b61e463dFEdc5dc8570": { + "type": "classic", + "address": "0xc0F9e0907C8de79fd5902b61e463dFEdc5dc8570", + "chain_id": 42220 + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0x65DD32834927de9E57E72a3E2130a19f81C6371D": { + "name": "Commons Hub Token", + "symbol": "CHT", + "address": "0x65DD32834927de9E57E72a3E2130a19f81C6371D", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://marketplace.citizenwallet.xyz/wallet.commonshub.brussels", + "icon": "https://marketplace.citizenwallet.xyz/marketplace.svg", + "name": "Market", + "signature": true, + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "42220:0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x4E127A1DAa66568B4a91E8c5615120a6Ea5442E3", + "entrypoint_address": "0xb7608dDA592d319687C89c4479e320b5a7740117", + "account_factory_address": "0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87" + }, + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x4860C0f127500F0cbF4a5Bd797cBb5aA50Eb0FbA", + "entrypoint_address": "0xb7608dDA592d319687C89c4479e320b5a7740117", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "42220:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 42220, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://commonshub.brussels", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/chb.png", + "name": "Commons Hub Brussels", + "alias": "wallet.commonshub.brussels", + "theme": { + "primary": "#ff4c02" + }, + "profile": { + "address": "0xc06bE1BbbeEAF2f34F3d5b76069D2560aee184Ae", + "chain_id": 42220 + }, + "description": "Community Token for the Commons Hub Brussels community", + "custom_domain": "wallet.commonshub.brussels", + "primary_token": { + "address": "0x65DD32834927de9E57E72a3E2130a19f81C6371D", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.commonshub.brussels" }, - "plugins": [ - { + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "cards": { + "42220:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 42220, + "instance_id": "cw-seldesalm" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2": { + "name": "Myrtille", + "symbol": "MYRT", + "address": "0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://citizenwallet.xyz/community-currency-documentation/sel-de-salm", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", + "name": "Informations Générales", + "launch_mode": "webview" + }, + { + "url": "https://marketplace.citizenwallet.xyz/seldesalm", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", + "name": "Échanges", + "signature": true, + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0xd07412020dA5054c3b49f47Ca61224637F1703af", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "42220:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 42220, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { "url": "https://citizenwallet.xyz/community-currency-documentation/sel-de-salm", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", - "name": "Informations Générales", - "launch_mode": "webview" - }, - { - "url": "https://marketplace.citizenwallet.xyz/seldesalm", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", - "name": "Échanges", - "signature": true, - "launch_mode": "webview" - } - ], - "version": 5, - "accounts": { - "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 42220, - "paymaster_type": "cw-safe", - "paymaster_address": "0xd07412020dA5054c3b49f47Ca61224637F1703af", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "sessions": { - "42220:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 42220, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" - } - }, - "community": { - "url": "https://citizenwallet.xyz/community-currency-documentation/sel-de-salm", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", - "name": "Sel de Salm", - "alias": "seldesalm", - "theme": { - "primary": "#6B5CA4" - }, - "profile": { - "address": "0x4083724953cC1cC13e76b436149B2b1e1a3E5970", - "chain_id": 42220 - }, - "description": "La communauté de Sel de Salm", - "primary_token": { - "address": "0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2", - "chain_id": 42220 - }, - "primary_card_manager": { - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 42220 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 42220 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/seldesalm" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://gnosisscan.io", - "name": "Gnosis Explorer" - }, - "chains": { - "100": { - "id": 100, - "node": { - "url": "https://engine.my.techi.be", - "ws_url": "wss://engine.my.techi.be" - } - } + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", + "name": "Sel de Salm", + "alias": "seldesalm", + "theme": { + "primary": "#6B5CA4" + }, + "profile": { + "address": "0x4083724953cC1cC13e76b436149B2b1e1a3E5970", + "chain_id": 42220 + }, + "description": "La communauté de Sel de Salm", + "primary_token": { + "address": "0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2", + "chain_id": 42220 + }, + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/seldesalm" }, - "tokens": { - "100:0x01D0E7117510b371Ac38f52Cc6689ff8875280FA": { + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://engine.my.techi.be", + "ws_url": "wss://engine.my.techi.be" + } + } + }, + "tokens": { + "100:0x01D0E7117510b371Ac38f52Cc6689ff8875280FA": { + "name": "TECHI", + "symbol": "TECHI", + "address": "0x01D0E7117510b371Ac38f52Cc6689ff8875280FA", + "chain_id": 100, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 100, + "paymaster_type": "cw-safe", + "paymaster_address": "0x68c5a20f233264DB124a3c95a200bbD20b3b9762", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 100, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://my.techi.be", + "logo": "https://my.techi.be/assets/token.svg", "name": "TECHI", - "symbol": "TECHI", - "address": "0x01D0E7117510b371Ac38f52Cc6689ff8875280FA", - "chain_id": 100, - "decimals": 6, - "standard": "erc20" - } - }, - "plugins": [], - "version": 5, - "accounts": { - "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 100, - "paymaster_type": "cw-safe", - "paymaster_address": "0x68c5a20f233264DB124a3c95a200bbD20b3b9762", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "sessions": { - "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 100, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" - } - }, - "community": { - "url": "https://my.techi.be", - "logo": "https://my.techi.be/assets/token.svg", - "name": "TECHI", - "alias": "my.techi.be", - "theme": { - "primary": "#617FF8" - }, - "hidden": false, - "profile": { - "address": "0x80C141861607b8FEfD53C9E71a9c7D2D3e2e76dc", - "chain_id": 100 - }, - "description": "A community for TECHI users", - "primary_token": { - "address": "0x01D0E7117510b371Ac38f52Cc6689ff8875280FA", - "chain_id": 100 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 100 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 100 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/my.techi.be" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "137:0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e": { - "name": "Regens Unite Token", - "symbol": "RGN", - "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", - "chain_id": 137, - "decimals": 6, - "standard": "erc20" - } - }, - "plugins": [], - "version": 5, - "accounts": { - "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 137, - "paymaster_type": "cw-safe", - "paymaster_address": "0x250711045d58b6310f0635C7D110BFe663cE1da5", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - }, - "137:0x9406Cc6185a346906296840746125a0E44976454": { - "chain_id": 137, - "paymaster_type": "payg", - "paymaster_address": "0x250711045d58b6310f0635C7D110BFe663cE1da5", - "entrypoint_address": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", - "gas_extra_percentage": 50, - "account_factory_address": "0x9406Cc6185a346906296840746125a0E44976454" - } - }, - "community": { - "url": "https://www.regensunite.earth/", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", - "name": "Regens Unite", - "alias": "wallet.regensunite.earth", - "hidden": true, - "profile": { - "address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", - "chain_id": 137 - }, - "description": "A community currency for the Regens Unite community.", - "custom_domain": "wallet.regensunite.earth", - "primary_token": { - "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 137 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.regensunite.earth" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" + "alias": "my.techi.be", + "theme": { + "primary": "#617FF8" + }, + "hidden": false, + "profile": { + "address": "0x80C141861607b8FEfD53C9E71a9c7D2D3e2e76dc", + "chain_id": 100 + }, + "description": "A community for TECHI users", + "primary_token": { + "address": "0x01D0E7117510b371Ac38f52Cc6689ff8875280FA", + "chain_id": 100 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 100 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 100 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/my.techi.be" }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "137:0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e": { + "name": "Regens Unite Token", + "symbol": "RGN", + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "chain_id": 137, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 137, + "paymaster_type": "cw-safe", + "paymaster_address": "0x250711045d58b6310f0635C7D110BFe663cE1da5", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + }, + "137:0x9406Cc6185a346906296840746125a0E44976454": { + "chain_id": 137, + "paymaster_type": "payg", + "paymaster_address": "0x250711045d58b6310f0635C7D110BFe663cE1da5", + "entrypoint_address": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", + "gas_extra_percentage": 50, + "account_factory_address": "0x9406Cc6185a346906296840746125a0E44976454" + } + }, + "community": { + "url": "https://www.regensunite.earth/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", + "name": "Regens Unite", + "alias": "wallet.regensunite.earth", + "hidden": true, + "profile": { + "address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", + "chain_id": 137 + }, + "description": "A community currency for the Regens Unite community.", + "custom_domain": "wallet.regensunite.earth", + "primary_token": { + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 137 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.regensunite.earth" }, - "tokens": { - "42220:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { + "name": "Gratitude Token", + "symbol": "GT", + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 42220, + "decimals": 0, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", + "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + }, + "42220:0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", + "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", + "account_factory_address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD" + } + }, + "community": { + "url": "https://citizenwallet.xyz/gratitude", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/gt.svg", "name": "Gratitude Token", - "symbol": "GT", - "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", - "chain_id": 42220, - "decimals": 0, - "standard": "erc20" - } - }, - "plugins": [], - "version": 5, - "accounts": { - "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 42220, - "paymaster_type": "cw-safe", - "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", - "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - }, - "42220:0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD": { - "chain_id": 42220, - "paymaster_type": "cw", - "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", - "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", - "account_factory_address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD" - } - }, - "community": { - "url": "https://citizenwallet.xyz/gratitude", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/gt.svg", - "name": "Gratitude Token", - "alias": "gt.celo", - "theme": { - "primary": "#a256ff" - }, - "hidden": true, - "profile": { - "address": "0xEEc0F3257369c6bCD2Fd8755CbEf8A95b12Bc4c9", - "chain_id": 42220 - }, - "description": "Express your gratitude towards someone by sending them a token.", - "custom_domain": null, - "primary_token": { - "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 42220 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/gt.celo" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "alias": "gt.celo", + "theme": { + "primary": "#a256ff" + }, + "hidden": true, + "profile": { + "address": "0xEEc0F3257369c6bCD2Fd8755CbEf8A95b12Bc4c9", + "chain_id": 42220 + }, + "description": "Express your gratitude towards someone by sending them a token.", + "custom_domain": null, + "primary_token": { + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/gt.celo" }, - "tokens": { - "42220:0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73": { + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73": { + "name": "Celo Euro", + "symbol": "cEUR", + "address": "0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73", + "chain_id": 42220, + "decimals": 18, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0xedbEA8c0F25B34510149EaD4f72867B0d3D2264F", + "entrypoint_address": "0xc3142BCBA2285d0a48A38e7Ea9Cbf28a12B235bB", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + }, + "42220:0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0xedbEA8c0F25B34510149EaD4f72867B0d3D2264F", + "entrypoint_address": "0xc3142BCBA2285d0a48A38e7Ea9Cbf28a12B235bB", + "account_factory_address": "0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098" + } + }, + "community": { + "url": "https://celo.org/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/ceur.svg", "name": "Celo Euro", - "symbol": "cEUR", - "address": "0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73", - "chain_id": 42220, - "decimals": 18, - "standard": "erc20" - } - }, - "plugins": [], - "version": 5, - "accounts": { - "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 42220, - "paymaster_type": "cw-safe", - "paymaster_address": "0xedbEA8c0F25B34510149EaD4f72867B0d3D2264F", - "entrypoint_address": "0xc3142BCBA2285d0a48A38e7Ea9Cbf28a12B235bB", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - }, - "42220:0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098": { - "chain_id": 42220, - "paymaster_type": "cw", - "paymaster_address": "0xedbEA8c0F25B34510149EaD4f72867B0d3D2264F", - "entrypoint_address": "0xc3142BCBA2285d0a48A38e7Ea9Cbf28a12B235bB", - "account_factory_address": "0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098" - } - }, - "community": { - "url": "https://celo.org/", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/ceur.svg", - "name": "Celo Euro", - "alias": "ceur.celo", - "theme": { - "primary": "#a256ff" - }, - "hidden": true, - "profile": { - "address": "0x0334C579E61aF6922D5deFEF02A361FBb2D6f406", - "chain_id": 42220 - }, - "description": "Celo Euro is a stablecoin for the Celo Community.", - "primary_token": { - "address": "0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 42220 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/ceur.celo" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "137:0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6": { - "name": "EUR emoney", - "symbol": "EURe", - "address": "0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6", - "chain_id": 137, - "decimals": 18, - "standard": "erc20" - } - }, - "plugins": [], - "version": 5, - "accounts": { - "137:0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616": { - "chain_id": 137, - "paymaster_type": "cw", - "paymaster_address": "0xB2cb6b75C2357Ca94dBdF58897E468E45fAC83Ec", - "entrypoint_address": "0x2027Bde7C276D5F128587E3107c68A488ee31c72", - "gas_extra_percentage": 50, - "account_factory_address": "0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616" - }, - "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 137, - "paymaster_type": "cw-safe", - "paymaster_address": "0xB2cb6b75C2357Ca94dBdF58897E468E45fAC83Ec", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "community": { - "url": "https://monerium.com/tokens/", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/eure.svg", - "name": "EUR e-money", - "alias": "eure.polygon", - "hidden": true, - "profile": { - "address": "0xF5F7317EDb8E88CaE09071B0C4F0fd6EA20B21f9", - "chain_id": 137 - }, - "description": "Token by Monerium EMI, a regulated entity, licensed in the EEA.", - "primary_token": { - "address": "0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 137 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/eure.polygon" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "137:0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174": { - "name": "USD Coin", - "symbol": "USDC", - "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", - "chain_id": 137, - "decimals": 6, - "standard": "erc20" - } - }, - "plugins": [], - "version": 5, - "accounts": { - "137:0x270758454C012A1f51428b68aE473D728CCdFe88": { - "chain_id": 137, - "paymaster_type": "cw", - "paymaster_address": "0xB5D1C0167E6325466E2918e9fda8cc41384C0291", - "entrypoint_address": "0x466AA6ed2B7Bb829841F5aAEA9e82B840eC0feF9", - "gas_extra_percentage": 50, - "account_factory_address": "0x270758454C012A1f51428b68aE473D728CCdFe88" - }, - "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 137, - "paymaster_type": "cw-safe", - "paymaster_address": "0xB5D1C0167E6325466E2918e9fda8cc41384C0291", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "community": { - "url": "https://en.wikipedia.org/wiki/USD_Coin", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/usdc.svg", - "name": "USDC on Polygon", - "alias": "app", - "theme": { - "primary": "#0052ff" - }, - "hidden": true, - "profile": { - "address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", - "chain_id": 137 - }, - "description": "The community of people using USDC on Polygon.", - "primary_token": { - "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 137 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/app" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://basescan.org", - "name": "Base Explorer" - }, - "chains": { - "8453": { - "id": 8453, - "node": { - "url": "https://8453.engine.citizenwallet.xyz", - "ws_url": "wss://8453.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "8453:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913": { - "name": "USD Coin", - "symbol": "USDC", - "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", - "chain_id": 8453, - "decimals": 6, - "standard": "erc20" - } - }, - "plugins": [], - "version": 5, - "accounts": { - "8453:0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99": { - "chain_id": 8453, - "paymaster_type": "cw", - "paymaster_address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", - "entrypoint_address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", - "gas_extra_percentage": 50, - "account_factory_address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99" - }, - "8453:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 8453, - "paymaster_type": "cw-safe", - "paymaster_address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "community": { - "url": "https://en.wikipedia.org/wiki/USD_Coin", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/usdc.svg", - "name": "USDC on Base", - "alias": "usdc.base", - "theme": { - "primary": "#0052ff" - }, - "hidden": true, - "profile": { - "address": "0x51Ef5Add405CCF63c206A80AF8c2B3cEE0282830", - "chain_id": 8453 - }, - "description": "The community of people using USDC on Base.", - "primary_token": { - "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", - "chain_id": 8453 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 8453 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/usdc.base" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://basescan.org", - "name": "Base Explorer" - }, - "chains": { - "8453": { - "id": 8453, - "node": { - "url": "https://8453.engine.citizenwallet.xyz", - "ws_url": "wss://8453.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "8453:0x845598Da418890a674cbaBA26b70807aF0c61dFE": { - "name": "OAK Community Currency", - "symbol": "OAK", - "address": "0x845598Da418890a674cbaBA26b70807aF0c61dFE", - "chain_id": 8453, - "decimals": 6, - "standard": "erc20" - } - }, - "plugins": [], - "version": 5, - "accounts": { - "8453:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 8453, - "paymaster_type": "cw-safe", - "paymaster_address": "0x123", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - }, - "8453:0x9406Cc6185a346906296840746125a0E44976454": { - "chain_id": 8453, - "paymaster_type": "payg", - "paymaster_address": "0x123", - "entrypoint_address": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", - "account_factory_address": "0x9406Cc6185a346906296840746125a0E44976454" - } + "alias": "ceur.celo", + "theme": { + "primary": "#a256ff" + }, + "hidden": true, + "profile": { + "address": "0x0334C579E61aF6922D5deFEF02A361FBb2D6f406", + "chain_id": 42220 + }, + "description": "Celo Euro is a stablecoin for the Celo Community.", + "primary_token": { + "address": "0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/ceur.celo" }, - "community": { - "url": "https://www.oak.community/", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/oak.svg", - "name": "OAK Community", - "alias": "wallet.oak.community", - "hidden": true, - "profile": { - "address": "0xFE213c74e25505B232CE4C7f89647408bE6f71d2", - "chain_id": 8453 - }, - "description": "A community currency for the city of Oakland.", - "custom_domain": "wallet.oak.community", - "primary_token": { - "address": "0x845598Da418890a674cbaBA26b70807aF0c61dFE", - "chain_id": 8453 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 8453 - } + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "137:0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6": { + "name": "EUR emoney", + "symbol": "EURe", + "address": "0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6", + "chain_id": 137, + "decimals": 18, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "137:0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616": { + "chain_id": 137, + "paymaster_type": "cw", + "paymaster_address": "0xB2cb6b75C2357Ca94dBdF58897E468E45fAC83Ec", + "entrypoint_address": "0x2027Bde7C276D5F128587E3107c68A488ee31c72", + "gas_extra_percentage": 50, + "account_factory_address": "0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616" + }, + "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 137, + "paymaster_type": "cw-safe", + "paymaster_address": "0xB2cb6b75C2357Ca94dBdF58897E468E45fAC83Ec", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://monerium.com/tokens/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/eure.svg", + "name": "EUR e-money", + "alias": "eure.polygon", + "hidden": true, + "profile": { + "address": "0xF5F7317EDb8E88CaE09071B0C4F0fd6EA20B21f9", + "chain_id": 137 + }, + "description": "Token by Monerium EMI, a regulated entity, licensed in the EEA.", + "primary_token": { + "address": "0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 137 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/eure.polygon" }, - "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.oak.community" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "137:0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174": { + "name": "USD Coin", + "symbol": "USDC", + "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", + "chain_id": 137, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "137:0x270758454C012A1f51428b68aE473D728CCdFe88": { + "chain_id": 137, + "paymaster_type": "cw", + "paymaster_address": "0xB5D1C0167E6325466E2918e9fda8cc41384C0291", + "entrypoint_address": "0x466AA6ed2B7Bb829841F5aAEA9e82B840eC0feF9", + "gas_extra_percentage": 50, + "account_factory_address": "0x270758454C012A1f51428b68aE473D728CCdFe88" + }, + "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 137, + "paymaster_type": "cw-safe", + "paymaster_address": "0xB5D1C0167E6325466E2918e9fda8cc41384C0291", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://en.wikipedia.org/wiki/USD_Coin", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/usdc.svg", + "name": "USDC on Polygon", + "alias": "app", + "theme": { + "primary": "#0052ff" + }, + "hidden": true, + "profile": { + "address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", + "chain_id": 137 + }, + "description": "The community of people using USDC on Polygon.", + "primary_token": { + "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 137 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/app" }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://basescan.org", + "name": "Base Explorer" + }, + "chains": { + "8453": { + "id": 8453, + "node": { + "url": "https://8453.engine.citizenwallet.xyz", + "ws_url": "wss://8453.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "8453:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913": { + "name": "USD Coin", + "symbol": "USDC", + "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", + "chain_id": 8453, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "8453:0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99": { + "chain_id": 8453, + "paymaster_type": "cw", + "paymaster_address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", + "entrypoint_address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", + "gas_extra_percentage": 50, + "account_factory_address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99" + }, + "8453:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 8453, + "paymaster_type": "cw-safe", + "paymaster_address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://en.wikipedia.org/wiki/USD_Coin", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/usdc.svg", + "name": "USDC on Base", + "alias": "usdc.base", + "theme": { + "primary": "#0052ff" + }, + "hidden": true, + "profile": { + "address": "0x51Ef5Add405CCF63c206A80AF8c2B3cEE0282830", + "chain_id": 8453 + }, + "description": "The community of people using USDC on Base.", + "primary_token": { + "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", + "chain_id": 8453 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 8453 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/usdc.base" }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://basescan.org", + "name": "Base Explorer" + }, + "chains": { + "8453": { + "id": 8453, + "node": { + "url": "https://8453.engine.citizenwallet.xyz", + "ws_url": "wss://8453.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "8453:0x845598Da418890a674cbaBA26b70807aF0c61dFE": { + "name": "OAK Community Currency", + "symbol": "OAK", + "address": "0x845598Da418890a674cbaBA26b70807aF0c61dFE", + "chain_id": 8453, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "8453:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 8453, + "paymaster_type": "cw-safe", + "paymaster_address": "0x123", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + }, + "8453:0x9406Cc6185a346906296840746125a0E44976454": { + "chain_id": 8453, + "paymaster_type": "payg", + "paymaster_address": "0x123", + "entrypoint_address": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", + "account_factory_address": "0x9406Cc6185a346906296840746125a0E44976454" + } + }, + "community": { + "url": "https://www.oak.community/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/oak.svg", + "name": "OAK Community", + "alias": "wallet.oak.community", + "hidden": true, + "profile": { + "address": "0xFE213c74e25505B232CE4C7f89647408bE6f71d2", + "chain_id": 8453 + }, + "description": "A community currency for the city of Oakland.", + "custom_domain": "wallet.oak.community", + "primary_token": { + "address": "0x845598Da418890a674cbaBA26b70807aF0c61dFE", + "chain_id": 8453 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 8453 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.oak.community" }, - "tokens": { - "137:0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798": { + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "137:0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798": { + "name": "Stable Coin", + "symbol": "SBC", + "address": "0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798", + "chain_id": 137, + "decimals": 18, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "137:0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5": { + "chain_id": 137, + "paymaster_type": "cw", + "paymaster_address": "0x123", + "entrypoint_address": "0xe84423Ba1A3f3535B09237245e22dBda5E27eB88", + "account_factory_address": "0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5" + }, + "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 137, + "paymaster_type": "cw-safe", + "paymaster_address": "0x123", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://brale.xyz/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sbc.svg", "name": "Stable Coin", - "symbol": "SBC", - "address": "0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798", - "chain_id": 137, - "decimals": 18, - "standard": "erc20" - } - }, - "plugins": [], - "version": 5, - "accounts": { - "137:0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5": { - "chain_id": 137, - "paymaster_type": "cw", - "paymaster_address": "0x123", - "entrypoint_address": "0xe84423Ba1A3f3535B09237245e22dBda5E27eB88", - "account_factory_address": "0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5" - }, - "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 137, - "paymaster_type": "cw-safe", - "paymaster_address": "0x123", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "community": { - "url": "https://brale.xyz/", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sbc.svg", - "name": "Stable Coin", - "alias": "sbc.polygon", - "hidden": true, - "profile": { - "address": "0xcA0a75EF803a364C83c5EAE7Eb889aE7419c9dF2", - "chain_id": 137 - }, - "description": "SBC is a digital dollar stablecoin issued by Brale", - "primary_token": { - "address": "0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 137 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/sbc.polygon" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "137:0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D": { - "name": "Zinne.brussels Token", - "symbol": "ZINNE", - "address": "0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D", - "chain_id": 137, - "decimals": 6, - "standard": "erc20" - } - }, - "plugins": [], - "version": 5, - "accounts": { - "137:0x11af2639817692D2b805BcE0e1e405E530B20006": { - "chain_id": 137, - "paymaster_type": "cw", - "paymaster_address": "0xBb796D122Ec1aBDeD081D50B06a072f981c7E62b", - "entrypoint_address": "0xF5507B3042f1C63625D856a2ABFF046243A5D74e", - "account_factory_address": "0x11af2639817692D2b805BcE0e1e405E530B20006" - }, - "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 137, - "paymaster_type": "cw-safe", - "paymaster_address": "0xBb796D122Ec1aBDeD081D50B06a072f981c7E62b", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "community": { - "url": "https://zinne.brussels", - "logo": "https://citizenwallet.xyz/zinne/zinne-coin.svg", - "name": "Zinne.brussels", - "alias": "zinne", - "hidden": true, - "profile": { - "address": "0x23DB3D3Da510e60aF40902A04850E1F3a744905c", - "chain_id": 137 - }, - "description": "A community currency for the city of Brussels", - "primary_token": { - "address": "0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 137 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/zinne" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://celoscan.io", - "name": "CELO Explorer" - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "42220:0x186DaBD027e228C988777907465807FDab270894": { - "name": "Regen Hour", - "symbol": "rHour", - "address": "0x186DaBD027e228C988777907465807FDab270894", - "chain_id": 42220, - "decimals": 6, - "standard": "erc20" - } - }, - "plugins": [ - { - "url": "https://marketplace.citizenwallet.xyz/timebank.regensunite.earth", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", - "name": "Market", - "signature": true, - "launch_mode": "webview" - } - ], - "version": 5, - "accounts": { - "42220:0x39b77d77f7677997871b304094a05295eb71e240": { - "chain_id": 42220, - "paymaster_type": "cw", - "paymaster_address": "0xe45858bf63176595c2920822581917c7C705a12f", - "entrypoint_address": "0x41176F0C9b8f795Cb99e2DD5Db16017978eeFa4d", - "account_factory_address": "0x39b77d77f7677997871b304094a05295eb71e240" - }, - "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 42220, - "paymaster_type": "cw-safe", - "paymaster_address": "0xe45858bf63176595c2920822581917c7C705a12f", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "community": { - "url": "https://regensunite.earth", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", - "name": "Regens Unite Time Bank", - "alias": "timebank.regensunite.earth", - "hidden": true, - "profile": { - "address": "0x605A827DF8C405D16Ec70AAb8d9a47D21db45c09", - "chain_id": 42220 - }, - "description": "Make time to regen", - "primary_token": { - "address": "0x186DaBD027e228C988777907465807FDab270894", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 42220 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/timebank.regensunite.earth" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "alias": "sbc.polygon", + "hidden": true, + "profile": { + "address": "0xcA0a75EF803a364C83c5EAE7Eb889aE7419c9dF2", + "chain_id": 137 + }, + "description": "SBC is a digital dollar stablecoin issued by Brale", + "primary_token": { + "address": "0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 137 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/sbc.polygon" }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "137:0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D": { + "name": "Zinne.brussels Token", + "symbol": "ZINNE", + "address": "0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D", + "chain_id": 137, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "137:0x11af2639817692D2b805BcE0e1e405E530B20006": { + "chain_id": 137, + "paymaster_type": "cw", + "paymaster_address": "0xBb796D122Ec1aBDeD081D50B06a072f981c7E62b", + "entrypoint_address": "0xF5507B3042f1C63625D856a2ABFF046243A5D74e", + "account_factory_address": "0x11af2639817692D2b805BcE0e1e405E530B20006" + }, + "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 137, + "paymaster_type": "cw-safe", + "paymaster_address": "0xBb796D122Ec1aBDeD081D50B06a072f981c7E62b", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://zinne.brussels", + "logo": "https://citizenwallet.xyz/zinne/zinne-coin.svg", + "name": "Zinne.brussels", + "alias": "zinne", + "hidden": true, + "profile": { + "address": "0x23DB3D3Da510e60aF40902A04850E1F3a744905c", + "chain_id": 137 + }, + "description": "A community currency for the city of Brussels", + "primary_token": { + "address": "0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 137 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/zinne" }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0x186DaBD027e228C988777907465807FDab270894": { + "name": "Regen Hour", + "symbol": "rHour", + "address": "0x186DaBD027e228C988777907465807FDab270894", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://marketplace.citizenwallet.xyz/timebank.regensunite.earth", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", + "name": "Market", + "signature": true, + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "42220:0x39b77d77f7677997871b304094a05295eb71e240": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0xe45858bf63176595c2920822581917c7C705a12f", + "entrypoint_address": "0x41176F0C9b8f795Cb99e2DD5Db16017978eeFa4d", + "account_factory_address": "0x39b77d77f7677997871b304094a05295eb71e240" + }, + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0xe45858bf63176595c2920822581917c7C705a12f", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://regensunite.earth", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", + "name": "Regens Unite Time Bank", + "alias": "timebank.regensunite.earth", + "hidden": true, + "profile": { + "address": "0x605A827DF8C405D16Ec70AAb8d9a47D21db45c09", + "chain_id": 42220 + }, + "description": "Make time to regen", + "primary_token": { + "address": "0x186DaBD027e228C988777907465807FDab270894", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/timebank.regensunite.earth" }, - "tokens": { - "42220:0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3": { + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3": { + "name": "MOOS Token", + "symbol": "MOOS", + "address": "0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://marketplace.citizenwallet.xyz/moos", + "icon": "https://moos.citizenwallet.xyz/wallet-config/_images/moos.svg", + "name": "Market", + "signature": true, + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "42220:0x671f0662de72268d0f3966Fb62dFc6ee6389e244": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x55E519bfD63c7152D9F7B88Acd712A37F0BEC482", + "entrypoint_address": "0x45a8e6AaDCc48D1Ce19eCbE07Ccd3a536EF712ed", + "account_factory_address": "0x671f0662de72268d0f3966Fb62dFc6ee6389e244" + }, + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x55E519bfD63c7152D9F7B88Acd712A37F0BEC482", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://www.moos.garden/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/moos.svg", "name": "MOOS Token", - "symbol": "MOOS", - "address": "0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3", - "chain_id": 42220, - "decimals": 6, - "standard": "erc20" - } - }, - "plugins": [ - { - "url": "https://marketplace.citizenwallet.xyz/moos", - "icon": "https://moos.citizenwallet.xyz/wallet-config/_images/moos.svg", - "name": "Market", - "signature": true, - "launch_mode": "webview" - } - ], - "version": 5, - "accounts": { - "42220:0x671f0662de72268d0f3966Fb62dFc6ee6389e244": { - "chain_id": 42220, - "paymaster_type": "cw", - "paymaster_address": "0x55E519bfD63c7152D9F7B88Acd712A37F0BEC482", - "entrypoint_address": "0x45a8e6AaDCc48D1Ce19eCbE07Ccd3a536EF712ed", - "account_factory_address": "0x671f0662de72268d0f3966Fb62dFc6ee6389e244" - }, - "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 42220, - "paymaster_type": "cw-safe", - "paymaster_address": "0x55E519bfD63c7152D9F7B88Acd712A37F0BEC482", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "community": { - "url": "https://www.moos.garden/", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/moos.svg", - "name": "MOOS Token", - "alias": "moos", - "hidden": true, - "profile": { - "address": "0x2e4542Be47408d05F41703386eFaf4338Ee1D341", - "chain_id": 42220 - }, - "description": "A community currency for MOOS.", - "primary_token": { - "address": "0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 42220 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/moos" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "alias": "moos", + "hidden": true, + "profile": { + "address": "0x2e4542Be47408d05F41703386eFaf4338Ee1D341", + "chain_id": 42220 + }, + "description": "A community currency for MOOS.", + "primary_token": { + "address": "0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/moos" }, - "tokens": { - "42220:0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3": { + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3": { + "name": "Bonne Heure", + "symbol": "BHR", + "address": "0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://marketplace.citizenwallet.xyz/selcoupdepouce", + "icon": "https://marketplace.citizenwallet.xyz/marketplace.svg", + "name": "Market", + "signature": true, + "launch_mode": "browser" + } + ], + "version": 5, + "accounts": { + "42220:0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x635032605337aB36A46D767905108e67EE687a72", + "entrypoint_address": "0xA90904F33df36899d810d040b8d5b3b77265Bb05", + "account_factory_address": "0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284" + }, + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x635032605337aB36A46D767905108e67EE687a72", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://selcoupdepouce.be", + "logo": "https://topup.citizenwallet.xyz/communities/selcoupdepouce/sel-coin.svg", "name": "Bonne Heure", - "symbol": "BHR", - "address": "0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3", - "chain_id": 42220, - "decimals": 6, - "standard": "erc20" - } - }, - "plugins": [ - { - "url": "https://marketplace.citizenwallet.xyz/selcoupdepouce", - "icon": "https://marketplace.citizenwallet.xyz/marketplace.svg", - "name": "Market", - "signature": true, - "launch_mode": "browser" - } - ], - "version": 5, - "accounts": { - "42220:0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284": { - "chain_id": 42220, - "paymaster_type": "cw", - "paymaster_address": "0x635032605337aB36A46D767905108e67EE687a72", - "entrypoint_address": "0xA90904F33df36899d810d040b8d5b3b77265Bb05", - "account_factory_address": "0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284" - }, - "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 42220, - "paymaster_type": "cw-safe", - "paymaster_address": "0x635032605337aB36A46D767905108e67EE687a72", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "community": { - "url": "https://selcoupdepouce.be", - "logo": "https://topup.citizenwallet.xyz/communities/selcoupdepouce/sel-coin.svg", - "name": "Bonne Heure", - "alias": "selcoupdepouce", - "hidden": true, - "profile": { - "address": "0xfB8F1e7ED42599638B3c509679E2F43937002C56", - "chain_id": 42220 - }, - "description": "Système d'Échange Local de Villers-la-Ville", - "primary_token": { - "address": "0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 42220 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/selcoupdepouce" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "alias": "selcoupdepouce", + "hidden": true, + "profile": { + "address": "0xfB8F1e7ED42599638B3c509679E2F43937002C56", + "chain_id": 42220 + }, + "description": "Système d'Échange Local de Villers-la-Ville", + "primary_token": { + "address": "0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/selcoupdepouce" }, - "tokens": { - "42220:0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9": { + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9": { + "name": "CI token", + "symbol": "CIT", + "address": "0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "version": 5, + "accounts": { + "42220:0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x452F7ff3e55fe29f481841985dE7f4939FD645fa", + "entrypoint_address": "0xB8d9412f3A91A00ca762B5c35cd0863E9b716D68", + "account_factory_address": "0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970" + }, + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x452F7ff3e55fe29f481841985dE7f4939FD645fa", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://citizenwallet.xyz/cit", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/cit.celo.svg", "name": "CI token", - "symbol": "CIT", - "address": "0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9", - "chain_id": 42220, - "decimals": 6, - "standard": "erc20" - } - }, - "version": 5, - "accounts": { - "42220:0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970": { - "chain_id": 42220, - "paymaster_type": "cw", - "paymaster_address": "0x452F7ff3e55fe29f481841985dE7f4939FD645fa", - "entrypoint_address": "0xB8d9412f3A91A00ca762B5c35cd0863E9b716D68", - "account_factory_address": "0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970" - }, - "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 42220, - "paymaster_type": "cw-safe", - "paymaster_address": "0x452F7ff3e55fe29f481841985dE7f4939FD645fa", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "community": { - "url": "https://citizenwallet.xyz/cit", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/cit.celo.svg", - "name": "CI token", - "alias": "cit.celo", - "hidden": true, - "profile": { - "address": "0x4cB296BEc9FAd0B5e1E4FF1A2F307B425724AC82", - "chain_id": 42220 - }, - "description": "Monnaie locale du Cercle Informatique de l’ULB", - "primary_token": { - "address": "0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 42220 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/cit.celo" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://celoscan.io", - "name": "CELO Explorer" - }, - "cards": { - "42220:0xA3E1446E332a098A1f3b0555c5d149b4784A095F": { - "type": "classic", - "address": "0xA3E1446E332a098A1f3b0555c5d149b4784A095F", - "chain_id": 42220 - } - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "42220:0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451": { - "name": "Wolu", - "symbol": "WOLU", - "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", - "chain_id": 42220, - "decimals": 6, - "standard": "erc20" - } - }, - "version": 5, - "accounts": { - "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 42220, - "paymaster_type": "cw-safe", - "paymaster_address": "0xF2EFEC3cBFaDE0bB6108620cbF7Cc608d27DCF3c", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - }, - "42220:0x8474153A00C959f2cB64852949954DBC68415Bb3": { - "chain_id": 42220, - "paymaster_type": "cw", - "paymaster_address": "0xF2EFEC3cBFaDE0bB6108620cbF7Cc608d27DCF3c", - "entrypoint_address": "0x0F805BC1ED718FB9C7C18439cB11E1C17C6538C4", - "account_factory_address": "0x8474153A00C959f2cB64852949954DBC68415Bb3" - } - }, - "community": { - "url": "https://wolugo.be", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/wolugo.svg", - "name": "Wolugo", - "alias": "wallet.wolugo.be", - "theme": { - "primary": "#81e2c1" - }, - "hidden": true, - "profile": { - "address": "0x07e7b95B35866302b3A089feF4CFA3061061a51d", - "chain_id": 42220 - }, - "description": "A community for the Woluwe-Saint-Pierre civic engagement platform", - "card_factory": { - "address": "0xA3E1446E332a098A1f3b0555c5d149b4784A095F", - "chain_id": 42220 - }, - "custom_domain": "wallet.wolugo.be", - "primary_token": { - "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 42220 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.wolugo.be" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "42220:0xc53Cb35591959cA62471dA9fF6AC16629A89874a": { - "name": "Woluwe Test Coin", - "symbol": "WTC", - "address": "0xc53Cb35591959cA62471dA9fF6AC16629A89874a", - "chain_id": 42220, - "decimals": 6, - "standard": "erc20" - } - }, - "version": 5, - "accounts": { - "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 42220, - "paymaster_type": "cw-safe", - "paymaster_address": "0x3fefC19674f3F6E43B1dFf1861E07c303B9eAAc9", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - }, - "42220:0xE79E19594A749330036280c685E2719d58d99052": { - "chain_id": 42220, - "paymaster_type": "cw", - "paymaster_address": "0x3fefC19674f3F6E43B1dFf1861E07c303B9eAAc9", - "entrypoint_address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", - "account_factory_address": "0xE79E19594A749330036280c685E2719d58d99052" - } - }, - "community": { - "url": "https://wollet-v2.citizenwallet.net/token", - "logo": "https://wtc.celo.citizenwallet.xyz/wallet-config/_images/wtc.celo.svg", - "name": "Woluwe Test", - "alias": "wtc.celo", - "hidden": true, - "profile": { - "address": "0xB99a7B1574f051020EB4cb2fce5d48EE07592AfF", - "chain_id": 42220 - }, - "description": "Local currency for the Woluwe Test community.", - "primary_token": { - "address": "0xc53Cb35591959cA62471dA9fF6AC16629A89874a", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 42220 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/wtc.celo" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "alias": "cit.celo", + "hidden": true, + "profile": { + "address": "0x4cB296BEc9FAd0B5e1E4FF1A2F307B425724AC82", + "chain_id": 42220 + }, + "description": "Monnaie locale du Cercle Informatique de l’ULB", + "primary_token": { + "address": "0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/cit.celo" }, - "scan": { - "url": "https://sepolia.basescan.org", - "name": "Base Sepolia Explorer" + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "cards": { + "42220:0xA3E1446E332a098A1f3b0555c5d149b4784A095F": { + "type": "classic", + "address": "0xA3E1446E332a098A1f3b0555c5d149b4784A095F", + "chain_id": 42220 + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451": { + "name": "Wolu", + "symbol": "WOLU", + "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0xF2EFEC3cBFaDE0bB6108620cbF7Cc608d27DCF3c", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + }, + "42220:0x8474153A00C959f2cB64852949954DBC68415Bb3": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0xF2EFEC3cBFaDE0bB6108620cbF7Cc608d27DCF3c", + "entrypoint_address": "0x0F805BC1ED718FB9C7C18439cB11E1C17C6538C4", + "account_factory_address": "0x8474153A00C959f2cB64852949954DBC68415Bb3" + } + }, + "community": { + "url": "https://wolugo.be", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/wolugo.svg", + "name": "Wolugo", + "alias": "wallet.wolugo.be", + "theme": { + "primary": "#81e2c1" + }, + "hidden": true, + "profile": { + "address": "0x07e7b95B35866302b3A089feF4CFA3061061a51d", + "chain_id": 42220 + }, + "description": "A community for the Woluwe-Saint-Pierre civic engagement platform", + "card_factory": { + "address": "0xA3E1446E332a098A1f3b0555c5d149b4784A095F", + "chain_id": 42220 + }, + "custom_domain": "wallet.wolugo.be", + "primary_token": { + "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.wolugo.be" }, - "chains": { - "84532": { - "id": 84532, - "node": { - "url": "https://84532.engine.citizenwallet.xyz", - "ws_url": "wss://84532.engine.citizenwallet.xyz" - } - } + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0xc53Cb35591959cA62471dA9fF6AC16629A89874a": { + "name": "Woluwe Test Coin", + "symbol": "WTC", + "address": "0xc53Cb35591959cA62471dA9fF6AC16629A89874a", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x3fefC19674f3F6E43B1dFf1861E07c303B9eAAc9", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + }, + "42220:0xE79E19594A749330036280c685E2719d58d99052": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x3fefC19674f3F6E43B1dFf1861E07c303B9eAAc9", + "entrypoint_address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "account_factory_address": "0xE79E19594A749330036280c685E2719d58d99052" + } + }, + "community": { + "url": "https://wollet-v2.citizenwallet.net/token", + "logo": "https://wtc.celo.citizenwallet.xyz/wallet-config/_images/wtc.celo.svg", + "name": "Woluwe Test", + "alias": "wtc.celo", + "hidden": true, + "profile": { + "address": "0xB99a7B1574f051020EB4cb2fce5d48EE07592AfF", + "chain_id": 42220 + }, + "description": "Local currency for the Woluwe Test community.", + "primary_token": { + "address": "0xc53Cb35591959cA62471dA9fF6AC16629A89874a", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wtc.celo" }, - "tokens": { - "84532:0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e": { + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://sepolia.basescan.org", + "name": "Base Sepolia Explorer" + }, + "chains": { + "84532": { + "id": 84532, + "node": { + "url": "https://84532.engine.citizenwallet.xyz", + "ws_url": "wss://84532.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "84532:0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e": { + "name": "ETHGlobal London Token", + "symbol": "ETHLDN", + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "chain_id": 84532, + "decimals": 6, + "standard": "erc20" + } + }, + "version": 5, + "accounts": { + "84532:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 84532, + "paymaster_type": "cw-safe", + "paymaster_address": "0x389182aCCeE26D953d5188BF4b92c49339DcC9FC", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + }, + "84532:0xc1654087C580f868F08E34cd1c01eDB1d3673b82": { + "chain_id": 84532, + "paymaster_type": "cw", + "paymaster_address": "0x389182aCCeE26D953d5188BF4b92c49339DcC9FC", + "entrypoint_address": "0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE", + "account_factory_address": "0xc1654087C580f868F08E34cd1c01eDB1d3673b82" + } + }, + "community": { + "url": "https://en.wikipedia.org/wiki/USD_Coin", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/testnet-ethldn.svg", "name": "ETHGlobal London Token", - "symbol": "ETHLDN", - "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", - "chain_id": 84532, - "decimals": 6, - "standard": "erc20" - } - }, - "version": 5, - "accounts": { - "84532:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 84532, - "paymaster_type": "cw-safe", - "paymaster_address": "0x389182aCCeE26D953d5188BF4b92c49339DcC9FC", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - }, - "84532:0xc1654087C580f868F08E34cd1c01eDB1d3673b82": { - "chain_id": 84532, - "paymaster_type": "cw", - "paymaster_address": "0x389182aCCeE26D953d5188BF4b92c49339DcC9FC", - "entrypoint_address": "0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE", - "account_factory_address": "0xc1654087C580f868F08E34cd1c01eDB1d3673b82" - } - }, - "community": { - "url": "https://en.wikipedia.org/wiki/USD_Coin", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/testnet-ethldn.svg", - "name": "ETHGlobal London Token", - "alias": "testnet-ethldn", - "hidden": true, - "profile": { - "address": "0x0785D720279f42326846D5396b5F44b97d0BfECd", - "chain_id": 84532 - }, - "description": "The community of people using ETHLDN on Base.", - "primary_token": { - "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", - "chain_id": 84532 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 84532 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/testnet-ethldn" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://celoscan.io", - "name": "CELO Explorer" - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "alias": "testnet-ethldn", + "hidden": true, + "profile": { + "address": "0x0785D720279f42326846D5396b5F44b97d0BfECd", + "chain_id": 84532 + }, + "description": "The community of people using ETHLDN on Base.", + "primary_token": { + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "chain_id": 84532 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 84532 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/testnet-ethldn" }, - "tokens": { - "42220:0x3C960E72BBbD837293e75080E1d0Fee6a4640357": { + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0x3C960E72BBbD837293e75080E1d0Fee6a4640357": { + "name": "Celo Community Point", + "symbol": "CeloC", + "address": "0x3C960E72BBbD837293e75080E1d0Fee6a4640357", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x7f4011845Ea914b6cefc60629e1e00600c972c75", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + }, + "42220:0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x7f4011845Ea914b6cefc60629e1e00600c972c75", + "entrypoint_address": "0x66fE9c22CcA49B257dd4F00508AC90198d99Bf27", + "account_factory_address": "0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA" + } + }, + "community": { + "url": "https://citizenwallet.xyz", + "logo": "https://celo-c.citizenwallet.xyz/uploads/logo.svg", "name": "Celo Community Point", - "symbol": "CeloC", - "address": "0x3C960E72BBbD837293e75080E1d0Fee6a4640357", - "chain_id": 42220, - "decimals": 6, - "standard": "erc20" - } - }, - "version": 5, - "accounts": { - "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 42220, - "paymaster_type": "cw-safe", - "paymaster_address": "0x7f4011845Ea914b6cefc60629e1e00600c972c75", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - }, - "42220:0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA": { - "chain_id": 42220, - "paymaster_type": "cw", - "paymaster_address": "0x7f4011845Ea914b6cefc60629e1e00600c972c75", - "entrypoint_address": "0x66fE9c22CcA49B257dd4F00508AC90198d99Bf27", - "account_factory_address": "0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA" - } - }, - "community": { - "url": "https://citizenwallet.xyz", - "logo": "https://celo-c.citizenwallet.xyz/uploads/logo.svg", - "name": "Celo Community Point", - "alias": "celo-c.citizenwallet.xyz", - "hidden": true, - "profile": { - "address": "0x14004E13907282cFaD05f742022E56926eE92dAd", - "chain_id": 42220 - }, - "description": "This is a community for the Celo Point", - "primary_token": { - "address": "0x3C960E72BBbD837293e75080E1d0Fee6a4640357", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 42220 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/celo-c.citizenwallet.xyz" -}, - -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "42220:0x56744910f7dEcD48c1a7FA61B4C317b15E99F156": { - "name": "KFMEDIA℠ Pathways for LATAM™", - "symbol": "KFMPFL", - "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", - "chain_id": 42220, - "decimals": 0, - "standard": "erc1155" - } - }, - "version": 5, - "accounts": { - "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 42220, - "paymaster_type": "cw-safe", - "paymaster_address": "0x02BDA8370d9497A5C808B2db237cfaA8f0733F36", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "sessions": { - "42220:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 42220, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" - } - }, - "community": { - "url": "https://kingfishersmedia.io", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/kfmpfl.png", - "name": "KFMEDIA℠", - "alias": "wallet.kingfishersmedia.io", - "theme": { - "primary": "#88292c" - }, - "profile": { - "address": "0x5f6FEb03ad8EfeCdD2a837FAA1a29DEA2bAcfd55", - "chain_id": 42220 - }, - "description": "Certified Education Organization. Solving systemic educational disparity using Web3 solutions, removing barriers of entry for underdeveloped economies.", - "custom_domain": "wallet.kingfishersmedia.io", - "primary_token": { - "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 42220 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 42220 - } + "alias": "celo-c.citizenwallet.xyz", + "hidden": true, + "profile": { + "address": "0x14004E13907282cFaD05f742022E56926eE92dAd", + "chain_id": 42220 + }, + "description": "This is a community for the Celo Point", + "primary_token": { + "address": "0x3C960E72BBbD837293e75080E1d0Fee6a4640357", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/celo-c.citizenwallet.xyz" }, - "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.kingfishersmedia.io" -} + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0x56744910f7dEcD48c1a7FA61B4C317b15E99F156": { + "name": "KFMEDIA℠ Pathways for LATAM™", + "symbol": "KFMPFL", + "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", + "chain_id": 42220, + "decimals": 0, + "standard": "erc1155" + } + }, + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x02BDA8370d9497A5C808B2db237cfaA8f0733F36", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "42220:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 42220, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://kingfishersmedia.io", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/kfmpfl.png", + "name": "KFMEDIA℠", + "alias": "wallet.kingfishersmedia.io", + "theme": { + "primary": "#88292c" + }, + "profile": { + "address": "0x5f6FEb03ad8EfeCdD2a837FAA1a29DEA2bAcfd55", + "chain_id": 42220 + }, + "description": "Certified Education Organization. Solving systemic educational disparity using Web3 solutions, removing barriers of entry for underdeveloped economies.", + "custom_domain": "wallet.kingfishersmedia.io", + "primary_token": { + "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.kingfishersmedia.io" + } ] diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index 711c09c3..396deeb6 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -207,2239 +207,2238 @@ }, "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.pay.brussels" }, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "cards": { - "42220:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { - "type": "safe", - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 42220, - "instance_id": "cw-discord-1" - } - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "42220:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "cards": { + "42220:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 42220, + "instance_id": "cw-discord-1" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { + "name": "Gratitude Token", + "symbol": "GT", + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 42220, + "decimals": 0, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0xF05ba2641b31AF70c2678e3324eD8b9C53093FbE", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + }, + "42220:0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", + "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", + "account_factory_address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD" + } + }, + "sessions": { + "42220:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 42220, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://citizenwallet.xyz/gratitude", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/gt.svg", "name": "Gratitude Token", - "symbol": "GT", - "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", - "chain_id": 42220, - "decimals": 0, - "standard": "erc20" - } - }, - "plugins": [], - "version": 5, - "accounts": { - "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 42220, - "paymaster_type": "cw-safe", - "paymaster_address": "0xF05ba2641b31AF70c2678e3324eD8b9C53093FbE", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - }, - "42220:0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD": { - "chain_id": 42220, - "paymaster_type": "cw", - "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", - "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", - "account_factory_address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD" - } - }, - "sessions": { - "42220:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 42220, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" - } - }, - "community": { - "url": "https://citizenwallet.xyz/gratitude", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/gt.svg", - "name": "Gratitude Token", - "alias": "gratitude", - "theme": { - "primary": "#4EC19D" - }, - "profile": { - "address": "0xEEc0F3257369c6bCD2Fd8755CbEf8A95b12Bc4c9", - "chain_id": 42220 - }, - "description": "Express your gratitude towards someone by sending them a token of gratitude.", - "primary_token": { - "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", - "chain_id": 42220 - }, - "primary_card_manager": { - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 42220 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 42220 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/gratitude" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "cards": { - "80094:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { - "type": "safe", - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 80094, - "instance_id": "cw-discord-1" - } - }, - "chains": { - "80094": { - "id": 80094, - "node": { - "url": "https://80094.engine.citizenwallet.xyz", - "ws_url": "wss://80094.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "80094:0x881cad4f885c6701d8481c0ed347f6d35444ea7e": { - "name": "SFLUV V1.1", - "symbol": "SFLUV", - "address": "0x881cad4f885c6701d8481c0ed347f6d35444ea7e", - "chain_id": 80094, - "decimals": 18, - "standard": "erc20" - } - }, - "plugins": [ - { - "url": "https://app.sfluv.org", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", - "name": "About", - "hidden": true, - "signature": true, - "launch_mode": "webview" - } - ], - "version": 5, - "accounts": { - "80094:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 80094, - "paymaster_type": "cw-safe", - "paymaster_address": "0x9A5be02B65f9Aa00060cB8c951dAFaBAB9B860cd", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "sessions": { - "80094:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 80094, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" - } - }, - "community": { - "url": "https://sfluv.org", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", - "name": "SFLUV Community", - "alias": "wallet.berachain.sfluv.org", - "theme": { - "primary": "#eb6c6c" - }, - "profile": { - "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", - "chain_id": 80094 - }, - "description": "A community currency for the city of San Francisco.", - "custom_domain": "wallet.sfluv.org", - "primary_token": { - "address": "0x881cad4f885c6701d8481c0ed347f6d35444ea7e", - "chain_id": 80094 - }, - "primary_card_manager": { - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 80094 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 80094 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 80094 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.berachain.sfluv.org" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "137:0x58a2993A618Afee681DE23dECBCF535A58A080BA": { - "name": "SFLUV V1.1", - "symbol": "SFLUV", - "address": "0x58a2993A618Afee681DE23dECBCF535A58A080BA", - "chain_id": 137, - "decimals": 6, - "standard": "erc20" - } - }, - "plugins": [ - { - "url": "https://app.sfluv.org", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", - "name": "About", - "hidden": true, - "signature": true, - "launch_mode": "webview" - } - ], - "version": 5, - "accounts": { - "137:0x5e987a6c4bb4239d498E78c34e986acf29c81E8e": { - "chain_id": 137, - "paymaster_type": "cw", - "paymaster_address": "0x7FC98D0a2bd7f766bAca37388eB0F6Db37666B33", - "entrypoint_address": "0x2d01C5E40Aa6a8478eD0FFbF2784EBb9bf67C46A", - "account_factory_address": "0x5e987a6c4bb4239d498E78c34e986acf29c81E8e" - } - }, - "sessions": { - "137:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 137, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" - } - }, - "community": { - "url": "https://sfluv.org", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", - "name": "SFLUV Community (Polygon)", - "alias": "wallet.sfluv.org", - "theme": { - "primary": "#eb6c6c" - }, - "profile": { - "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", - "chain_id": 137 - }, - "description": "A community currency for the city of San Francisco.", - "custom_domain": "wallet.polygon.sfluv.org", - "primary_token": { - "address": "0x58a2993A618Afee681DE23dECBCF535A58A080BA", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x5e987a6c4bb4239d498E78c34e986acf29c81E8e", - "chain_id": 137 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 137 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.sfluv.org" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + "alias": "gratitude", + "theme": { + "primary": "#4EC19D" + }, + "profile": { + "address": "0xEEc0F3257369c6bCD2Fd8755CbEf8A95b12Bc4c9", + "chain_id": 42220 + }, + "description": "Express your gratitude towards someone by sending them a token of gratitude.", + "primary_token": { + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 42220 + }, + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/gratitude" }, - "scan": { - "url": "https://gnosisscan.io", - "name": "Gnosis Explorer" + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "cards": { + "80094:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 80094, + "instance_id": "cw-discord-1" + } + }, + "chains": { + "80094": { + "id": 80094, + "node": { + "url": "https://80094.engine.citizenwallet.xyz", + "ws_url": "wss://80094.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "80094:0x881cad4f885c6701d8481c0ed347f6d35444ea7e": { + "name": "SFLUV V1.1", + "symbol": "SFLUV", + "address": "0x881cad4f885c6701d8481c0ed347f6d35444ea7e", + "chain_id": 80094, + "decimals": 18, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://app.sfluv.org", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "name": "About", + "hidden": true, + "signature": true, + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "80094:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 80094, + "paymaster_type": "cw-safe", + "paymaster_address": "0x9A5be02B65f9Aa00060cB8c951dAFaBAB9B860cd", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "80094:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 80094, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://sfluv.org", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "name": "SFLUV Community", + "alias": "wallet.berachain.sfluv.org", + "theme": { + "primary": "#eb6c6c" + }, + "profile": { + "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", + "chain_id": 80094 + }, + "description": "A community currency for the city of San Francisco.", + "custom_domain": "wallet.sfluv.org", + "primary_token": { + "address": "0x881cad4f885c6701d8481c0ed347f6d35444ea7e", + "chain_id": 80094 + }, + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 80094 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 80094 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 80094 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.berachain.sfluv.org" }, - "chains": { - "100": { - "id": 100, - "node": { - "url": "https://100.engine.citizenwallet.xyz", - "ws_url": "wss://100.engine.citizenwallet.xyz" - } - } + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "137:0x58a2993A618Afee681DE23dECBCF535A58A080BA": { + "name": "SFLUV V1.1", + "symbol": "SFLUV", + "address": "0x58a2993A618Afee681DE23dECBCF535A58A080BA", + "chain_id": 137, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://app.sfluv.org", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "name": "About", + "hidden": true, + "signature": true, + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "137:0x5e987a6c4bb4239d498E78c34e986acf29c81E8e": { + "chain_id": 137, + "paymaster_type": "cw", + "paymaster_address": "0x7FC98D0a2bd7f766bAca37388eB0F6Db37666B33", + "entrypoint_address": "0x2d01C5E40Aa6a8478eD0FFbF2784EBb9bf67C46A", + "account_factory_address": "0x5e987a6c4bb4239d498E78c34e986acf29c81E8e" + } + }, + "sessions": { + "137:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 137, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://sfluv.org", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "name": "SFLUV Community (Polygon)", + "alias": "wallet.sfluv.org", + "theme": { + "primary": "#eb6c6c" + }, + "profile": { + "address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99", + "chain_id": 137 + }, + "description": "A community currency for the city of San Francisco.", + "custom_domain": "wallet.polygon.sfluv.org", + "primary_token": { + "address": "0x58a2993A618Afee681DE23dECBCF535A58A080BA", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x5e987a6c4bb4239d498E78c34e986acf29c81E8e", + "chain_id": 137 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 137 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.sfluv.org" }, - "tokens": { - "100:0x6c6611244547a6E9AaCfBA8744115ca1076756fc": { + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://100.engine.citizenwallet.xyz", + "ws_url": "wss://100.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "100:0x6c6611244547a6E9AaCfBA8744115ca1076756fc": { + "name": "Txirrin", + "symbol": "TXI", + "address": "0x6c6611244547a6E9AaCfBA8744115ca1076756fc", + "chain_id": 100, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 100, + "paymaster_type": "cw-safe", + "paymaster_address": "0x33500E7Eb3452421e56c2f4117530B1C4C85E0A5", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 100, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://citizenwallet.xyz/txirrin", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/txirrin.png", "name": "Txirrin", - "symbol": "TXI", - "address": "0x6c6611244547a6E9AaCfBA8744115ca1076756fc", - "chain_id": 100, - "decimals": 6, - "standard": "erc20" - } - }, - "plugins": [], - "version": 5, - "accounts": { - "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 100, - "paymaster_type": "cw-safe", - "paymaster_address": "0x33500E7Eb3452421e56c2f4117530B1C4C85E0A5", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "sessions": { - "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 100, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" - } - }, - "community": { - "url": "https://citizenwallet.xyz/txirrin", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/txirrin.png", - "name": "Txirrin", - "alias": "txirrin", - "theme": { - "primary": "#FB7502" - }, - "hidden": false, - "profile": { - "address": "0xd47f7198bf335bfe66dD29C0f3EeEf0cFE9D05D8", - "chain_id": 100 - }, - "description": "A community for Txirrin", - "primary_token": { - "address": "0x6c6611244547a6E9AaCfBA8744115ca1076756fc", - "chain_id": 100 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 100 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 100 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/txirrin" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "137:0xc2132D05D31c914a87C6611C10748AEb04B58e8F": { - "name": "(PoS) Tether USD", - "symbol": "USDT", - "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F", - "chain_id": 137, - "decimals": 6, - "standard": "erc20" - } - }, - "version": 5, - "accounts": { - "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 137, - "paymaster_type": "cw-safe", - "paymaster_address": "0x9a81Bd50D56485Cc863Ecb169812c7a821996C8c", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "sessions": { - "137:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 137, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" - } - }, - "community": { - "url": "https://www.ethereumbolivia.org", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/boliviapay.png", - "name": "Bolivia Pay", - "alias": "boliviapay", - "theme": { - "primary": "#009393" - }, - "profile": { - "address": "0x898C2737f2Cb52622711A89D85A1D5E0B881BDeA", - "chain_id": 137 - }, - "description": "A community for Ethereum Bolivia.", - "primary_token": { - "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 137 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 137 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/boliviapay" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://gnosisscan.io", - "name": "Gnosis Explorer" - }, - "cards": { - "100:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { - "type": "safe", - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 100, - "instance_id": "cw-discord-1" - } + "alias": "txirrin", + "theme": { + "primary": "#FB7502" + }, + "hidden": false, + "profile": { + "address": "0xd47f7198bf335bfe66dD29C0f3EeEf0cFE9D05D8", + "chain_id": 100 + }, + "description": "A community for Txirrin", + "primary_token": { + "address": "0x6c6611244547a6E9AaCfBA8744115ca1076756fc", + "chain_id": 100 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 100 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 100 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/txirrin" }, - "chains": { - "100": { - "id": 100, - "node": { - "url": "https://100.engine.citizenwallet.xyz", - "ws_url": "wss://100.engine.citizenwallet.xyz" - } - } + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "137:0xc2132D05D31c914a87C6611C10748AEb04B58e8F": { + "name": "(PoS) Tether USD", + "symbol": "USDT", + "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F", + "chain_id": 137, + "decimals": 6, + "standard": "erc20" + } + }, + "version": 5, + "accounts": { + "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 137, + "paymaster_type": "cw-safe", + "paymaster_address": "0x9a81Bd50D56485Cc863Ecb169812c7a821996C8c", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "137:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 137, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://www.ethereumbolivia.org", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/boliviapay.png", + "name": "Bolivia Pay", + "alias": "boliviapay", + "theme": { + "primary": "#009393" + }, + "profile": { + "address": "0x898C2737f2Cb52622711A89D85A1D5E0B881BDeA", + "chain_id": 137 + }, + "description": "A community for Ethereum Bolivia.", + "primary_token": { + "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 137 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 137 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/boliviapay" }, - "tokens": { - "100:0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3": { + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "cards": { + "100:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 100, + "instance_id": "cw-discord-1" + } + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://100.engine.citizenwallet.xyz", + "ws_url": "wss://100.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "100:0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3": { + "name": "Breadchain Community Token", + "symbol": "BREAD", + "address": "0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3", + "chain_id": 100, + "decimals": 18, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://topup.citizenspring.earth/bread", + "icon": "https://bread.citizenwallet.xyz/uploads/logo.svg", + "name": "Top Up", + "action": "topup" + }, + { + "url": "https://marketplace.citizenwallet.xyz/bread", + "icon": "https://bread.citizenwallet.xyz/uploads/logo.svg", + "name": "Market", + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 100, + "paymaster_type": "cw-safe", + "paymaster_address": "0x5987e57e85014B5A56C880313580346c20a5d1c1", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + }, + "100:0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9": { + "chain_id": 100, + "paymaster_type": "cw", + "paymaster_address": "0xbE2Cb3358aa14621134e923B68b8429315368E32", + "entrypoint_address": "0xcA0a75EF803a364C83c5EAE7Eb889aE7419c9dF2", + "account_factory_address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9" + } + }, + "sessions": { + "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 100, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://breadchain.xyz/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/bread.svg", "name": "Breadchain Community Token", - "symbol": "BREAD", - "address": "0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3", - "chain_id": 100, - "decimals": 18, - "standard": "erc20" - } - }, - "plugins": [ - { - "url": "https://topup.citizenspring.earth/bread", - "icon": "https://bread.citizenwallet.xyz/uploads/logo.svg", - "name": "Top Up", - "action": "topup" - }, - { - "url": "https://marketplace.citizenwallet.xyz/bread", - "icon": "https://bread.citizenwallet.xyz/uploads/logo.svg", - "name": "Market", - "launch_mode": "webview" - } - ], - "version": 5, - "accounts": { - "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 100, - "paymaster_type": "cw-safe", - "paymaster_address": "0x5987e57e85014B5A56C880313580346c20a5d1c1", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - }, - "100:0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9": { - "chain_id": 100, - "paymaster_type": "cw", - "paymaster_address": "0xbE2Cb3358aa14621134e923B68b8429315368E32", - "entrypoint_address": "0xcA0a75EF803a364C83c5EAE7Eb889aE7419c9dF2", - "account_factory_address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9" - } - }, - "sessions": { - "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 100, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" - } - }, - "community": { - "url": "https://breadchain.xyz/", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/bread.svg", - "name": "Breadchain Community Token", - "alias": "bread", - "profile": { - "address": "0x6b3a1f4277391526413F583c23D5B9EF4d2fE986", - "chain_id": 100 - }, - "description": "BREAD is a digital community token and solidarity primitive developed by Breadchain Cooperative that generates yield for post-capitalist organizations", - "primary_token": { - "address": "0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3", - "chain_id": 100 - }, - "primary_card_manager": { - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 100 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 100 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 100 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/bread" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://gnosisscan.io", - "name": "Gnosis Explorer" - }, - "cards": { - "100:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { - "type": "safe", - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 100, - "instance_id": "cw-discord-1" - } - }, - "chains": { - "100": { - "id": 100, - "node": { - "url": "https://100.engine.citizenwallet.xyz", - "ws_url": "wss://100.engine.citizenwallet.xyz" - } - } + "alias": "bread", + "profile": { + "address": "0x6b3a1f4277391526413F583c23D5B9EF4d2fE986", + "chain_id": 100 + }, + "description": "BREAD is a digital community token and solidarity primitive developed by Breadchain Cooperative that generates yield for post-capitalist organizations", + "primary_token": { + "address": "0xa555d5344f6fb6c65da19e403cb4c1ec4a1a5ee3", + "chain_id": 100 + }, + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 100 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 100 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 100 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/bread" }, - "tokens": { - "100:0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007": { + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "cards": { + "100:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 100, + "instance_id": "cw-discord-1" + } + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://100.engine.citizenwallet.xyz", + "ws_url": "wss://100.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "100:0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007": { + "name": "Labor Hour Token", + "symbol": "HOUR", + "address": "0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007", + "chain_id": 100, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 4, + "accounts": { + "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 100, + "paymaster_type": "cw-safe", + "paymaster_address": "0xa7fa16C933f51d8623f39FA0dF34D3065B99Bd1c", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 100, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://breadchain.xyz/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/laborhour.png", "name": "Labor Hour Token", - "symbol": "HOUR", - "address": "0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007", - "chain_id": 100, - "decimals": 6, - "standard": "erc20" - } - }, - "plugins": [], - "version": 4, - "accounts": { - "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 100, - "paymaster_type": "cw-safe", - "paymaster_address": "0xa7fa16C933f51d8623f39FA0dF34D3065B99Bd1c", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "sessions": { - "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 100, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" - } - }, - "community": { - "url": "https://breadchain.xyz/", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/laborhour.png", - "name": "Labor Hour Token", - "alias": "laborhour", - "theme": { - "primary": "#E52D2D" - }, - "profile": { - "address": "0x673601Eb36820bC9718214AC041E96f79383351B", - "chain_id": 100 - }, - "description": "Labor Hour Token aims to reward contributors for hours of labor, particularly targeting non-blockchain native users", - "primary_token": { - "address": "0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007", - "chain_id": 100 - }, - "primary_card_manager": { - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 100 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 100 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 100 - } - }, - "config_location": "https://config.internal.citizenwallet.xyz/v4/laborhour.citizenwallet.xyz.json" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://gnosisscan.io", - "name": "Gnosis Explorer" - }, - "cards": { - "8453:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { - "type": "safe", - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 8453, - "instance_id": "cw-discord-1" - } - }, - "chains": { - "8453": { - "id": 8453, - "node": { - "url": "https://8453.engine.citizenwallet.xyz", - "ws_url": "wss://8453.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "8453:0x3595ca37596d5895b70efab592ac315d5b9809b2": { - "name": "Azos Stablecoin", - "symbol": "AZUSD", - "address": "0x3595ca37596d5895b70efab592ac315d5b9809b2", - "chain_id": 8453, - "decimals": 18, - "standard": "erc20" - } - }, - "plugins": [], - "version": 5, - "accounts": { - "8453:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 8453, - "paymaster_type": "cw-safe", - "paymaster_address": "0x02cd43b3d7a946dCaa8dF12ac0A6Cd50aF9cDd64", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "sessions": { - "8453:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 8453, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0x0c2e78DB6FaF8D4d68984A830339764AD9f800D4" - } - }, - "community": { - "url": "https://rooted.finance/", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rooted.png", - "name": "Rooted.Finance", - "alias": "rooted", - "theme": { - "primary": "#ff4c02" - }, - "profile": { - "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", - "chain_id": 8453 - }, - "description": "Rooted in your values.", - "primary_token": { - "address": "0x3595ca37596d5895b70efab592ac315d5b9809b2", - "chain_id": 8453 - }, - "primary_card_manager": { - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 8453 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 8453 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 8453 - } - }, - "config_location": "https://my.citizenwallet.xyz/communities/rooted" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://celoscan.io", - "name": "CELO Explorer" - }, - "cards": { - "42220:0xc0F9e0907C8de79fd5902b61e463dFEdc5dc8570": { - "type": "classic", - "address": "0xc0F9e0907C8de79fd5902b61e463dFEdc5dc8570", - "chain_id": 42220 - } - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "42220:0x65DD32834927de9E57E72a3E2130a19f81C6371D": { - "name": "Commons Hub Token", - "symbol": "CHT", - "address": "0x65DD32834927de9E57E72a3E2130a19f81C6371D", - "chain_id": 42220, - "decimals": 6, - "standard": "erc20" - } - }, - "plugins": [ - { - "url": "https://marketplace.citizenwallet.xyz/wallet.commonshub.brussels", - "icon": "https://marketplace.citizenwallet.xyz/marketplace.svg", - "name": "Market", - "signature": true, - "launch_mode": "webview" - } - ], - "version": 5, - "accounts": { - "42220:0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87": { - "chain_id": 42220, - "paymaster_type": "cw", - "paymaster_address": "0x4E127A1DAa66568B4a91E8c5615120a6Ea5442E3", - "entrypoint_address": "0xb7608dDA592d319687C89c4479e320b5a7740117", - "account_factory_address": "0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87" - }, - "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 42220, - "paymaster_type": "cw-safe", - "paymaster_address": "0x4860C0f127500F0cbF4a5Bd797cBb5aA50Eb0FbA", - "entrypoint_address": "0xb7608dDA592d319687C89c4479e320b5a7740117", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "sessions": { - "42220:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 42220, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" - } - }, - "community": { - "url": "https://commonshub.brussels", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/chb.png", - "name": "Commons Hub Brussels", - "alias": "wallet.commonshub.brussels", - "theme": { - "primary": "#ff4c02" - }, - "profile": { - "address": "0xc06bE1BbbeEAF2f34F3d5b76069D2560aee184Ae", - "chain_id": 42220 - }, - "description": "Community Token for the Commons Hub Brussels community", - "custom_domain": "wallet.commonshub.brussels", - "primary_token": { - "address": "0x65DD32834927de9E57E72a3E2130a19f81C6371D", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 42220 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 42220 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.commonshub.brussels" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "cards": { - "42220:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { - "type": "safe", - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 42220, - "instance_id": "cw-seldesalm" - } + "alias": "laborhour", + "theme": { + "primary": "#E52D2D" + }, + "profile": { + "address": "0x673601Eb36820bC9718214AC041E96f79383351B", + "chain_id": 100 + }, + "description": "Labor Hour Token aims to reward contributors for hours of labor, particularly targeting non-blockchain native users", + "primary_token": { + "address": "0x3d36ddFfa4666Ef12a176CaA8C3e67C1047bC007", + "chain_id": 100 + }, + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 100 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 100 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 100 + } + }, + "config_location": "https://config.internal.citizenwallet.xyz/v4/laborhour.citizenwallet.xyz.json" }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "cards": { + "8453:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 8453, + "instance_id": "cw-discord-1" + } + }, + "chains": { + "8453": { + "id": 8453, + "node": { + "url": "https://8453.engine.citizenwallet.xyz", + "ws_url": "wss://8453.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "8453:0x3595ca37596d5895b70efab592ac315d5b9809b2": { + "name": "Azos Stablecoin", + "symbol": "AZUSD", + "address": "0x3595ca37596d5895b70efab592ac315d5b9809b2", + "chain_id": 8453, + "decimals": 18, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "8453:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 8453, + "paymaster_type": "cw-safe", + "paymaster_address": "0x02cd43b3d7a946dCaa8dF12ac0A6Cd50aF9cDd64", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "8453:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 8453, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0x0c2e78DB6FaF8D4d68984A830339764AD9f800D4" + } + }, + "community": { + "url": "https://rooted.finance/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rooted.png", + "name": "Rooted.Finance", + "alias": "rooted", + "theme": { + "primary": "#ff4c02" + }, + "profile": { + "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", + "chain_id": 8453 + }, + "description": "Rooted in your values.", + "primary_token": { + "address": "0x3595ca37596d5895b70efab592ac315d5b9809b2", + "chain_id": 8453 + }, + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 8453 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 8453 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 8453 + } + }, + "config_location": "https://my.citizenwallet.xyz/communities/rooted" }, - "tokens": { - "42220:0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2": { - "name": "Myrtille", - "symbol": "MYRT", - "address": "0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2", - "chain_id": 42220, - "decimals": 6, - "standard": "erc20" - } + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "cards": { + "42220:0xc0F9e0907C8de79fd5902b61e463dFEdc5dc8570": { + "type": "classic", + "address": "0xc0F9e0907C8de79fd5902b61e463dFEdc5dc8570", + "chain_id": 42220 + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0x65DD32834927de9E57E72a3E2130a19f81C6371D": { + "name": "Commons Hub Token", + "symbol": "CHT", + "address": "0x65DD32834927de9E57E72a3E2130a19f81C6371D", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://marketplace.citizenwallet.xyz/wallet.commonshub.brussels", + "icon": "https://marketplace.citizenwallet.xyz/marketplace.svg", + "name": "Market", + "signature": true, + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "42220:0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x4E127A1DAa66568B4a91E8c5615120a6Ea5442E3", + "entrypoint_address": "0xb7608dDA592d319687C89c4479e320b5a7740117", + "account_factory_address": "0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87" + }, + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x4860C0f127500F0cbF4a5Bd797cBb5aA50Eb0FbA", + "entrypoint_address": "0xb7608dDA592d319687C89c4479e320b5a7740117", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "42220:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 42220, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://commonshub.brussels", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/chb.png", + "name": "Commons Hub Brussels", + "alias": "wallet.commonshub.brussels", + "theme": { + "primary": "#ff4c02" + }, + "profile": { + "address": "0xc06bE1BbbeEAF2f34F3d5b76069D2560aee184Ae", + "chain_id": 42220 + }, + "description": "Community Token for the Commons Hub Brussels community", + "custom_domain": "wallet.commonshub.brussels", + "primary_token": { + "address": "0x65DD32834927de9E57E72a3E2130a19f81C6371D", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.commonshub.brussels" }, - "plugins": [ - { + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "cards": { + "42220:0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28": { + "type": "safe", + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 42220, + "instance_id": "cw-seldesalm" + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2": { + "name": "Myrtille", + "symbol": "MYRT", + "address": "0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://citizenwallet.xyz/community-currency-documentation/sel-de-salm", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", + "name": "Informations Générales", + "launch_mode": "webview" + }, + { + "url": "https://marketplace.citizenwallet.xyz/seldesalm", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", + "name": "Échanges", + "signature": true, + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0xd07412020dA5054c3b49f47Ca61224637F1703af", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "42220:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 42220, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { "url": "https://citizenwallet.xyz/community-currency-documentation/sel-de-salm", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", - "name": "Informations Générales", - "launch_mode": "webview" - }, - { - "url": "https://marketplace.citizenwallet.xyz/seldesalm", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", - "name": "Échanges", - "signature": true, - "launch_mode": "webview" - } - ], - "version": 5, - "accounts": { - "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 42220, - "paymaster_type": "cw-safe", - "paymaster_address": "0xd07412020dA5054c3b49f47Ca61224637F1703af", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "sessions": { - "42220:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 42220, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" - } - }, - "community": { - "url": "https://citizenwallet.xyz/community-currency-documentation/sel-de-salm", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", - "name": "Sel de Salm", - "alias": "seldesalm", - "theme": { - "primary": "#6B5CA4" - }, - "profile": { - "address": "0x4083724953cC1cC13e76b436149B2b1e1a3E5970", - "chain_id": 42220 - }, - "description": "La communauté de Sel de Salm", - "primary_token": { - "address": "0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2", - "chain_id": 42220 - }, - "primary_card_manager": { - "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 42220 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 42220 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/seldesalm" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://gnosisscan.io", - "name": "Gnosis Explorer" - }, - "chains": { - "100": { - "id": 100, - "node": { - "url": "https://engine.my.techi.be", - "ws_url": "wss://engine.my.techi.be" - } - } + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/myrt.png", + "name": "Sel de Salm", + "alias": "seldesalm", + "theme": { + "primary": "#6B5CA4" + }, + "profile": { + "address": "0x4083724953cC1cC13e76b436149B2b1e1a3E5970", + "chain_id": 42220 + }, + "description": "La communauté de Sel de Salm", + "primary_token": { + "address": "0x83DfEB42347a7Ce46F1497F307a5c156D1f19CB2", + "chain_id": 42220 + }, + "primary_card_manager": { + "address": "0xBA861e2DABd8316cf11Ae7CdA101d110CF581f28", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/seldesalm" }, - "tokens": { - "100:0x01D0E7117510b371Ac38f52Cc6689ff8875280FA": { + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://gnosisscan.io", + "name": "Gnosis Explorer" + }, + "chains": { + "100": { + "id": 100, + "node": { + "url": "https://engine.my.techi.be", + "ws_url": "wss://engine.my.techi.be" + } + } + }, + "tokens": { + "100:0x01D0E7117510b371Ac38f52Cc6689ff8875280FA": { + "name": "TECHI", + "symbol": "TECHI", + "address": "0x01D0E7117510b371Ac38f52Cc6689ff8875280FA", + "chain_id": 100, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 100, + "paymaster_type": "cw-safe", + "paymaster_address": "0x68c5a20f233264DB124a3c95a200bbD20b3b9762", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 100, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://my.techi.be", + "logo": "https://my.techi.be/assets/token.svg", "name": "TECHI", - "symbol": "TECHI", - "address": "0x01D0E7117510b371Ac38f52Cc6689ff8875280FA", - "chain_id": 100, - "decimals": 6, - "standard": "erc20" - } - }, - "plugins": [], - "version": 5, - "accounts": { - "100:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 100, - "paymaster_type": "cw-safe", - "paymaster_address": "0x68c5a20f233264DB124a3c95a200bbD20b3b9762", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "sessions": { - "100:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 100, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" - } - }, - "community": { - "url": "https://my.techi.be", - "logo": "https://my.techi.be/assets/token.svg", - "name": "TECHI", - "alias": "my.techi.be", - "theme": { - "primary": "#617FF8" - }, - "hidden": false, - "profile": { - "address": "0x80C141861607b8FEfD53C9E71a9c7D2D3e2e76dc", - "chain_id": 100 - }, - "description": "A community for TECHI users", - "primary_token": { - "address": "0x01D0E7117510b371Ac38f52Cc6689ff8875280FA", - "chain_id": 100 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 100 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 100 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/my.techi.be" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "137:0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e": { - "name": "Regens Unite Token", - "symbol": "RGN", - "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", - "chain_id": 137, - "decimals": 6, - "standard": "erc20" - } - }, - "plugins": [], - "version": 5, - "accounts": { - "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 137, - "paymaster_type": "cw-safe", - "paymaster_address": "0x250711045d58b6310f0635C7D110BFe663cE1da5", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - }, - "137:0x9406Cc6185a346906296840746125a0E44976454": { - "chain_id": 137, - "paymaster_type": "payg", - "paymaster_address": "0x250711045d58b6310f0635C7D110BFe663cE1da5", - "entrypoint_address": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", - "gas_extra_percentage": 50, - "account_factory_address": "0x9406Cc6185a346906296840746125a0E44976454" - } - }, - "community": { - "url": "https://www.regensunite.earth/", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", - "name": "Regens Unite", - "alias": "wallet.regensunite.earth", - "hidden": true, - "profile": { - "address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", - "chain_id": 137 - }, - "description": "A community currency for the Regens Unite community.", - "custom_domain": "wallet.regensunite.earth", - "primary_token": { - "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 137 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.regensunite.earth" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" + "alias": "my.techi.be", + "theme": { + "primary": "#617FF8" + }, + "hidden": false, + "profile": { + "address": "0x80C141861607b8FEfD53C9E71a9c7D2D3e2e76dc", + "chain_id": 100 + }, + "description": "A community for TECHI users", + "primary_token": { + "address": "0x01D0E7117510b371Ac38f52Cc6689ff8875280FA", + "chain_id": 100 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 100 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 100 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/my.techi.be" }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "137:0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e": { + "name": "Regens Unite Token", + "symbol": "RGN", + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "chain_id": 137, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 137, + "paymaster_type": "cw-safe", + "paymaster_address": "0x250711045d58b6310f0635C7D110BFe663cE1da5", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + }, + "137:0x9406Cc6185a346906296840746125a0E44976454": { + "chain_id": 137, + "paymaster_type": "payg", + "paymaster_address": "0x250711045d58b6310f0635C7D110BFe663cE1da5", + "entrypoint_address": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", + "gas_extra_percentage": 50, + "account_factory_address": "0x9406Cc6185a346906296840746125a0E44976454" + } + }, + "community": { + "url": "https://www.regensunite.earth/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", + "name": "Regens Unite", + "alias": "wallet.regensunite.earth", + "hidden": true, + "profile": { + "address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", + "chain_id": 137 + }, + "description": "A community currency for the Regens Unite community.", + "custom_domain": "wallet.regensunite.earth", + "primary_token": { + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 137 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.regensunite.earth" }, - "tokens": { - "42220:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1": { + "name": "Gratitude Token", + "symbol": "GT", + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 42220, + "decimals": 0, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", + "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + }, + "42220:0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", + "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", + "account_factory_address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD" + } + }, + "community": { + "url": "https://citizenwallet.xyz/gratitude", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/gt.svg", "name": "Gratitude Token", - "symbol": "GT", - "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", - "chain_id": 42220, - "decimals": 0, - "standard": "erc20" - } - }, - "plugins": [], - "version": 5, - "accounts": { - "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 42220, - "paymaster_type": "cw-safe", - "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", - "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - }, - "42220:0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD": { - "chain_id": 42220, - "paymaster_type": "cw", - "paymaster_address": "0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8", - "entrypoint_address": "0x985ec7d08D9d15Ea79876E35FAdEFD58A627187E", - "account_factory_address": "0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD" - } - }, - "community": { - "url": "https://citizenwallet.xyz/gratitude", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/gt.svg", - "name": "Gratitude Token", - "alias": "gt.celo", - "theme": { - "primary": "#a256ff" - }, - "hidden": true, - "profile": { - "address": "0xEEc0F3257369c6bCD2Fd8755CbEf8A95b12Bc4c9", - "chain_id": 42220 - }, - "description": "Express your gratitude towards someone by sending them a token.", - "custom_domain": null, - "primary_token": { - "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 42220 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/gt.celo" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "alias": "gt.celo", + "theme": { + "primary": "#a256ff" + }, + "hidden": true, + "profile": { + "address": "0xEEc0F3257369c6bCD2Fd8755CbEf8A95b12Bc4c9", + "chain_id": 42220 + }, + "description": "Express your gratitude towards someone by sending them a token.", + "custom_domain": null, + "primary_token": { + "address": "0x5815E61eF72c9E6107b5c5A05FD121F334f7a7f1", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/gt.celo" }, - "tokens": { - "42220:0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73": { + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73": { + "name": "Celo Euro", + "symbol": "cEUR", + "address": "0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73", + "chain_id": 42220, + "decimals": 18, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0xedbEA8c0F25B34510149EaD4f72867B0d3D2264F", + "entrypoint_address": "0xc3142BCBA2285d0a48A38e7Ea9Cbf28a12B235bB", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + }, + "42220:0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0xedbEA8c0F25B34510149EaD4f72867B0d3D2264F", + "entrypoint_address": "0xc3142BCBA2285d0a48A38e7Ea9Cbf28a12B235bB", + "account_factory_address": "0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098" + } + }, + "community": { + "url": "https://celo.org/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/ceur.svg", "name": "Celo Euro", - "symbol": "cEUR", - "address": "0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73", - "chain_id": 42220, - "decimals": 18, - "standard": "erc20" - } - }, - "plugins": [], - "version": 5, - "accounts": { - "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 42220, - "paymaster_type": "cw-safe", - "paymaster_address": "0xedbEA8c0F25B34510149EaD4f72867B0d3D2264F", - "entrypoint_address": "0xc3142BCBA2285d0a48A38e7Ea9Cbf28a12B235bB", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - }, - "42220:0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098": { - "chain_id": 42220, - "paymaster_type": "cw", - "paymaster_address": "0xedbEA8c0F25B34510149EaD4f72867B0d3D2264F", - "entrypoint_address": "0xc3142BCBA2285d0a48A38e7Ea9Cbf28a12B235bB", - "account_factory_address": "0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098" - } - }, - "community": { - "url": "https://celo.org/", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/ceur.svg", - "name": "Celo Euro", - "alias": "ceur.celo", - "theme": { - "primary": "#a256ff" - }, - "hidden": true, - "profile": { - "address": "0x0334C579E61aF6922D5deFEF02A361FBb2D6f406", - "chain_id": 42220 - }, - "description": "Celo Euro is a stablecoin for the Celo Community.", - "primary_token": { - "address": "0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 42220 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/ceur.celo" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "137:0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6": { - "name": "EUR emoney", - "symbol": "EURe", - "address": "0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6", - "chain_id": 137, - "decimals": 18, - "standard": "erc20" - } - }, - "plugins": [], - "version": 5, - "accounts": { - "137:0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616": { - "chain_id": 137, - "paymaster_type": "cw", - "paymaster_address": "0xB2cb6b75C2357Ca94dBdF58897E468E45fAC83Ec", - "entrypoint_address": "0x2027Bde7C276D5F128587E3107c68A488ee31c72", - "gas_extra_percentage": 50, - "account_factory_address": "0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616" - }, - "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 137, - "paymaster_type": "cw-safe", - "paymaster_address": "0xB2cb6b75C2357Ca94dBdF58897E468E45fAC83Ec", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "community": { - "url": "https://monerium.com/tokens/", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/eure.svg", - "name": "EUR e-money", - "alias": "eure.polygon", - "hidden": true, - "profile": { - "address": "0xF5F7317EDb8E88CaE09071B0C4F0fd6EA20B21f9", - "chain_id": 137 - }, - "description": "Token by Monerium EMI, a regulated entity, licensed in the EEA.", - "primary_token": { - "address": "0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 137 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/eure.polygon" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "137:0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174": { - "name": "USD Coin", - "symbol": "USDC", - "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", - "chain_id": 137, - "decimals": 6, - "standard": "erc20" - } - }, - "plugins": [], - "version": 5, - "accounts": { - "137:0x270758454C012A1f51428b68aE473D728CCdFe88": { - "chain_id": 137, - "paymaster_type": "cw", - "paymaster_address": "0xB5D1C0167E6325466E2918e9fda8cc41384C0291", - "entrypoint_address": "0x466AA6ed2B7Bb829841F5aAEA9e82B840eC0feF9", - "gas_extra_percentage": 50, - "account_factory_address": "0x270758454C012A1f51428b68aE473D728CCdFe88" - }, - "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 137, - "paymaster_type": "cw-safe", - "paymaster_address": "0xB5D1C0167E6325466E2918e9fda8cc41384C0291", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "community": { - "url": "https://en.wikipedia.org/wiki/USD_Coin", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/usdc.svg", - "name": "USDC on Polygon", - "alias": "app", - "theme": { - "primary": "#0052ff" - }, - "hidden": true, - "profile": { - "address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", - "chain_id": 137 - }, - "description": "The community of people using USDC on Polygon.", - "primary_token": { - "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 137 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/app" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://basescan.org", - "name": "Base Explorer" - }, - "chains": { - "8453": { - "id": 8453, - "node": { - "url": "https://8453.engine.citizenwallet.xyz", - "ws_url": "wss://8453.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "8453:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913": { - "name": "USD Coin", - "symbol": "USDC", - "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", - "chain_id": 8453, - "decimals": 6, - "standard": "erc20" - } - }, - "plugins": [], - "version": 5, - "accounts": { - "8453:0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99": { - "chain_id": 8453, - "paymaster_type": "cw", - "paymaster_address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", - "entrypoint_address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", - "gas_extra_percentage": 50, - "account_factory_address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99" - }, - "8453:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 8453, - "paymaster_type": "cw-safe", - "paymaster_address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "community": { - "url": "https://en.wikipedia.org/wiki/USD_Coin", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/usdc.svg", - "name": "USDC on Base", - "alias": "usdc.base", - "theme": { - "primary": "#0052ff" - }, - "hidden": true, - "profile": { - "address": "0x51Ef5Add405CCF63c206A80AF8c2B3cEE0282830", - "chain_id": 8453 - }, - "description": "The community of people using USDC on Base.", - "primary_token": { - "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", - "chain_id": 8453 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 8453 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/usdc.base" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://basescan.org", - "name": "Base Explorer" - }, - "chains": { - "8453": { - "id": 8453, - "node": { - "url": "https://8453.engine.citizenwallet.xyz", - "ws_url": "wss://8453.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "8453:0x845598Da418890a674cbaBA26b70807aF0c61dFE": { - "name": "OAK Community Currency", - "symbol": "OAK", - "address": "0x845598Da418890a674cbaBA26b70807aF0c61dFE", - "chain_id": 8453, - "decimals": 6, - "standard": "erc20" - } - }, - "plugins": [], - "version": 5, - "accounts": { - "8453:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 8453, - "paymaster_type": "cw-safe", - "paymaster_address": "0x123", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - }, - "8453:0x9406Cc6185a346906296840746125a0E44976454": { - "chain_id": 8453, - "paymaster_type": "payg", - "paymaster_address": "0x123", - "entrypoint_address": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", - "account_factory_address": "0x9406Cc6185a346906296840746125a0E44976454" - } - }, - "community": { - "url": "https://www.oak.community/", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/oak.svg", - "name": "OAK Community", - "alias": "wallet.oak.community", - "hidden": true, - "profile": { - "address": "0xFE213c74e25505B232CE4C7f89647408bE6f71d2", - "chain_id": 8453 - }, - "description": "A community currency for the city of Oakland.", - "custom_domain": "wallet.oak.community", - "primary_token": { - "address": "0x845598Da418890a674cbaBA26b70807aF0c61dFE", - "chain_id": 8453 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 8453 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.oak.community" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "137:0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798": { - "name": "Stable Coin", - "symbol": "SBC", - "address": "0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798", - "chain_id": 137, - "decimals": 18, - "standard": "erc20" - } - }, - "plugins": [], - "version": 5, - "accounts": { - "137:0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5": { - "chain_id": 137, - "paymaster_type": "cw", - "paymaster_address": "0x123", - "entrypoint_address": "0xe84423Ba1A3f3535B09237245e22dBda5E27eB88", - "account_factory_address": "0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5" - }, - "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 137, - "paymaster_type": "cw-safe", - "paymaster_address": "0x123", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "community": { - "url": "https://brale.xyz/", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sbc.svg", - "name": "Stable Coin", - "alias": "sbc.polygon", - "hidden": true, - "profile": { - "address": "0xcA0a75EF803a364C83c5EAE7Eb889aE7419c9dF2", - "chain_id": 137 - }, - "description": "SBC is a digital dollar stablecoin issued by Brale", - "primary_token": { - "address": "0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 137 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/sbc.polygon" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://polygonscan.com", - "name": "Polygon Explorer" - }, - "chains": { - "137": { - "id": 137, - "node": { - "url": "https://137.engine.citizenwallet.xyz", - "ws_url": "wss://137.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "137:0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D": { - "name": "Zinne.brussels Token", - "symbol": "ZINNE", - "address": "0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D", - "chain_id": 137, - "decimals": 6, - "standard": "erc20" - } - }, - "plugins": [], - "version": 5, - "accounts": { - "137:0x11af2639817692D2b805BcE0e1e405E530B20006": { - "chain_id": 137, - "paymaster_type": "cw", - "paymaster_address": "0xBb796D122Ec1aBDeD081D50B06a072f981c7E62b", - "entrypoint_address": "0xF5507B3042f1C63625D856a2ABFF046243A5D74e", - "account_factory_address": "0x11af2639817692D2b805BcE0e1e405E530B20006" - }, - "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 137, - "paymaster_type": "cw-safe", - "paymaster_address": "0xBb796D122Ec1aBDeD081D50B06a072f981c7E62b", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "community": { - "url": "https://zinne.brussels", - "logo": "https://citizenwallet.xyz/zinne/zinne-coin.svg", - "name": "Zinne.brussels", - "alias": "zinne", - "hidden": true, - "profile": { - "address": "0x23DB3D3Da510e60aF40902A04850E1F3a744905c", - "chain_id": 137 - }, - "description": "A community currency for the city of Brussels", - "primary_token": { - "address": "0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D", - "chain_id": 137 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 137 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/zinne" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://celoscan.io", - "name": "CELO Explorer" + "alias": "ceur.celo", + "theme": { + "primary": "#a256ff" + }, + "hidden": true, + "profile": { + "address": "0x0334C579E61aF6922D5deFEF02A361FBb2D6f406", + "chain_id": 42220 + }, + "description": "Celo Euro is a stablecoin for the Celo Community.", + "primary_token": { + "address": "0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/ceur.celo" }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "137:0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6": { + "name": "EUR emoney", + "symbol": "EURe", + "address": "0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6", + "chain_id": 137, + "decimals": 18, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "137:0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616": { + "chain_id": 137, + "paymaster_type": "cw", + "paymaster_address": "0xB2cb6b75C2357Ca94dBdF58897E468E45fAC83Ec", + "entrypoint_address": "0x2027Bde7C276D5F128587E3107c68A488ee31c72", + "gas_extra_percentage": 50, + "account_factory_address": "0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616" + }, + "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 137, + "paymaster_type": "cw-safe", + "paymaster_address": "0xB2cb6b75C2357Ca94dBdF58897E468E45fAC83Ec", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://monerium.com/tokens/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/eure.svg", + "name": "EUR e-money", + "alias": "eure.polygon", + "hidden": true, + "profile": { + "address": "0xF5F7317EDb8E88CaE09071B0C4F0fd6EA20B21f9", + "chain_id": 137 + }, + "description": "Token by Monerium EMI, a regulated entity, licensed in the EEA.", + "primary_token": { + "address": "0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 137 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/eure.polygon" }, - "tokens": { - "42220:0x186DaBD027e228C988777907465807FDab270894": { - "name": "Regen Hour", - "symbol": "rHour", - "address": "0x186DaBD027e228C988777907465807FDab270894", - "chain_id": 42220, - "decimals": 6, - "standard": "erc20" - } + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "137:0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174": { + "name": "USD Coin", + "symbol": "USDC", + "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", + "chain_id": 137, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "137:0x270758454C012A1f51428b68aE473D728CCdFe88": { + "chain_id": 137, + "paymaster_type": "cw", + "paymaster_address": "0xB5D1C0167E6325466E2918e9fda8cc41384C0291", + "entrypoint_address": "0x466AA6ed2B7Bb829841F5aAEA9e82B840eC0feF9", + "gas_extra_percentage": 50, + "account_factory_address": "0x270758454C012A1f51428b68aE473D728CCdFe88" + }, + "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 137, + "paymaster_type": "cw-safe", + "paymaster_address": "0xB5D1C0167E6325466E2918e9fda8cc41384C0291", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://en.wikipedia.org/wiki/USD_Coin", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/usdc.svg", + "name": "USDC on Polygon", + "alias": "app", + "theme": { + "primary": "#0052ff" + }, + "hidden": true, + "profile": { + "address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", + "chain_id": 137 + }, + "description": "The community of people using USDC on Polygon.", + "primary_token": { + "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 137 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/app" }, - "plugins": [ - { - "url": "https://marketplace.citizenwallet.xyz/timebank.regensunite.earth", - "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", - "name": "Market", - "signature": true, - "launch_mode": "webview" - } - ], - "version": 5, - "accounts": { - "42220:0x39b77d77f7677997871b304094a05295eb71e240": { - "chain_id": 42220, - "paymaster_type": "cw", - "paymaster_address": "0xe45858bf63176595c2920822581917c7C705a12f", - "entrypoint_address": "0x41176F0C9b8f795Cb99e2DD5Db16017978eeFa4d", - "account_factory_address": "0x39b77d77f7677997871b304094a05295eb71e240" - }, - "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 42220, - "paymaster_type": "cw-safe", - "paymaster_address": "0xe45858bf63176595c2920822581917c7C705a12f", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://basescan.org", + "name": "Base Explorer" + }, + "chains": { + "8453": { + "id": 8453, + "node": { + "url": "https://8453.engine.citizenwallet.xyz", + "ws_url": "wss://8453.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "8453:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913": { + "name": "USD Coin", + "symbol": "USDC", + "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", + "chain_id": 8453, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "8453:0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99": { + "chain_id": 8453, + "paymaster_type": "cw", + "paymaster_address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", + "entrypoint_address": "0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9", + "gas_extra_percentage": 50, + "account_factory_address": "0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99" + }, + "8453:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 8453, + "paymaster_type": "cw-safe", + "paymaster_address": "0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://en.wikipedia.org/wiki/USD_Coin", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/usdc.svg", + "name": "USDC on Base", + "alias": "usdc.base", + "theme": { + "primary": "#0052ff" + }, + "hidden": true, + "profile": { + "address": "0x51Ef5Add405CCF63c206A80AF8c2B3cEE0282830", + "chain_id": 8453 + }, + "description": "The community of people using USDC on Base.", + "primary_token": { + "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", + "chain_id": 8453 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 8453 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/usdc.base" }, - "community": { - "url": "https://regensunite.earth", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", - "name": "Regens Unite Time Bank", - "alias": "timebank.regensunite.earth", - "hidden": true, - "profile": { - "address": "0x605A827DF8C405D16Ec70AAb8d9a47D21db45c09", - "chain_id": 42220 - }, - "description": "Make time to regen", - "primary_token": { - "address": "0x186DaBD027e228C988777907465807FDab270894", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 42220 - } + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://basescan.org", + "name": "Base Explorer" + }, + "chains": { + "8453": { + "id": 8453, + "node": { + "url": "https://8453.engine.citizenwallet.xyz", + "ws_url": "wss://8453.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "8453:0x845598Da418890a674cbaBA26b70807aF0c61dFE": { + "name": "OAK Community Currency", + "symbol": "OAK", + "address": "0x845598Da418890a674cbaBA26b70807aF0c61dFE", + "chain_id": 8453, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "8453:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 8453, + "paymaster_type": "cw-safe", + "paymaster_address": "0x123", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + }, + "8453:0x9406Cc6185a346906296840746125a0E44976454": { + "chain_id": 8453, + "paymaster_type": "payg", + "paymaster_address": "0x123", + "entrypoint_address": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", + "account_factory_address": "0x9406Cc6185a346906296840746125a0E44976454" + } + }, + "community": { + "url": "https://www.oak.community/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/oak.svg", + "name": "OAK Community", + "alias": "wallet.oak.community", + "hidden": true, + "profile": { + "address": "0xFE213c74e25505B232CE4C7f89647408bE6f71d2", + "chain_id": 8453 + }, + "description": "A community currency for the city of Oakland.", + "custom_domain": "wallet.oak.community", + "primary_token": { + "address": "0x845598Da418890a674cbaBA26b70807aF0c61dFE", + "chain_id": 8453 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 8453 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.oak.community" }, - "config_location": "https://my.citizenwallet.xyz/api/communities/timebank.regensunite.earth" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "137:0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798": { + "name": "Stable Coin", + "symbol": "SBC", + "address": "0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798", + "chain_id": 137, + "decimals": 18, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "137:0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5": { + "chain_id": 137, + "paymaster_type": "cw", + "paymaster_address": "0x123", + "entrypoint_address": "0xe84423Ba1A3f3535B09237245e22dBda5E27eB88", + "account_factory_address": "0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5" + }, + "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 137, + "paymaster_type": "cw-safe", + "paymaster_address": "0x123", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://brale.xyz/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sbc.svg", + "name": "Stable Coin", + "alias": "sbc.polygon", + "hidden": true, + "profile": { + "address": "0xcA0a75EF803a364C83c5EAE7Eb889aE7419c9dF2", + "chain_id": 137 + }, + "description": "SBC is a digital dollar stablecoin issued by Brale", + "primary_token": { + "address": "0xfdcC3dd6671eaB0709A4C0f3F53De9a333d80798", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 137 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/sbc.polygon" }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://polygonscan.com", + "name": "Polygon Explorer" + }, + "chains": { + "137": { + "id": 137, + "node": { + "url": "https://137.engine.citizenwallet.xyz", + "ws_url": "wss://137.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "137:0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D": { + "name": "Zinne.brussels Token", + "symbol": "ZINNE", + "address": "0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D", + "chain_id": 137, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [], + "version": 5, + "accounts": { + "137:0x11af2639817692D2b805BcE0e1e405E530B20006": { + "chain_id": 137, + "paymaster_type": "cw", + "paymaster_address": "0xBb796D122Ec1aBDeD081D50B06a072f981c7E62b", + "entrypoint_address": "0xF5507B3042f1C63625D856a2ABFF046243A5D74e", + "account_factory_address": "0x11af2639817692D2b805BcE0e1e405E530B20006" + }, + "137:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 137, + "paymaster_type": "cw-safe", + "paymaster_address": "0xBb796D122Ec1aBDeD081D50B06a072f981c7E62b", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://zinne.brussels", + "logo": "https://citizenwallet.xyz/zinne/zinne-coin.svg", + "name": "Zinne.brussels", + "alias": "zinne", + "hidden": true, + "profile": { + "address": "0x23DB3D3Da510e60aF40902A04850E1F3a744905c", + "chain_id": 137 + }, + "description": "A community currency for the city of Brussels", + "primary_token": { + "address": "0x5491a3d35F148a44F0af4D718B9636A6e55eBc2D", + "chain_id": 137 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 137 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/zinne" }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0x186DaBD027e228C988777907465807FDab270894": { + "name": "Regen Hour", + "symbol": "rHour", + "address": "0x186DaBD027e228C988777907465807FDab270894", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://marketplace.citizenwallet.xyz/timebank.regensunite.earth", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", + "name": "Market", + "signature": true, + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "42220:0x39b77d77f7677997871b304094a05295eb71e240": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0xe45858bf63176595c2920822581917c7C705a12f", + "entrypoint_address": "0x41176F0C9b8f795Cb99e2DD5Db16017978eeFa4d", + "account_factory_address": "0x39b77d77f7677997871b304094a05295eb71e240" + }, + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0xe45858bf63176595c2920822581917c7C705a12f", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://regensunite.earth", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/rgn.svg", + "name": "Regens Unite Time Bank", + "alias": "timebank.regensunite.earth", + "hidden": true, + "profile": { + "address": "0x605A827DF8C405D16Ec70AAb8d9a47D21db45c09", + "chain_id": 42220 + }, + "description": "Make time to regen", + "primary_token": { + "address": "0x186DaBD027e228C988777907465807FDab270894", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/timebank.regensunite.earth" }, - "tokens": { - "42220:0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3": { + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3": { + "name": "MOOS Token", + "symbol": "MOOS", + "address": "0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://marketplace.citizenwallet.xyz/moos", + "icon": "https://moos.citizenwallet.xyz/wallet-config/_images/moos.svg", + "name": "Market", + "signature": true, + "launch_mode": "webview" + } + ], + "version": 5, + "accounts": { + "42220:0x671f0662de72268d0f3966Fb62dFc6ee6389e244": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x55E519bfD63c7152D9F7B88Acd712A37F0BEC482", + "entrypoint_address": "0x45a8e6AaDCc48D1Ce19eCbE07Ccd3a536EF712ed", + "account_factory_address": "0x671f0662de72268d0f3966Fb62dFc6ee6389e244" + }, + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x55E519bfD63c7152D9F7B88Acd712A37F0BEC482", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://www.moos.garden/", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/moos.svg", "name": "MOOS Token", - "symbol": "MOOS", - "address": "0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3", - "chain_id": 42220, - "decimals": 6, - "standard": "erc20" - } - }, - "plugins": [ - { - "url": "https://marketplace.citizenwallet.xyz/moos", - "icon": "https://moos.citizenwallet.xyz/wallet-config/_images/moos.svg", - "name": "Market", - "signature": true, - "launch_mode": "webview" - } - ], - "version": 5, - "accounts": { - "42220:0x671f0662de72268d0f3966Fb62dFc6ee6389e244": { - "chain_id": 42220, - "paymaster_type": "cw", - "paymaster_address": "0x55E519bfD63c7152D9F7B88Acd712A37F0BEC482", - "entrypoint_address": "0x45a8e6AaDCc48D1Ce19eCbE07Ccd3a536EF712ed", - "account_factory_address": "0x671f0662de72268d0f3966Fb62dFc6ee6389e244" - }, - "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 42220, - "paymaster_type": "cw-safe", - "paymaster_address": "0x55E519bfD63c7152D9F7B88Acd712A37F0BEC482", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "community": { - "url": "https://www.moos.garden/", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/moos.svg", - "name": "MOOS Token", - "alias": "moos", - "hidden": true, - "profile": { - "address": "0x2e4542Be47408d05F41703386eFaf4338Ee1D341", - "chain_id": 42220 - }, - "description": "A community currency for MOOS.", - "primary_token": { - "address": "0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 42220 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/moos" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "alias": "moos", + "hidden": true, + "profile": { + "address": "0x2e4542Be47408d05F41703386eFaf4338Ee1D341", + "chain_id": 42220 + }, + "description": "A community currency for MOOS.", + "primary_token": { + "address": "0x230542eda83346929e4E54f4a98e1ca1A4BFc0c3", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/moos" }, - "tokens": { - "42220:0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3": { + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3": { + "name": "Bonne Heure", + "symbol": "BHR", + "address": "0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "plugins": [ + { + "url": "https://marketplace.citizenwallet.xyz/selcoupdepouce", + "icon": "https://marketplace.citizenwallet.xyz/marketplace.svg", + "name": "Market", + "signature": true, + "launch_mode": "browser" + } + ], + "version": 5, + "accounts": { + "42220:0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x635032605337aB36A46D767905108e67EE687a72", + "entrypoint_address": "0xA90904F33df36899d810d040b8d5b3b77265Bb05", + "account_factory_address": "0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284" + }, + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x635032605337aB36A46D767905108e67EE687a72", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://selcoupdepouce.be", + "logo": "https://topup.citizenwallet.xyz/communities/selcoupdepouce/sel-coin.svg", "name": "Bonne Heure", - "symbol": "BHR", - "address": "0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3", - "chain_id": 42220, - "decimals": 6, - "standard": "erc20" - } - }, - "plugins": [ - { - "url": "https://marketplace.citizenwallet.xyz/selcoupdepouce", - "icon": "https://marketplace.citizenwallet.xyz/marketplace.svg", - "name": "Market", - "signature": true, - "launch_mode": "browser" - } - ], - "version": 5, - "accounts": { - "42220:0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284": { - "chain_id": 42220, - "paymaster_type": "cw", - "paymaster_address": "0x635032605337aB36A46D767905108e67EE687a72", - "entrypoint_address": "0xA90904F33df36899d810d040b8d5b3b77265Bb05", - "account_factory_address": "0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284" - }, - "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 42220, - "paymaster_type": "cw-safe", - "paymaster_address": "0x635032605337aB36A46D767905108e67EE687a72", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "community": { - "url": "https://selcoupdepouce.be", - "logo": "https://topup.citizenwallet.xyz/communities/selcoupdepouce/sel-coin.svg", - "name": "Bonne Heure", - "alias": "selcoupdepouce", - "hidden": true, - "profile": { - "address": "0xfB8F1e7ED42599638B3c509679E2F43937002C56", - "chain_id": 42220 - }, - "description": "Système d'Échange Local de Villers-la-Ville", - "primary_token": { - "address": "0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 42220 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/selcoupdepouce" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + "alias": "selcoupdepouce", + "hidden": true, + "profile": { + "address": "0xfB8F1e7ED42599638B3c509679E2F43937002C56", + "chain_id": 42220 + }, + "description": "Système d'Échange Local de Villers-la-Ville", + "primary_token": { + "address": "0x5Cdbc862BF4E20D98456D4c41D4A5239aDd496d3", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/selcoupdepouce" }, - "tokens": { - "42220:0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9": { + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9": { + "name": "CI token", + "symbol": "CIT", + "address": "0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "version": 5, + "accounts": { + "42220:0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x452F7ff3e55fe29f481841985dE7f4939FD645fa", + "entrypoint_address": "0xB8d9412f3A91A00ca762B5c35cd0863E9b716D68", + "account_factory_address": "0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970" + }, + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x452F7ff3e55fe29f481841985dE7f4939FD645fa", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "community": { + "url": "https://citizenwallet.xyz/cit", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/cit.celo.svg", "name": "CI token", - "symbol": "CIT", - "address": "0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9", - "chain_id": 42220, - "decimals": 6, - "standard": "erc20" - } - }, - "version": 5, - "accounts": { - "42220:0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970": { - "chain_id": 42220, - "paymaster_type": "cw", - "paymaster_address": "0x452F7ff3e55fe29f481841985dE7f4939FD645fa", - "entrypoint_address": "0xB8d9412f3A91A00ca762B5c35cd0863E9b716D68", - "account_factory_address": "0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970" - }, - "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 42220, - "paymaster_type": "cw-safe", - "paymaster_address": "0x452F7ff3e55fe29f481841985dE7f4939FD645fa", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "community": { - "url": "https://citizenwallet.xyz/cit", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/cit.celo.svg", - "name": "CI token", - "alias": "cit.celo", - "hidden": true, - "profile": { - "address": "0x4cB296BEc9FAd0B5e1E4FF1A2F307B425724AC82", - "chain_id": 42220 - }, - "description": "Monnaie locale du Cercle Informatique de l’ULB", - "primary_token": { - "address": "0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 42220 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/cit.celo" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://celoscan.io", - "name": "CELO Explorer" - }, - "cards": { - "42220:0xA3E1446E332a098A1f3b0555c5d149b4784A095F": { - "type": "classic", - "address": "0xA3E1446E332a098A1f3b0555c5d149b4784A095F", - "chain_id": 42220 - } - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "42220:0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451": { - "name": "Wolu", - "symbol": "WOLU", - "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", - "chain_id": 42220, - "decimals": 6, - "standard": "erc20" - } - }, - "version": 5, - "accounts": { - "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 42220, - "paymaster_type": "cw-safe", - "paymaster_address": "0xF2EFEC3cBFaDE0bB6108620cbF7Cc608d27DCF3c", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - }, - "42220:0x8474153A00C959f2cB64852949954DBC68415Bb3": { - "chain_id": 42220, - "paymaster_type": "cw", - "paymaster_address": "0xF2EFEC3cBFaDE0bB6108620cbF7Cc608d27DCF3c", - "entrypoint_address": "0x0F805BC1ED718FB9C7C18439cB11E1C17C6538C4", - "account_factory_address": "0x8474153A00C959f2cB64852949954DBC68415Bb3" - } - }, - "community": { - "url": "https://wolugo.be", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/wolugo.svg", - "name": "Wolugo", - "alias": "wallet.wolugo.be", - "theme": { - "primary": "#81e2c1" - }, - "hidden": true, - "profile": { - "address": "0x07e7b95B35866302b3A089feF4CFA3061061a51d", - "chain_id": 42220 - }, - "description": "A community for the Woluwe-Saint-Pierre civic engagement platform", - "card_factory": { - "address": "0xA3E1446E332a098A1f3b0555c5d149b4784A095F", - "chain_id": 42220 - }, - "custom_domain": "wallet.wolugo.be", - "primary_token": { - "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 42220 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.wolugo.be" -}, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "42220:0xc53Cb35591959cA62471dA9fF6AC16629A89874a": { - "name": "Woluwe Test Coin", - "symbol": "WTC", - "address": "0xc53Cb35591959cA62471dA9fF6AC16629A89874a", - "chain_id": 42220, - "decimals": 6, - "standard": "erc20" - } - }, - "version": 5, - "accounts": { - "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 42220, - "paymaster_type": "cw-safe", - "paymaster_address": "0x3fefC19674f3F6E43B1dFf1861E07c303B9eAAc9", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - }, - "42220:0xE79E19594A749330036280c685E2719d58d99052": { - "chain_id": 42220, - "paymaster_type": "cw", - "paymaster_address": "0x3fefC19674f3F6E43B1dFf1861E07c303B9eAAc9", - "entrypoint_address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", - "account_factory_address": "0xE79E19594A749330036280c685E2719d58d99052" - } - }, - "community": { - "url": "https://wollet-v2.citizenwallet.net/token", - "logo": "https://wtc.celo.citizenwallet.xyz/wallet-config/_images/wtc.celo.svg", - "name": "Woluwe Test", - "alias": "wtc.celo", - "hidden": true, - "profile": { - "address": "0xB99a7B1574f051020EB4cb2fce5d48EE07592AfF", - "chain_id": 42220 - }, - "description": "Local currency for the Woluwe Test community.", - "primary_token": { - "address": "0xc53Cb35591959cA62471dA9fF6AC16629A89874a", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 42220 - } + "alias": "cit.celo", + "hidden": true, + "profile": { + "address": "0x4cB296BEc9FAd0B5e1E4FF1A2F307B425724AC82", + "chain_id": 42220 + }, + "description": "Monnaie locale du Cercle Informatique de l’ULB", + "primary_token": { + "address": "0x12e26FAED228c425BceA8a8dd7658a9CeD944dd9", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/cit.celo" }, - "config_location": "https://my.citizenwallet.xyz/api/communities/wtc.celo" -}, - { - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://sepolia.basescan.org", - "name": "Base Sepolia Explorer" - }, - "chains": { - "84532": { - "id": 84532, - "node": { - "url": "https://84532.engine.citizenwallet.xyz", - "ws_url": "wss://84532.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "84532:0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e": { - "name": "ETHGlobal London Token", - "symbol": "ETHLDN", - "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", - "chain_id": 84532, - "decimals": 6, - "standard": "erc20" - } - }, - "version": 5, - "accounts": { - "84532:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 84532, - "paymaster_type": "cw-safe", - "paymaster_address": "0x389182aCCeE26D953d5188BF4b92c49339DcC9FC", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - }, - "84532:0xc1654087C580f868F08E34cd1c01eDB1d3673b82": { - "chain_id": 84532, - "paymaster_type": "cw", - "paymaster_address": "0x389182aCCeE26D953d5188BF4b92c49339DcC9FC", - "entrypoint_address": "0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE", - "account_factory_address": "0xc1654087C580f868F08E34cd1c01eDB1d3673b82" - } - }, - "community": { - "url": "https://en.wikipedia.org/wiki/USD_Coin", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/testnet-ethldn.svg", - "name": "ETHGlobal London Token", - "alias": "testnet-ethldn", - "hidden": true, - "profile": { - "address": "0x0785D720279f42326846D5396b5F44b97d0BfECd", - "chain_id": 84532 - }, - "description": "The community of people using ETHLDN on Base.", - "primary_token": { - "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", - "chain_id": 84532 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 84532 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/testnet-ethldn" - }, -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "cards": { + "42220:0xA3E1446E332a098A1f3b0555c5d149b4784A095F": { + "type": "classic", + "address": "0xA3E1446E332a098A1f3b0555c5d149b4784A095F", + "chain_id": 42220 + } + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451": { + "name": "Wolu", + "symbol": "WOLU", + "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0xF2EFEC3cBFaDE0bB6108620cbF7Cc608d27DCF3c", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + }, + "42220:0x8474153A00C959f2cB64852949954DBC68415Bb3": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0xF2EFEC3cBFaDE0bB6108620cbF7Cc608d27DCF3c", + "entrypoint_address": "0x0F805BC1ED718FB9C7C18439cB11E1C17C6538C4", + "account_factory_address": "0x8474153A00C959f2cB64852949954DBC68415Bb3" + } + }, + "community": { + "url": "https://wolugo.be", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/wolugo.svg", + "name": "Wolugo", + "alias": "wallet.wolugo.be", + "theme": { + "primary": "#81e2c1" + }, + "hidden": true, + "profile": { + "address": "0x07e7b95B35866302b3A089feF4CFA3061061a51d", + "chain_id": 42220 + }, + "description": "A community for the Woluwe-Saint-Pierre civic engagement platform", + "card_factory": { + "address": "0xA3E1446E332a098A1f3b0555c5d149b4784A095F", + "chain_id": 42220 + }, + "custom_domain": "wallet.wolugo.be", + "primary_token": { + "address": "0x13Dd4B3cD2f2Be3eb41cD0C3E2ce9F8d8C93A451", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.wolugo.be" }, - "scan": { - "url": "https://celoscan.io", - "name": "CELO Explorer" + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0xc53Cb35591959cA62471dA9fF6AC16629A89874a": { + "name": "Woluwe Test Coin", + "symbol": "WTC", + "address": "0xc53Cb35591959cA62471dA9fF6AC16629A89874a", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x3fefC19674f3F6E43B1dFf1861E07c303B9eAAc9", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + }, + "42220:0xE79E19594A749330036280c685E2719d58d99052": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x3fefC19674f3F6E43B1dFf1861E07c303B9eAAc9", + "entrypoint_address": "0x1EaF6B6A6967608aF6c77224f087b042095891EB", + "account_factory_address": "0xE79E19594A749330036280c685E2719d58d99052" + } + }, + "community": { + "url": "https://wollet-v2.citizenwallet.net/token", + "logo": "https://wtc.celo.citizenwallet.xyz/wallet-config/_images/wtc.celo.svg", + "name": "Woluwe Test", + "alias": "wtc.celo", + "hidden": true, + "profile": { + "address": "0xB99a7B1574f051020EB4cb2fce5d48EE07592AfF", + "chain_id": 42220 + }, + "description": "Local currency for the Woluwe Test community.", + "primary_token": { + "address": "0xc53Cb35591959cA62471dA9fF6AC16629A89874a", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wtc.celo" }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://sepolia.basescan.org", + "name": "Base Sepolia Explorer" + }, + "chains": { + "84532": { + "id": 84532, + "node": { + "url": "https://84532.engine.citizenwallet.xyz", + "ws_url": "wss://84532.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "84532:0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e": { + "name": "ETHGlobal London Token", + "symbol": "ETHLDN", + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "chain_id": 84532, + "decimals": 6, + "standard": "erc20" + } + }, + "version": 5, + "accounts": { + "84532:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 84532, + "paymaster_type": "cw-safe", + "paymaster_address": "0x389182aCCeE26D953d5188BF4b92c49339DcC9FC", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + }, + "84532:0xc1654087C580f868F08E34cd1c01eDB1d3673b82": { + "chain_id": 84532, + "paymaster_type": "cw", + "paymaster_address": "0x389182aCCeE26D953d5188BF4b92c49339DcC9FC", + "entrypoint_address": "0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE", + "account_factory_address": "0xc1654087C580f868F08E34cd1c01eDB1d3673b82" + } + }, + "community": { + "url": "https://en.wikipedia.org/wiki/USD_Coin", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/testnet-ethldn.svg", + "name": "ETHGlobal London Token", + "alias": "testnet-ethldn", + "hidden": true, + "profile": { + "address": "0x0785D720279f42326846D5396b5F44b97d0BfECd", + "chain_id": 84532 + }, + "description": "The community of people using ETHLDN on Base.", + "primary_token": { + "address": "0x9b1a0D2951b11Ac26A6cBbd5aEf2c4cb014b3B6e", + "chain_id": 84532 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 84532 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/testnet-ethldn" }, - "tokens": { - "42220:0x3C960E72BBbD837293e75080E1d0Fee6a4640357": { + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "CELO Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0x3C960E72BBbD837293e75080E1d0Fee6a4640357": { + "name": "Celo Community Point", + "symbol": "CeloC", + "address": "0x3C960E72BBbD837293e75080E1d0Fee6a4640357", + "chain_id": 42220, + "decimals": 6, + "standard": "erc20" + } + }, + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x7f4011845Ea914b6cefc60629e1e00600c972c75", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + }, + "42220:0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA": { + "chain_id": 42220, + "paymaster_type": "cw", + "paymaster_address": "0x7f4011845Ea914b6cefc60629e1e00600c972c75", + "entrypoint_address": "0x66fE9c22CcA49B257dd4F00508AC90198d99Bf27", + "account_factory_address": "0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA" + } + }, + "community": { + "url": "https://citizenwallet.xyz", + "logo": "https://celo-c.citizenwallet.xyz/uploads/logo.svg", "name": "Celo Community Point", - "symbol": "CeloC", - "address": "0x3C960E72BBbD837293e75080E1d0Fee6a4640357", - "chain_id": 42220, - "decimals": 6, - "standard": "erc20" - } - }, - "version": 5, - "accounts": { - "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 42220, - "paymaster_type": "cw-safe", - "paymaster_address": "0x7f4011845Ea914b6cefc60629e1e00600c972c75", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - }, - "42220:0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA": { - "chain_id": 42220, - "paymaster_type": "cw", - "paymaster_address": "0x7f4011845Ea914b6cefc60629e1e00600c972c75", - "entrypoint_address": "0x66fE9c22CcA49B257dd4F00508AC90198d99Bf27", - "account_factory_address": "0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA" - } - }, - "community": { - "url": "https://citizenwallet.xyz", - "logo": "https://celo-c.citizenwallet.xyz/uploads/logo.svg", - "name": "Celo Community Point", - "alias": "celo-c.citizenwallet.xyz", - "hidden": true, - "profile": { - "address": "0x14004E13907282cFaD05f742022E56926eE92dAd", - "chain_id": 42220 - }, - "description": "This is a community for the Celo Point", - "primary_token": { - "address": "0x3C960E72BBbD837293e75080E1d0Fee6a4640357", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 42220 - } - }, - "config_location": "https://my.citizenwallet.xyz/api/communities/celo-c.citizenwallet.xyz" -}, - -{ - "ipfs": { - "url": "https://ipfs.internal.citizenwallet.xyz" - }, - "scan": { - "url": "https://celoscan.io", - "name": "Celo Explorer" - }, - "chains": { - "42220": { - "id": 42220, - "node": { - "url": "https://42220.engine.citizenwallet.xyz", - "ws_url": "wss://42220.engine.citizenwallet.xyz" - } - } - }, - "tokens": { - "42220:0x56744910f7dEcD48c1a7FA61B4C317b15E99F156": { - "name": "KFMEDIA℠ Pathways for LATAM™", - "symbol": "KFMPFL", - "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", - "chain_id": 42220, - "decimals": 0, - "standard": "erc1155" - } - }, - "version": 5, - "accounts": { - "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { - "chain_id": 42220, - "paymaster_type": "cw-safe", - "paymaster_address": "0x02BDA8370d9497A5C808B2db237cfaA8f0733F36", - "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", - "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" - } - }, - "sessions": { - "42220:0xE2F3DC3E638113b9496060349e5332963d9C1152": { - "chain_id": 42220, - "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", - "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" - } - }, - "community": { - "url": "https://kingfishersmedia.io", - "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/kfmpfl.png", - "name": "KFMEDIA℠", - "alias": "wallet.kingfishersmedia.io", - "theme": { - "primary": "#88292c" - }, - "profile": { - "address": "0x5f6FEb03ad8EfeCdD2a837FAA1a29DEA2bAcfd55", - "chain_id": 42220 - }, - "description": "Certified Education Organization. Solving systemic educational disparity using Web3 solutions, removing barriers of entry for underdeveloped economies.", - "custom_domain": "wallet.kingfishersmedia.io", - "primary_token": { - "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", - "chain_id": 42220 - }, - "primary_account_factory": { - "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", - "chain_id": 42220 - }, - "primary_session_manager": { - "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", - "chain_id": 42220 - } + "alias": "celo-c.citizenwallet.xyz", + "hidden": true, + "profile": { + "address": "0x14004E13907282cFaD05f742022E56926eE92dAd", + "chain_id": 42220 + }, + "description": "This is a community for the Celo Point", + "primary_token": { + "address": "0x3C960E72BBbD837293e75080E1d0Fee6a4640357", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/celo-c.citizenwallet.xyz" }, - "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.kingfishersmedia.io" -} + { + "ipfs": { + "url": "https://ipfs.internal.citizenwallet.xyz" + }, + "scan": { + "url": "https://celoscan.io", + "name": "Celo Explorer" + }, + "chains": { + "42220": { + "id": 42220, + "node": { + "url": "https://42220.engine.citizenwallet.xyz", + "ws_url": "wss://42220.engine.citizenwallet.xyz" + } + } + }, + "tokens": { + "42220:0x56744910f7dEcD48c1a7FA61B4C317b15E99F156": { + "name": "KFMEDIA℠ Pathways for LATAM™", + "symbol": "KFMPFL", + "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", + "chain_id": 42220, + "decimals": 0, + "standard": "erc1155" + } + }, + "version": 5, + "accounts": { + "42220:0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185": { + "chain_id": 42220, + "paymaster_type": "cw-safe", + "paymaster_address": "0x02BDA8370d9497A5C808B2db237cfaA8f0733F36", + "entrypoint_address": "0x7079253c0358eF9Fd87E16488299Ef6e06F403B6", + "account_factory_address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185" + } + }, + "sessions": { + "42220:0xE2F3DC3E638113b9496060349e5332963d9C1152": { + "chain_id": 42220, + "module_address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "factory_address": "0xEd0cD3886b84369A0e29Db9a4480ADF5051c76C9", + "provider_address": "0xF3004A1690f97Cf5d307eDc5958a7F76b62f9FC9" + } + }, + "community": { + "url": "https://kingfishersmedia.io", + "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/kfmpfl.png", + "name": "KFMEDIA℠", + "alias": "wallet.kingfishersmedia.io", + "theme": { + "primary": "#88292c" + }, + "profile": { + "address": "0x5f6FEb03ad8EfeCdD2a837FAA1a29DEA2bAcfd55", + "chain_id": 42220 + }, + "description": "Certified Education Organization. Solving systemic educational disparity using Web3 solutions, removing barriers of entry for underdeveloped economies.", + "custom_domain": "wallet.kingfishersmedia.io", + "primary_token": { + "address": "0x56744910f7dEcD48c1a7FA61B4C317b15E99F156", + "chain_id": 42220 + }, + "primary_account_factory": { + "address": "0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185", + "chain_id": 42220 + }, + "primary_session_manager": { + "address": "0xE2F3DC3E638113b9496060349e5332963d9C1152", + "chain_id": 42220 + } + }, + "config_location": "https://my.citizenwallet.xyz/api/communities/wallet.kingfishersmedia.io" + } ] From 720c086cce895563934539381e80d40ee2f30611 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 17:31:37 +0530 Subject: [PATCH 055/148] remove commented use ConfigService().getConfig(String alias) --- lib/services/accounts/utils.dart | 1 - lib/state/app/logic.dart | 8 -------- lib/state/wallet/logic.dart | 2 -- 3 files changed, 11 deletions(-) diff --git a/lib/services/accounts/utils.dart b/lib/services/accounts/utils.dart index 023ca3bb..c48ad373 100644 --- a/lib/services/accounts/utils.dart +++ b/lib/services/accounts/utils.dart @@ -15,7 +15,6 @@ import 'package:web3dart/web3dart.dart'; Future getLegacyAccountAddress( LegacyBackupWallet backup) async { try { - // final config = await ConfigService().getConfig(backup.alias); final community = await AppDBService().communities.get(backup.alias); if (community == null) { diff --git a/lib/state/app/logic.dart b/lib/state/app/logic.dart index 7ece074d..b13b5d34 100644 --- a/lib/state/app/logic.dart +++ b/lib/state/app/logic.dart @@ -83,8 +83,6 @@ class AppLogic { final address = dbWallet.address.hexEip55; - // final config = await _config.getConfig(dbWallet.alias); - final community = await _appDBService.communities.get(dbWallet.alias); if (community == null) { @@ -132,8 +130,6 @@ class AppLogic { await delay( const Duration(milliseconds: 500)); // smoother launch experience - // final config = await _config.getConfig(alias); - final community = await _appDBService.communities.get(alias); if (community == null) { @@ -285,8 +281,6 @@ class AppLogic { throw Exception('Invalid private key'); } - // final config = await _config.getConfig(alias); - final community = await _appDBService.communities.get(alias); if (community == null) { @@ -348,8 +342,6 @@ class AppLogic { final credentials = wallet.privateKey; - // final config = await _config.getConfig(alias); - final community = await _appDBService.communities.get(alias); if (community == null) { diff --git a/lib/state/wallet/logic.dart b/lib/state/wallet/logic.dart index 43f090dc..0113c86c 100644 --- a/lib/state/wallet/logic.dart +++ b/lib/state/wallet/logic.dart @@ -452,8 +452,6 @@ class WalletLogic extends WidgetsBindingObserver { final credentials = EthPrivateKey.createRandom(Random.secure()); - // final config = await _config.getConfig(alias); - final community = await _appDBService.communities.get(alias); if (community == null) { From 6623ea1fc974b08514f091aa07d8617eca6a5b04 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 22:01:35 +0530 Subject: [PATCH 056/148] add v5 community configs to pubspec --- pubspec.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pubspec.yaml b/pubspec.yaml index 82726d72..b09eb5fa 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -131,6 +131,9 @@ flutter: - assets/config/v4/communities.json - assets/config/v4/communities.test.json - assets/config/v4/debug.json + - assets/config/v5/communities.json + - assets/config/v5/communities.test.json + - assets/config/v5/debug.json - assets/icons/switch_accounts.svg - assets/config/v3/communities.json - assets/config/v3/communities.test.json From fc7549fd0a4ca5ba204bb40a1b88fcafd70ca80f Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 22:29:03 +0530 Subject: [PATCH 057/148] pubspec lock --- pubspec.lock | 168 ++++++++++++++++++++++++++++++--------------------- 1 file changed, 100 insertions(+), 68 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index f7d21d5b..421acb2c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -69,10 +69,10 @@ packages: dependency: "direct main" description: name: async - sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb" + sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 url: "https://pub.dev" source: hosted - version: "2.13.0" + version: "2.12.0" audio_in_app: dependency: "direct main" description: @@ -161,6 +161,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.2" + buffer: + dependency: transitive + description: + name: buffer + sha256: "389da2ec2c16283c8787e0adaede82b1842102f8c8aae2f49003a766c5c6b3d1" + url: "https://pub.dev" + source: hosted + version: "1.2.3" cached_network_image: dependency: "direct main" description: @@ -213,10 +221,10 @@ packages: dependency: transitive description: name: checked_yaml - sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f" + sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff url: "https://pub.dev" source: hosted - version: "2.0.4" + version: "2.0.3" cli_config: dependency: transitive description: @@ -374,10 +382,10 @@ packages: dependency: transitive description: name: dev_build - sha256: "1d9aa167c05cbe4be9fbaf863c76dcee9bec302fb861270672beb6d6be0bc8f4" + sha256: fda8a54458b2a873a84e0cd1513f4323a1fb0599ed5455245359bc0398bad9ee url: "https://pub.dev" source: hosted - version: "1.1.3+1" + version: "1.1.2+11" ed25519_edwards: dependency: transitive description: @@ -410,6 +418,22 @@ packages: url: "https://pub.dev" source: hosted version: "5.0.3" + equatable: + dependency: transitive + description: + name: equatable + sha256: "567c64b3cb4cf82397aac55f4f0cbd3ca20d77c6c03bedbc4ceaddc08904aef7" + url: "https://pub.dev" + source: hosted + version: "2.0.7" + eth_sig_util: + dependency: transitive + description: + name: eth_sig_util + sha256: "20fdc5ce3864e70e5ade1c1cd03cce4ef01018db00adab107303f9055d26b01a" + url: "https://pub.dev" + source: hosted + version: "0.0.9" event: dependency: transitive description: @@ -430,10 +454,10 @@ packages: dependency: transitive description: name: fake_async - sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44" + sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" url: "https://pub.dev" source: hosted - version: "1.3.3" + version: "1.3.2" ffi: dependency: transitive description: @@ -632,10 +656,10 @@ packages: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: "306f0596590e077338312f38837f595c04f28d6cdeeac392d3d74df2f0003687" + sha256: c2fe1001710127dfa7da89977a08d591398370d099aacdaa6d44da7eb14b8476 url: "https://pub.dev" source: hosted - version: "2.0.32" + version: "2.0.31" flutter_secure_storage: dependency: "direct main" description: @@ -706,10 +730,10 @@ packages: dependency: transitive description: name: freezed_annotation - sha256: "7294967ff0a6d98638e7acb774aac3af2550777accd8149c90af5b014e6d44d8" + sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2 url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "2.4.4" frontend_server_client: dependency: transitive description: @@ -874,10 +898,10 @@ packages: dependency: "direct main" description: name: intl - sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5" + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf url: "https://pub.dev" source: hosted - version: "0.20.2" + version: "0.19.0" io: dependency: transitive description: @@ -914,26 +938,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" + sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec url: "https://pub.dev" source: hosted - version: "11.0.2" + version: "10.0.8" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 url: "https://pub.dev" source: hosted - version: "3.0.10" + version: "3.0.9" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.1" lints: dependency: transitive description: @@ -962,10 +986,10 @@ packages: dependency: "direct main" description: name: lottie - sha256: "8ae0be46dbd9e19641791dc12ee480d34e1fd3f84c749adc05f3ad9342b71b95" + sha256: c5fa04a80a620066c15cf19cc44773e19e9b38e989ff23ea32e5903ef1015950 url: "https://pub.dev" source: hosted - version: "3.3.2" + version: "3.3.1" markdown: dependency: transitive description: @@ -1138,18 +1162,18 @@ packages: dependency: transitive description: name: path_provider_android - sha256: e122c5ea805bb6773bb12ce667611265980940145be920cd09a4b0ec0285cb16 + sha256: "3b4c1fc3aa55ddc9cd4aa6759984330d5c8e66aa7702a6223c61540dc6380c37" url: "https://pub.dev" source: hosted - version: "2.2.20" + version: "2.2.19" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: efaec349ddfc181528345c56f8eda9d6cccd71c177511b132c6a0ddaefaa2738 + sha256: "16eef174aacb07e09c351502740fa6254c165757638eba1e9116b0a781201bbd" url: "https://pub.dev" source: hosted - version: "2.4.3" + version: "2.4.2" path_provider_linux: dependency: transitive description: @@ -1178,10 +1202,10 @@ packages: dependency: transitive description: name: petitparser - sha256: "1a97266a94f7350d30ae522c0af07890c70b8e62c71e8e3920d1db4d23c057d1" + sha256: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646" url: "https://pub.dev" source: hosted - version: "7.0.1" + version: "6.1.0" platform: dependency: transitive description: @@ -1274,26 +1298,34 @@ packages: dependency: transitive description: name: reown_core - sha256: "8d5d14b4e8d008b09ec9db964ab8913b4fc17000d666eb1fece20a80a4b5e37a" + sha256: "37e8bd16263400856592b58331ec61665bcc8814d4a2a1801a7f12caf3c4673d" url: "https://pub.dev" source: hosted - version: "1.3.6" + version: "1.2.0" reown_sign: dependency: transitive description: name: reown_sign - sha256: c2fec55ed3d0042d0802c80d7fc36f9b1937eac6ef9c2907dae3b8146188cffa + sha256: ae2e171b93ddaae2ce7db18a66647afc9680cf55f49e88d49a3c3df5d1eb2cde url: "https://pub.dev" source: hosted - version: "1.3.7" + version: "1.2.0" reown_walletkit: dependency: "direct main" description: name: reown_walletkit - sha256: f96cc9f6e264138b3411fd1635e06d437d5912d7a21ef28af21974e2680dfd70 + sha256: b779e4914c9299edea80a849773fc08ddd5e44549bf53a2fd26cac4a59f5c99c + url: "https://pub.dev" + source: hosted + version: "1.2.0" + reown_yttrium: + dependency: transitive + description: + name: reown_yttrium + sha256: e59d9e8dbad8e2c420c201719da12bca528c38ecab9571364d5b6d18715ce773 url: "https://pub.dev" source: hosted - version: "1.3.7" + version: "0.0.1" rxdart: dependency: "direct main" description: @@ -1338,18 +1370,18 @@ packages: dependency: transitive description: name: shared_preferences_android - sha256: "34266009473bf71d748912da4bf62d439185226c03e01e2d9687bc65bbfcb713" + sha256: bd14436108211b0d4ee5038689a56d4ae3620fd72fd6036e113bf1345bc74d9e url: "https://pub.dev" source: hosted - version: "2.4.15" + version: "2.4.13" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: "1c33a907142607c40a7542768ec9badfd16293bac51da3a4482623d15845f88b" + sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03" url: "https://pub.dev" source: hosted - version: "2.5.5" + version: "2.5.4" shared_preferences_linux: dependency: transitive description: @@ -1472,18 +1504,18 @@ packages: dependency: transitive description: name: sqflite_android - sha256: ecd684501ebc2ae9a83536e8b15731642b9570dc8623e0073d227d0ee2bfea88 + sha256: "2b3070c5fa881839f8b402ee4a39c1b4d561704d4ebbbcfb808a119bc2a1701b" url: "https://pub.dev" source: hosted - version: "2.4.2+2" + version: "2.4.1" sqflite_common: dependency: "direct main" description: name: sqflite_common - sha256: "6ef422a4525ecc601db6c0a2233ff448c731307906e92cabc9ba292afaae16a6" + sha256: "84731e8bfd8303a3389903e01fb2141b6e59b5973cacbb0929021df08dddbe8b" url: "https://pub.dev" source: hosted - version: "2.5.6" + version: "2.5.5" sqflite_common_ffi: dependency: transitive description: @@ -1496,10 +1528,10 @@ packages: dependency: "direct main" description: name: sqflite_common_ffi_web - sha256: "793c1ff5b0c95ac618e7731e209db99e96abff59ad3432a3c91bd2b1454a00d5" + sha256: "983cf7b33b16e6bc086c8e09f6a1fae69d34cdb167d7acaf64cbd3515942d4e6" url: "https://pub.dev" source: hosted - version: "1.0.1+2" + version: "1.0.0" sqflite_darwin: dependency: transitive description: @@ -1560,10 +1592,10 @@ packages: dependency: transitive description: name: synchronized - sha256: c254ade258ec8282947a0acbbc90b9575b4f19673533ee46f2f6e9b3aeefd7c0 + sha256: "0669c70faae6270521ee4f05bffd2919892d42d1276e6c495be80174b6bc0ef6" url: "https://pub.dev" source: hosted - version: "3.4.0" + version: "3.3.1" term_glyph: dependency: transitive description: @@ -1576,26 +1608,26 @@ packages: dependency: transitive description: name: test - sha256: "65e29d831719be0591f7b3b1a32a3cda258ec98c58c7b25f7b84241bc31215bb" + sha256: "301b213cd241ca982e9ba50266bd3f5bd1ea33f1455554c5abb85d1be0e2d87e" url: "https://pub.dev" source: hosted - version: "1.26.2" + version: "1.25.15" test_api: dependency: transitive description: name: test_api - sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00" + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd url: "https://pub.dev" source: hosted - version: "0.7.6" + version: "0.7.4" test_core: dependency: transitive description: name: test_core - sha256: "80bf5a02b60af04b09e14f6fe68b921aad119493e26e490deaca5993fef1b05a" + sha256: "84d17c3486c8dfdbe5e12a50c8ae176d15e2a771b96909a9442b40173649ccaa" url: "https://pub.dev" source: hosted - version: "0.6.11" + version: "0.6.8" timeago: dependency: "direct main" description: @@ -1640,18 +1672,18 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: "5c8b6c2d89a78f5a1cca70a73d9d5f86c701b36b42f9c9dac7bad592113c28e9" + sha256: "81777b08c498a292d93ff2feead633174c386291e35612f8da438d6e92c4447e" url: "https://pub.dev" source: hosted - version: "6.3.24" + version: "6.3.20" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: "6b63f1441e4f653ae799166a72b50b1767321ecc263a57aadf825a7a2a5477d9" + sha256: d80b3f567a617cb923546034cc94bfe44eb15f989fe670b37f26abdb9d939cb7 url: "https://pub.dev" source: hosted - version: "6.3.5" + version: "6.3.4" url_launcher_linux: dependency: transitive description: @@ -1664,10 +1696,10 @@ packages: dependency: transitive description: name: url_launcher_macos - sha256: "8262208506252a3ed4ff5c0dc1e973d2c0e0ef337d0a074d35634da5d44397c9" + sha256: c043a77d6600ac9c38300567f33ef12b0ef4f4783a2c1f00231d2b1941fea13f url: "https://pub.dev" source: hosted - version: "3.2.4" + version: "3.2.3" url_launcher_platform_interface: dependency: transitive description: @@ -1736,18 +1768,18 @@ packages: dependency: transitive description: name: vector_math - sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.1.4" vm_service: dependency: transitive description: name: vm_service - sha256: "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60" + sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" url: "https://pub.dev" source: hosted - version: "15.0.2" + version: "14.3.1" wallet: dependency: transitive description: @@ -1808,10 +1840,10 @@ packages: dependency: transitive description: name: win32 - sha256: d7cb55e04cd34096cd3a79b3330245f54cb96a370a1c27adb3c84b917de8b08e + sha256: "329edf97fdd893e0f1e3b9e88d6a0e627128cc17cc316a8d67fda8f1451178ba" url: "https://pub.dev" source: hosted - version: "5.15.0" + version: "5.13.0" x25519: dependency: transitive description: @@ -1832,10 +1864,10 @@ packages: dependency: transitive description: name: xml - sha256: "971043b3a0d3da28727e40ed3e0b5d18b742fa5a68665cca88e74b7876d5e025" + sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 url: "https://pub.dev" source: hosted - version: "6.6.1" + version: "6.5.0" yaml: dependency: transitive description: @@ -1845,5 +1877,5 @@ packages: source: hosted version: "3.1.3" sdks: - dart: ">=3.9.0 <4.0.0" - flutter: ">=3.35.0" + dart: ">=3.7.2 <4.0.0" + flutter: ">=3.29.0" From adc4540bf146d072f69e2f5b74d3d64026175e33 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 22:29:19 +0530 Subject: [PATCH 058/148] ios pods --- ios/Podfile.lock | 74 ++++++++++++++++++++++++------------------------ 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index b35942fc..bbdd1317 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -13,7 +13,7 @@ PODS: - Flutter - connectivity_plus (0.0.1): - Flutter - - credential_manager (1.0.4): + - credential_manager_ios (2.0.5): - Flutter - DKImagePickerController/Core (4.3.9): - DKImagePickerController/ImageDataManager @@ -49,37 +49,37 @@ PODS: - file_picker (0.0.1): - DKImagePickerController/PhotoGallery - Flutter - - Firebase/CoreOnly (11.10.0): - - FirebaseCore (~> 11.10.0) - - Firebase/Messaging (11.10.0): + - Firebase/CoreOnly (11.15.0): + - FirebaseCore (~> 11.15.0) + - Firebase/Messaging (11.15.0): - Firebase/CoreOnly - - FirebaseMessaging (~> 11.10.0) - - firebase_core (3.13.1): - - Firebase/CoreOnly (= 11.10.0) + - FirebaseMessaging (~> 11.15.0) + - firebase_core (3.15.2): + - Firebase/CoreOnly (= 11.15.0) - Flutter - - firebase_messaging (15.2.6): - - Firebase/Messaging (= 11.10.0) + - firebase_messaging (15.2.10): + - Firebase/Messaging (= 11.15.0) - firebase_core - Flutter - - FirebaseCore (11.10.0): - - FirebaseCoreInternal (~> 11.10.0) - - GoogleUtilities/Environment (~> 8.0) - - GoogleUtilities/Logger (~> 8.0) - - FirebaseCoreInternal (11.10.0): - - "GoogleUtilities/NSData+zlib (~> 8.0)" - - FirebaseInstallations (11.10.0): - - FirebaseCore (~> 11.10.0) - - GoogleUtilities/Environment (~> 8.0) - - GoogleUtilities/UserDefaults (~> 8.0) + - FirebaseCore (11.15.0): + - FirebaseCoreInternal (~> 11.15.0) + - GoogleUtilities/Environment (~> 8.1) + - GoogleUtilities/Logger (~> 8.1) + - FirebaseCoreInternal (11.15.0): + - "GoogleUtilities/NSData+zlib (~> 8.1)" + - FirebaseInstallations (11.15.0): + - FirebaseCore (~> 11.15.0) + - GoogleUtilities/Environment (~> 8.1) + - GoogleUtilities/UserDefaults (~> 8.1) - PromisesObjC (~> 2.4) - - FirebaseMessaging (11.10.0): - - FirebaseCore (~> 11.10.0) + - FirebaseMessaging (11.15.0): + - FirebaseCore (~> 11.15.0) - FirebaseInstallations (~> 11.0) - GoogleDataTransport (~> 10.0) - - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - - GoogleUtilities/Environment (~> 8.0) - - GoogleUtilities/Reachability (~> 8.0) - - GoogleUtilities/UserDefaults (~> 8.0) + - GoogleUtilities/AppDelegateSwizzler (~> 8.1) + - GoogleUtilities/Environment (~> 8.1) + - GoogleUtilities/Reachability (~> 8.1) + - GoogleUtilities/UserDefaults (~> 8.1) - nanopb (~> 3.30910.0) - Flutter (1.0.0) - flutter_inappwebview_ios (0.0.1): @@ -178,7 +178,7 @@ PODS: DEPENDENCIES: - audioplayers_darwin (from `.symlinks/plugins/audioplayers_darwin/ios`) - connectivity_plus (from `.symlinks/plugins/connectivity_plus/ios`) - - credential_manager (from `.symlinks/plugins/credential_manager/ios`) + - credential_manager_ios (from `.symlinks/plugins/credential_manager_ios/ios`) - file_picker (from `.symlinks/plugins/file_picker/ios`) - firebase_core (from `.symlinks/plugins/firebase_core/ios`) - firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`) @@ -225,8 +225,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/audioplayers_darwin/ios" connectivity_plus: :path: ".symlinks/plugins/connectivity_plus/ios" - credential_manager: - :path: ".symlinks/plugins/credential_manager/ios" + credential_manager_ios: + :path: ".symlinks/plugins/credential_manager_ios/ios" file_picker: :path: ".symlinks/plugins/file_picker/ios" firebase_core: @@ -267,18 +267,18 @@ SPEC CHECKSUMS: AppCheckCore: cc8fd0a3a230ddd401f326489c99990b013f0c4f audioplayers_darwin: 877d9a4d06331c5c374595e46e16453ac7eafa40 connectivity_plus: 2a701ffec2c0ae28a48cf7540e279787e77c447d - credential_manager: feb21034894e469e3686461dc96fb24bb7d350e4 + credential_manager_ios: fd1d96ef11fa3d76f868f038342de171c3bc2b28 DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60 file_picker: be9a674155d9f334323856cb266e0d145d75d5c0 - Firebase: 1fe1c0a7d9aaea32efe01fbea5f0ebd8d70e53a2 - firebase_core: 3c2f323cae65c97a636a05a23b17730ef93df2cf - firebase_messaging: 456e01ff29a451c90097d0b45925551d5be0c143 - FirebaseCore: 8344daef5e2661eb004b177488d6f9f0f24251b7 - FirebaseCoreInternal: ef4505d2afb1d0ebbc33162cb3795382904b5679 - FirebaseInstallations: 9980995bdd06ec8081dfb6ab364162bdd64245c3 - FirebaseMessaging: 2b9f56aa4ed286e1f0ce2ee1d413aabb8f9f5cb9 - Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467 + Firebase: d99ac19b909cd2c548339c2241ecd0d1599ab02e + firebase_core: 99a37263b3c27536063a7b601d9e2a49400a433c + firebase_messaging: bf6697c61f31c7cc0f654131212ff04c0115c2c7 + FirebaseCore: efb3893e5b94f32b86e331e3bd6dadf18b66568e + FirebaseCoreInternal: 9afa45b1159304c963da48addb78275ef701c6b4 + FirebaseInstallations: 317270fec08a5d418fdbc8429282238cab3ac843 + FirebaseMessaging: 3b26e2cee503815e01c3701236b020aa9b576f09 + Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 flutter_inappwebview_ios: 6f63631e2c62a7c350263b13fa5427aedefe81d4 flutter_secure_storage: d33dac7ae2ea08509be337e775f6b59f1ff45f12 google_sign_in_ios: 7411fab6948df90490dc4620ecbcabdc3ca04017 From 94393e06c0f2e6490f0e0ef393be56bec59d2fc5 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 22:31:54 +0530 Subject: [PATCH 059/148] feat: migrate config service from v4 to v5 API - Update config version from 4 to 5 - Replace versioned JSON endpoints with REST API endpoints - Change `/v4/communities.json` to `/api/communities` - Remove cache busting query parameters for cleaner URLs - Add getConfigByAlias() method for direct community fetch - Supports both debug mode (local files) and production (API) - Enables efficient single-community retrieval via `/api/communities/{alias}` - Optimize _getConfig() to try direct fetch before fetching all communities - Update getCommunitiesFromRemote() to use new API endpoint Breaking changes: - Requires API server at https://my.citizenwallet.xyz with /api/communities endpoints - Local debug files now loaded from assets/config/v5/ --- lib/services/config/service.dart | 38 ++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/lib/services/config/service.dart b/lib/services/config/service.dart index 89b998ec..4b1b3ef0 100644 --- a/lib/services/config/service.dart +++ b/lib/services/config/service.dart @@ -30,7 +30,7 @@ class ConfigService { static const String communityConfigListS3FileName = 'communities'; static const String communityDebugFileName = 'debug'; - static const int version = 4; + static const int version = 5; final PreferencesService _pref = PreferencesService(); late APIService _api; @@ -105,6 +105,14 @@ class ConfigService { } } + // NEW: Try direct fetch first (more efficient) + try { + final config = await getConfigByAlias(alias); + if (config != null) { + return config; + } + } catch (_) {} + try { // fetch the config and await _configs = await getConfigs(location: location); @@ -145,9 +153,7 @@ class ConfigService { return [Config.fromJson(response)]; } - final response = await _api.get( - url: - '/v$version/$communityConfigListFileName.json?cachebuster=${generateCacheBusterValue()}'); + final response = await _api.get(url: '/api/communities'); _pref.setConfigs(response); @@ -206,9 +212,7 @@ class ConfigService { return configs; } - final List response = await _api.get( - url: - '/v$version/$communityConfigListS3FileName.json?cachebuster=${generateCacheBusterValue()}'); + final List response = await _api.get(url: '/api/communities'); final List communities = response.map((item) => Config.fromJson(item)).toList(); @@ -216,6 +220,26 @@ class ConfigService { return communities; } + Future getConfigByAlias(String alias) async { + if (kDebugMode) { + final localConfigs = jsonDecode(await rootBundle.loadString( + 'assets/config/v$version/$communityConfigListFileName.json')); + + final configs = + (localConfigs as List).map((e) => Config.fromJson(e)).toList(); + return configs.firstWhereOrNull((c) => c.community.alias == alias); + } + + try { + final response = await _api.get(url: '/api/communities/$alias'); + return Config.fromJson(response); + } catch (e, s) { + debugPrint('Error fetching config for $alias: $e'); + debugPrint('Stacktrace: $s'); + return null; + } + } + Future isCommunityOnline(String indexerUrl) async { final indexer = APIService(baseURL: indexerUrl, netTimeoutSeconds: 20); From 930c046538658acb4e066ac12c598294d9479328 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 15 Dec 2025 22:32:47 +0530 Subject: [PATCH 060/148] chore: migrate app database from v4 to v5 Initialize AppDBService with 'appv5' database to align with v5 config migration. Creates fresh database that will be seeded with v5 community configurations. --- lib/main.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/main.dart b/lib/main.dart index f40375a6..41741671 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -76,7 +76,7 @@ FutureOr appRunner() async { } final AppDBService appDBService = AppDBService(); - await appDBService.init('appv4'); + await appDBService.init('appv5'); final numConfigs = (await appDBService.communities.getAll()).length; config.singleCommunityMode = numConfigs < 2; From c90107dd5c2d7cd80da6d5c99d58eb28de8fc755 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Tue, 16 Dec 2025 10:31:58 +0530 Subject: [PATCH 061/148] init t_community db version 3 migration --- lib/services/db/app/communities.dart | 52 ++++++++++++++++++++++++++++ lib/services/db/app/db.dart | 2 +- 2 files changed, 53 insertions(+), 1 deletion(-) diff --git a/lib/services/db/app/communities.dart b/lib/services/db/app/communities.dart index 46eefac1..a02332f2 100644 --- a/lib/services/db/app/communities.dart +++ b/lib/services/db/app/communities.dart @@ -3,6 +3,7 @@ import 'package:citizenwallet/services/config/config.dart'; import 'package:citizenwallet/services/config/legacy.dart'; import 'package:citizenwallet/services/config/service.dart'; import 'package:citizenwallet/services/db/db.dart'; +import 'package:collection/collection.dart'; import 'package:flutter/foundation.dart'; import 'package:sqflite/sqflite.dart'; @@ -28,6 +29,50 @@ Future> legacyToV4(Database db, String name) async { return v4Configs; } +Future> V5Migration(Database db, String name) async { + try { + final ConfigService config = ConfigService(); + final localConfigs = await config.getLocalConfigs(); + + final List> maps = await db.query(name); + final existingCommunities = List.generate(maps.length, (i) { + return DBCommunity.fromMap(maps[i]); + }); + + final List updatedConfigs = []; + + for (final localConfig in localConfigs) { + final existingCommunity = existingCommunities.firstWhereOrNull( + (c) => c.alias == localConfig.community.alias, + ); + + if (existingCommunity != null) { + // Update existing community, preserve online status + final updatedCommunity = DBCommunity( + alias: localConfig.community.alias, + config: localConfig.toJson(), + hidden: localConfig.community.hidden, + version: localConfig.version, + online: existingCommunity.online, + ); + updatedConfigs.add(updatedCommunity); + } else { + // New community in v5 + updatedConfigs.add(DBCommunity.fromConfig(localConfig)); + } + } + + return updatedConfigs; + } catch (e, s) { + debugPrint('ERROR in V5Migration: $e'); + debugPrintStack(stackTrace: s); + + // Return existing data unchanged on error + final List> maps = await db.query(name); + return List.generate(maps.length, (i) => DBCommunity.fromMap(maps[i])); + } +} + class DBCommunity { final String alias; // index final bool hidden; @@ -118,6 +163,9 @@ class CommunityTable extends DBTable { 2: [ 'V4Migration', ], + 3: [ + 'V5Migration', + ], }; for (var i = oldVersion + 1; i <= newVersion; i++) { @@ -131,6 +179,10 @@ class CommunityTable extends DBTable { final updatedConfigs = await legacyToV4(db, name); await upsert(updatedConfigs); continue; + case 'V5Migration': + final updatedConfigs = await V5Migration(db, name); + await upsert(updatedConfigs); + continue; } await db.execute(query); diff --git a/lib/services/db/app/db.dart b/lib/services/db/app/db.dart index f73c927d..65e25b60 100644 --- a/lib/services/db/app/db.dart +++ b/lib/services/db/app/db.dart @@ -27,7 +27,7 @@ class AppDBService extends DBService { await communities.migrate(db, oldVersion, newVersion); return; }, - version: 2, + version: 3, ); final db = await databaseFactory.openDatabase( From 29c78bc542884be9f40a60fde74f17dae89c944a Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Tue, 16 Dec 2025 11:11:56 +0530 Subject: [PATCH 062/148] wrap function implementation in try-catch --- lib/services/config/service.dart | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/services/config/service.dart b/lib/services/config/service.dart index 4b1b3ef0..80b3748f 100644 --- a/lib/services/config/service.dart +++ b/lib/services/config/service.dart @@ -163,13 +163,19 @@ class ConfigService { } Future> getLocalConfigs() async { - final localConfigs = jsonDecode(await rootBundle.loadString( - 'assets/config/v$version/$communityConfigListFileName.json')); + try { + final localConfigs = jsonDecode(await rootBundle.loadString( + 'assets/config/v$version/$communityConfigListFileName.json')); - final configs = - (localConfigs as List).map((e) => Config.fromJson(e)).toList(); + final configs = + (localConfigs as List).map((e) => Config.fromJson(e)).toList(); - return configs; + return configs; + } catch (e, s) { + debugPrint('ERROR in getLocalConfigs: $e'); + debugPrintStack(stackTrace: s); + return []; + } } Future getRemoteConfig(String remoteConfigUrl) async { From 9db6e9eec4dc6b48cd3066d3f1818b5b63c30acd Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Tue, 16 Dec 2025 12:09:12 +0530 Subject: [PATCH 063/148] wrap t_community seed implementation in try-catch --- lib/services/db/app/communities.dart | 39 ++++++++++++++++------------ 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/lib/services/db/app/communities.dart b/lib/services/db/app/communities.dart index a02332f2..7ed443a8 100644 --- a/lib/services/db/app/communities.dart +++ b/lib/services/db/app/communities.dart @@ -180,6 +180,7 @@ class CommunityTable extends DBTable { await upsert(updatedConfigs); continue; case 'V5Migration': + debugPrint('V5Migration'); final updatedConfigs = await V5Migration(db, name); await upsert(updatedConfigs); continue; @@ -196,26 +197,32 @@ class CommunityTable extends DBTable { } Future seed() async { - final localConfigs = await _config.getLocalConfigs(); + try { + // Check if the table is empty + final count = Sqflite.firstIntValue( + await db.rawQuery('SELECT COUNT(*) FROM $name')); - // Check if the table is empty - final count = - Sqflite.firstIntValue(await db.rawQuery('SELECT COUNT(*) FROM $name')); - if (count != null && count > 0) { - return; // Table is not empty, skip seeding - } + if (count != null && count > 0) { + return; // Table is not empty, skip seeding + } - // Prepare batch operation for efficient insertion - final batch = db.batch(); + final localConfigs = await _config.getLocalConfigs(); - for (final config in localConfigs) { - batch.insert( - name, - DBCommunity.fromConfig(config).toMap(), - ); - } + // Prepare batch operation for efficient insertion + final batch = db.batch(); - await batch.commit(noResult: true); + for (final config in localConfigs) { + batch.insert( + name, + DBCommunity.fromConfig(config).toMap(), + ); + } + + await batch.commit(noResult: true); + } catch (e, s) { + print('Error seeding communities table: $e'); + print('Stack trace: $s'); + } } Future upsert(List communities) async { From a65427d0b6e870ac688032f8b44d7a71c6dbd676 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Tue, 16 Dec 2025 13:17:38 +0530 Subject: [PATCH 064/148] fix: parse API wrapper structure in config service responses The config API endpoints now return responses wrapped in an object with the actual config data nested in a 'json' field. Updated all API response parsing to extract the 'json' field before passing to Config.fromJson(). Changes: - /api/communities: extract 'json' field from each array item - /api/communities/:alias: extract 'json' field with null checks - Remote config URL: extract 'json' field with null checks --- lib/services/config/service.dart | 39 ++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/lib/services/config/service.dart b/lib/services/config/service.dart index 80b3748f..aa9fda6c 100644 --- a/lib/services/config/service.dart +++ b/lib/services/config/service.dart @@ -157,7 +157,11 @@ class ConfigService { _pref.setConfigs(response); - final configs = (response as List).map((e) => Config.fromJson(e)).toList(); + // The API returns an array of wrapper objects with the config nested in the 'json' field + final configs = (response as List).map((e) { + final configData = e['json'] as Map; + return Config.fromJson(configData); + }).toList(); return configs; } @@ -196,7 +200,19 @@ class ConfigService { final dynamic response = await remote.get(url: '?cachebuster=${generateCacheBusterValue()}'); - final config = Config.fromJson(response); + if (response == null) { + debugPrint('Empty response for remote config'); + return null; + } + + // The API returns a wrapper object with the config nested in the 'json' field + final configData = response['json'] as Map?; + if (configData == null) { + debugPrint('No json field in response for remote config'); + return null; + } + + final config = Config.fromJson(configData); return config; } catch (e, s) { @@ -220,8 +236,11 @@ class ConfigService { final List response = await _api.get(url: '/api/communities'); - final List communities = - response.map((item) => Config.fromJson(item)).toList(); + // The API returns an array of wrapper objects with the config nested in the 'json' field + final List communities = response.map((item) { + final configData = item['json'] as Map; + return Config.fromJson(configData); + }).toList(); return communities; } @@ -238,7 +257,17 @@ class ConfigService { try { final response = await _api.get(url: '/api/communities/$alias'); - return Config.fromJson(response); + if (response == null) { + debugPrint('Empty response for config: $alias'); + return null; + } + // The API returns a wrapper object with the config nested in the 'json' field + final configData = response['json'] as Map?; + if (configData == null) { + debugPrint('No json field in response for config: $alias'); + return null; + } + return Config.fromJson(configData); } catch (e, s) { debugPrint('Error fetching config for $alias: $e'); debugPrint('Stacktrace: $s'); From 938202852f11d8ee9f8527432d309cc09a4ed8b3 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Tue, 16 Dec 2025 14:20:56 +0530 Subject: [PATCH 065/148] refactor: consolidate remote config updates in WalletLogic - Add updateWalletConfigFromRemote() method to centralize remote config fetching - Replace duplicate config update logic in openWallet() and didChangeAppLifecycleState() - Fetch remote config from configLocation and update database on app resume - Update online status check as part of remote config update --- lib/state/wallet/logic.dart | 86 +++++++++++++++++++++++-------------- 1 file changed, 54 insertions(+), 32 deletions(-) diff --git a/lib/state/wallet/logic.dart b/lib/state/wallet/logic.dart index 0113c86c..2cc8dd78 100644 --- a/lib/state/wallet/logic.dart +++ b/lib/state/wallet/logic.dart @@ -8,6 +8,7 @@ import 'package:citizenwallet/services/cache/contacts.dart'; import 'package:citizenwallet/services/config/config.dart'; import 'package:citizenwallet/services/config/service.dart'; import 'package:citizenwallet/services/db/account/db.dart'; +import 'package:citizenwallet/services/db/app/communities.dart'; import 'package:citizenwallet/services/db/backup/accounts.dart'; import 'package:citizenwallet/services/db/app/db.dart'; import 'package:citizenwallet/services/db/account/transactions.dart'; @@ -390,17 +391,7 @@ class WalletLogic extends WidgetsBindingObserver { ContactsCache().init(_accountDBService); - _config - .isCommunityOnline( - communityConfig.chains[token.chainId.toString()]!.node.url) - .then((isOnline) { - communityConfig.online = isOnline; - - _state.setWalletConfig(communityConfig); - - _appDBService.communities - .updateOnlineStatus(communityConfig.community.alias, isOnline); - }); + updateWalletConfigFromRemote(); _state.setWallet( CWWallet( @@ -1101,7 +1092,8 @@ class WalletLogic extends WidgetsBindingObserver { final trimmedAmount = amount.trim(); if (trimmedAmount.endsWith(',') || trimmedAmount.endsWith('.')) { // Remove trailing separator and validate the partial amount - final withoutTrailing = trimmedAmount.substring(0, trimmedAmount.length - 1); + final withoutTrailing = + trimmedAmount.substring(0, trimmedAmount.length - 1); if (withoutTrailing.isEmpty) { // Just "," or "." - treat as empty (not invalid, but also not valid) return false; @@ -1116,7 +1108,7 @@ class WalletLogic extends WidgetsBindingObserver { balanceRaw, decimals: _wallet.currency.decimals, )); - + // Parse the amount as a double in human-readable format // Handle both comma and dot as decimal separators final normalizedAmount = amount.replaceAll(',', '.'); @@ -1724,7 +1716,7 @@ class WalletLogic extends WidgetsBindingObserver { Future updateAmount({bool unlimited = false}) async { // Fetch current balance before validating to ensure we check against the latest balance await updateBalance(); - + _state.setHasAmount( _amountController.text.isNotEmpty, isInvalidAmount(_amountController.value.text, unlimited: unlimited), @@ -2142,6 +2134,53 @@ class WalletLogic extends WidgetsBindingObserver { cleanupWalletService(); } + Future updateWalletConfigFromRemote() async { + try { + if (_wallet.alias == null) { + return; + } + + final community = await _appDBService.communities.get(_wallet.alias!); + + if (community == null) { + return; + } + + Config communityConfig = Config.fromJson(community.config); + + final remoteConfigUrl = communityConfig.configLocation; + + if (remoteConfigUrl.isEmpty) { + return; + } + + final remoteConfig = await _config.getRemoteConfig(remoteConfigUrl); + + if (remoteConfig == null) { + return; + } + + // Update the wallet config with the remote config + _state.setWalletConfig(remoteConfig); + + final token = remoteConfig.getPrimaryToken(); + + remoteConfig.online = await _config.isCommunityOnline( + remoteConfig.chains[token.chainId.toString()]!.node.url); + + _state.setWalletConfig(remoteConfig); + + // Update the database with the new config + await _appDBService.communities.upsert( + [DBCommunity.fromConfig(remoteConfig)], + ); + debugPrint('Remote config updated'); + } catch (e, s) { + debugPrint('Error updating remote config: $e'); + debugPrint('Stacktrace: $s'); + } + } + @override Future didChangeAppLifecycleState(AppLifecycleState state) async { switch (state) { @@ -2154,24 +2193,7 @@ class WalletLogic extends WidgetsBindingObserver { } await updateBalance(); - - final community = await _appDBService.communities.get(_wallet.alias!); - - if (community == null) { - return; - } - - Config communityConfig = Config.fromJson(community.config); - - final token = communityConfig.getPrimaryToken(); - - communityConfig.online = await _config.isCommunityOnline( - communityConfig.chains[token.chainId.toString()]!.node.url); - - await _appDBService.communities.updateOnlineStatus( - communityConfig.community.alias, communityConfig.online); - - _state.setWalletConfig(communityConfig); + await updateWalletConfigFromRemote(); break; default: From b40ff6d2e9a19b1e0d7c0ae946345bdf71521123 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Tue, 16 Dec 2025 16:45:09 +0530 Subject: [PATCH 066/148] getAccountAbstractionConfig with tests --- lib/services/config/config.dart | 22 ++ test/services/config/config_v5_test.dart | 368 +++++++++++++++++++++++ 2 files changed, 390 insertions(+) create mode 100644 test/services/config/config_v5_test.dart diff --git a/lib/services/config/config.dart b/lib/services/config/config.dart index 01b02434..97313279 100644 --- a/lib/services/config/config.dart +++ b/lib/services/config/config.dart @@ -726,6 +726,28 @@ class Config { return primaryAccountAbstraction; } + ERC4337Config getAccountAbstractionConfig({String? accountFactoryAddress}) { + // If no accountFactoryAddress is provided, return the primary config + if (accountFactoryAddress == null || accountFactoryAddress.isEmpty) { + return getPrimaryAccountAbstractionConfig(); + } + + // Build the full address key using chainId:accountFactoryAddress format + final chainId = community.primaryToken.chainId; + final fullAddress = '$chainId:$accountFactoryAddress'; + + // Try to find the account config + final accountConfig = accounts[fullAddress]; + + if (accountConfig == null) { + throw Exception( + 'Account Abstraction Config not found for address: $fullAddress', + ); + } + + return accountConfig; + } + CardsConfig? getPrimaryCardManager() { return cards?[community.primaryCardManager?.fullAddress]; } diff --git a/test/services/config/config_v5_test.dart b/test/services/config/config_v5_test.dart new file mode 100644 index 00000000..c285cf51 --- /dev/null +++ b/test/services/config/config_v5_test.dart @@ -0,0 +1,368 @@ +import 'dart:io'; +import 'dart:convert'; +import 'package:citizenwallet/services/config/config.dart'; +import 'package:test/test.dart'; + +const Map> communitiesWithMultipleAccountFactories = { + 'wallet.pay.brussels': [ + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185', + '0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE', + ], + 'gratitude': [ + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185', + '0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD' + ], + 'bread': [ + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185', + '0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9' + ], + 'wallet.commonshub.brussels': [ + '0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87', + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185' + ], + 'wallet.regensunite.earth': [ + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185', + '0x9406Cc6185a346906296840746125a0E44976454' + ], + 'gt.celo': [ + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185', + '0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD' + ], + 'ceur.celo': [ + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185', + '0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098' + ], + 'eure.polygon': [ + '0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616', + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185' + ], + 'app': [ + '0x270758454C012A1f51428b68aE473D728CCdFe88', + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185' + ], + 'usdc.base': [ + '0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99', + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185' + ], + 'wallet.oak.community': [ + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185', + '0x9406Cc6185a346906296840746125a0E44976454' + ], + 'sbc.polygon': [ + '0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5', + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185' + ], + 'zinne': [ + '0x11af2639817692D2b805BcE0e1e405E530B20006', + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185' + ], + 'timebank.regensunite.earth': [ + '0x39b77d77f7677997871b304094a05295eb71e240', + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185' + ], + 'moos': [ + '0x671f0662de72268d0f3966Fb62dFc6ee6389e244', + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185' + ], + 'selcoupdepouce': [ + '0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284', + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185' + ], + 'cit.celo': [ + '0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970', + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185' + ], + 'wallet.wolugo.be': [ + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185', + '0x8474153A00C959f2cB64852949954DBC68415Bb3' + ], + 'wtc.celo': [ + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185', + '0xE79E19594A749330036280c685E2719d58d99052' + ], + 'testnet-ethldn': [ + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185', + '0xc1654087C580f868F08E34cd1c01eDB1d3673b82' + ], + 'celo-c.citizenwallet.xyz': [ + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185', + '0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA' + ], +}; + +void main() { + late List configs; + + setUpAll(() async { + // Load and parse JSON file + final jsonString = + await File('assets/config/v5/communities.json').readAsString(); + final jsonList = jsonDecode(jsonString) as List; + configs = jsonList + .map((json) => Config.fromJson(json as Map)) + .toList(); + }); + + group('V5 Config Parsing', () { + test('loads all configs successfully', () { + expect(configs.length, greaterThan(0)); + print('Loaded ${configs.length} configs'); + }); + + test('all configs have valid community data', () { + for (final config in configs) { + expect(config.community.name, isNotEmpty, + reason: 'Community name should not be empty'); + expect(config.community.alias, isNotEmpty, + reason: 'Community alias should not be empty'); + expect(config.community.description, isNotEmpty, + reason: 'Community description should not be empty'); + expect(config.community.url, isNotEmpty, + reason: 'Community URL should not be empty'); + expect(config.community.logo, isNotEmpty, + reason: 'Community logo should not be empty'); + } + }); + + test('all configs have required maps populated', () { + for (final config in configs) { + expect(config.tokens, isNotEmpty, + reason: + 'Config for ${config.community.alias} should have at least one token'); + expect(config.accounts, isNotEmpty, + reason: + 'Config for ${config.community.alias} should have at least one account'); + expect(config.chains, isNotEmpty, + reason: + 'Config for ${config.community.alias} should have at least one chain'); + } + }); + + test('all configs have valid scan configuration', () { + for (final config in configs) { + expect(config.scan.url, isNotEmpty, + reason: + 'Scan URL should not be empty for ${config.community.alias}'); + expect(config.scan.name, isNotEmpty, + reason: + 'Scan name should not be empty for ${config.community.alias}'); + } + }); + + test('all configs have valid IPFS configuration', () { + for (final config in configs) { + expect(config.ipfs.url, isNotEmpty, + reason: + 'IPFS URL should not be empty for ${config.community.alias}'); + } + }); + + test('all configs have valid version field', () { + for (final config in configs) { + expect(config.version, greaterThanOrEqualTo(4), + reason: + 'Version should be 4 or higher for ${config.community.alias}'); + expect(config.version, lessThanOrEqualTo(5), + reason: + 'Version should be 5 or lower for ${config.community.alias}'); + } + }); + + test('all configs have valid config location', () { + for (final config in configs) { + expect(config.configLocation, isNotEmpty, + reason: + 'Config location should not be empty for ${config.community.alias}'); + expect(config.configLocation, startsWith('https://'), + reason: + 'Config location should be HTTPS URL for ${config.community.alias}'); + } + }); + + test('primary token exists in tokens map', () { + for (final config in configs) { + final primaryTokenKey = config.community.primaryToken.fullAddress; + expect(config.tokens.containsKey(primaryTokenKey), isTrue, + reason: + 'Primary token should exist in tokens map for ${config.community.alias}'); + } + }); + + test('primary account factory exists in accounts map', () { + for (final config in configs) { + final primaryAccountKey = + config.community.primaryAccountFactory.fullAddress; + expect(config.accounts.containsKey(primaryAccountKey), isTrue, + reason: + 'Primary account factory should exist in accounts map for ${config.community.alias}'); + } + }); + + test('primary card manager exists in cards map if specified', () { + for (final config in configs) { + if (config.community.primaryCardManager != null) { + final primaryCardKey = + config.community.primaryCardManager!.fullAddress; + expect(config.cards?.containsKey(primaryCardKey) ?? false, isTrue, + reason: + 'Primary card manager should exist in cards map for ${config.community.alias}'); + } + } + }); + + test('chain IDs match between community and chains map', () { + for (final config in configs) { + final primaryChainId = config.community.primaryToken.chainId.toString(); + expect(config.chains.containsKey(primaryChainId), isTrue, + reason: + 'Primary chain ID should exist in chains map for ${config.community.alias}'); + } + }); + + test('getPrimaryToken returns valid token', () { + for (final config in configs) { + final token = config.getPrimaryToken(); + expect(token.name, isNotEmpty, + reason: + 'Token name should not be empty for ${config.community.alias}'); + expect(token.symbol, isNotEmpty, + reason: + 'Token symbol should not be empty for ${config.community.alias}'); + expect(token.decimals, greaterThanOrEqualTo(0), + reason: + 'Token decimals should be non-negative for ${config.community.alias}'); + } + }); + + test('getPrimaryAccountAbstractionConfig returns valid config', () { + for (final config in configs) { + final aaConfig = config.getPrimaryAccountAbstractionConfig(); + expect(aaConfig.entrypointAddress, isNotEmpty, + reason: + 'Entrypoint address should not be empty for ${config.community.alias}'); + expect(aaConfig.accountFactoryAddress, isNotEmpty, + reason: + 'Account factory address should not be empty for ${config.community.alias}'); + expect(aaConfig.paymasterType, isNotEmpty, + reason: + 'Paymaster type should not be empty for ${config.community.alias}'); + } + }); + + test('plugins list is properly parsed', () { + for (final config in configs) { + if (config.plugins != null && config.plugins!.isNotEmpty) { + for (final plugin in config.plugins!) { + expect(plugin.name, isNotEmpty, + reason: + 'Plugin name should not be empty for ${config.community.alias}'); + expect(plugin.url, isNotEmpty, + reason: + 'Plugin URL should not be empty for ${config.community.alias}'); + } + } + } + }); + + test('custom domain matches alias pattern when present', () { + for (final config in configs) { + if (config.community.customDomain != null) { + // Custom domain should typically match or be related to the alias + expect(config.community.customDomain, isNotEmpty, + reason: + 'Custom domain should not be empty when specified for ${config.community.alias}'); + } + } + }); + + test('wallet URL generation works correctly', () { + const deepLinkBaseUrl = 'https://app.citizenwallet.xyz'; + for (final config in configs) { + final walletUrl = config.community.walletUrl(deepLinkBaseUrl); + expect(walletUrl, startsWith(deepLinkBaseUrl), + reason: + 'Wallet URL should start with base URL for ${config.community.alias}'); + expect(walletUrl, contains('alias=${config.community.alias}'), + reason: + 'Wallet URL should contain alias parameter for ${config.community.alias}'); + } + }); + }); + + group('getAccountAbstractionConfig', () { + test('returns primary config when no address provided', () { + for (final config in configs) { + final aaConfig = config.getAccountAbstractionConfig(); + expect(aaConfig, isA(), + reason: + 'Should return ERC4337Config for ${config.community.alias}'); + expect(aaConfig.accountFactoryAddress, + config.community.primaryAccountFactory.address, + reason: + 'Should return primary account factory address for ${config.community.alias}'); + } + }); + + test('returns primary config when empty address provided', () { + for (final config in configs) { + final aaConfig = + config.getAccountAbstractionConfig(accountFactoryAddress: ''); + expect(aaConfig, isA(), + reason: + 'Should return ERC4337Config for ${config.community.alias}'); + expect(aaConfig.accountFactoryAddress, + config.community.primaryAccountFactory.address, + reason: + 'Should return primary account factory address when empty string provided for ${config.community.alias}'); + } + }); + + test( + 'returns correct config for each account factory in multi-factory communities', + () { + for (final config in configs) { + final alias = config.community.alias; + if (communitiesWithMultipleAccountFactories.containsKey(alias)) { + final factories = communitiesWithMultipleAccountFactories[alias]!; + for (final factoryAddress in factories) { + final aaConfig = config.getAccountAbstractionConfig( + accountFactoryAddress: factoryAddress); + expect(aaConfig, isA(), + reason: + 'Should return ERC4337Config for $alias with factory $factoryAddress'); + expect(aaConfig.accountFactoryAddress, factoryAddress, + reason: + 'Should return correct account factory address for $alias'); + } + } + } + }); + + test('throws exception for non-existent account factory address', () { + final config = configs.first; + expect( + () => config.getAccountAbstractionConfig( + accountFactoryAddress: '0xNonExistentAddress'), + throwsException, + reason: + 'Should throw exception for non-existent account factory address', + ); + }); + + test('all account factories in map exist in their respective configs', () { + for (final config in configs) { + final alias = config.community.alias; + if (communitiesWithMultipleAccountFactories.containsKey(alias)) { + final factories = communitiesWithMultipleAccountFactories[alias]!; + for (final factoryAddress in factories) { + final chainId = config.community.primaryToken.chainId; + final fullAddress = '$chainId:$factoryAddress'; + expect(config.accounts.containsKey(fullAddress), isTrue, + reason: + 'Account factory $factoryAddress should exist in accounts map for $alias'); + } + } + } + }); + }); +} From eb408959e2a35bb5e2417c4177928381068db3b5 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Tue, 16 Dec 2025 17:48:52 +0530 Subject: [PATCH 067/148] getRpcUrl with optional accountFactoryAddress - with tests --- lib/services/config/config.dart | 9 +- test/services/config/config_v5_test.dart | 241 +++++++++++++++++++++++ 2 files changed, 248 insertions(+), 2 deletions(-) diff --git a/lib/services/config/config.dart b/lib/services/config/config.dart index 97313279..82e36416 100644 --- a/lib/services/config/config.dart +++ b/lib/services/config/config.dart @@ -762,13 +762,18 @@ class Config { return chain.node.url; } - String getRpcUrl(String chainId) { + String getRpcUrl(String chainId, {String? accountFactoryAddress}) { final chain = chains[chainId]; if (chain == null) { throw Exception('Chain not found'); } - return '${chain.node.url}/v1/rpc/${getPrimaryAccountAbstractionConfig().paymasterAddress}'; + // Get the account config (primary or specific based on accountFactoryAddress) + final accountConfig = getAccountAbstractionConfig( + accountFactoryAddress: accountFactoryAddress, + ); + + return '${chain.node.url}/v1/rpc/${accountConfig.paymasterAddress}'; } } diff --git a/test/services/config/config_v5_test.dart b/test/services/config/config_v5_test.dart index c285cf51..633d0194 100644 --- a/test/services/config/config_v5_test.dart +++ b/test/services/config/config_v5_test.dart @@ -90,6 +90,139 @@ const Map> communitiesWithMultipleAccountFactories = { ], }; +const Map> communityRpcUrls = { + 'ctzn': { + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185': + 'https://137.engine.citizenwallet.xyz/v1/rpc/0x3A3E25871c5C6C84D5f397829FF316a37F7FD596', + }, + 'wallet.pay.brussels': { + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185': + 'https://engine.pay.brussels/v1/rpc/0xE69C843898E21C0E95eA7DD310cD850AAc0aB897', + '0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE': + 'https://engine.pay.brussels/v1/rpc/0xcA1B9EC1117340818C1c1fdd1B48Ea79E57C140F', + }, + 'gratitude': { + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185': + 'https://42220.engine.citizenwallet.xyz/v1/rpc/0xF05ba2641b31AF70c2678e3324eD8b9C53093FbE', + '0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD': + 'https://42220.engine.citizenwallet.xyz/v1/rpc/0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8' + }, + 'bread': { + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185': + 'https://100.engine.citizenwallet.xyz/v1/rpc/0x5987e57e85014B5A56C880313580346c20a5d1c1', + '0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9': + 'https://100.engine.citizenwallet.xyz/v1/rpc/0xbE2Cb3358aa14621134e923B68b8429315368E32' + }, + 'wallet.commonshub.brussels': { + '0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87': + 'https://42220.engine.citizenwallet.xyz/v1/rpc/0x4E127A1DAa66568B4a91E8c5615120a6Ea5442E3', + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185': + 'https://42220.engine.citizenwallet.xyz/v1/rpc/0x4860C0f127500F0cbF4a5Bd797cBb5aA50Eb0FbA' + }, + 'wallet.regensunite.earth': { + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185': + 'https://137.engine.citizenwallet.xyz/v1/rpc/0x250711045d58b6310f0635C7D110BFe663cE1da5', + '0x9406Cc6185a346906296840746125a0E44976454': + 'https://137.engine.citizenwallet.xyz/v1/rpc/0x250711045d58b6310f0635C7D110BFe663cE1da5' + }, + 'gt.celo': { + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185': + 'https://42220.engine.citizenwallet.xyz/v1/rpc/0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8', + '0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD': + 'https://42220.engine.citizenwallet.xyz/v1/rpc/0x8dd43eE72f6A816b8eB0411B712D96cDd95246d8' + }, + 'ceur.celo': { + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185': + 'https://42220.engine.citizenwallet.xyz/v1/rpc/0xedbEA8c0F25B34510149EaD4f72867B0d3D2264F', + '0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098': + 'https://42220.engine.citizenwallet.xyz/v1/rpc/0xedbEA8c0F25B34510149EaD4f72867B0d3D2264F' + }, + 'eure.polygon': { + '0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616': + 'https://137.engine.citizenwallet.xyz/v1/rpc/0xB2cb6b75C2357Ca94dBdF58897E468E45fAC83Ec', + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185': + 'https://137.engine.citizenwallet.xyz/v1/rpc/0xB2cb6b75C2357Ca94dBdF58897E468E45fAC83Ec' + }, + 'app': { + '0x270758454C012A1f51428b68aE473D728CCdFe88': + 'https://137.engine.citizenwallet.xyz/v1/rpc/0xB5D1C0167E6325466E2918e9fda8cc41384C0291', + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185': + 'https://137.engine.citizenwallet.xyz/v1/rpc/0xB5D1C0167E6325466E2918e9fda8cc41384C0291' + }, + 'usdc.base': { + '0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99': + 'https://8453.engine.citizenwallet.xyz/v1/rpc/0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7', + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185': + 'https://8453.engine.citizenwallet.xyz/v1/rpc/0xA63DFccB8a39a3DFE4479b33190b12019Ee594E7' + }, + 'wallet.oak.community': { + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185': + 'https://8453.engine.citizenwallet.xyz/v1/rpc/0x123', + '0x9406Cc6185a346906296840746125a0E44976454': + 'https://8453.engine.citizenwallet.xyz/v1/rpc/0x123' + }, + 'sbc.polygon': { + '0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5': + 'https://137.engine.citizenwallet.xyz/v1/rpc/0x123', + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185': + 'https://137.engine.citizenwallet.xyz/v1/rpc/0x123' + }, + 'zinne': { + '0x11af2639817692D2b805BcE0e1e405E530B20006': + 'https://137.engine.citizenwallet.xyz/v1/rpc/0xBb796D122Ec1aBDeD081D50B06a072f981c7E62b', + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185': + 'https://137.engine.citizenwallet.xyz/v1/rpc/0xBb796D122Ec1aBDeD081D50B06a072f981c7E62b' + }, + 'timebank.regensunite.earth': { + '0x39b77d77f7677997871b304094a05295eb71e240': + 'https://42220.engine.citizenwallet.xyz/v1/rpc/0xe45858bf63176595c2920822581917c7C705a12f', + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185': + 'https://42220.engine.citizenwallet.xyz/v1/rpc/0xe45858bf63176595c2920822581917c7C705a12f' + }, + 'moos': { + '0x671f0662de72268d0f3966Fb62dFc6ee6389e244': + 'https://42220.engine.citizenwallet.xyz/v1/rpc/0x55E519bfD63c7152D9F7B88Acd712A37F0BEC482', + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185': + 'https://42220.engine.citizenwallet.xyz/v1/rpc/0x55E519bfD63c7152D9F7B88Acd712A37F0BEC482' + }, + 'selcoupdepouce': { + '0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284': + 'https://42220.engine.citizenwallet.xyz/v1/rpc/0x635032605337aB36A46D767905108e67EE687a72', + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185': + 'https://42220.engine.citizenwallet.xyz/v1/rpc/0x635032605337aB36A46D767905108e67EE687a72' + }, + 'cit.celo': { + '0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970': + 'https://42220.engine.citizenwallet.xyz/v1/rpc/0x452F7ff3e55fe29f481841985dE7f4939FD645fa', + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185': + 'https://42220.engine.citizenwallet.xyz/v1/rpc/0x452F7ff3e55fe29f481841985dE7f4939FD645fa' + }, + 'wallet.wolugo.be': { + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185': + 'https://42220.engine.citizenwallet.xyz/v1/rpc/0xF2EFEC3cBFaDE0bB6108620cbF7Cc608d27DCF3c', + '0x8474153A00C959f2cB64852949954DBC68415Bb3': + 'https://42220.engine.citizenwallet.xyz/v1/rpc/0xF2EFEC3cBFaDE0bB6108620cbF7Cc608d27DCF3c' + }, + 'wtc.celo': { + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185': + 'https://42220.engine.citizenwallet.xyz/v1/rpc/0x3fefC19674f3F6E43B1dFf1861E07c303B9eAAc9', + '0xE79E19594A749330036280c685E2719d58d99052': + 'https://42220.engine.citizenwallet.xyz/v1/rpc/0x3fefC19674f3F6E43B1dFf1861E07c303B9eAAc9' + }, + 'testnet-ethldn': { + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185': + 'https://84532.engine.citizenwallet.xyz/v1/rpc/0x389182aCCeE26D953d5188BF4b92c49339DcC9FC', + '0xc1654087C580f868F08E34cd1c01eDB1d3673b82': + 'https://84532.engine.citizenwallet.xyz/v1/rpc/0x389182aCCeE26D953d5188BF4b92c49339DcC9FC' + }, + 'celo-c.citizenwallet.xyz': { + '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185': + 'https://42220.engine.citizenwallet.xyz/v1/rpc/0x7f4011845Ea914b6cefc60629e1e00600c972c75', + '0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA': + 'https://42220.engine.citizenwallet.xyz/v1/rpc/0x7f4011845Ea914b6cefc60629e1e00600c972c75' + }, +}; + void main() { late List configs; @@ -365,4 +498,112 @@ void main() { } }); }); + + group('getRpcUrl', () { + test('returns correct URL for primary account factory', () { + for (final config in configs) { + final alias = config.community.alias; + + // Skip if no expected RPC URL defined for this community + if (!communityRpcUrls.containsKey(alias)) { + continue; + } + + final chainId = config.community.primaryToken.chainId.toString(); + final primaryAccountFactory = + config.community.primaryAccountFactory.address; + final expectedUrls = communityRpcUrls[alias]!; + + // Get the expected URL for the primary account factory + final expectedUrl = expectedUrls[primaryAccountFactory]; + + if (expectedUrl != null) { + final actualUrl = config.getRpcUrl(chainId); + expect(actualUrl, equals(expectedUrl), + reason: 'RPC URL mismatch for $alias (primary account factory)'); + } + } + }); + + test('returns correct URL for specific account factory', () { + for (final config in configs) { + final alias = config.community.alias; + + // Skip if no expected RPC URLs defined for this community + if (!communityRpcUrls.containsKey(alias)) { + continue; + } + + final chainId = config.community.primaryToken.chainId.toString(); + final expectedUrls = communityRpcUrls[alias]!; + + // Test each account factory address + for (final accountFactory in expectedUrls.keys) { + final expectedUrl = expectedUrls[accountFactory]!; + final actualUrl = config.getRpcUrl( + chainId, + accountFactoryAddress: accountFactory, + ); + + expect(actualUrl, equals(expectedUrl), + reason: + 'RPC URL mismatch for $alias with account factory $accountFactory'); + } + } + }); + + test('works for communities with multiple account factories', () { + for (final alias in communitiesWithMultipleAccountFactories.keys) { + final config = configs.firstWhere((c) => c.community.alias == alias); + final accountFactories = + communitiesWithMultipleAccountFactories[alias]!; + final chainId = config.community.primaryToken.chainId.toString(); + + expect(accountFactories.length, greaterThan(1), + reason: '$alias should have multiple account factories'); + + // Verify each account factory returns a different RPC URL + final urls = {}; + for (final accountFactory in accountFactories) { + final url = config.getRpcUrl( + chainId, + accountFactoryAddress: accountFactory, + ); + urls.add(url); + } + + // All URLs should be valid and non-empty + for (final url in urls) { + expect(url, isNotEmpty); + expect(url, startsWith('https://')); + expect(url, contains('/v1/rpc/')); + } + } + }); + + test('throws exception for invalid chain ID', () { + final config = configs.first; + + expect( + () => config.getRpcUrl('99999'), + throwsException, + reason: 'Should throw exception for non-existent chain ID', + ); + }); + + test('throws exception for non-existent account factory', () { + final config = configs.first; + final chainId = config.community.primaryToken.chainId.toString(); + + expect( + () => config.getRpcUrl( + chainId, + accountFactoryAddress: '0xNonExistentAddress', + ), + throwsException, + reason: + 'Should throw exception for non-existent account factory address', + ); + }); + }); } From 65e1a1da7a0b7ea8873a221a7890d6c828740356 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Wed, 17 Dec 2025 11:23:01 +0530 Subject: [PATCH 068/148] migration to t_accounts - new column 'accountFactoryAddress' - class DBAccount with attribute 'accountFactoryAddress' - _populateAccountFactoryAddressMigration function to populate acc ount factory address of existing account --- lib/services/db/backup/accounts.dart | 30 +++++++++++++++++++++++++++- lib/services/db/backup/db.dart | 2 +- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/lib/services/db/backup/accounts.dart b/lib/services/db/backup/accounts.dart index 13404623..9dd03fe1 100644 --- a/lib/services/db/backup/accounts.dart +++ b/lib/services/db/backup/accounts.dart @@ -17,6 +17,7 @@ class DBAccount { final String? username; EthPrivateKey? privateKey; final ProfileV1? profile; + final String accountFactoryAddress; // Add this field DBAccount({ required this.alias, @@ -25,6 +26,7 @@ class DBAccount { this.username, this.privateKey, this.profile, + required this.accountFactoryAddress, }) : id = getAccountID(address, alias), userHandle = username != null ? UserHandle(username, alias) : null; @@ -39,6 +41,7 @@ class DBAccount { 'privateKey': privateKey != null ? bytesToHex(privateKey!.privateKey) : null, if (profile != null) 'profile': jsonEncode(profile!.toJson()), + 'accountFactoryAddress': accountFactoryAddress, // Add this line }; } @@ -55,6 +58,7 @@ class DBAccount { profile: map['profile'] != null ? ProfileV1.fromJson(jsonDecode(map['profile'])) : null, + accountFactoryAddress: map['accountFactoryAddress'], ); } } @@ -96,7 +100,8 @@ class AccountsTable extends DBTable { name TEXT NOT NULL, username TEXT, privateKey TEXT, - profile TEXT + profile TEXT, + accountFactoryAddress TEXT NOT NULL ) '''; @@ -113,6 +118,10 @@ class AccountsTable extends DBTable { ], 3: [ 'ALTER TABLE $name ADD COLUMN username TEXT DEFAULT NULL', + ], + 4: [ + 'ALTER TABLE $name ADD COLUMN accountFactoryAddress TEXT DEFAULT ""', + 'PopulateAccountFactoryAddressMigration', ] }; @@ -122,6 +131,12 @@ class AccountsTable extends DBTable { if (queries != null) { for (final query in queries) { try { + switch (query) { + case 'PopulateAccountFactoryAddressMigration': + await _populateAccountFactoryAddressMigration(db, name); + continue; + } + await db.execute(query); } catch (e, s) { debugPrint('Migration error: $e'); @@ -132,6 +147,19 @@ class AccountsTable extends DBTable { } } + + Future _populateAccountFactoryAddressMigration(Database db, String name) async { + final allAccounts = await all(); + for (final account in allAccounts) { + await db.update( + name, + {'accountFactoryAddress': account.accountFactoryAddress}, + ); + } + } + + + // get account by id Future get(EthereumAddress address, String alias) async { final List> maps = await db.query( diff --git a/lib/services/db/backup/db.dart b/lib/services/db/backup/db.dart index 71ae81af..ea620ab1 100644 --- a/lib/services/db/backup/db.dart +++ b/lib/services/db/backup/db.dart @@ -40,7 +40,7 @@ class AccountBackupDBService extends DBService { return; }, - version: 3, + version: 4, ); final db = await databaseFactory.openDatabase( From ef871a15ec272f163aac50f70b524c2236304aa2 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Wed, 17 Dec 2025 11:23:19 +0530 Subject: [PATCH 069/148] map of accoutn factory addresses of some aliases --- lib/services/config/utils.dart | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/services/config/utils.dart b/lib/services/config/utils.dart index 7c8a3829..f930495f 100644 --- a/lib/services/config/utils.dart +++ b/lib/services/config/utils.dart @@ -15,3 +15,13 @@ String fixLegacyAliases(String alias) { return alias == 'localhost' || alias == '' ? defaultAlias : alias; } + +/// migrate the accounts from the accounts migration db (when migrating from old app and you want to put a value in the account secret) +/// hard coded values for these communities +/// the others just take the primary account factory +const Map migrationAccountFactoryAddresses = { + 'gratitude': '0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD', + 'bread': '0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9', + 'wallet.commonshub.brussels': '0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87', + 'wallet.sfluv.org': '0x5e987a6c4bb4239d498E78c34e986acf29c81E8e', +}; From d739601cb2800ea304af0fcf1ef532a710574c82 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Wed, 17 Dec 2025 13:34:17 +0530 Subject: [PATCH 070/148] lookup table for v4 config primary account factory addresses --- lib/services/config/utils.dart | 36 +++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/lib/services/config/utils.dart b/lib/services/config/utils.dart index f930495f..19177017 100644 --- a/lib/services/config/utils.dart +++ b/lib/services/config/utils.dart @@ -16,10 +16,44 @@ String fixLegacyAliases(String alias) { return alias == 'localhost' || alias == '' ? defaultAlias : alias; } +const Map configV4PrimaryAccountFactoryMap = { + 'ctzn': '0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2', + 'wallet.pay.brussels': '0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE', + 'gratitude': '0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD', + 'wallet.berachain.sfluv.org': '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185', + 'wallet.sfluv.org': '0x5e987a6c4bb4239d498E78c34e986acf29c81E8e', + 'txirrin': '0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2', + 'boliviapay': '0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2', + 'bread': '0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9', + 'laborhour': '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185', + 'rooted': '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185', + 'wallet.commonshub.brussels': '0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87', + 'seldesalm': '0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2', + 'my.techi.be': '0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2', + 'wallet.regensunite.earth': '0x9406Cc6185a346906296840746125a0E44976454', + 'gt.celo': '0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD', + 'ceur.celo': '0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098', + 'eure.polygon': '0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616', + 'app': '0x270758454C012A1f51428b68aE473D728CCdFe88', + 'usdc.base': '0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99', + 'wallet.oak.community': '0x9406Cc6185a346906296840746125a0E44976454', + 'sbc.polygon': '0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5', + 'zinne': '0x11af2639817692D2b805BcE0e1e405E530B20006', + 'timebank.regensunite.earth': '0x39b77d77f7677997871b304094a05295eb71e240', + 'moos': '0x671f0662de72268d0f3966Fb62dFc6ee6389e244', + 'selcoupdepouce': '0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284', + 'cit.celo': '0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970', + 'wallet.wolugo.be': '0x8474153A00C959f2cB64852949954DBC68415Bb3', + 'wtc.celo': '0xE79E19594A749330036280c685E2719d58d99052', + 'testnet-ethldn': '0xc1654087C580f868F08E34cd1c01eDB1d3673b82', + 'celo-c.citizenwallet.xyz': '0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA', + 'wallet.kingfishersmedia.io': '0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2', +}; + /// migrate the accounts from the accounts migration db (when migrating from old app and you want to put a value in the account secret) /// hard coded values for these communities /// the others just take the primary account factory -const Map migrationAccountFactoryAddresses = { +const Map configV5AccountFactoryMap = { 'gratitude': '0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD', 'bread': '0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9', 'wallet.commonshub.brussels': '0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87', From b7bf3381284055a0d05a97cd37c66e91bcccb6b7 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Wed, 17 Dec 2025 15:41:21 +0530 Subject: [PATCH 071/148] feat(config): add account factory migration utility and update V4 map - Implement getAccountFactoryAddressByAlias with priority override logic. - Map old cw-safe factory (0x940C...) to new factory (0x7cC5...) for specific communities. - Update configV4PrimaryAccountFactoryMap with missing community aliases. - Clean up unused configV5AccountFactoryMap. --- lib/services/config/utils.dart | 74 ++++++++++---- test/services/config/utils_test.dart | 146 +++++++++++++++++++++++++++ 2 files changed, 203 insertions(+), 17 deletions(-) create mode 100644 test/services/config/utils_test.dart diff --git a/lib/services/config/utils.dart b/lib/services/config/utils.dart index 19177017..667df7d5 100644 --- a/lib/services/config/utils.dart +++ b/lib/services/config/utils.dart @@ -16,20 +16,29 @@ String fixLegacyAliases(String alias) { return alias == 'localhost' || alias == '' ? defaultAlias : alias; } +/// migrate the accounts from the accounts migration db (when migrating from old app and you want to put a value in the account secret) +/// hard coded values for these communities (gratitude, bread, wallet.commonshub.brussels, wallet.sfluv.org) +/// if account factory address is '0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2', return '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185' +/// the others just take the primary account factory const Map configV4PrimaryAccountFactoryMap = { + /****cw-safe (old)*****/ 'ctzn': '0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2', - 'wallet.pay.brussels': '0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE', - 'gratitude': '0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD', - 'wallet.berachain.sfluv.org': '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185', - 'wallet.sfluv.org': '0x5e987a6c4bb4239d498E78c34e986acf29c81E8e', 'txirrin': '0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2', 'boliviapay': '0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2', + 'seldesalm': '0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2', + 'my.techi.be': '0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2', + 'wallet.kingfishersmedia.io': '0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2', + /*********/ + 'gratitude': '0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD', 'bread': '0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9', + 'wallet.commonshub.brussels': '0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87', + 'wallet.sfluv.org': '0x5e987a6c4bb4239d498E78c34e986acf29c81E8e', + /****cw-safe (new)*****/ + 'wallet.berachain.sfluv.org': '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185', 'laborhour': '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185', 'rooted': '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185', - 'wallet.commonshub.brussels': '0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87', - 'seldesalm': '0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2', - 'my.techi.be': '0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2', + /*********/ + 'wallet.pay.brussels': '0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE', 'wallet.regensunite.earth': '0x9406Cc6185a346906296840746125a0E44976454', 'gt.celo': '0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD', 'ceur.celo': '0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098', @@ -47,15 +56,46 @@ const Map configV4PrimaryAccountFactoryMap = { 'wtc.celo': '0xE79E19594A749330036280c685E2719d58d99052', 'testnet-ethldn': '0xc1654087C580f868F08E34cd1c01eDB1d3673b82', 'celo-c.citizenwallet.xyz': '0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA', - 'wallet.kingfishersmedia.io': '0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2', }; -/// migrate the accounts from the accounts migration db (when migrating from old app and you want to put a value in the account secret) -/// hard coded values for these communities -/// the others just take the primary account factory -const Map configV5AccountFactoryMap = { - 'gratitude': '0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD', - 'bread': '0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9', - 'wallet.commonshub.brussels': '0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87', - 'wallet.sfluv.org': '0x5e987a6c4bb4239d498E78c34e986acf29c81E8e', -}; +const String oldSafeFactory = '0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2'; +const String newSafeFactory = '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185'; + +/// Returns the correct account factory address for a given community alias during database migration. +/// +/// Priority logic: +/// 1. Specific hardcoded overrides for: gratitude, bread, wallet.commonshub.brussels, wallet.sfluv.org +/// 2. Safe factory redirection: if the mapped address is '0x940Cbb155161dc0C4aade27a4826a16Ed8ca0cb2', +/// return '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185' instead +/// 3. General fallback: return the address from the map +/// 4. Safety: if alias not found, return '0x7cC54D54bBFc65d1f0af7ACee5e4042654AF8185' +String getAccountFactoryAddressByAlias(String alias) { + // List of specific aliases that should keep their original addresses + const Set hardcodedOverrides = { + 'gratitude', + 'bread', + 'wallet.commonshub.brussels', + 'wallet.sfluv.org', + }; + + // 1. Check if this is a hardcoded override + if (hardcodedOverrides.contains(alias)) { + return configV4PrimaryAccountFactoryMap[alias]!; + } + + // Get the address from the map + final String? mappedAddress = configV4PrimaryAccountFactoryMap[alias]; + + // 4. Safety: if alias not found, return new safe factory + if (mappedAddress == null) { + return newSafeFactory; + } + + // 2. Safe factory redirection: if old safe factory, return new safe factory + if (mappedAddress == oldSafeFactory) { + return newSafeFactory; + } + + // 3. General fallback: return the mapped address + return mappedAddress; +} diff --git a/test/services/config/utils_test.dart b/test/services/config/utils_test.dart new file mode 100644 index 00000000..5fd3701e --- /dev/null +++ b/test/services/config/utils_test.dart @@ -0,0 +1,146 @@ +import 'package:citizenwallet/services/config/utils.dart'; +import 'package:test/test.dart'; + +/// Expected outcomes map for testing getAccountFactoryAddressByAlias +/// Covers all four logic branches: +/// 1. Hardcoded overrides (gratitude, bread, wallet.commonshub.brussels, wallet.sfluv.org) +/// 2. Safe factory redirection (old safe factory -> new safe factory) +/// 3. General fallback (return mapped address as-is) +/// 4. Unknown alias (return new safe factory as safety default) +const Map expectedOutcomes = { + // 1. Hardcoded Overrides - these should return their ORIGINAL addresses + 'gratitude': '0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD', + 'bread': '0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9', + 'wallet.commonshub.brussels': '0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87', + 'wallet.sfluv.org': '0x5e987a6c4bb4239d498E78c34e986acf29c81E8e', + + // 2. Safe Factory Redirection - old safe factory should redirect to new safe factory + 'ctzn': newSafeFactory, + 'txirrin': newSafeFactory, + 'boliviapay': newSafeFactory, + 'seldesalm': newSafeFactory, + 'my.techi.be': newSafeFactory, + 'wallet.kingfishersmedia.io': newSafeFactory, + + // 3. General Fallback - return mapped addresses as-is + 'wallet.berachain.sfluv.org': newSafeFactory, + 'laborhour': newSafeFactory, + 'rooted': newSafeFactory, + 'wallet.pay.brussels': '0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE', + 'wallet.regensunite.earth': '0x9406Cc6185a346906296840746125a0E44976454', + 'gt.celo': '0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD', + 'ceur.celo': '0xdA529eBEd3D459dac9d9D3D45b8Cae2D5796c098', + 'eure.polygon': '0x5bA08d9fC7b90f79B2b856bdB09FC9EB32e83616', + 'app': '0x270758454C012A1f51428b68aE473D728CCdFe88', + 'usdc.base': '0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99', + 'wallet.oak.community': '0x9406Cc6185a346906296840746125a0E44976454', + 'sbc.polygon': '0x3Be13D9325C8C9174C3819d3d868D5D3aB8Fc8a5', + 'zinne': '0x11af2639817692D2b805BcE0e1e405E530B20006', + 'timebank.regensunite.earth': '0x39b77d77f7677997871b304094a05295eb71e240', + 'moos': '0x671f0662de72268d0f3966Fb62dFc6ee6389e244', + 'selcoupdepouce': '0x4Cc883b7E8E0BCB2e293703EF06426F9b4A5A284', + 'cit.celo': '0x0a9f4B7e7Ec393fF25dc9267289Be259Ec3FB970', + 'wallet.wolugo.be': '0x8474153A00C959f2cB64852949954DBC68415Bb3', + 'wtc.celo': '0xE79E19594A749330036280c685E2719d58d99052', + 'testnet-ethldn': '0xc1654087C580f868F08E34cd1c01eDB1d3673b82', + 'celo-c.citizenwallet.xyz': '0xcd8b1B9E760148c5026Bc5B0D56a5374e301FDcA', + + // 4. Unknown Alias - should return new safe factory as safety default + 'non-existent-alias': newSafeFactory, + 'unknown-community': newSafeFactory, + 'test-alias-not-in-map': newSafeFactory, +}; + +void main() { + group('getAccountFactoryAddressByAlias', () { + test('returns correct addresses for all test cases', () { + expectedOutcomes.forEach((alias, expectedAddress) { + final result = getAccountFactoryAddressByAlias(alias); + expect( + result, + expectedAddress, + reason: 'Failed for alias: $alias', + ); + }); + }); + + group('specific logic branch tests', () { + test('hardcoded overrides return original addresses', () { + // These four should return their original addresses, not redirected + expect( + getAccountFactoryAddressByAlias('gratitude'), + '0xAE6E18a9Cd26de5C8f89B886283Fc3f0bE5f04DD', + reason: 'gratitude should return its original address', + ); + expect( + getAccountFactoryAddressByAlias('bread'), + '0xAE76B1C6818c1DD81E20ccefD3e72B773068ABc9', + reason: 'bread should return its original address', + ); + expect( + getAccountFactoryAddressByAlias('wallet.commonshub.brussels'), + '0x307A9456C4057F7C7438a174EFf3f25fc0eA6e87', + reason: + 'wallet.commonshub.brussels should return its original address', + ); + expect( + getAccountFactoryAddressByAlias('wallet.sfluv.org'), + '0x5e987a6c4bb4239d498E78c34e986acf29c81E8e', + reason: 'wallet.sfluv.org should return its original address', + ); + }); + + test('old safe factory addresses are redirected to new safe factory', () { + // All these aliases map to old safe factory and should be redirected + final oldSafeFactoryAliases = [ + 'ctzn', + 'txirrin', + 'boliviapay', + 'seldesalm', + 'my.techi.be', + 'wallet.kingfishersmedia.io', + ]; + + for (final alias in oldSafeFactoryAliases) { + expect( + getAccountFactoryAddressByAlias(alias), + newSafeFactory, + reason: '$alias should be redirected to new safe factory', + ); + } + }); + + test('general fallback returns mapped addresses as-is', () { + // Sample of aliases that should return their mapped addresses unchanged + expect( + getAccountFactoryAddressByAlias('wallet.pay.brussels'), + '0xBABCf159c4e3186cf48e4a48bC0AeC17CF9d90FE', + ); + expect( + getAccountFactoryAddressByAlias('app'), + '0x270758454C012A1f51428b68aE473D728CCdFe88', + ); + expect( + getAccountFactoryAddressByAlias('usdc.base'), + '0x05e2Fb34b4548990F96B3ba422eA3EF49D5dAa99', + ); + }); + + test('unknown aliases return new safe factory as default', () { + // Test various unknown aliases + expect( + getAccountFactoryAddressByAlias('non-existent-alias'), + newSafeFactory, + ); + expect( + getAccountFactoryAddressByAlias('unknown-community'), + newSafeFactory, + ); + expect( + getAccountFactoryAddressByAlias('random-test-123'), + newSafeFactory, + ); + }); + }); + }); +} From 7f40e82624838438d408ccbfc129fee81765eee2 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Wed, 17 Dec 2025 15:55:18 +0530 Subject: [PATCH 072/148] temp remove 'accountFactoryAddress' from class 'DBAccount' --- lib/services/db/backup/accounts.dart | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib/services/db/backup/accounts.dart b/lib/services/db/backup/accounts.dart index 9dd03fe1..de761484 100644 --- a/lib/services/db/backup/accounts.dart +++ b/lib/services/db/backup/accounts.dart @@ -17,7 +17,6 @@ class DBAccount { final String? username; EthPrivateKey? privateKey; final ProfileV1? profile; - final String accountFactoryAddress; // Add this field DBAccount({ required this.alias, @@ -26,7 +25,6 @@ class DBAccount { this.username, this.privateKey, this.profile, - required this.accountFactoryAddress, }) : id = getAccountID(address, alias), userHandle = username != null ? UserHandle(username, alias) : null; @@ -41,7 +39,6 @@ class DBAccount { 'privateKey': privateKey != null ? bytesToHex(privateKey!.privateKey) : null, if (profile != null) 'profile': jsonEncode(profile!.toJson()), - 'accountFactoryAddress': accountFactoryAddress, // Add this line }; } @@ -58,7 +55,6 @@ class DBAccount { profile: map['profile'] != null ? ProfileV1.fromJson(jsonDecode(map['profile'])) : null, - accountFactoryAddress: map['accountFactoryAddress'], ); } } From 27c933cdbf539c24ab1d4c06a3f7ee77f324a657 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Wed, 17 Dec 2025 16:41:15 +0530 Subject: [PATCH 073/148] feat(db): implement v4 account migration for account factory addresses - Add accountFactoryAddress column to t_accounts table. - Implement _populateAccountFactoryAddressMigration to backfill factory addresses using community aliases. - Introduce getAccountIDNew to support a more granular account indexing format. - Implement _insertRowsInNewIdFormatMigration to migrate existing rows to the new ID format ($address@$accountFactoryAddress@$alias). --- lib/services/db/backup/accounts.dart | 60 ++++++++++++++++++++++++++-- 1 file changed, 56 insertions(+), 4 deletions(-) diff --git a/lib/services/db/backup/accounts.dart b/lib/services/db/backup/accounts.dart index de761484..e5e5de6b 100644 --- a/lib/services/db/backup/accounts.dart +++ b/lib/services/db/backup/accounts.dart @@ -1,5 +1,6 @@ import 'dart:convert'; +import 'package:citizenwallet/services/config/utils.dart'; import 'package:citizenwallet/services/db/db.dart'; import 'package:citizenwallet/services/wallet/contracts/profile.dart'; import 'package:citizenwallet/services/wallet/wallet.dart'; @@ -63,6 +64,13 @@ String getAccountID(EthereumAddress address, String alias) { return '${address.hexEip55}@$alias'; } +String getAccountIDNew( + {required EthereumAddress address, + required String alias, + required String accountFactoryAddress}) { + return '${address.hexEip55}@$accountFactoryAddress@$alias'; +} + class UserHandle { final String username; final String communityAlias; @@ -118,6 +126,7 @@ class AccountsTable extends DBTable { 4: [ 'ALTER TABLE $name ADD COLUMN accountFactoryAddress TEXT DEFAULT ""', 'PopulateAccountFactoryAddressMigration', + 'InsertRowsInNewIdFormatMigration', // Insert the rows in the new format $address@$accountFactoryAddress@$alias ] }; @@ -131,6 +140,10 @@ class AccountsTable extends DBTable { case 'PopulateAccountFactoryAddressMigration': await _populateAccountFactoryAddressMigration(db, name); continue; + + case 'InsertRowsInNewIdFormatMigration': + await _insertRowsInNewIdFormatMigration(db, name); + continue; } await db.execute(query); @@ -143,18 +156,57 @@ class AccountsTable extends DBTable { } } + Future _populateAccountFactoryAddressMigration( + Database db, String name) async { + // Work directly with raw DB data, not DBAccount objects + List> accounts = await db.query(name); + + for (final Map account in accounts) { + final alias = account['alias'] as String; + final oldId = account['id'] as String; + + final accountFactoryAddress = getAccountFactoryAddressByAlias(alias); - Future _populateAccountFactoryAddressMigration(Database db, String name) async { - final allAccounts = await all(); - for (final account in allAccounts) { + // Update the accountFactoryAddress column (ID still in old format $address@$alias) await db.update( name, - {'accountFactoryAddress': account.accountFactoryAddress}, + {'accountFactoryAddress': accountFactoryAddress}, + where: 'id = ?', + whereArgs: [oldId], ); } } + Future _insertRowsInNewIdFormatMigration( + Database db, String name) async { + List> accounts = await db.query(name); // + for (final Map account in accounts) { + final address = account['address'] as String; + final accountFactoryAddress = account['accountFactoryAddress'] as String; + final alias = account['alias'] as String; + + final newId = getAccountIDNew( + address: EthereumAddress.fromHex(address), + alias: alias, + accountFactoryAddress: accountFactoryAddress); + + await db.insert( + name, + { + 'id': newId, + 'alias': account['alias'], + 'address': account['address'], + 'accountFactoryAddress': account['accountFactoryAddress'], + 'name': account['name'], + 'username': account['username'], + 'privateKey': account['privateKey'], + 'profile': account['profile'], + }, + conflictAlgorithm: ConflictAlgorithm.replace, + ); + } + } // get account by id Future get(EthereumAddress address, String alias) async { From 33e8601d48ca280f910a49e36356769c9641ce91 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Wed, 17 Dec 2025 17:26:25 +0530 Subject: [PATCH 074/148] todo --- lib/services/db/backup/accounts.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/services/db/backup/accounts.dart b/lib/services/db/backup/accounts.dart index e5e5de6b..0a8bb868 100644 --- a/lib/services/db/backup/accounts.dart +++ b/lib/services/db/backup/accounts.dart @@ -127,6 +127,7 @@ class AccountsTable extends DBTable { 'ALTER TABLE $name ADD COLUMN accountFactoryAddress TEXT DEFAULT ""', 'PopulateAccountFactoryAddressMigration', 'InsertRowsInNewIdFormatMigration', // Insert the rows in the new format $address@$accountFactoryAddress@$alias + // TODO: delete the rows in the old format $address@$alias ] }; From 71680fd696466f2d68e5f7c7b905901dcc3958d8 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Wed, 17 Dec 2025 17:28:38 +0530 Subject: [PATCH 075/148] TODO --- lib/services/config/config.dart | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/services/config/config.dart b/lib/services/config/config.dart index 82e36416..4316b913 100644 --- a/lib/services/config/config.dart +++ b/lib/services/config/config.dart @@ -726,6 +726,8 @@ class Config { return primaryAccountAbstraction; } + // TODO: force required accountFactoryAddress + // TODO: remove use of getPrimaryAccountAbstractionConfig ERC4337Config getAccountAbstractionConfig({String? accountFactoryAddress}) { // If no accountFactoryAddress is provided, return the primary config if (accountFactoryAddress == null || accountFactoryAddress.isEmpty) { @@ -762,6 +764,7 @@ class Config { return chain.node.url; } + // TODO: force required accountFactoryAddress String getRpcUrl(String chainId, {String? accountFactoryAddress}) { final chain = chains[chainId]; From 59250fb32d11aa6285cf15f017cd2bc64ba8251f Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Wed, 17 Dec 2025 17:36:31 +0530 Subject: [PATCH 076/148] todo --- lib/services/config/config.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/services/config/config.dart b/lib/services/config/config.dart index 4316b913..5c263d7e 100644 --- a/lib/services/config/config.dart +++ b/lib/services/config/config.dart @@ -715,6 +715,7 @@ class Config { return primaryToken; } +// TODO: remove use of getPrimaryAccountAbstractionConfig ERC4337Config getPrimaryAccountAbstractionConfig() { final primaryAccountAbstraction = accounts[community.primaryAccountFactory.fullAddress]; From 00fb3ae92df9cf4d95465f8c4f1400e803e386a4 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Thu, 18 Dec 2025 11:24:20 +0530 Subject: [PATCH 077/148] todo --- lib/services/wallet/contracts/profile.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/services/wallet/contracts/profile.dart b/lib/services/wallet/contracts/profile.dart index e2296980..d5c1ee71 100644 --- a/lib/services/wallet/contracts/profile.dart +++ b/lib/services/wallet/contracts/profile.dart @@ -167,10 +167,12 @@ class ProfileContract { rcontract = DeployedContract(cabi, EthereumAddress.fromHex(addr)); } +// TODO: await return Future getURL(String addr) async { return contract.get(EthereumAddress.fromHex(addr)); } +// TODO: await return Future getURLFromUsername(String username) async { return contract.getFromUsername( convertStringToUint8List(username, forcePadLength: 32)); From 15b9912709de2ac1370685c5383fd85a293751a1 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Thu, 18 Dec 2025 13:55:43 +0530 Subject: [PATCH 078/148] init migration apple and android cloud stored keys - use DBAccountV4 in apple and android for new id format --- lib/services/accounts/backup.dart | 28 +++++++++ lib/services/accounts/native/apple.dart | 77 +++++++++++++++++++++++++ 2 files changed, 105 insertions(+) diff --git a/lib/services/accounts/backup.dart b/lib/services/accounts/backup.dart index f658f697..32c5fee5 100644 --- a/lib/services/accounts/backup.dart +++ b/lib/services/accounts/backup.dart @@ -81,3 +81,31 @@ class BackupWallet { String get key => '$address@$alias'; String get value => privateKey; } + +class BackupWalletV5 extends BackupWallet { + final String accountFactoryAddress; + + BackupWalletV5({ + required super.address, + required super.alias, + required super.privateKey, + required String accountFactoryAddress, + }) : accountFactoryAddress = + EthereumAddress.fromHex(accountFactoryAddress).hexEip55; + + // Fixes the 'json' super parameter lint + BackupWalletV5.fromJson(super.json) + : accountFactoryAddress = + EthereumAddress.fromHex(json['accountFactoryAddress']).hexEip55, + super.fromJson(); + + @override + Map toJson() { + final json = super.toJson(); + json['accountFactoryAddress'] = accountFactoryAddress; + return json; + } + + @override + String get key => '$address@$accountFactoryAddress@$alias'; +} diff --git a/lib/services/accounts/native/apple.dart b/lib/services/accounts/native/apple.dart index 849f9f1f..b506cc8d 100644 --- a/lib/services/accounts/native/apple.dart +++ b/lib/services/accounts/native/apple.dart @@ -2,10 +2,12 @@ import 'package:citizenwallet/services/accounts/backup.dart'; import 'package:citizenwallet/services/accounts/accounts.dart'; import 'package:citizenwallet/services/accounts/options.dart'; import 'package:citizenwallet/services/accounts/utils.dart'; +import 'package:citizenwallet/services/config/utils.dart'; import 'package:citizenwallet/services/credentials/credentials.dart'; import 'package:citizenwallet/services/credentials/native/apple.dart'; import 'package:citizenwallet/services/db/backup/accounts.dart'; import 'package:citizenwallet/services/db/backup/db.dart'; +import 'package:flutter/foundation.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:web3dart/credentials.dart'; import 'package:web3dart/crypto.dart'; @@ -203,6 +205,81 @@ class AppleAccountsService extends AccountsServiceInterface { } } }, + 5: () async { + // Read all credentials from Keychain + final allValues = await _credentials.readAll(); + + // Filter keys that match the old format: address@alias + // These are keys that don't start with backupPrefix and contain exactly one '@' + final oldFormatKeys = allValues.keys.where((key) { + if (key.startsWith(backupPrefix) || key == versionPrefix) { + return false; + } + // Check if it matches address@alias format (one @ symbol) + final parts = key.split('@'); + if (parts.length != 2) { + return false; + } + + // Validate that the first part is a valid Ethereum address + try { + EthereumAddress.fromHex(parts[0]); + return true; + } catch (_) { + return false; + } + }).toList(); + + final toDelete = []; + + for (final oldKey in oldFormatKeys) { + final privateKeyValue = allValues[oldKey]; + if (privateKeyValue == null) { + continue; + } + + // Parse the old key format: address@alias + final parts = oldKey.split('@'); + if (parts.length != 2) { + continue; + } + + final address = parts[0]; + final alias = parts[1]; + + try { + // Get the account factory address for this alias + final accountFactoryAddress = + getAccountFactoryAddressByAlias(alias); + + // Create a BackupWalletV5 with the new format + final backup = BackupWalletV5( + address: address, + alias: alias, + accountFactoryAddress: accountFactoryAddress, + privateKey: privateKeyValue, + ); + + // Write the credential with the new key format + await _credentials.write(backup.key, backup.value); + + // Mark old key for deletion + toDelete.add(oldKey); + } catch (e) { + // If we can't determine the account factory address, skip this key + debugPrint('Error migrating key $oldKey: $e'); + continue; + } + } + + // Delete all old format keys + for (final key in toDelete) { + final saved = await _credentials.containsKey(key); + if (saved) { + await _credentials.delete(key); + } + } + }, }; // run all migrations From 9f58effc038763be0a0a61c0736127d4a3f747ef Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Thu, 18 Dec 2025 14:02:14 +0530 Subject: [PATCH 079/148] update migration of table t_accounts - use class DBAccountV4 - use batch insertion - delete old after successful insert --- lib/services/db/backup/accounts.dart | 125 ++++++++++++++++++++------- 1 file changed, 94 insertions(+), 31 deletions(-) diff --git a/lib/services/db/backup/accounts.dart b/lib/services/db/backup/accounts.dart index 0a8bb868..ecaa0cd9 100644 --- a/lib/services/db/backup/accounts.dart +++ b/lib/services/db/backup/accounts.dart @@ -60,15 +60,62 @@ class DBAccount { } } +class DBAccountV4 extends DBAccount { + final EthereumAddress accountFactoryAddress; + + DBAccountV4({ + required super.alias, + required super.address, + required super.name, + super.username, + super.privateKey, + super.profile, + required this.accountFactoryAddress, + }) : super(); + + // Override toMap to include accountFactoryAddress and update the ID format + @override + Map toMap() { + final map = super.toMap(); + // Update the ID to the V4 format: address@accountFactoryAddress@alias + map['id'] = getAccountIdV4( + address: address, + alias: alias, + accountFactoryAddress: accountFactoryAddress, + ); + map['accountFactoryAddress'] = accountFactoryAddress.hexEip55; + return map; + } + + // fromMap factory for the V4 structure + factory DBAccountV4.fromMap(Map map) { + return DBAccountV4( + alias: map['alias'], + address: EthereumAddress.fromHex(map['address']), + name: map['name'], + username: map['username'], + accountFactoryAddress: + EthereumAddress.fromHex(map['accountFactoryAddress']), + privateKey: map['privateKey'] != null + ? EthPrivateKey.fromHex(map['privateKey']) + : null, + profile: map['profile'] != null + ? ProfileV1.fromJson(jsonDecode(map['profile'])) + : null, + ); + } +} + String getAccountID(EthereumAddress address, String alias) { return '${address.hexEip55}@$alias'; } -String getAccountIDNew( - {required EthereumAddress address, - required String alias, - required String accountFactoryAddress}) { - return '${address.hexEip55}@$accountFactoryAddress@$alias'; +String getAccountIdV4({ + required EthereumAddress address, + required String alias, + required EthereumAddress accountFactoryAddress, +}) { + return '${address.hexEip55}@${accountFactoryAddress.hexEip55}@$alias'; } class UserHandle { @@ -126,8 +173,8 @@ class AccountsTable extends DBTable { 4: [ 'ALTER TABLE $name ADD COLUMN accountFactoryAddress TEXT DEFAULT ""', 'PopulateAccountFactoryAddressMigration', - 'InsertRowsInNewIdFormatMigration', // Insert the rows in the new format $address@$accountFactoryAddress@$alias - // TODO: delete the rows in the old format $address@$alias + 'InsertRowsInV4IdFormatMigration', // Insert the rows in the new format $address@$accountFactoryAddress@$alias + ] }; @@ -142,8 +189,8 @@ class AccountsTable extends DBTable { await _populateAccountFactoryAddressMigration(db, name); continue; - case 'InsertRowsInNewIdFormatMigration': - await _insertRowsInNewIdFormatMigration(db, name); + case 'InsertRowsInV4IdFormatMigration': + await _insertRowsInV4IdFormatMigration(db, name); continue; } @@ -178,35 +225,51 @@ class AccountsTable extends DBTable { } } - Future _insertRowsInNewIdFormatMigration( - Database db, String name) async { - List> accounts = await db.query(name); // + Future _insertRowsInV4IdFormatMigration( + Database db, + String name, + ) async { + List> accounts = await db.query(name); + // Create all DBAccountV4 objects + final List dbAccountsV4 = []; for (final Map account in accounts) { - final address = account['address'] as String; - final accountFactoryAddress = account['accountFactoryAddress'] as String; - final alias = account['alias'] as String; - - final newId = getAccountIDNew( - address: EthereumAddress.fromHex(address), - alias: alias, - accountFactoryAddress: accountFactoryAddress); + final dbAccountV4 = DBAccountV4( + alias: account['alias'] as String, + address: EthereumAddress.fromHex(account['address'] as String), + name: account['name'] as String, + username: account['username'] as String?, + privateKey: account['privateKey'] != null + ? EthPrivateKey.fromHex(account['privateKey'] as String) + : null, + profile: account['profile'] != null + ? ProfileV1.fromJson(jsonDecode(account['profile'] as String)) + : null, + accountFactoryAddress: + EthereumAddress.fromHex(account['accountFactoryAddress'] as String), + ); + dbAccountsV4.add(dbAccountV4); + } - await db.insert( + // Batch insert new accounts + final batch = db.batch(); + for (final dbAccountV4 in dbAccountsV4) { + batch.insert( name, - { - 'id': newId, - 'alias': account['alias'], - 'address': account['address'], - 'accountFactoryAddress': account['accountFactoryAddress'], - 'name': account['name'], - 'username': account['username'], - 'privateKey': account['privateKey'], - 'profile': account['profile'], - }, + dbAccountV4.toMap(), conflictAlgorithm: ConflictAlgorithm.replace, ); } + await batch.commit(noResult: true); + + // Delete old accounts only after successful insert + for (final Map account in accounts) { + await db.delete( + name, + where: 'id = ?', + whereArgs: [account['id']], + ); + } } // get account by id From 850465a4d190ea787e392e2238751194bfaad53b Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Thu, 18 Dec 2025 14:41:33 +0530 Subject: [PATCH 080/148] set/get last wallet account factory --- lib/services/preferences/preferences.dart | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/services/preferences/preferences.dart b/lib/services/preferences/preferences.dart index 14d8a7d6..a6e89ecd 100644 --- a/lib/services/preferences/preferences.dart +++ b/lib/services/preferences/preferences.dart @@ -81,6 +81,15 @@ class PreferencesService { String? get lastAlias => _preferences.getString('lastAlias'); + // save the last account factory address that was opened + Future setLastAccountFactoryAddress(String accountFactoryAddress) async { + await _preferences.setString( + 'lastAccountFactoryAddress', accountFactoryAddress); + } + + String? get lastAccountFactoryAddress => + _preferences.getString('lastAccountFactoryAddress'); + // save the last link that was opened on web Future setLastWalletLink(String link) async { await _preferences.setString('lastWalletLink', link); @@ -160,5 +169,4 @@ class PreferencesService { String? getLanguageCode() { return _preferences.getString('languageCode'); } - } From d17773a2305344a5d5d57ed5663379beaf9f0773 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Thu, 18 Dec 2025 15:35:41 +0530 Subject: [PATCH 081/148] todo comment --- lib/services/accounts/native/android.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/services/accounts/native/android.dart b/lib/services/accounts/native/android.dart index 83a074a1..d0be43e6 100644 --- a/lib/services/accounts/native/android.dart +++ b/lib/services/accounts/native/android.dart @@ -62,6 +62,7 @@ class AndroidAccountsService extends AccountsServiceInterface { } // write the account data in the accounts table + // TODO: use DBAccountV4, with getAccountFactoryAddressByAlias final account = DBAccount( alias: legacyBackup.alias, address: EthereumAddress.fromHex(legacyBackup.address), From a864ec29bf1a5d514a77a189b8a83e534253fd26 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Thu, 18 Dec 2025 15:37:23 +0530 Subject: [PATCH 082/148] todo comment --- lib/services/accounts/native/apple.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/services/accounts/native/apple.dart b/lib/services/accounts/native/apple.dart index b506cc8d..b5a7189b 100644 --- a/lib/services/accounts/native/apple.dart +++ b/lib/services/accounts/native/apple.dart @@ -168,6 +168,7 @@ class AppleAccountsService extends AccountsServiceInterface { } // write the account data in the accounts table + // TODO: use DBAccountV4, with getAccountFactoryAddressByAlias final DBAccount account = DBAccount( alias: legacyBackup.alias, address: EthereumAddress.fromHex(legacyBackup.address), From 8158ecee7b5ce6fee35eb1ef49e82151dfea0d9c Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Thu, 18 Dec 2025 16:25:18 +0530 Subject: [PATCH 083/148] feat(android): implement v5 credential migration for account factory addresses - Migrates legacy secure storage keys from `address@alias` to the new `address@factory@alias` format. - Uses `getAccountFactoryAddressByAlias` to backfill factory addresses during migration. - Employs `BackupWalletV5` to ensure consistent EIP-55 address formatting. - Safely deletes old credential keys after successful migration. --- lib/services/accounts/native/android.dart | 77 +++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/lib/services/accounts/native/android.dart b/lib/services/accounts/native/android.dart index d0be43e6..6829748a 100644 --- a/lib/services/accounts/native/android.dart +++ b/lib/services/accounts/native/android.dart @@ -1,3 +1,4 @@ +import 'package:citizenwallet/services/config/utils.dart'; import 'package:citizenwallet/services/credentials/credentials.dart'; import 'package:citizenwallet/services/db/backup/db.dart'; import 'package:citizenwallet/utils/encrypt.dart'; @@ -6,6 +7,7 @@ import 'package:citizenwallet/services/db/backup/accounts.dart'; import 'package:citizenwallet/services/accounts/backup.dart'; import 'package:citizenwallet/services/accounts/accounts.dart'; +import 'package:flutter/foundation.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:web3dart/crypto.dart'; @@ -91,6 +93,81 @@ class AndroidAccountsService extends AccountsServiceInterface { } } }, + 5: () async { + // Read all credentials from secure storage + final allValues = await _credentials.readAll(); + + // Filter keys that match the old format: address@alias + // These are keys that don't start with backupPrefix and contain exactly one '@' + final oldFormatKeys = allValues.keys.where((key) { + if (key.startsWith(backupPrefix) || + key == versionPrefix || + key == pinCodeKey || + key == pinCodeCheckKey) { + return false; + } + // Check if it matches address@alias format (one @ symbol) + final parts = key.split('@'); + if (parts.length != 2) { + return false; + } + + // Validate that the first part is a valid Ethereum address + try { + EthereumAddress.fromHex(parts[0]); + return true; + } catch (_) { + return false; + } + }).toList(); + + final toDelete = []; + + for (final oldKey in oldFormatKeys) { + final privateKeyValue = allValues[oldKey]; + if (privateKeyValue == null) { + continue; + } + + // Parse the old key format: address@alias + final parts = oldKey.split('@'); + if (parts.length != 2) { + continue; + } + + final address = parts[0]; + final alias = parts[1]; + + try { + // Get the account factory address for this alias + final accountFactoryAddress = + getAccountFactoryAddressByAlias(alias); + + // Create a BackupWalletV5 with the new format + final backup = BackupWalletV5( + address: address, + alias: alias, + accountFactoryAddress: accountFactoryAddress, + privateKey: privateKeyValue, + ); + + // Write the credential with the new key format + await _credentials.write(backup.key, backup.value); + + // Mark old key for deletion + toDelete.add(oldKey); + } catch (e) { + // If we can't determine the account factory address, skip this key + debugPrint('Error migrating key $oldKey: $e'); + continue; + } + } + + // Delete all old format keys + for (final key in toDelete) { + await _credentials.delete(key); + } + }, }; // run all migrations From 44c8dd9986a6f3a68bfa721a6cdecd4d533a7103 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Thu, 18 Dec 2025 17:23:23 +0530 Subject: [PATCH 084/148] v5 migration of cloud account --- lib/services/accounts/accounts.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/services/accounts/accounts.dart b/lib/services/accounts/accounts.dart index 3edeaf64..ec83f715 100644 --- a/lib/services/accounts/accounts.dart +++ b/lib/services/accounts/accounts.dart @@ -14,7 +14,7 @@ abstract class AccountsOptionsInterface {} /// /// This is used to store wallet backups and the implementation is platform specific. abstract class AccountsServiceInterface { - final int _version = 4; + final int _version = 5; int get version => _version; From fc936f1f3cfa28a0b798ca568208f4ab12a2dc51 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Fri, 19 Dec 2025 15:03:51 +0530 Subject: [PATCH 085/148] refactor(accounts): update getAllAccounts to return DBAccountV4 - Update AccountsServiceInterface to use DBAccountV4 for account retrieval. - Migrate Android, Apple, and Web account service implementations to DBAccountV4. - Update AccountsTable.all() to fetch and map records using DBAccountV4.fromMap. - Ensure type consistency across account backup services following the v4 database migration. --- lib/services/accounts/accounts.dart | 2 +- lib/services/accounts/native/android.dart | 4 ++-- lib/services/accounts/native/apple.dart | 4 ++-- lib/services/accounts/web.dart | 2 +- lib/services/db/backup/accounts.dart | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/services/accounts/accounts.dart b/lib/services/accounts/accounts.dart index ec83f715..f9656850 100644 --- a/lib/services/accounts/accounts.dart +++ b/lib/services/accounts/accounts.dart @@ -31,7 +31,7 @@ abstract class AccountsServiceInterface { // key = wb_$wallet_address, value = $name|$privateKey // get all accounts - Future> getAllAccounts(); + Future> getAllAccounts(); // set account Future setAccount(DBAccount account); diff --git a/lib/services/accounts/native/android.dart b/lib/services/accounts/native/android.dart index 6829748a..c48535ed 100644 --- a/lib/services/accounts/native/android.dart +++ b/lib/services/accounts/native/android.dart @@ -189,8 +189,8 @@ class AndroidAccountsService extends AccountsServiceInterface { // get all wallet backups @override - Future> getAllAccounts() async { - final List accounts = await _accountsDB.accounts.all(); + Future> getAllAccounts() async { + final List accounts = await _accountsDB.accounts.all(); for (final account in accounts) { final privateKey = await _credentials.read(account.id); diff --git a/lib/services/accounts/native/apple.dart b/lib/services/accounts/native/apple.dart index b5a7189b..b8ab257d 100644 --- a/lib/services/accounts/native/apple.dart +++ b/lib/services/accounts/native/apple.dart @@ -302,8 +302,8 @@ class AppleAccountsService extends AccountsServiceInterface { // get all wallet backups @override - Future> getAllAccounts() async { - final List accounts = await _accountsDB.accounts.all(); + Future> getAllAccounts() async { + final List accounts = await _accountsDB.accounts.all(); for (final account in accounts) { final privateKey = await _credentials.read(account.id); diff --git a/lib/services/accounts/web.dart b/lib/services/accounts/web.dart index 4b31f568..00febc33 100644 --- a/lib/services/accounts/web.dart +++ b/lib/services/accounts/web.dart @@ -32,7 +32,7 @@ class WebAccountsService extends AccountsServiceInterface { // get all wallet backups @override - Future> getAllAccounts() async { + Future> getAllAccounts() async { return []; } diff --git a/lib/services/db/backup/accounts.dart b/lib/services/db/backup/accounts.dart index ecaa0cd9..acc8cbf5 100644 --- a/lib/services/db/backup/accounts.dart +++ b/lib/services/db/backup/accounts.dart @@ -317,11 +317,11 @@ class AccountsTable extends DBTable { await db.delete(name); } - Future> all() async { + Future> all() async { final List> maps = await db.query(name); return List.generate(maps.length, (i) { - return DBAccount.fromMap(maps[i]); + return DBAccountV4.fromMap(maps[i]); }); } From 8b3639d7d042e8c868390db2cd04a1a23e643c35 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Fri, 19 Dec 2025 18:14:01 +0530 Subject: [PATCH 086/148] todo comment --- lib/services/accounts/accounts.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/services/accounts/accounts.dart b/lib/services/accounts/accounts.dart index f9656850..9d0bf23f 100644 --- a/lib/services/accounts/accounts.dart +++ b/lib/services/accounts/accounts.dart @@ -14,7 +14,7 @@ abstract class AccountsOptionsInterface {} /// /// This is used to store wallet backups and the implementation is platform specific. abstract class AccountsServiceInterface { - final int _version = 5; + final int _version = 5; // TODO: figure out correct version number (Kevin, Others) int get version => _version; From 245c9703d3941a571fee856160ed4e821c84169c Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Fri, 19 Dec 2025 18:15:02 +0530 Subject: [PATCH 087/148] remove migration number 'InsertRowsInV4Format' - not needed. combination of address@alias is unique --- lib/services/db/backup/accounts.dart | 53 ---------------------------- 1 file changed, 53 deletions(-) diff --git a/lib/services/db/backup/accounts.dart b/lib/services/db/backup/accounts.dart index acc8cbf5..448571ee 100644 --- a/lib/services/db/backup/accounts.dart +++ b/lib/services/db/backup/accounts.dart @@ -173,8 +173,6 @@ class AccountsTable extends DBTable { 4: [ 'ALTER TABLE $name ADD COLUMN accountFactoryAddress TEXT DEFAULT ""', 'PopulateAccountFactoryAddressMigration', - 'InsertRowsInV4IdFormatMigration', // Insert the rows in the new format $address@$accountFactoryAddress@$alias - ] }; @@ -188,10 +186,6 @@ class AccountsTable extends DBTable { case 'PopulateAccountFactoryAddressMigration': await _populateAccountFactoryAddressMigration(db, name); continue; - - case 'InsertRowsInV4IdFormatMigration': - await _insertRowsInV4IdFormatMigration(db, name); - continue; } await db.execute(query); @@ -225,53 +219,6 @@ class AccountsTable extends DBTable { } } - Future _insertRowsInV4IdFormatMigration( - Database db, - String name, - ) async { - List> accounts = await db.query(name); - - // Create all DBAccountV4 objects - final List dbAccountsV4 = []; - for (final Map account in accounts) { - final dbAccountV4 = DBAccountV4( - alias: account['alias'] as String, - address: EthereumAddress.fromHex(account['address'] as String), - name: account['name'] as String, - username: account['username'] as String?, - privateKey: account['privateKey'] != null - ? EthPrivateKey.fromHex(account['privateKey'] as String) - : null, - profile: account['profile'] != null - ? ProfileV1.fromJson(jsonDecode(account['profile'] as String)) - : null, - accountFactoryAddress: - EthereumAddress.fromHex(account['accountFactoryAddress'] as String), - ); - dbAccountsV4.add(dbAccountV4); - } - - // Batch insert new accounts - final batch = db.batch(); - for (final dbAccountV4 in dbAccountsV4) { - batch.insert( - name, - dbAccountV4.toMap(), - conflictAlgorithm: ConflictAlgorithm.replace, - ); - } - await batch.commit(noResult: true); - - // Delete old accounts only after successful insert - for (final Map account in accounts) { - await db.delete( - name, - where: 'id = ?', - whereArgs: [account['id']], - ); - } - } - // get account by id Future get(EthereumAddress address, String alias) async { final List> maps = await db.query( From e71a1559eeb0395a92a5d4f0b4e719e9e72fa1d0 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Fri, 19 Dec 2025 22:04:11 +0530 Subject: [PATCH 088/148] deprecate class DBAccountV4 --- lib/services/accounts/accounts.dart | 2 +- lib/services/accounts/native/android.dart | 6 +-- lib/services/accounts/native/apple.dart | 6 +-- lib/services/accounts/web.dart | 2 +- lib/services/db/backup/accounts.dart | 57 +---------------------- 5 files changed, 10 insertions(+), 63 deletions(-) diff --git a/lib/services/accounts/accounts.dart b/lib/services/accounts/accounts.dart index 9d0bf23f..e4fa2862 100644 --- a/lib/services/accounts/accounts.dart +++ b/lib/services/accounts/accounts.dart @@ -31,7 +31,7 @@ abstract class AccountsServiceInterface { // key = wb_$wallet_address, value = $name|$privateKey // get all accounts - Future> getAllAccounts(); + Future> getAllAccounts(); // set account Future setAccount(DBAccount account); diff --git a/lib/services/accounts/native/android.dart b/lib/services/accounts/native/android.dart index c48535ed..aff7a0d1 100644 --- a/lib/services/accounts/native/android.dart +++ b/lib/services/accounts/native/android.dart @@ -64,11 +64,11 @@ class AndroidAccountsService extends AccountsServiceInterface { } // write the account data in the accounts table - // TODO: use DBAccountV4, with getAccountFactoryAddressByAlias final account = DBAccount( alias: legacyBackup.alias, address: EthereumAddress.fromHex(legacyBackup.address), name: legacyBackup.name, + accountFactoryAddress: EthereumAddress.fromHex(getAccountFactoryAddressByAlias(legacyBackup.alias)), ); await _accountsDB.accounts.insert(account); @@ -189,8 +189,8 @@ class AndroidAccountsService extends AccountsServiceInterface { // get all wallet backups @override - Future> getAllAccounts() async { - final List accounts = await _accountsDB.accounts.all(); + Future> getAllAccounts() async { + final List accounts = await _accountsDB.accounts.all(); for (final account in accounts) { final privateKey = await _credentials.read(account.id); diff --git a/lib/services/accounts/native/apple.dart b/lib/services/accounts/native/apple.dart index b8ab257d..864c3cca 100644 --- a/lib/services/accounts/native/apple.dart +++ b/lib/services/accounts/native/apple.dart @@ -168,11 +168,11 @@ class AppleAccountsService extends AccountsServiceInterface { } // write the account data in the accounts table - // TODO: use DBAccountV4, with getAccountFactoryAddressByAlias final DBAccount account = DBAccount( alias: legacyBackup.alias, address: EthereumAddress.fromHex(legacyBackup.address), name: legacyBackup.name, + accountFactoryAddress: EthereumAddress.fromHex(getAccountFactoryAddressByAlias(legacyBackup.alias)), ); await _accountsDB.accounts.insert(account); @@ -302,8 +302,8 @@ class AppleAccountsService extends AccountsServiceInterface { // get all wallet backups @override - Future> getAllAccounts() async { - final List accounts = await _accountsDB.accounts.all(); + Future> getAllAccounts() async { + final List accounts = await _accountsDB.accounts.all(); for (final account in accounts) { final privateKey = await _credentials.read(account.id); diff --git a/lib/services/accounts/web.dart b/lib/services/accounts/web.dart index 00febc33..4b31f568 100644 --- a/lib/services/accounts/web.dart +++ b/lib/services/accounts/web.dart @@ -32,7 +32,7 @@ class WebAccountsService extends AccountsServiceInterface { // get all wallet backups @override - Future> getAllAccounts() async { + Future> getAllAccounts() async { return []; } diff --git a/lib/services/db/backup/accounts.dart b/lib/services/db/backup/accounts.dart index 448571ee..38768736 100644 --- a/lib/services/db/backup/accounts.dart +++ b/lib/services/db/backup/accounts.dart @@ -60,63 +60,10 @@ class DBAccount { } } -class DBAccountV4 extends DBAccount { - final EthereumAddress accountFactoryAddress; - - DBAccountV4({ - required super.alias, - required super.address, - required super.name, - super.username, - super.privateKey, - super.profile, - required this.accountFactoryAddress, - }) : super(); - - // Override toMap to include accountFactoryAddress and update the ID format - @override - Map toMap() { - final map = super.toMap(); - // Update the ID to the V4 format: address@accountFactoryAddress@alias - map['id'] = getAccountIdV4( - address: address, - alias: alias, - accountFactoryAddress: accountFactoryAddress, - ); - map['accountFactoryAddress'] = accountFactoryAddress.hexEip55; - return map; - } - - // fromMap factory for the V4 structure - factory DBAccountV4.fromMap(Map map) { - return DBAccountV4( - alias: map['alias'], - address: EthereumAddress.fromHex(map['address']), - name: map['name'], - username: map['username'], - accountFactoryAddress: - EthereumAddress.fromHex(map['accountFactoryAddress']), - privateKey: map['privateKey'] != null - ? EthPrivateKey.fromHex(map['privateKey']) - : null, - profile: map['profile'] != null - ? ProfileV1.fromJson(jsonDecode(map['profile'])) - : null, - ); - } -} - String getAccountID(EthereumAddress address, String alias) { return '${address.hexEip55}@$alias'; } -String getAccountIdV4({ - required EthereumAddress address, - required String alias, - required EthereumAddress accountFactoryAddress, -}) { - return '${address.hexEip55}@${accountFactoryAddress.hexEip55}@$alias'; -} class UserHandle { final String username; @@ -264,11 +211,11 @@ class AccountsTable extends DBTable { await db.delete(name); } - Future> all() async { + Future> all() async { final List> maps = await db.query(name); return List.generate(maps.length, (i) { - return DBAccountV4.fromMap(maps[i]); + return DBAccount.fromMap(maps[i]); }); } From 70120fe65ad963cceec039b64c06319c66b08383 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Fri, 19 Dec 2025 22:08:22 +0530 Subject: [PATCH 089/148] todo comment --- lib/services/db/backup/db.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/services/db/backup/db.dart b/lib/services/db/backup/db.dart index ea620ab1..cdeaf97f 100644 --- a/lib/services/db/backup/db.dart +++ b/lib/services/db/backup/db.dart @@ -40,7 +40,7 @@ class AccountBackupDBService extends DBService { return; }, - version: 4, + version: 4, // TODO: figure out correct version number (Kevin, Others) ); final db = await databaseFactory.openDatabase( From e4c69728f5084818060a31bc0c0d94a5b3a58a8a Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Fri, 19 Dec 2025 22:09:10 +0530 Subject: [PATCH 090/148] attribute accountFactoryAddress in class DBAccount --- lib/services/db/backup/accounts.dart | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/services/db/backup/accounts.dart b/lib/services/db/backup/accounts.dart index 38768736..56ee9746 100644 --- a/lib/services/db/backup/accounts.dart +++ b/lib/services/db/backup/accounts.dart @@ -3,7 +3,6 @@ import 'dart:convert'; import 'package:citizenwallet/services/config/utils.dart'; import 'package:citizenwallet/services/db/db.dart'; import 'package:citizenwallet/services/wallet/contracts/profile.dart'; -import 'package:citizenwallet/services/wallet/wallet.dart'; import 'package:flutter/foundation.dart'; import 'package:sqflite/sqlite_api.dart'; import 'package:web3dart/crypto.dart'; @@ -13,6 +12,7 @@ class DBAccount { final String id; final String alias; final EthereumAddress address; + final EthereumAddress accountFactoryAddress; final String name; final UserHandle? userHandle; final String? username; @@ -22,6 +22,7 @@ class DBAccount { DBAccount({ required this.alias, required this.address, + required this.accountFactoryAddress, required this.name, this.username, this.privateKey, @@ -35,6 +36,7 @@ class DBAccount { 'id': id, 'alias': alias, 'address': address.hexEip55, + 'accountFactoryAddress': accountFactoryAddress.hexEip55, if (name.isNotEmpty) 'name': name, 'username': username, 'privateKey': @@ -48,6 +50,7 @@ class DBAccount { return DBAccount( alias: map['alias'], address: EthereumAddress.fromHex(map['address']), + accountFactoryAddress: EthereumAddress.fromHex(map['accountFactoryAddress']), name: map['name'], username: map['username'], privateKey: map['privateKey'] != null From d3d755c1cfb9ff1ef0c300111dd7d60cace18ade Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Fri, 19 Dec 2025 22:09:40 +0530 Subject: [PATCH 091/148] attribute _accountFactoryAddress in WalletService --- lib/services/wallet/wallet.dart | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/services/wallet/wallet.dart b/lib/services/wallet/wallet.dart index afbe4beb..381269c2 100644 --- a/lib/services/wallet/wallet.dart +++ b/lib/services/wallet/wallet.dart @@ -78,6 +78,8 @@ class WalletService { late EthPrivateKey _credentials; // Represents a private key for an Ethereum account. late EthereumAddress _account; // Represents an Ethereum address. + late EthereumAddress _accountFactoryAddress; + late SigAuthService _sigAuth; late StackupEntryPoint @@ -100,6 +102,7 @@ class WalletService { EthPrivateKey get credentials => _credentials; EthereumAddress get address => _credentials.address; EthereumAddress get account => _account; + EthereumAddress get accountFactoryAddress => _accountFactoryAddress; /// retrieves the current balance of the address Future getBalance({String? addr, BigInt? tokenId}) async { @@ -154,13 +157,16 @@ class WalletService { Future init( EthereumAddress account, + EthereumAddress accountFactoryAddress, EthPrivateKey privateKey, NativeCurrency currency, - Config config, { + Config config, + { void Function(String)? onNotify, void Function(bool)? onFinished, }) async { _alias = config.community.alias; + _accountFactoryAddress = accountFactoryAddress; final token = config.getPrimaryToken(); final accountAbstractionConfig = From dd2842385ed1935728258a1ee31220664f99b9e3 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Fri, 19 Dec 2025 22:11:59 +0530 Subject: [PATCH 092/148] DBAccount with account factory address --- lib/state/app/logic.dart | 5 +++++ lib/state/profile/logic.dart | 6 ++++++ lib/state/profiles/logic.dart | 1 + lib/state/wallet/logic.dart | 5 +++++ 4 files changed, 17 insertions(+) diff --git a/lib/state/app/logic.dart b/lib/state/app/logic.dart index b13b5d34..b8a090ba 100644 --- a/lib/state/app/logic.dart +++ b/lib/state/app/logic.dart @@ -189,6 +189,8 @@ class AppLogic { privateKey: credentials, name: token.name, alias: communityConfig.community.alias, + accountFactoryAddress: EthereumAddress.fromHex(communityConfig.community.primaryAccountFactory.address), + )); _theme.changeTheme(communityConfig.community.theme); @@ -302,6 +304,7 @@ class AppLogic { privateKey: credentials, name: name, alias: communityConfig.community.alias, + accountFactoryAddress: EthereumAddress.fromHex(communityConfig.community.primaryAccountFactory.address), ), ); @@ -366,6 +369,8 @@ class AppLogic { privateKey: credentials, name: '${token.symbol} Web Account', alias: communityConfig.community.alias, + accountFactoryAddress: EthereumAddress.fromHex(communityConfig.community.primaryAccountFactory.address), + ), ); diff --git a/lib/state/profile/logic.dart b/lib/state/profile/logic.dart index 6c53f64a..6bfc1290 100644 --- a/lib/state/profile/logic.dart +++ b/lib/state/profile/logic.dart @@ -150,6 +150,7 @@ class ProfileLogic { Future loadProfile({String? account, bool online = false}) async { final ethAccount = _wallet.account; final alias = _wallet.alias ?? ''; + final accountFactoryAddress = _wallet.accountFactoryAddress.hexEip55; final acc = account ?? ethAccount.hexEip55; resume(); @@ -210,6 +211,7 @@ class ProfileLogic { _accountBackupDBService.accounts.update(DBAccount( alias: alias, address: ethAccount, + accountFactoryAddress: EthereumAddress.fromHex(accountFactoryAddress), name: profile.name, username: profile.username, privateKey: null, @@ -325,6 +327,7 @@ class ProfileLogic { DBAccount( alias: _wallet.alias!, address: EthereumAddress.fromHex(newProfile.account), + accountFactoryAddress: _wallet.accountFactoryAddress, name: newProfile.name, username: newProfile.username, privateKey: null, @@ -407,6 +410,7 @@ class ProfileLogic { DBAccount( alias: _wallet.alias!, address: EthereumAddress.fromHex(newProfile.account), + accountFactoryAddress: _wallet.accountFactoryAddress, name: newProfile.name, username: newProfile.username, privateKey: null, @@ -471,6 +475,7 @@ class ProfileLogic { final address = _wallet.account.hexEip55; final alias = _wallet.alias ?? ''; + final accountFactoryAddress = _wallet.accountFactoryAddress.hexEip55; final account = await _accountBackupDBService.accounts .get(EthereumAddress.fromHex(address), alias); @@ -554,6 +559,7 @@ class ProfileLogic { DBAccount( alias: alias, address: EthereumAddress.fromHex(address), + accountFactoryAddress: EthereumAddress.fromHex(accountFactoryAddress), name: newProfile.name, username: newProfile.username, profile: newProfile, diff --git a/lib/state/profiles/logic.dart b/lib/state/profiles/logic.dart index febe6767..23e983de 100644 --- a/lib/state/profiles/logic.dart +++ b/lib/state/profiles/logic.dart @@ -232,6 +232,7 @@ class ProfilesLogic extends WidgetsBindingObserver { DBAccount( alias: account.alias, address: account.address, + accountFactoryAddress: account.accountFactoryAddress, name: updatedProfile.name, username: updatedProfile.username, profile: updatedProfile, diff --git a/lib/state/wallet/logic.dart b/lib/state/wallet/logic.dart index 2cc8dd78..382c5258 100644 --- a/lib/state/wallet/logic.dart +++ b/lib/state/wallet/logic.dart @@ -374,6 +374,7 @@ class WalletLogic extends WidgetsBindingObserver { await _wallet.init( dbWallet.address, + dbWallet.accountFactoryAddress, dbWallet.privateKey!, nativeCurrency, communityConfig, @@ -475,6 +476,8 @@ class WalletLogic extends WidgetsBindingObserver { privateKey: credentials, name: 'New ${token.symbol} Account', alias: communityConfig.community.alias, + accountFactoryAddress: EthereumAddress.fromHex( + communityConfig.community.primaryAccountFactory.address), )); _theme.changeTheme(communityConfig.community.theme); @@ -542,6 +545,7 @@ class WalletLogic extends WidgetsBindingObserver { privateKey: credentials, name: name, alias: communityConfig.community.alias, + accountFactoryAddress: EthereumAddress.fromHex(communityConfig.community.primaryAccountFactory.address), )); _theme.changeTheme(communityConfig.community.theme); @@ -571,6 +575,7 @@ class WalletLogic extends WidgetsBindingObserver { privateKey: dbWallet.privateKey, name: name, alias: dbWallet.alias, + accountFactoryAddress: dbWallet.accountFactoryAddress, )); loadDBWallets(); From ff418435a180a882f3004d607f3e622b015cd37a Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Fri, 19 Dec 2025 22:35:07 +0530 Subject: [PATCH 093/148] feat: migrate credentials to BackupWalletV5 format with accountFactoryAddress Migrates credential storage from address@alias format to address@accountFactoryAddress@alias format using BackupWalletV5. Updates all credential read/write operations in Android and Apple account services to use the new composite key structure. - Add migration version 5 for both platforms - Update getAllAccounts, setAccount, getAccount, deleteAccount methods - Migrate existing credentials automatically on app upgrade - Ensures accountFactoryAddress is part of credential identification --- lib/services/accounts/native/android.dart | 63 +++++++++++++++++++---- lib/services/accounts/native/apple.dart | 53 +++++++++++++++---- 2 files changed, 96 insertions(+), 20 deletions(-) diff --git a/lib/services/accounts/native/android.dart b/lib/services/accounts/native/android.dart index aff7a0d1..00e12873 100644 --- a/lib/services/accounts/native/android.dart +++ b/lib/services/accounts/native/android.dart @@ -68,7 +68,8 @@ class AndroidAccountsService extends AccountsServiceInterface { alias: legacyBackup.alias, address: EthereumAddress.fromHex(legacyBackup.address), name: legacyBackup.name, - accountFactoryAddress: EthereumAddress.fromHex(getAccountFactoryAddressByAlias(legacyBackup.alias)), + accountFactoryAddress: EthereumAddress.fromHex( + getAccountFactoryAddressByAlias(legacyBackup.alias)), ); await _accountsDB.accounts.insert(account); @@ -193,7 +194,14 @@ class AndroidAccountsService extends AccountsServiceInterface { final List accounts = await _accountsDB.accounts.all(); for (final account in accounts) { - final privateKey = await _credentials.read(account.id); + final backupKey = BackupWalletV5( + address: account.address.hexEip55, + alias: account.alias, + accountFactoryAddress: account.accountFactoryAddress.hexEip55, + privateKey: '', + ).key; + + final privateKey = await _credentials.read(backupKey); if (privateKey == null) { continue; } @@ -213,9 +221,16 @@ class AndroidAccountsService extends AccountsServiceInterface { return; } + final backup = BackupWalletV5( + address: account.address.hexEip55, + alias: account.alias, + accountFactoryAddress: account.accountFactoryAddress.hexEip55, + privateKey: bytesToHex(account.privateKey!.privateKey), + ); + await _credentials.write( - account.id, - bytesToHex(account.privateKey!.privateKey), + backup.key, + backup.value, ); } @@ -231,7 +246,14 @@ class AndroidAccountsService extends AccountsServiceInterface { return null; } - final privateKey = await _credentials.read(account.id); + final backupKey = BackupWalletV5( + address: account.address.hexEip55, + alias: account.alias, + accountFactoryAddress: account.accountFactoryAddress.hexEip55, + privateKey: '', + ).key; + + final privateKey = await _credentials.read(backupKey); if (privateKey == null) { return account; } @@ -250,16 +272,28 @@ class AndroidAccountsService extends AccountsServiceInterface { // delete wallet backup @override Future deleteAccount(String address, String alias) async { + // Get the account before deleting it + final account = + await _accountsDB.accounts.get(EthereumAddress.fromHex(address), alias); + + if (account == null) { + return; + } + await _accountsDB.accounts.delete( EthereumAddress.fromHex(address), alias, ); + final backupKey = BackupWalletV5( + address: account.address.hexEip55, + alias: account.alias, + accountFactoryAddress: account.accountFactoryAddress.hexEip55, + privateKey: '', + ).key; + await _credentials.delete( - getAccountID( - EthereumAddress.fromHex(address), - alias, - ), + backupKey, ); } @@ -357,9 +391,16 @@ class AndroidAccountsService extends AccountsServiceInterface { final allAccounts = await getAllAccounts(); // accounts with private keys for (final account in allAccounts) { + final backup = BackupWalletV5( + address: account.address.hexEip55, + alias: account.alias, + accountFactoryAddress: account.accountFactoryAddress.hexEip55, + privateKey: bytesToHex(account.privateKey!.privateKey), + ); + await _credentials.write( - account.id, - bytesToHex(account.privateKey!.privateKey), + backup.key, + backup.value, ); // null private key before updating in DB diff --git a/lib/services/accounts/native/apple.dart b/lib/services/accounts/native/apple.dart index 864c3cca..f7874c8b 100644 --- a/lib/services/accounts/native/apple.dart +++ b/lib/services/accounts/native/apple.dart @@ -172,7 +172,8 @@ class AppleAccountsService extends AccountsServiceInterface { alias: legacyBackup.alias, address: EthereumAddress.fromHex(legacyBackup.address), name: legacyBackup.name, - accountFactoryAddress: EthereumAddress.fromHex(getAccountFactoryAddressByAlias(legacyBackup.alias)), + accountFactoryAddress: EthereumAddress.fromHex( + getAccountFactoryAddressByAlias(legacyBackup.alias)), ); await _accountsDB.accounts.insert(account); @@ -306,7 +307,14 @@ class AppleAccountsService extends AccountsServiceInterface { final List accounts = await _accountsDB.accounts.all(); for (final account in accounts) { - final privateKey = await _credentials.read(account.id); + final backupKey = BackupWalletV5( + address: account.address.hexEip55, + alias: account.alias, + accountFactoryAddress: account.accountFactoryAddress.hexEip55, + privateKey: '', + ).key; + + final privateKey = await _credentials.read(backupKey); if (privateKey == null) { continue; } @@ -326,9 +334,16 @@ class AppleAccountsService extends AccountsServiceInterface { return; } + final backup = BackupWalletV5( + address: account.address.hexEip55, + alias: account.alias, + accountFactoryAddress: account.accountFactoryAddress.hexEip55, + privateKey: bytesToHex(account.privateKey!.privateKey), + ); + await _credentials.write( - account.id, - bytesToHex(account.privateKey!.privateKey), + backup.key, + backup.value, ); } @@ -344,7 +359,14 @@ class AppleAccountsService extends AccountsServiceInterface { return null; } - final privateKey = await _credentials.read(account.id); + final backupKey = BackupWalletV5( + address: account.address.hexEip55, + alias: account.alias, + accountFactoryAddress: account.accountFactoryAddress.hexEip55, + privateKey: '', + ).key; + + final privateKey = await _credentials.read(backupKey); if (privateKey == null) { return account; } @@ -363,16 +385,29 @@ class AppleAccountsService extends AccountsServiceInterface { // delete wallet backup @override Future deleteAccount(String address, String alias) async { + final account = await _accountsDB.accounts.get( + EthereumAddress.fromHex(address), + alias, + ); + + if (account == null) { + return; + } + await _accountsDB.accounts.delete( EthereumAddress.fromHex(address), alias, ); + final backupKey = BackupWalletV5( + address: account.address.hexEip55, + alias: account.alias, + accountFactoryAddress: account.accountFactoryAddress.hexEip55, + privateKey: '', + ).key; + await _credentials.delete( - getAccountID( - EthereumAddress.fromHex(address), - alias, - ), + backupKey, ); } From fb7395863069997e7613d47dd7620bd625401240 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Fri, 19 Dec 2025 22:52:21 +0530 Subject: [PATCH 094/148] force use account factory address - get account abs config - get rpc url --- lib/services/config/config.dart | 18 ++++---- .../wallet/contracts/account_factory.dart | 5 ++- lib/services/wallet/wallet.dart | 11 ++--- test/services/config/config_v5_test.dart | 42 ++++++++++--------- 4 files changed, 40 insertions(+), 36 deletions(-) diff --git a/lib/services/config/config.dart b/lib/services/config/config.dart index 5c263d7e..46eed9a1 100644 --- a/lib/services/config/config.dart +++ b/lib/services/config/config.dart @@ -715,7 +715,6 @@ class Config { return primaryToken; } -// TODO: remove use of getPrimaryAccountAbstractionConfig ERC4337Config getPrimaryAccountAbstractionConfig() { final primaryAccountAbstraction = accounts[community.primaryAccountFactory.fullAddress]; @@ -727,14 +726,9 @@ class Config { return primaryAccountAbstraction; } - // TODO: force required accountFactoryAddress - // TODO: remove use of getPrimaryAccountAbstractionConfig - ERC4337Config getAccountAbstractionConfig({String? accountFactoryAddress}) { - // If no accountFactoryAddress is provided, return the primary config - if (accountFactoryAddress == null || accountFactoryAddress.isEmpty) { - return getPrimaryAccountAbstractionConfig(); - } - + ERC4337Config getAccountAbstractionConfig({ + required String accountFactoryAddress, + }) { // Build the full address key using chainId:accountFactoryAddress format final chainId = community.primaryToken.chainId; final fullAddress = '$chainId:$accountFactoryAddress'; @@ -765,8 +759,10 @@ class Config { return chain.node.url; } - // TODO: force required accountFactoryAddress - String getRpcUrl(String chainId, {String? accountFactoryAddress}) { + String getRpcUrl({ + required String chainId, + required String accountFactoryAddress, + }) { final chain = chains[chainId]; if (chain == null) { diff --git a/lib/services/wallet/contracts/account_factory.dart b/lib/services/wallet/contracts/account_factory.dart index cf27bffc..113b162d 100644 --- a/lib/services/wallet/contracts/account_factory.dart +++ b/lib/services/wallet/contracts/account_factory.dart @@ -14,7 +14,10 @@ Future accountFactoryServiceFromConfig(Config config, {String? customAccountFactory}) async { final primaryAccountFactory = config.community.primaryAccountFactory; - final url = config.getRpcUrl(primaryAccountFactory.chainId.toString()); + final url = config.getRpcUrl( + chainId: primaryAccountFactory.chainId.toString(), + accountFactoryAddress: primaryAccountFactory.address, + ); // final wsurl = // config.chains[primaryAccountFactory.chainId.toString()]!.node.wsUrl; print('url: $url'); diff --git a/lib/services/wallet/wallet.dart b/lib/services/wallet/wallet.dart index 381269c2..5e592284 100644 --- a/lib/services/wallet/wallet.dart +++ b/lib/services/wallet/wallet.dart @@ -160,8 +160,7 @@ class WalletService { EthereumAddress accountFactoryAddress, EthPrivateKey privateKey, NativeCurrency currency, - Config config, - { + Config config, { void Function(String)? onNotify, void Function(bool)? onFinished, }) async { @@ -169,14 +168,16 @@ class WalletService { _accountFactoryAddress = accountFactoryAddress; final token = config.getPrimaryToken(); - final accountAbstractionConfig = - config.getPrimaryAccountAbstractionConfig(); + + final accountAbstractionConfig = config.getAccountAbstractionConfig( + accountFactoryAddress: accountFactoryAddress.hexEip55); + final chain = config.chains[token.chainId.toString()]; _url = chain!.node.url; _wsurl = chain.node.wsUrl; - final rpcUrl = config.getRpcUrl(token.chainId.toString()); + final rpcUrl = config.getRpcUrl(chainId: token.chainId.toString(), accountFactoryAddress: accountFactoryAddress.hexEip55); _ethClient = Web3Client( rpcUrl, diff --git a/test/services/config/config_v5_test.dart b/test/services/config/config_v5_test.dart index 633d0194..5f1bf230 100644 --- a/test/services/config/config_v5_test.dart +++ b/test/services/config/config_v5_test.dart @@ -369,7 +369,9 @@ void main() { test('getPrimaryAccountAbstractionConfig returns valid config', () { for (final config in configs) { - final aaConfig = config.getPrimaryAccountAbstractionConfig(); + final aaConfig = config.getAccountAbstractionConfig( + accountFactoryAddress: + config.community.primaryAccountFactory.address); expect(aaConfig.entrypointAddress, isNotEmpty, reason: 'Entrypoint address should not be empty for ${config.community.alias}'); @@ -425,7 +427,9 @@ void main() { group('getAccountAbstractionConfig', () { test('returns primary config when no address provided', () { for (final config in configs) { - final aaConfig = config.getAccountAbstractionConfig(); + final aaConfig = config.getAccountAbstractionConfig( + accountFactoryAddress: + config.community.primaryAccountFactory.address); expect(aaConfig, isA(), reason: 'Should return ERC4337Config for ${config.community.alias}'); @@ -436,18 +440,14 @@ void main() { } }); - test('returns primary config when empty address provided', () { - for (final config in configs) { - final aaConfig = - config.getAccountAbstractionConfig(accountFactoryAddress: ''); - expect(aaConfig, isA(), - reason: - 'Should return ERC4337Config for ${config.community.alias}'); - expect(aaConfig.accountFactoryAddress, - config.community.primaryAccountFactory.address, - reason: - 'Should return primary account factory address when empty string provided for ${config.community.alias}'); - } + test('throws exception when empty address provided', () { + final config = configs.first; + expect( + () => config.getAccountAbstractionConfig(accountFactoryAddress: ''), + throwsException, + reason: + 'Should throw exception when empty account factory address is provided', + ); }); test( @@ -518,7 +518,8 @@ void main() { final expectedUrl = expectedUrls[primaryAccountFactory]; if (expectedUrl != null) { - final actualUrl = config.getRpcUrl(chainId); + final actualUrl = config.getRpcUrl( + chainId: chainId, accountFactoryAddress: primaryAccountFactory); expect(actualUrl, equals(expectedUrl), reason: 'RPC URL mismatch for $alias (primary account factory)'); } @@ -541,7 +542,7 @@ void main() { for (final accountFactory in expectedUrls.keys) { final expectedUrl = expectedUrls[accountFactory]!; final actualUrl = config.getRpcUrl( - chainId, + chainId: chainId, accountFactoryAddress: accountFactory, ); @@ -566,7 +567,7 @@ void main() { final urls = {}; for (final accountFactory in accountFactories) { final url = config.getRpcUrl( - chainId, + chainId: chainId, accountFactoryAddress: accountFactory, ); urls.add(url); @@ -585,7 +586,10 @@ void main() { final config = configs.first; expect( - () => config.getRpcUrl('99999'), + () => config.getRpcUrl( + chainId: '99999', + accountFactoryAddress: + config.community.primaryAccountFactory.address), throwsException, reason: 'Should throw exception for non-existent chain ID', ); @@ -597,7 +601,7 @@ void main() { expect( () => config.getRpcUrl( - chainId, + chainId: chainId, accountFactoryAddress: '0xNonExistentAddress', ), throwsException, From da67ff7c9f9e7daec5cf0d36ae4cd3ab82abdc6c Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Sun, 21 Dec 2025 22:29:22 +0530 Subject: [PATCH 095/148] temp comment out delete keys --- lib/services/accounts/native/android.dart | 3 ++- lib/services/accounts/native/apple.dart | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/services/accounts/native/android.dart b/lib/services/accounts/native/android.dart index 00e12873..81e610ed 100644 --- a/lib/services/accounts/native/android.dart +++ b/lib/services/accounts/native/android.dart @@ -156,7 +156,8 @@ class AndroidAccountsService extends AccountsServiceInterface { await _credentials.write(backup.key, backup.value); // Mark old key for deletion - toDelete.add(oldKey); + // TODO: delete the old key + // toDelete.add(oldKey); } catch (e) { // If we can't determine the account factory address, skip this key debugPrint('Error migrating key $oldKey: $e'); diff --git a/lib/services/accounts/native/apple.dart b/lib/services/accounts/native/apple.dart index f7874c8b..c56dd5d8 100644 --- a/lib/services/accounts/native/apple.dart +++ b/lib/services/accounts/native/apple.dart @@ -266,7 +266,8 @@ class AppleAccountsService extends AccountsServiceInterface { await _credentials.write(backup.key, backup.value); // Mark old key for deletion - toDelete.add(oldKey); + // TODO: delete the old key + // toDelete.add(oldKey); } catch (e) { // If we can't determine the account factory address, skip this key debugPrint('Error migrating key $oldKey: $e'); From ff51ba5a1a6054930f8648fe6189c152f71555b6 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Sun, 21 Dec 2025 23:47:52 +0530 Subject: [PATCH 096/148] service migration versions for new release - considering bad migration versions of branch https://github.com/citizenwallet/app/compare/release/2.0.30...release/2.0.26 --- lib/services/accounts/accounts.dart | 2 +- lib/services/accounts/native/android.dart | 9 +++++++++ lib/services/accounts/native/apple.dart | 11 +++++++++++ lib/services/db/backup/accounts.dart | 9 +++++++-- lib/services/db/backup/db.dart | 2 +- 5 files changed, 29 insertions(+), 4 deletions(-) diff --git a/lib/services/accounts/accounts.dart b/lib/services/accounts/accounts.dart index e4fa2862..a939c4d8 100644 --- a/lib/services/accounts/accounts.dart +++ b/lib/services/accounts/accounts.dart @@ -14,7 +14,7 @@ abstract class AccountsOptionsInterface {} /// /// This is used to store wallet backups and the implementation is platform specific. abstract class AccountsServiceInterface { - final int _version = 5; // TODO: figure out correct version number (Kevin, Others) + final int _version = 7; int get version => _version; diff --git a/lib/services/accounts/native/android.dart b/lib/services/accounts/native/android.dart index 81e610ed..56ae764d 100644 --- a/lib/services/accounts/native/android.dart +++ b/lib/services/accounts/native/android.dart @@ -95,6 +95,15 @@ class AndroidAccountsService extends AccountsServiceInterface { } }, 5: () async { + // bad migration, https://github.com/citizenwallet/app/blob/d4f72940e11f1812c34dfb47c0bffe7488a1c32e/lib/services/accounts/native/android.dart#L146 + }, + 6: () async { + // bad migration, https://github.com/citizenwallet/app/blob/d4f72940e11f1812c34dfb47c0bffe7488a1c32e/lib/services/accounts/native/android.dart#L251 + }, + 7: () async { + // distinguish migration starting from 4 (Others) + //distinguish migration starting from 6 (Kevin, Jonas) + // Read all credentials from secure storage final allValues = await _credentials.readAll(); diff --git a/lib/services/accounts/native/apple.dart b/lib/services/accounts/native/apple.dart index c56dd5d8..6a5f48b5 100644 --- a/lib/services/accounts/native/apple.dart +++ b/lib/services/accounts/native/apple.dart @@ -208,6 +208,17 @@ class AppleAccountsService extends AccountsServiceInterface { } }, 5: () async { + // bad migration, https://github.com/citizenwallet/app/blob/d4f72940e11f1812c34dfb47c0bffe7488a1c32e/lib/services/accounts/native/apple.dart#L154 + }, + 6: () async { + // bad migration, https://github.com/citizenwallet/app/blob/d4f72940e11f1812c34dfb47c0bffe7488a1c32e/lib/services/accounts/native/apple.dart#L264 + }, + 7: () async { + + // distinguish migration starting from 4 (Others) + //distinguish migration starting from 6 (Kevin, Jonas) + + // Read all credentials from Keychain final allValues = await _credentials.readAll(); diff --git a/lib/services/db/backup/accounts.dart b/lib/services/db/backup/accounts.dart index 56ee9746..0562feaf 100644 --- a/lib/services/db/backup/accounts.dart +++ b/lib/services/db/backup/accounts.dart @@ -50,7 +50,8 @@ class DBAccount { return DBAccount( alias: map['alias'], address: EthereumAddress.fromHex(map['address']), - accountFactoryAddress: EthereumAddress.fromHex(map['accountFactoryAddress']), + accountFactoryAddress: + EthereumAddress.fromHex(map['accountFactoryAddress']), name: map['name'], username: map['username'], privateKey: map['privateKey'] != null @@ -67,7 +68,6 @@ String getAccountID(EthereumAddress address, String alias) { return '${address.hexEip55}@$alias'; } - class UserHandle { final String username; final String communityAlias; @@ -121,6 +121,11 @@ class AccountsTable extends DBTable { 'ALTER TABLE $name ADD COLUMN username TEXT DEFAULT NULL', ], 4: [ + // bad migration,https://github.com/citizenwallet/app/blob/d4f72940e11f1812c34dfb47c0bffe7488a1c32e/lib/services/db/backup/accounts.dart#L123 + ], + 5: [ + // Kevin start from 4 + // Others start from 3 'ALTER TABLE $name ADD COLUMN accountFactoryAddress TEXT DEFAULT ""', 'PopulateAccountFactoryAddressMigration', ] diff --git a/lib/services/db/backup/db.dart b/lib/services/db/backup/db.dart index cdeaf97f..595fc9b3 100644 --- a/lib/services/db/backup/db.dart +++ b/lib/services/db/backup/db.dart @@ -40,7 +40,7 @@ class AccountBackupDBService extends DBService { return; }, - version: 4, // TODO: figure out correct version number (Kevin, Others) + version: 5, ); final db = await databaseFactory.openDatabase( From fa090ef9f2a6cc4b00f03f9a380174420d3fc4b7 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 22 Dec 2025 09:39:05 +0530 Subject: [PATCH 097/148] remove debug print --- lib/services/db/app/communities.dart | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/services/db/app/communities.dart b/lib/services/db/app/communities.dart index 7ed443a8..01bb77d2 100644 --- a/lib/services/db/app/communities.dart +++ b/lib/services/db/app/communities.dart @@ -179,8 +179,7 @@ class CommunityTable extends DBTable { final updatedConfigs = await legacyToV4(db, name); await upsert(updatedConfigs); continue; - case 'V5Migration': - debugPrint('V5Migration'); + case 'V5Migration': final updatedConfigs = await V5Migration(db, name); await upsert(updatedConfigs); continue; From 5f75491a42b724c04024ac153695c44503db68d5 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 22 Dec 2025 11:48:22 +0530 Subject: [PATCH 098/148] fix(db): resolve account migration issues and clean up dirty V4 IDs Implements a robust version 5 migration for the accounts table to handle different upgrade paths and fix data corruption caused by a previous migration. Key changes: - Robust Column Addition: Replaces the direct 'ALTER TABLE' with `AddAccountFactoryAddressIfNotExists`. This uses a PRAGMA check to prevent crashes on builds where the column might already exist (e.g., AppKevin path). - ID Cleanup Logic: Introduces `CleanDirtyV4Accounts` to identify and fix accounts using the "bad" ID format (`address@factory@alias`). It reverts these IDs back to the standard format (`address@alias`). - Conflict Handling: During cleanup, ensures that if a correct ID already exists, the dirty duplicate is removed without overwriting existing valid data. - Migration Orchestration: Updates the version 5 migration map to execute these steps in the correct order: verify column -> populate data -> clean IDs. --- lib/services/db/backup/accounts.dart | 98 +++++++++++++++++++++++++++- 1 file changed, 95 insertions(+), 3 deletions(-) diff --git a/lib/services/db/backup/accounts.dart b/lib/services/db/backup/accounts.dart index 0562feaf..835d8762 100644 --- a/lib/services/db/backup/accounts.dart +++ b/lib/services/db/backup/accounts.dart @@ -124,10 +124,12 @@ class AccountsTable extends DBTable { // bad migration,https://github.com/citizenwallet/app/blob/d4f72940e11f1812c34dfb47c0bffe7488a1c32e/lib/services/db/backup/accounts.dart#L123 ], 5: [ - // Kevin start from 4 - // Others start from 3 - 'ALTER TABLE $name ADD COLUMN accountFactoryAddress TEXT DEFAULT ""', + // This migration handles both paths: + // - AppKevin (v4 -> v5): column already exists, just populate + // - AppOthers (v3 -> v5): column doesn't exist, add it then populate + 'AddAccountFactoryAddressIfNotExists', 'PopulateAccountFactoryAddressMigration', + 'CleanDirtyV4Accounts', ] }; @@ -138,9 +140,17 @@ class AccountsTable extends DBTable { for (final query in queries) { try { switch (query) { + case 'AddAccountFactoryAddressIfNotExists': + await _addAccountFactoryAddressIfNotExists(db, name); + continue; + case 'PopulateAccountFactoryAddressMigration': await _populateAccountFactoryAddressMigration(db, name); continue; + + case 'CleanDirtyV4Accounts': + await _cleanDirtyV4Accounts(db, name); + continue; } await db.execute(query); @@ -153,6 +163,24 @@ class AccountsTable extends DBTable { } } + Future _addAccountFactoryAddressIfNotExists( + Database db, + String name, + ) async { + final columnName = 'accountFactoryAddress'; + + // Check if column exists + final tableInfo = await db.rawQuery('PRAGMA table_info($name)'); + final hasColumn = tableInfo.any((col) => col['name'] == columnName); + + if (hasColumn) { + return; + } + + await db + .execute('ALTER TABLE $name ADD COLUMN $columnName TEXT DEFAULT ""'); + } + Future _populateAccountFactoryAddressMigration( Database db, String name) async { // Work directly with raw DB data, not DBAccount objects @@ -174,6 +202,70 @@ class AccountsTable extends DBTable { } } + Future _cleanDirtyV4Accounts(Database db, String name) async { + // Get all accounts from the database + List> accounts = await db.query(name); + + for (final Map account in accounts) { + final String currentId = account['id'] as String; + final String alias = account['alias'] as String; + final String addressStr = account['address'] as String; + final String accountFactoryAddressStr = + account['accountFactoryAddress'] as String; + + // Construct what the ID should be in the old format + final String oldFormatId = getAccountID(EthereumAddress.fromHex(addressStr), alias); + + // Construct what the ID would be in the new (bad) format + final String newFormatId = '$addressStr@$accountFactoryAddressStr@$alias'; + + // Check if current ID matches the new (bad) format + if (currentId == newFormatId) { + debugPrint('Cleaning dirty account: $currentId -> $oldFormatId'); + + // Check if an account with the old format ID already exists + final existingOldFormat = await db.query( + name, + where: 'id = ?', + whereArgs: [oldFormatId], + ); + + if (existingOldFormat.isEmpty) { + // No conflict: Insert new row with old ID format + final Map cleanAccount = Map.from(account); + cleanAccount['id'] = oldFormatId; + + await db.insert( + name, + cleanAccount, + conflictAlgorithm: ConflictAlgorithm.replace, + ); + + debugPrint('Inserted clean account with old format ID: $oldFormatId'); + } else { + // Conflict exists: Keep the existing old format, just log + debugPrint( + 'Old format ID already exists, keeping existing: $oldFormatId'); + } + + // Delete the row with new (bad) format ID + await db.delete( + name, + where: 'id = ?', + whereArgs: [currentId], + ); + + debugPrint('Deleted dirty account with new format ID: $currentId'); + } else if (currentId == oldFormatId) { + // Already in correct old format, do nothing + debugPrint('Account already in correct format: $currentId'); + } else { + // Unexpected format, log warning but don't touch it + debugPrint('Warning: Unexpected ID format: $currentId'); + } + } + } + // get account by id Future get(EthereumAddress address, String alias) async { final List> maps = await db.query( From e579e6945fe2e97b80ce285956071caf70d67b3c Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 22 Dec 2025 13:26:11 +0530 Subject: [PATCH 099/148] fix(db): enforce account ID normalization for unexpected formats Updates the `_cleanDirtyV4Accounts` migration logic to handle and repair accounts that do not match either the standard format or the known "bad" V4 format. Key changes: - Active Correction: Replaces the warning log for "unexpected formats" with an active migration to the standard `oldFormatId`. - Integrity Protection: Before migrating an unexpected ID, the code checks for existing standard format IDs to prevent primary key conflicts. - Data Preservation: If no conflict exists, it creates a corrected record with the standard ID while preserving all associated account data. - Cleanup: Automatically deletes the record with the malformed/unexpected ID after the migration or conflict check is complete. --- lib/services/db/backup/accounts.dart | 40 ++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/lib/services/db/backup/accounts.dart b/lib/services/db/backup/accounts.dart index 835d8762..20248722 100644 --- a/lib/services/db/backup/accounts.dart +++ b/lib/services/db/backup/accounts.dart @@ -260,8 +260,44 @@ class AccountsTable extends DBTable { // Already in correct old format, do nothing debugPrint('Account already in correct format: $currentId'); } else { - // Unexpected format, log warning but don't touch it - debugPrint('Warning: Unexpected ID format: $currentId'); + // Unexpected format - force to old format + debugPrint( + 'Warning: Unexpected ID format, forcing to old format: $currentId -> $oldFormatId'); + + // Check if an account with the old format ID already exists + final existingOldFormat = await db.query( + name, + where: 'id = ?', + whereArgs: [oldFormatId], + ); + + if (existingOldFormat.isEmpty) { + // No conflict: Insert new row with old ID format, preserving all other columns + final Map cleanAccount = Map.from(account); + cleanAccount['id'] = oldFormatId; + + await db.insert( + name, + cleanAccount, + conflictAlgorithm: ConflictAlgorithm.replace, + ); + + debugPrint( + 'Inserted account with corrected old format ID: $oldFormatId'); + } else { + // Conflict exists: Keep the existing old format + debugPrint( + 'Old format ID already exists, keeping existing: $oldFormatId'); + } + + // Delete the row with unexpected format ID + await db.delete( + name, + where: 'id = ?', + whereArgs: [currentId], + ); + + debugPrint('Deleted account with unexpected format ID: $currentId'); } } } From 64bcadca49c9aed3a2ebfff5990686bd0b06bc9d Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 22 Dec 2025 15:45:45 +0530 Subject: [PATCH 100/148] feat: add migration #7 to reconcile AppKevin and AppOthers credential formats Implements a unified migration strategy (v7) for both iOS and Android platforms to handle two divergent migration histories: - AppKevin users (v6->v7): Had bad migrations in v5-v6 that created credentials with incorrect accountFactoryAddress values in the key format. Migration #7 detects and cleans these dirty keys by reconstructing them with the correct accountFactoryAddress from getAccountFactoryAddressByAlias(). - AppOthers users (v4->v7): Skip empty migrations v5-v6 and migrate directly from old format (address@alias) to new format (address@accountFactoryAddress@alias) using the correct accountFactoryAddress. Changes: - Refactored key detection to categorize credentials into oldFormatKeys (2 parts) and dirtyNewFormatKeys (3 parts) for targeted handling - Added AppKevin path: validates existing 3-part keys and recreates them with correct accountFactoryAddress if needed (case-insensitive comparison) - Enhanced AppOthers path: migrates 2-part keys to 3-part format with proper accountFactoryAddress lookup - Enabled deletion of old/dirty keys (removed TODO comments) - Added comprehensive debug logging for migration tracking - Implemented idempotent logic: keys already in correct format are skipped Both user groups converge to the same final state at version 7 with credentials in format: address@accountFactoryAddress@alias where accountFactoryAddress is correctly determined by community alias. Platforms: iOS (apple.dart), Android (android.dart) --- lib/services/accounts/native/android.dart | 114 +++++++++++++++++----- lib/services/accounts/native/apple.dart | 113 ++++++++++++++++----- 2 files changed, 180 insertions(+), 47 deletions(-) diff --git a/lib/services/accounts/native/android.dart b/lib/services/accounts/native/android.dart index 56ae764d..40d3db09 100644 --- a/lib/services/accounts/native/android.dart +++ b/lib/services/accounts/native/android.dart @@ -101,45 +101,58 @@ class AndroidAccountsService extends AccountsServiceInterface { // bad migration, https://github.com/citizenwallet/app/blob/d4f72940e11f1812c34dfb47c0bffe7488a1c32e/lib/services/accounts/native/android.dart#L251 }, 7: () async { - // distinguish migration starting from 4 (Others) - //distinguish migration starting from 6 (Kevin, Jonas) + // This migration handles two paths: + // - AppKevin (v6 -> v7): Clean dirty keys with wrong accountFactoryAddress + // - AppOthers (v4 -> v7): Migrate from old format to new format // Read all credentials from secure storage final allValues = await _credentials.readAll(); - // Filter keys that match the old format: address@alias - // These are keys that don't start with backupPrefix and contain exactly one '@' - final oldFormatKeys = allValues.keys.where((key) { + // Separate keys into different formats + final oldFormatKeys = []; // address@alias + final dirtyNewFormatKeys = + []; // address@accountFactoryAddress@alias (dirty) + + for (final key in allValues.keys) { if (key.startsWith(backupPrefix) || key == versionPrefix || key == pinCodeKey || key == pinCodeCheckKey) { - return false; + continue; } - // Check if it matches address@alias format (one @ symbol) + final parts = key.split('@'); - if (parts.length != 2) { - return false; - } - // Validate that the first part is a valid Ethereum address - try { - EthereumAddress.fromHex(parts[0]); - return true; - } catch (_) { - return false; + // Check for old format: address@alias (2 parts) + if (parts.length == 2) { + try { + EthereumAddress.fromHex(parts[0]); + oldFormatKeys.add(key); + } catch (_) { + // Not a valid address, skip + } + } + // Check for new format: address@accountFactoryAddress@alias (3 parts) + else if (parts.length == 3) { + try { + EthereumAddress.fromHex(parts[0]); + EthereumAddress.fromHex(parts[1]); + dirtyNewFormatKeys.add(key); + } catch (_) { + // Not valid addresses, skip + } } - }).toList(); + } final toDelete = []; + // Handle AppOthers path: Migrate old format keys to new format for (final oldKey in oldFormatKeys) { final privateKeyValue = allValues[oldKey]; if (privateKeyValue == null) { continue; } - // Parse the old key format: address@alias final parts = oldKey.split('@'); if (parts.length != 2) { continue; @@ -149,7 +162,7 @@ class AndroidAccountsService extends AccountsServiceInterface { final alias = parts[1]; try { - // Get the account factory address for this alias + // Get the correct account factory address for this alias final accountFactoryAddress = getAccountFactoryAddressByAlias(alias); @@ -164,19 +177,74 @@ class AndroidAccountsService extends AccountsServiceInterface { // Write the credential with the new key format await _credentials.write(backup.key, backup.value); + debugPrint('Migrated old format key: $oldKey -> ${backup.key}'); + // Mark old key for deletion - // TODO: delete the old key - // toDelete.add(oldKey); + toDelete.add(oldKey); } catch (e) { - // If we can't determine the account factory address, skip this key debugPrint('Error migrating key $oldKey: $e'); continue; } } - // Delete all old format keys + // Handle AppKevin path: Clean dirty new format keys + for (final dirtyKey in dirtyNewFormatKeys) { + final privateKeyValue = allValues[dirtyKey]; + if (privateKeyValue == null) { + continue; + } + + final parts = dirtyKey.split('@'); + if (parts.length != 3) { + continue; + } + + final address = parts[0]; + final dirtyAccountFactoryAddress = parts[1]; + final alias = parts[2]; + + try { + // Get the CORRECT account factory address for this alias + final correctAccountFactoryAddress = + getAccountFactoryAddressByAlias(alias); + + // Check if the dirty key has the wrong accountFactoryAddress + if (dirtyAccountFactoryAddress.toLowerCase() != + correctAccountFactoryAddress.toLowerCase()) { + debugPrint( + 'Found dirty key with wrong accountFactoryAddress: $dirtyKey'); + debugPrint(' Dirty: $dirtyAccountFactoryAddress'); + debugPrint(' Correct: $correctAccountFactoryAddress'); + + // Create a BackupWalletV5 with the CORRECT account factory address + final cleanBackup = BackupWalletV5( + address: address, + alias: alias, + accountFactoryAddress: correctAccountFactoryAddress, + privateKey: privateKeyValue, + ); + + // Write the credential with the correct key format + await _credentials.write(cleanBackup.key, cleanBackup.value); + + debugPrint('Cleaned dirty key: $dirtyKey -> ${cleanBackup.key}'); + + // Mark dirty key for deletion + toDelete.add(dirtyKey); + } else { + // Key already has correct accountFactoryAddress, no action needed + debugPrint('Key already correct: $dirtyKey'); + } + } catch (e) { + debugPrint('Error cleaning dirty key $dirtyKey: $e'); + continue; + } + } + + // Delete all old and dirty keys for (final key in toDelete) { await _credentials.delete(key); + debugPrint('Deleted old/dirty key: $key'); } }, }; diff --git a/lib/services/accounts/native/apple.dart b/lib/services/accounts/native/apple.dart index 6a5f48b5..ef140db0 100644 --- a/lib/services/accounts/native/apple.dart +++ b/lib/services/accounts/native/apple.dart @@ -214,44 +214,55 @@ class AppleAccountsService extends AccountsServiceInterface { // bad migration, https://github.com/citizenwallet/app/blob/d4f72940e11f1812c34dfb47c0bffe7488a1c32e/lib/services/accounts/native/apple.dart#L264 }, 7: () async { - - // distinguish migration starting from 4 (Others) - //distinguish migration starting from 6 (Kevin, Jonas) - + // This migration handles two paths: + // - AppKevin (v6 -> v7): Clean dirty keys with wrong accountFactoryAddress + // - AppOthers (v4 -> v7): Migrate from old format to new format // Read all credentials from Keychain final allValues = await _credentials.readAll(); - // Filter keys that match the old format: address@alias - // These are keys that don't start with backupPrefix and contain exactly one '@' - final oldFormatKeys = allValues.keys.where((key) { + // Separate keys into different formats + final oldFormatKeys = []; // address@alias + final dirtyNewFormatKeys = + []; // address@accountFactoryAddress@alias (dirty) + + for (final key in allValues.keys) { if (key.startsWith(backupPrefix) || key == versionPrefix) { - return false; + continue; } - // Check if it matches address@alias format (one @ symbol) + final parts = key.split('@'); - if (parts.length != 2) { - return false; - } - // Validate that the first part is a valid Ethereum address - try { - EthereumAddress.fromHex(parts[0]); - return true; - } catch (_) { - return false; + // Check for old format: address@alias (2 parts) + if (parts.length == 2) { + try { + EthereumAddress.fromHex(parts[0]); + oldFormatKeys.add(key); + } catch (_) { + // Not a valid address, skip + } + } + // Check for new format: address@accountFactoryAddress@alias (3 parts) + else if (parts.length == 3) { + try { + EthereumAddress.fromHex(parts[0]); + EthereumAddress.fromHex(parts[1]); + dirtyNewFormatKeys.add(key); + } catch (_) { + // Not valid addresses, skip + } } - }).toList(); + } final toDelete = []; + // Handle AppOthers path: Migrate old format keys to new format for (final oldKey in oldFormatKeys) { final privateKeyValue = allValues[oldKey]; if (privateKeyValue == null) { continue; } - // Parse the old key format: address@alias final parts = oldKey.split('@'); if (parts.length != 2) { continue; @@ -261,7 +272,7 @@ class AppleAccountsService extends AccountsServiceInterface { final alias = parts[1]; try { - // Get the account factory address for this alias + // Get the correct account factory address for this alias final accountFactoryAddress = getAccountFactoryAddressByAlias(alias); @@ -276,16 +287,70 @@ class AppleAccountsService extends AccountsServiceInterface { // Write the credential with the new key format await _credentials.write(backup.key, backup.value); + debugPrint('Migrated old format key: $oldKey -> ${backup.key}'); + // Mark old key for deletion - // TODO: delete the old key - // toDelete.add(oldKey); + toDelete.add(oldKey); } catch (e) { - // If we can't determine the account factory address, skip this key debugPrint('Error migrating key $oldKey: $e'); continue; } } + // Handle AppKevin path: Clean dirty new format keys + for (final dirtyKey in dirtyNewFormatKeys) { + final privateKeyValue = allValues[dirtyKey]; + if (privateKeyValue == null) { + continue; + } + + final parts = dirtyKey.split('@'); + if (parts.length != 3) { + continue; + } + + final address = parts[0]; + final dirtyAccountFactoryAddress = parts[1]; + final alias = parts[2]; + + try { + // Get the CORRECT account factory address for this alias + final correctAccountFactoryAddress = + getAccountFactoryAddressByAlias(alias); + + // Check if the dirty key has the wrong accountFactoryAddress + if (dirtyAccountFactoryAddress.toLowerCase() != + correctAccountFactoryAddress.toLowerCase()) { + debugPrint( + 'Found dirty key with wrong accountFactoryAddress: $dirtyKey'); + debugPrint(' Dirty: $dirtyAccountFactoryAddress'); + debugPrint(' Correct: $correctAccountFactoryAddress'); + + // Create a BackupWalletV5 with the CORRECT account factory address + final cleanBackup = BackupWalletV5( + address: address, + alias: alias, + accountFactoryAddress: correctAccountFactoryAddress, + privateKey: privateKeyValue, + ); + + // Write the credential with the correct key format + await _credentials.write(cleanBackup.key, cleanBackup.value); + + debugPrint('Cleaned dirty key: $dirtyKey -> ${cleanBackup.key}'); + + // Mark dirty key for deletion + toDelete.add(dirtyKey); + } else { + // Key already has correct accountFactoryAddress, no action needed + debugPrint('Key already correct: $dirtyKey'); + } + } catch (e) { + debugPrint('Error cleaning dirty key $dirtyKey: $e'); + continue; + } + } + // Delete all old format keys for (final key in toDelete) { final saved = await _credentials.containsKey(key); From 2733062c79535d58ca5dc0494b60ed6d9fbfbd92 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Tue, 23 Dec 2025 15:46:00 +0530 Subject: [PATCH 101/148] use debug print --- lib/services/db/app/communities.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/services/db/app/communities.dart b/lib/services/db/app/communities.dart index 01bb77d2..ec1f798b 100644 --- a/lib/services/db/app/communities.dart +++ b/lib/services/db/app/communities.dart @@ -219,8 +219,8 @@ class CommunityTable extends DBTable { await batch.commit(noResult: true); } catch (e, s) { - print('Error seeding communities table: $e'); - print('Stack trace: $s'); + debugPrint('Error seeding communities table: $e'); + debugPrintStack(stackTrace: s); } } From 21aa9b462ab47d67d53c65c62fc47034c0bf99d0 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Tue, 23 Dec 2025 15:52:42 +0530 Subject: [PATCH 102/148] TODO: delete old keys after testing --- lib/services/accounts/native/android.dart | 9 +++++---- lib/services/accounts/native/apple.dart | 13 +++++++------ 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/lib/services/accounts/native/android.dart b/lib/services/accounts/native/android.dart index 40d3db09..d3f7ed0b 100644 --- a/lib/services/accounts/native/android.dart +++ b/lib/services/accounts/native/android.dart @@ -242,10 +242,11 @@ class AndroidAccountsService extends AccountsServiceInterface { } // Delete all old and dirty keys - for (final key in toDelete) { - await _credentials.delete(key); - debugPrint('Deleted old/dirty key: $key'); - } + // TODO: delete old keys after testing + // for (final key in toDelete) { + // await _credentials.delete(key); + // debugPrint('Deleted old/dirty key: $key'); + // } }, }; diff --git a/lib/services/accounts/native/apple.dart b/lib/services/accounts/native/apple.dart index ef140db0..8ea057f6 100644 --- a/lib/services/accounts/native/apple.dart +++ b/lib/services/accounts/native/apple.dart @@ -352,12 +352,13 @@ class AppleAccountsService extends AccountsServiceInterface { } // Delete all old format keys - for (final key in toDelete) { - final saved = await _credentials.containsKey(key); - if (saved) { - await _credentials.delete(key); - } - } + // TODO: delete old keys after testing + // for (final key in toDelete) { + // final saved = await _credentials.containsKey(key); + // if (saved) { + // await _credentials.delete(key); + // } + // } }, }; From cf50a66504b614cb1b1696f05c1f4663048d1506 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Tue, 23 Dec 2025 15:53:33 +0530 Subject: [PATCH 103/148] debug print --- lib/services/accounts/native/android.dart | 3 ++- lib/services/accounts/native/apple.dart | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/services/accounts/native/android.dart b/lib/services/accounts/native/android.dart index d3f7ed0b..ef22ded1 100644 --- a/lib/services/accounts/native/android.dart +++ b/lib/services/accounts/native/android.dart @@ -235,8 +235,9 @@ class AndroidAccountsService extends AccountsServiceInterface { // Key already has correct accountFactoryAddress, no action needed debugPrint('Key already correct: $dirtyKey'); } - } catch (e) { + } catch (e,s) { debugPrint('Error cleaning dirty key $dirtyKey: $e'); + debugPrintStack(stackTrace: s); continue; } } diff --git a/lib/services/accounts/native/apple.dart b/lib/services/accounts/native/apple.dart index 8ea057f6..371e5c91 100644 --- a/lib/services/accounts/native/apple.dart +++ b/lib/services/accounts/native/apple.dart @@ -345,8 +345,9 @@ class AppleAccountsService extends AccountsServiceInterface { // Key already has correct accountFactoryAddress, no action needed debugPrint('Key already correct: $dirtyKey'); } - } catch (e) { + } catch (e,s) { debugPrint('Error cleaning dirty key $dirtyKey: $e'); + debugPrintStack(stackTrace: s); continue; } } From 9285b036fd42a66c4fc67ee999631cbe86f5db8a Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Tue, 6 Jan 2026 09:35:27 +0530 Subject: [PATCH 104/148] feat: add meta attribute support to plugin config for customizable banner text - Add optional 'meta' field to PluginConfig class to store custom metadata - Update CommunityClosedBanner to accept PluginConfig and use meta values - Support custom title, description, and button text from plugin meta - Refactor banner layout for improved centering and visual hierarchy - Remove Stack-based layout in favor of cleaner Column structure - Add SingleChildScrollView for better overflow handling - Fall back to localized text when meta values are not provided This enables communities to customize the closed banner messaging through the offboard plugin configuration without code changes. --- lib/screens/wallet/screen.dart | 15 +- lib/services/config/config.dart | 6 +- .../communities/community_closed_banner.dart | 193 +++++++++--------- 3 files changed, 110 insertions(+), 104 deletions(-) diff --git a/lib/screens/wallet/screen.dart b/lib/screens/wallet/screen.dart index d19d0d70..de525f8e 100644 --- a/lib/screens/wallet/screen.dart +++ b/lib/screens/wallet/screen.dart @@ -1286,9 +1286,10 @@ class WalletScreenState extends State .resolveFrom(context), borderRadius: BorderRadius.circular(45), border: Border.all( - color: (config?.online == false || isCommunityClosed) - ? scanQrDisabledColor - : Theme.of(context).colors.surfacePrimary, + color: + (config?.online == false || isCommunityClosed) + ? scanQrDisabledColor + : Theme.of(context).colors.surfacePrimary, width: 3, ), boxShadow: [ @@ -1309,9 +1310,10 @@ class WalletScreenState extends State child: Icon( CupertinoIcons.qrcode_viewfinder, size: 60, - color: (config?.online == false || isCommunityClosed) - ? scanQrDisabledColor - : Theme.of(context).colors.surfacePrimary, + color: + (config?.online == false || isCommunityClosed) + ? scanQrDisabledColor + : Theme.of(context).colors.surfacePrimary, ), ), ), @@ -1409,6 +1411,7 @@ class WalletScreenState extends State }); }, display: isCommunityClosed, + offboardPlugin: offboardPlugin, ), OfflineBanner( communityUrl: config?.community.url ?? '', diff --git a/lib/services/config/config.dart b/lib/services/config/config.dart index 486226dc..8bcb728c 100644 --- a/lib/services/config/config.dart +++ b/lib/services/config/config.dart @@ -370,6 +370,7 @@ class PluginConfig { final bool hidden; final bool signature; final bool featured; + final Map? meta; PluginConfig({ required this.name, @@ -380,6 +381,7 @@ class PluginConfig { this.hidden = false, this.signature = false, this.featured = false, + this.meta, }); factory PluginConfig.fromJson(Map json) { @@ -394,6 +396,7 @@ class PluginConfig { hidden: json['hidden'] ?? false, signature: json['signature'] ?? false, featured: json['featured'] ?? false, + meta: json['meta'] as Map?, ); } @@ -412,13 +415,14 @@ class PluginConfig { 'hidden': hidden, 'signature': signature, 'featured': featured, + if (meta != null) 'meta': meta, }; } // to string @override String toString() { - return 'PluginConfig{name: $name, icon: $icon, url: $url, launchMode: $launchMode, action: $action, hidden: $hidden, signature: $signature, featured: $featured}'; + return 'PluginConfig{name: $name, icon: $icon, url: $url, launchMode: $launchMode, action: $action, hidden: $hidden, signature: $signature, featured: $featured, meta: $meta}'; } } diff --git a/lib/widgets/communities/community_closed_banner.dart b/lib/widgets/communities/community_closed_banner.dart index d1b76af2..5111c4c6 100644 --- a/lib/widgets/communities/community_closed_banner.dart +++ b/lib/widgets/communities/community_closed_banner.dart @@ -1,5 +1,6 @@ import 'dart:async'; +import 'package:citizenwallet/services/config/config.dart'; import 'package:citizenwallet/theme/provider.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/services.dart'; @@ -10,12 +11,14 @@ class CommunityClosedBanner extends StatefulWidget { final VoidCallback? handleOffboardPlugin; final VoidCallback? onDismiss; final bool display; + final PluginConfig? offboardPlugin; const CommunityClosedBanner({ super.key, this.handleOffboardPlugin, this.onDismiss, this.display = false, + this.offboardPlugin, }); @override @@ -47,7 +50,7 @@ class _CommunityClosedBannerState extends State Timer? _hideTimer; @override -void initState() { + void initState() { super.initState(); _display = widget.display; @@ -158,7 +161,7 @@ void initState() { }); } -void _handleDragUpdate(DragUpdateDetails details) { + void _handleDragUpdate(DragUpdateDetails details) { setState(() { // 1. Update the drag offset based on user movement (details.delta.dy) // Dragging down (dy > 0) increases _dragOffset. @@ -250,9 +253,6 @@ void _handleDragUpdate(DragUpdateDetails details) { // It's either the real-time drag (if dragging) or the animated value (if snapping back/dismissing) final currentDragOffset = _isDragging ? _dragOffset : _dragAnimation.value; - // Calculate the total offset including the initial slide-in/out and the current drag/animation - final totalOffset = _slideOffset + currentDragOffset; - return Positioned( bottom: 0, left: 0, @@ -262,27 +262,22 @@ void _handleDragUpdate(DragUpdateDetails details) { onVerticalDragUpdate: _handleDragUpdate, onVerticalDragEnd: _handleDragEnd, child: AnimatedContainer( - // Keep AnimatedContainer for the initial slide-in/out (_slideOffset) duration: const Duration(milliseconds: 400), curve: Curves.easeOut, - // Apply the main slide-in/out offset here transform: Matrix4.translationValues(0, _slideOffset, 0), height: bannerHeight, - // Wrap the content in AnimatedBuilder to handle the drag animation child: AnimatedBuilder( animation: _dragAnimationController, builder: (context, child) { - // Apply the drag/snap-back/dismissal offset here return Transform.translate( offset: Offset(0, currentDragOffset), child: child, ); }, child: Container( - // Now the main content container - padding: EdgeInsets.fromLTRB(20, 10, 20, safeBottomPadding + 20), + padding: EdgeInsets.fromLTRB(20, 10, 20, safeBottomPadding + 20), decoration: BoxDecoration( - color: const Color(0xFFF5F5F0), // Pearl white + color: const Color(0xFFF5F5F0), borderRadius: const BorderRadius.only( topLeft: Radius.circular(20), topRight: Radius.circular(20), @@ -295,102 +290,106 @@ void _handleDragUpdate(DragUpdateDetails details) { ), ], ), - child: Stack( + child: Column( + mainAxisSize: MainAxisSize.min, children: [ - // ... rest of the banner content remains the same // Drag handle indicator - Positioned( - top: 8, - left: 0, - right: 0, - child: Center( - child: Container( - width: 40, - height: 4, - decoration: BoxDecoration( - color: - Theme.of(context).colors.black.withOpacity(0.2), - borderRadius: BorderRadius.circular(2), - ), - ), + Container( + width: 40, + height: 4, + margin: const EdgeInsets.only(top: 8, bottom: 30), + decoration: BoxDecoration( + color: Theme.of(context).colors.black.withOpacity(0.2), + borderRadius: BorderRadius.circular(2), ), ), - Padding( - padding: const EdgeInsets.only(top: 30), - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Icon( - CupertinoIcons.info_circle_fill, - size: 60, - color: Theme.of(context) - .colors - .primary - .resolveFrom(context), - ), - const SizedBox(height: 16), - Text( - AppLocalizations.of(context)!.communityClosed, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 24, - fontWeight: FontWeight.bold, - color: Theme.of(context).colors.black, - ), - ), - const SizedBox(height: 12), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 20), - child: Text( - AppLocalizations.of(context)! - .communityClosedDescription, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 16, - fontWeight: FontWeight.normal, - color: Theme.of(context) - .colors - .black - .withOpacity(0.7), - height: 1.5, - ), - ), - ), - const SizedBox(height: 20), - if (widget.handleOffboardPlugin != null) - CupertinoButton( - padding: const EdgeInsets.symmetric( - horizontal: 30, - vertical: 12, - ), + // Content + Expanded( + child: SingleChildScrollView( + physics: const AlwaysScrollableScrollPhysics(), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Icon( + CupertinoIcons.info_circle_fill, + size: 60, color: Theme.of(context) .colors .primary .resolveFrom(context), - borderRadius: BorderRadius.circular(25), - onPressed: handleLearnMore, - child: Row( - mainAxisSize: MainAxisSize.min, - children: [ - Text( - AppLocalizations.of(context)!.learnMore, - style: TextStyle( - fontSize: 16, - fontWeight: FontWeight.w600, + ), + const SizedBox(height: 20), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Text( + widget.offboardPlugin?.meta?['title'] + as String? ?? + AppLocalizations.of(context)!.communityClosed, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 24, + fontWeight: FontWeight.bold, + color: Theme.of(context).colors.black, + ), + ), + ), + const SizedBox(height: 12), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 30), + child: Text( + widget.offboardPlugin?.meta?['desc'] as String? ?? + AppLocalizations.of(context)! + .communityClosedDescription, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.normal, + color: Theme.of(context) + .colors + .black + .withOpacity(0.7), + height: 1.5, + ), + ), + ), + const SizedBox(height: 30), + if (widget.handleOffboardPlugin != null) + CupertinoButton( + padding: const EdgeInsets.symmetric( + horizontal: 32, + vertical: 14, + ), + color: Theme.of(context) + .colors + .primary + .resolveFrom(context), + borderRadius: BorderRadius.circular(25), + onPressed: handleLearnMore, + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + widget.offboardPlugin?.meta?['button'] + as String? ?? + AppLocalizations.of(context)!.learnMore, + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w600, + color: Theme.of(context).colors.white, + ), + ), + const SizedBox(width: 8), + Icon( + CupertinoIcons.arrow_right_circle_fill, color: Theme.of(context).colors.white, + size: 20, ), - ), - const SizedBox(width: 8), - Icon( - CupertinoIcons.arrow_right_circle_fill, - color: Theme.of(context).colors.white, - size: 20, - ), - ], + ], + ), ), - ), - ], + ], + ), ), ), ], From b640338010fec7cc3876e0aade9ec952d2d8788b Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Tue, 6 Jan 2026 14:42:17 +0530 Subject: [PATCH 105/148] Add offboard plugin for Citizen Pay migration Add new offboard plugin to wallet.pay.brussels community configuration to enable users to migrate their balance to the Citizen Pay App. The plugin launches a webview to the migration page with appropriate metadata including title, description, and button text. --- assets/config/v4/communities.json | 13 +++++++++++++ assets/config/v4/communities.test.json | 13 +++++++++++++ 2 files changed, 26 insertions(+) diff --git a/assets/config/v4/communities.json b/assets/config/v4/communities.json index 1e3f8688..9a2ae859 100644 --- a/assets/config/v4/communities.json +++ b/assets/config/v4/communities.json @@ -161,6 +161,19 @@ "action": "topup", "signature": true, "featured": true + }, + { + "name": "Offboard", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/wallet.pay.brussels.png", + "url": "https://my.citizenpay.xyz/cw-migrate", + "launch_mode": "webview", + "signature": true, + "action": "offboard", + "meta": { + "title": "Migrate to Citizen Pay", + "desc": "This community has moved. Migrate your balance over to the Citizen Pay App.", + "button": "Start Migration" + } } ], "config_location": "https://wallet.pay.brussels/config/community.json", diff --git a/assets/config/v4/communities.test.json b/assets/config/v4/communities.test.json index e3d83def..086c4b3d 100644 --- a/assets/config/v4/communities.test.json +++ b/assets/config/v4/communities.test.json @@ -161,6 +161,19 @@ "action": "topup", "signature": true, "featured": true + }, + { + "name": "Offboard", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/wallet.pay.brussels.png", + "url": "https://my.citizenpay.xyz/cw-migrate", + "launch_mode": "webview", + "signature": true, + "action": "offboard", + "meta": { + "title": "Migrate to Citizen Pay", + "desc": "This community has moved. Migrate your balance over to the Citizen Pay App.", + "button": "Start Migration" + } } ], "config_location": "https://wallet.pay.brussels/config/community.json", From 47790aba78cd92b734c34fe5192b69182bf88f87 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Tue, 6 Jan 2026 14:54:55 +0530 Subject: [PATCH 106/148] increase android min sdk version --- android/app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index f5a2eb71..a0519186 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -52,7 +52,7 @@ android { applicationId "xyz.citizenwallet.wallet" // You can update the following values to match your application needs. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdkVersion Math.max(flutter.minSdkVersion, 21) + minSdkVersion 23 targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName From d16dd1c8991174cd2eb4eaa7ed587b0812e1a109 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Tue, 6 Jan 2026 15:07:56 +0530 Subject: [PATCH 107/148] build for testflight --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 82726d72..c1042a95 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: citizenwallet -version: 2.0.30+290 +version: 2.0.31+292 publish_to: none description: A mobile wallet for your community. environment: From 4b107b84b4bfaac2727db39adbb2075b5e784917 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Tue, 6 Jan 2026 15:43:31 +0530 Subject: [PATCH 108/148] add offboard plugin to brussels pay v5 --- assets/config/v5/communities.json | 13 +++++++++++++ assets/config/v5/communities.test.json | 13 +++++++++++++ 2 files changed, 26 insertions(+) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index 396deeb6..b8a1a410 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -146,6 +146,19 @@ "name": "Top Up", "action": "topup", "signature": true + }, + { + "name": "Offboard", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/wallet.pay.brussels.png", + "url": "https://my.citizenpay.xyz/cw-migrate", + "launch_mode": "webview", + "signature": true, + "action": "offboard", + "meta": { + "title": "Migrate to Citizen Pay", + "desc": "This community has moved. Migrate your balance over to the Citizen Pay App.", + "button": "Start Migration" + } } ], "version": 5, diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index 396deeb6..b8a1a410 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -146,6 +146,19 @@ "name": "Top Up", "action": "topup", "signature": true + }, + { + "name": "Offboard", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/wallet.pay.brussels.png", + "url": "https://my.citizenpay.xyz/cw-migrate", + "launch_mode": "webview", + "signature": true, + "action": "offboard", + "meta": { + "title": "Migrate to Citizen Pay", + "desc": "This community has moved. Migrate your balance over to the Citizen Pay App.", + "button": "Start Migration" + } } ], "version": 5, From df4f4fb5a63e502e427df417235f8d5cdfcaf36d Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Tue, 6 Jan 2026 16:27:53 +0530 Subject: [PATCH 109/148] Fix database initialization deadlock during app launch Fixed a critical issue where the app would hang indefinitely during database initialization when seeding the communities table. Root cause: The seed() function was being called inside SQLite's onCreate transaction callback, causing a deadlock when attempting to query and insert data while the database was still locked by the onCreate transaction. Solution: Moved the seed() operation to execute AFTER the database is fully opened and the onCreate transaction completes. Added a flag to track new database creation and only seed when necessary. Changes: - Refactored AppDBService.openDB() to seed after database initialization - Removed seed() call from CommunityTable.create() to avoid transaction conflicts - Added comprehensive debug logging throughout the initialization process - Added detailed logging in ConfigService.getLocalConfigs() for better visibility - Added error handling to prevent app crashes if seeding fails This ensures the app launches successfully without hanging, even with large configuration files. --- lib/services/config/service.dart | 31 ++++++++++++++++---- lib/services/db/app/communities.dart | 44 +++++++++++++++++++++++----- lib/services/db/app/db.dart | 29 ++++++++++++++++++ 3 files changed, 92 insertions(+), 12 deletions(-) diff --git a/lib/services/config/service.dart b/lib/services/config/service.dart index aa9fda6c..12c5c743 100644 --- a/lib/services/config/service.dart +++ b/lib/services/config/service.dart @@ -168,12 +168,33 @@ class ConfigService { Future> getLocalConfigs() async { try { - final localConfigs = jsonDecode(await rootBundle.loadString( - 'assets/config/v$version/$communityConfigListFileName.json')); - - final configs = - (localConfigs as List).map((e) => Config.fromJson(e)).toList(); + debugPrint( + '📄 Loading JSON file: assets/config/v$version/$communityConfigListFileName.json'); + final jsonString = await rootBundle.loadString( + 'assets/config/v$version/$communityConfigListFileName.json'); + + debugPrint('📄 JSON loaded, size: ${jsonString.length} chars'); + debugPrint('📄 Parsing JSON...'); + final localConfigs = jsonDecode(jsonString); + + debugPrint( + '📄 JSON parsed, found ${(localConfigs as List).length} items'); + debugPrint('📄 Converting to Config objects...'); + + final configs = []; + for (var i = 0; i < localConfigs.length; i++) { + try { + final config = Config.fromJson(localConfigs[i]); + configs.add(config); + if ((i + 1) % 10 == 0 || i == localConfigs.length - 1) { + debugPrint('📄 Converted ${i + 1}/${localConfigs.length} configs'); + } + } catch (e) { + debugPrint('❌ Error converting config $i: $e'); + } + } + debugPrint('📄 All configs converted successfully'); return configs; } catch (e, s) { debugPrint('ERROR in getLocalConfigs: $e'); diff --git a/lib/services/db/app/communities.dart b/lib/services/db/app/communities.dart index ec1f798b..1c68d3cd 100644 --- a/lib/services/db/app/communities.dart +++ b/lib/services/db/app/communities.dart @@ -153,7 +153,8 @@ class CommunityTable extends DBTable { CREATE INDEX idx_${name}_alias ON $name (alias) '''); - await seed(); + // Don't call seed() here - it will be called after onCreate completes + // This avoids transaction deadlock issues } // Migrates the table @@ -179,7 +180,7 @@ class CommunityTable extends DBTable { final updatedConfigs = await legacyToV4(db, name); await upsert(updatedConfigs); continue; - case 'V5Migration': + case 'V5Migration': final updatedConfigs = await V5Migration(db, name); await upsert(updatedConfigs); continue; @@ -195,32 +196,61 @@ class CommunityTable extends DBTable { } } - Future seed() async { + Future seed(Database db) async { try { + debugPrint('🌱 Starting seed process...'); + // Check if the table is empty + debugPrint('🌱 Checking if table is empty...'); final count = Sqflite.firstIntValue( await db.rawQuery('SELECT COUNT(*) FROM $name')); if (count != null && count > 0) { + debugPrint('🌱 Table already has $count entries, skipping seed'); return; // Table is not empty, skip seeding } + debugPrint('🌱 Loading local configs...'); final localConfigs = await _config.getLocalConfigs(); + debugPrint('🌱 Loaded ${localConfigs.length} configs'); + + if (localConfigs.isEmpty) { + debugPrint('🌱 No configs to seed'); + return; + } + + debugPrint('🌱 Converting configs to DB format...'); + final communities = []; + for (var i = 0; i < localConfigs.length; i++) { + try { + final community = DBCommunity.fromConfig(localConfigs[i]); + communities.add(community); + if ((i + 1) % 10 == 0) { + debugPrint('🌱 Converted ${i + 1}/${localConfigs.length} configs'); + } + } catch (e) { + debugPrint('❌ Error converting config $i: $e'); + } + } + debugPrint('🌱 Converted ${communities.length} configs total'); - // Prepare batch operation for efficient insertion + debugPrint('🌱 Preparing batch insert...'); final batch = db.batch(); - for (final config in localConfigs) { + for (final community in communities) { batch.insert( name, - DBCommunity.fromConfig(config).toMap(), + community.toMap(), ); } + debugPrint('🌱 Committing batch with ${communities.length} inserts...'); await batch.commit(noResult: true); + debugPrint('🌱 Seed completed successfully!'); } catch (e, s) { - debugPrint('Error seeding communities table: $e'); + debugPrint('❌ Error seeding communities table: $e'); debugPrintStack(stackTrace: s); + rethrow; // Rethrow to surface the error } } diff --git a/lib/services/db/app/db.dart b/lib/services/db/app/db.dart index 65e25b60..05df0e95 100644 --- a/lib/services/db/app/db.dart +++ b/lib/services/db/app/db.dart @@ -1,5 +1,6 @@ import 'package:citizenwallet/services/db/db.dart'; import 'package:citizenwallet/services/db/app/communities.dart'; +import 'package:flutter/foundation.dart'; import 'package:sqflite/sqflite.dart'; class AppDBService extends DBService { @@ -15,26 +16,54 @@ class AppDBService extends DBService { @override Future openDB(String path) async { + debugPrint('📂 Opening database at: $path'); + bool isNewDatabase = false; + final options = OpenDatabaseOptions( onConfigure: (db) async { + debugPrint('⚙️ Configuring database...'); communities = CommunityTable(db); }, onCreate: (db, version) async { + debugPrint('🆕 Creating new database (version $version)...'); await communities.create(db); + isNewDatabase = true; // Flag that this is a new database + debugPrint('✅ Database creation complete'); return; }, onUpgrade: (db, oldVersion, newVersion) async { + debugPrint( + '⬆️ Upgrading database from v$oldVersion to v$newVersion...'); await communities.migrate(db, oldVersion, newVersion); + debugPrint('✅ Database upgrade complete'); return; }, version: 3, ); + debugPrint('🔓 Opening database file...'); final db = await databaseFactory.openDatabase( path, options: options, ); + debugPrint('✅ Database file opened (isNew: $isNewDatabase)'); + + // Seed AFTER the database is fully opened and onCreate transaction is complete + if (isNewDatabase) { + debugPrint('🌱 New database detected, starting seed...'); + try { + await communities.seed(db); + debugPrint('✅ Seeding complete'); + } catch (e, s) { + debugPrint('❌ Seeding failed: $e'); + debugPrintStack(stackTrace: s); + // Don't rethrow - allow app to continue even if seeding fails + } + } else { + debugPrint('📊 Existing database, skipping seed'); + } + debugPrint('✅ Database ready'); return db; } } From 524147bc3d695908f7f61446ffbcab5ca69e3425 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Tue, 6 Jan 2026 16:52:27 +0530 Subject: [PATCH 110/148] build for testflight --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 7e522a55..36e4ca3f 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: citizenwallet -version: 2.0.31+292 +version: 2.0.31+293 publish_to: none description: A mobile wallet for your community. environment: From dbfbdbdc3be7dbdb43ed0a2d74e7b3bbbb0f2bac Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 12 Jan 2026 10:59:48 +0530 Subject: [PATCH 111/148] git commit -m "fix: set wallet config before wallet initialization in openWallet Ensures state.config is set synchronously when loading a wallet from storage, preventing mismatch between wallet.alias and config.community.alias. Previously, the config was only updated asynchronously via updateWalletConfigFromRemote(), causing the wallet state to have a wallet loaded but no matching config available. This fix ensures config is available immediately when the wallet is loaded, while still allowing background updates from remote." --- lib/state/wallet/logic.dart | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/state/wallet/logic.dart b/lib/state/wallet/logic.dart index 382c5258..225b8fdf 100644 --- a/lib/state/wallet/logic.dart +++ b/lib/state/wallet/logic.dart @@ -392,6 +392,8 @@ class WalletLogic extends WidgetsBindingObserver { ContactsCache().init(_accountDBService); + _state.setWalletConfig(communityConfig); + updateWalletConfigFromRemote(); _state.setWallet( @@ -545,7 +547,8 @@ class WalletLogic extends WidgetsBindingObserver { privateKey: credentials, name: name, alias: communityConfig.community.alias, - accountFactoryAddress: EthereumAddress.fromHex(communityConfig.community.primaryAccountFactory.address), + accountFactoryAddress: EthereumAddress.fromHex( + communityConfig.community.primaryAccountFactory.address), )); _theme.changeTheme(communityConfig.community.theme); From 4f65c8a0d80ec1ae738548ff948761eb23110409 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 12 Jan 2026 11:01:27 +0530 Subject: [PATCH 112/148] wallet.sfluv.org offboard plugin --- assets/config/v5/communities.json | 14 ++++++++++++++ assets/config/v5/communities.test.json | 14 ++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index b8a1a410..08d80601 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -444,6 +444,20 @@ "hidden": true, "signature": true, "launch_mode": "webview" + }, + { + "url": "https://sfluv.org/communitymigration", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "name": "Offoard", + "hidden": true, + "signature": true, + "launch_mode": "webview", + "action": "offboard", + "meta": { + "title": "SFLUV has Migrated", + "desc": "SFLUV has migrated from Polygon to BeraChain, so this community (SFLUV Polygon) has been closed. Click the link below to create an account in the new SFLUV community. Your SFLUV Polygon balance will be transferred over once you have a new account.", + "button": "Migrate" + } } ], "version": 5, diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index b8a1a410..08d80601 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -444,6 +444,20 @@ "hidden": true, "signature": true, "launch_mode": "webview" + }, + { + "url": "https://sfluv.org/communitymigration", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "name": "Offoard", + "hidden": true, + "signature": true, + "launch_mode": "webview", + "action": "offboard", + "meta": { + "title": "SFLUV has Migrated", + "desc": "SFLUV has migrated from Polygon to BeraChain, so this community (SFLUV Polygon) has been closed. Click the link below to create an account in the new SFLUV community. Your SFLUV Polygon balance will be transferred over once you have a new account.", + "button": "Migrate" + } } ], "version": 5, From b6f76d6ff79423bc8ed3cf101a7bfe137bbe5bd3 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 12 Jan 2026 11:46:58 +0530 Subject: [PATCH 113/148] fix(db): resolve database seeding hang on initialization - Move seed() call from post-onCreate to within create() method - Remove Database parameter from seed() method, use this.db instead - Eliminate transaction/lock conflicts by seeding within onCreate transaction - Simplify openDB() method by removing post-creation seeding logic - Remove unused debug prints and isNewDatabase flag tracking This aligns the implementation with the working GitHub version architecture where seeding happens within the database creation transaction rather than after it completes, preventing deadlock issues when initializing fresh databases (appv5). Fixes database initialization hang when loading 2400+ community configs from local JSON during first-time setup. --- lib/services/db/app/communities.dart | 9 ++++----- lib/services/db/app/db.dart | 29 ---------------------------- 2 files changed, 4 insertions(+), 34 deletions(-) diff --git a/lib/services/db/app/communities.dart b/lib/services/db/app/communities.dart index 1c68d3cd..fceece75 100644 --- a/lib/services/db/app/communities.dart +++ b/lib/services/db/app/communities.dart @@ -153,8 +153,7 @@ class CommunityTable extends DBTable { CREATE INDEX idx_${name}_alias ON $name (alias) '''); - // Don't call seed() here - it will be called after onCreate completes - // This avoids transaction deadlock issues + await seed(); } // Migrates the table @@ -196,14 +195,14 @@ class CommunityTable extends DBTable { } } - Future seed(Database db) async { + Future seed() async { try { debugPrint('🌱 Starting seed process...'); // Check if the table is empty debugPrint('🌱 Checking if table is empty...'); final count = Sqflite.firstIntValue( - await db.rawQuery('SELECT COUNT(*) FROM $name')); + await this.db.rawQuery('SELECT COUNT(*) FROM $name')); if (count != null && count > 0) { debugPrint('🌱 Table already has $count entries, skipping seed'); @@ -235,7 +234,7 @@ class CommunityTable extends DBTable { debugPrint('🌱 Converted ${communities.length} configs total'); debugPrint('🌱 Preparing batch insert...'); - final batch = db.batch(); + final batch = this.db.batch(); for (final community in communities) { batch.insert( diff --git a/lib/services/db/app/db.dart b/lib/services/db/app/db.dart index 05df0e95..65e25b60 100644 --- a/lib/services/db/app/db.dart +++ b/lib/services/db/app/db.dart @@ -1,6 +1,5 @@ import 'package:citizenwallet/services/db/db.dart'; import 'package:citizenwallet/services/db/app/communities.dart'; -import 'package:flutter/foundation.dart'; import 'package:sqflite/sqflite.dart'; class AppDBService extends DBService { @@ -16,54 +15,26 @@ class AppDBService extends DBService { @override Future openDB(String path) async { - debugPrint('📂 Opening database at: $path'); - bool isNewDatabase = false; - final options = OpenDatabaseOptions( onConfigure: (db) async { - debugPrint('⚙️ Configuring database...'); communities = CommunityTable(db); }, onCreate: (db, version) async { - debugPrint('🆕 Creating new database (version $version)...'); await communities.create(db); - isNewDatabase = true; // Flag that this is a new database - debugPrint('✅ Database creation complete'); return; }, onUpgrade: (db, oldVersion, newVersion) async { - debugPrint( - '⬆️ Upgrading database from v$oldVersion to v$newVersion...'); await communities.migrate(db, oldVersion, newVersion); - debugPrint('✅ Database upgrade complete'); return; }, version: 3, ); - debugPrint('🔓 Opening database file...'); final db = await databaseFactory.openDatabase( path, options: options, ); - debugPrint('✅ Database file opened (isNew: $isNewDatabase)'); - - // Seed AFTER the database is fully opened and onCreate transaction is complete - if (isNewDatabase) { - debugPrint('🌱 New database detected, starting seed...'); - try { - await communities.seed(db); - debugPrint('✅ Seeding complete'); - } catch (e, s) { - debugPrint('❌ Seeding failed: $e'); - debugPrintStack(stackTrace: s); - // Don't rethrow - allow app to continue even if seeding fails - } - } else { - debugPrint('📊 Existing database, skipping seed'); - } - debugPrint('✅ Database ready'); return db; } } From 75e903ea086b805e6c72a8d642dc9bcb6f9a25cf Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 12 Jan 2026 11:52:46 +0530 Subject: [PATCH 114/148] app release build --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 36e4ca3f..5523e327 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: citizenwallet -version: 2.0.31+293 +version: 2.0.31+294 publish_to: none description: A mobile wallet for your community. environment: From eff1f7b9505b9ca987a8cdf522ee314fb4b13cfc Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 12 Jan 2026 13:45:41 +0530 Subject: [PATCH 115/148] fix(parser): extract nested parameters from malformed sendto/tipTo URLs - Added logic to parse encoded `amount` and `description` inside the `sendto` parameter. - Added logic to parse encoded `tipAmount` and `tipDescription` inside the `tipTo` parameter. - Ensures correct address and alias extraction when query strings are improperly encoded. --- lib/utils/qr.dart | 53 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 41 insertions(+), 12 deletions(-) diff --git a/lib/utils/qr.dart b/lib/utils/qr.dart index fb0507a7..cce1ee7a 100644 --- a/lib/utils/qr.dart +++ b/lib/utils/qr.dart @@ -133,7 +133,6 @@ ParsedQRData parseSendtoUrl(String raw) { } // Handle malformed query strings (convert ? to & after the first one) - // e.g., "alias=...?sendto=..." becomes "alias=...&sendto=..." if (queryString.contains('?')) { final firstQuestionMark = queryString.indexOf('?'); queryString = queryString.substring(0, firstQuestionMark) + @@ -148,24 +147,54 @@ ParsedQRData parseSendtoUrl(String raw) { uriData = parsedUri; } - final sendToParam = uriData.queryParameters['sendto']; - final amountParam = uriData.queryParameters['amount']; - final descriptionParam = uriData.queryParameters['description']; + // Use 'var' so we can update them if hidden params are found + var sendToParam = uriData.queryParameters['sendto']; + var amountParam = uriData.queryParameters['amount']; + var descriptionParam = uriData.queryParameters['description']; - final tipToParam = uriData.queryParameters['tipTo']; - final tipAmountParam = uriData.queryParameters['tipAmount']; - final tipDescriptionParam = uriData.queryParameters['tipDescription']; + var tipToParam = uriData.queryParameters['tipTo']; + var tipAmountParam = uriData.queryParameters['tipAmount']; + var tipDescriptionParam = uriData.queryParameters['tipDescription']; + + // 1. Handle encoded params inside sendto + if (sendToParam != null && sendToParam.contains('&')) { + final firstAmpIndex = sendToParam.indexOf('&'); + final realSendTo = sendToParam.substring(0, firstAmpIndex); + final hiddenParamsString = sendToParam.substring(firstAmpIndex + 1); + + sendToParam = realSendTo; + + final hiddenParams = Uri.splitQueryString(hiddenParamsString); + amountParam ??= hiddenParams['amount']; + descriptionParam ??= hiddenParams['description']; + } + + // 2. Handle encoded params inside tipTo (NEW LOGIC) + if (tipToParam != null && tipToParam.contains('&')) { + final firstAmpIndex = tipToParam.indexOf('&'); + final realTipTo = tipToParam.substring(0, firstAmpIndex); + final hiddenParamsString = tipToParam.substring(firstAmpIndex + 1); + + // Clean the tipTo param + tipToParam = realTipTo; + + // Parse the hidden string + final hiddenTipParams = Uri.splitQueryString(hiddenParamsString); + + // Populate tipAmount and tipDescription if they are null + tipAmountParam ??= hiddenTipParams['tipAmount']; + tipDescriptionParam ??= hiddenTipParams['tipDescription']; + } if (sendToParam == null) { return ParsedQRData(address: ''); } final address = sendToParam.split('@').first; - // Extract alias from sendto parameter (after @) as fallback - final aliasFromSendto = sendToParam.contains('@') - ? sendToParam.split('@').last - : null; - // Use explicit alias parameter if present, otherwise fallback to alias from sendto + + final aliasFromSendto = + sendToParam.contains('@') ? sendToParam.split('@').last : null; + final alias = uriData.queryParameters['alias'] ?? aliasFromSendto; final tip = tipToParam != null From c6c15702b017395072e0c4ba8020e19f007c1b2c Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 12 Jan 2026 14:13:56 +0530 Subject: [PATCH 116/148] localise sendTip --- lib/l10n/app_en.arb | 3 +- lib/l10n/app_es.arb | 3 +- lib/l10n/app_fr.arb | 3 +- lib/l10n/app_localizations.dart | 6 + lib/l10n/app_localizations_en.dart | 3 + lib/l10n/app_localizations_es.dart | 3 + lib/l10n/app_localizations_fr.dart | 3 + lib/l10n/app_localizations_nl.dart | 3 + lib/l10n/app_nl.arb | 3 +- lib/screens/send/send_progress.dart | 3 +- pubspec.lock | 164 +++++++++++++++++----------- 11 files changed, 125 insertions(+), 72 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index de8ccc05..b4eeff9d 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -204,5 +204,6 @@ "more": "More", "start": "Start", "connecting": "Connecting", - "accountNotFound": "Account not found" + "accountNotFound": "Account not found", + "sendTip": "Send Tip" } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index b62ffab5..0eebd3f8 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -204,5 +204,6 @@ "more": "Más", "start": "Iniciar", "connecting": "Conectando", - "accountNotFound": "Cuenta no encontrada" + "accountNotFound": "Cuenta no encontrada", + "sendTip": "Enviar propina" } \ No newline at end of file diff --git a/lib/l10n/app_fr.arb b/lib/l10n/app_fr.arb index 9b4bd69e..2a38d8cb 100644 --- a/lib/l10n/app_fr.arb +++ b/lib/l10n/app_fr.arb @@ -203,5 +203,6 @@ "close": "Fermer", "start": "Commencer", "connecting": "Connexion", - "accountNotFound": "Compte non trouvé" + "accountNotFound": "Compte non trouvé", + "sendTip": "Envoyer un pourboire" } \ No newline at end of file diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index 42b9531c..e11dfba2 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -1331,6 +1331,12 @@ abstract class AppLocalizations { /// In en, this message translates to: /// **'Account not found'** String get accountNotFound; + + /// No description provided for @sendTip. + /// + /// In en, this message translates to: + /// **'Send Tip'** + String get sendTip; } class _AppLocalizationsDelegate diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart index cf7a7b21..5b9620ce 100644 --- a/lib/l10n/app_localizations_en.dart +++ b/lib/l10n/app_localizations_en.dart @@ -667,4 +667,7 @@ class AppLocalizationsEn extends AppLocalizations { @override String get accountNotFound => 'Account not found'; + + @override + String get sendTip => 'Send Tip'; } diff --git a/lib/l10n/app_localizations_es.dart b/lib/l10n/app_localizations_es.dart index 7b0cfb8d..9e65bc20 100644 --- a/lib/l10n/app_localizations_es.dart +++ b/lib/l10n/app_localizations_es.dart @@ -671,4 +671,7 @@ class AppLocalizationsEs extends AppLocalizations { @override String get accountNotFound => 'Cuenta no encontrada'; + + @override + String get sendTip => 'Enviar propina'; } diff --git a/lib/l10n/app_localizations_fr.dart b/lib/l10n/app_localizations_fr.dart index f2153012..4cc63ad1 100644 --- a/lib/l10n/app_localizations_fr.dart +++ b/lib/l10n/app_localizations_fr.dart @@ -672,4 +672,7 @@ class AppLocalizationsFr extends AppLocalizations { @override String get accountNotFound => 'Compte non trouvé'; + + @override + String get sendTip => 'Envoyer un pourboire'; } diff --git a/lib/l10n/app_localizations_nl.dart b/lib/l10n/app_localizations_nl.dart index 7eac1ca0..efd99d1f 100644 --- a/lib/l10n/app_localizations_nl.dart +++ b/lib/l10n/app_localizations_nl.dart @@ -674,4 +674,7 @@ class AppLocalizationsNl extends AppLocalizations { @override String get accountNotFound => 'Account niet gevonden'; + + @override + String get sendTip => 'Fooi versturen'; } diff --git a/lib/l10n/app_nl.arb b/lib/l10n/app_nl.arb index 171bdea4..0343f6dd 100644 --- a/lib/l10n/app_nl.arb +++ b/lib/l10n/app_nl.arb @@ -203,5 +203,6 @@ "close": "Sluiten", "start": "Start", "connecting": "Verbinding maken", - "accountNotFound": "Account niet gevonden" + "accountNotFound": "Account niet gevonden", + "sendTip": "Fooi versturen" } \ No newline at end of file diff --git a/lib/screens/send/send_progress.dart b/lib/screens/send/send_progress.dart index 136c97f7..b4de216e 100644 --- a/lib/screens/send/send_progress.dart +++ b/lib/screens/send/send_progress.dart @@ -363,8 +363,7 @@ class _SendProgressState extends State { ? Column( children: [ Button( - text: - "${AppLocalizations.of(context)!.send} Tip", + text: AppLocalizations.of(context)!.sendTip, color: Theme.of(context) .colors .primary diff --git a/pubspec.lock b/pubspec.lock index caf39144..82c7b0cb 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -69,10 +69,10 @@ packages: dependency: "direct main" description: name: async - sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb" + sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 url: "https://pub.dev" source: hosted - version: "2.13.0" + version: "2.12.0" audio_in_app: dependency: "direct main" description: @@ -161,6 +161,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.2" + buffer: + dependency: transitive + description: + name: buffer + sha256: "389da2ec2c16283c8787e0adaede82b1842102f8c8aae2f49003a766c5c6b3d1" + url: "https://pub.dev" + source: hosted + version: "1.2.3" cached_network_image: dependency: "direct main" description: @@ -213,10 +221,10 @@ packages: dependency: transitive description: name: checked_yaml - sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f" + sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff url: "https://pub.dev" source: hosted - version: "2.0.4" + version: "2.0.3" cli_config: dependency: transitive description: @@ -386,6 +394,22 @@ packages: url: "https://pub.dev" source: hosted version: "5.0.3" + equatable: + dependency: transitive + description: + name: equatable + sha256: "3e0141505477fd8ad55d6eb4e7776d3fe8430be8e497ccb1521370c3f21a3e2b" + url: "https://pub.dev" + source: hosted + version: "2.0.8" + eth_sig_util: + dependency: transitive + description: + name: eth_sig_util + sha256: "20fdc5ce3864e70e5ade1c1cd03cce4ef01018db00adab107303f9055d26b01a" + url: "https://pub.dev" + source: hosted + version: "0.0.9" event: dependency: transitive description: @@ -406,10 +430,10 @@ packages: dependency: transitive description: name: fake_async - sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44" + sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" url: "https://pub.dev" source: hosted - version: "1.3.3" + version: "1.3.2" ffi: dependency: transitive description: @@ -608,10 +632,10 @@ packages: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: "306f0596590e077338312f38837f595c04f28d6cdeeac392d3d74df2f0003687" + sha256: c2fe1001710127dfa7da89977a08d591398370d099aacdaa6d44da7eb14b8476 url: "https://pub.dev" source: hosted - version: "2.0.32" + version: "2.0.31" flutter_secure_storage: dependency: "direct main" description: @@ -682,10 +706,10 @@ packages: dependency: transitive description: name: freezed_annotation - sha256: "7294967ff0a6d98638e7acb774aac3af2550777accd8149c90af5b014e6d44d8" + sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2 url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "2.4.4" frontend_server_client: dependency: transitive description: @@ -850,10 +874,10 @@ packages: dependency: "direct main" description: name: intl - sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5" + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf url: "https://pub.dev" source: hosted - version: "0.20.2" + version: "0.19.0" io: dependency: transitive description: @@ -890,26 +914,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" + sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec url: "https://pub.dev" source: hosted - version: "11.0.2" + version: "10.0.8" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 url: "https://pub.dev" source: hosted - version: "3.0.10" + version: "3.0.9" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.1" lints: dependency: transitive description: @@ -938,10 +962,10 @@ packages: dependency: "direct main" description: name: lottie - sha256: "8ae0be46dbd9e19641791dc12ee480d34e1fd3f84c749adc05f3ad9342b71b95" + sha256: c5fa04a80a620066c15cf19cc44773e19e9b38e989ff23ea32e5903ef1015950 url: "https://pub.dev" source: hosted - version: "3.3.2" + version: "3.3.1" markdown: dependency: transitive description: @@ -1114,18 +1138,18 @@ packages: dependency: transitive description: name: path_provider_android - sha256: e122c5ea805bb6773bb12ce667611265980940145be920cd09a4b0ec0285cb16 + sha256: "3b4c1fc3aa55ddc9cd4aa6759984330d5c8e66aa7702a6223c61540dc6380c37" url: "https://pub.dev" source: hosted - version: "2.2.20" + version: "2.2.19" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: efaec349ddfc181528345c56f8eda9d6cccd71c177511b132c6a0ddaefaa2738 + sha256: "16eef174aacb07e09c351502740fa6254c165757638eba1e9116b0a781201bbd" url: "https://pub.dev" source: hosted - version: "2.4.3" + version: "2.4.2" path_provider_linux: dependency: transitive description: @@ -1154,10 +1178,10 @@ packages: dependency: transitive description: name: petitparser - sha256: "1a97266a94f7350d30ae522c0af07890c70b8e62c71e8e3920d1db4d23c057d1" + sha256: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646" url: "https://pub.dev" source: hosted - version: "7.0.1" + version: "6.1.0" platform: dependency: transitive description: @@ -1250,26 +1274,34 @@ packages: dependency: transitive description: name: reown_core - sha256: "8d5d14b4e8d008b09ec9db964ab8913b4fc17000d666eb1fece20a80a4b5e37a" + sha256: "37e8bd16263400856592b58331ec61665bcc8814d4a2a1801a7f12caf3c4673d" url: "https://pub.dev" source: hosted - version: "1.3.6" + version: "1.2.0" reown_sign: dependency: transitive description: name: reown_sign - sha256: c2fec55ed3d0042d0802c80d7fc36f9b1937eac6ef9c2907dae3b8146188cffa + sha256: ae2e171b93ddaae2ce7db18a66647afc9680cf55f49e88d49a3c3df5d1eb2cde url: "https://pub.dev" source: hosted - version: "1.3.7" + version: "1.2.0" reown_walletkit: dependency: "direct main" description: name: reown_walletkit - sha256: f96cc9f6e264138b3411fd1635e06d437d5912d7a21ef28af21974e2680dfd70 + sha256: b779e4914c9299edea80a849773fc08ddd5e44549bf53a2fd26cac4a59f5c99c + url: "https://pub.dev" + source: hosted + version: "1.2.0" + reown_yttrium: + dependency: transitive + description: + name: reown_yttrium + sha256: e59d9e8dbad8e2c420c201719da12bca528c38ecab9571364d5b6d18715ce773 url: "https://pub.dev" source: hosted - version: "1.3.7" + version: "0.0.1" rxdart: dependency: "direct main" description: @@ -1314,18 +1346,18 @@ packages: dependency: transitive description: name: shared_preferences_android - sha256: "34266009473bf71d748912da4bf62d439185226c03e01e2d9687bc65bbfcb713" + sha256: bd14436108211b0d4ee5038689a56d4ae3620fd72fd6036e113bf1345bc74d9e url: "https://pub.dev" source: hosted - version: "2.4.15" + version: "2.4.13" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: "1c33a907142607c40a7542768ec9badfd16293bac51da3a4482623d15845f88b" + sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03" url: "https://pub.dev" source: hosted - version: "2.5.5" + version: "2.5.4" shared_preferences_linux: dependency: transitive description: @@ -1448,18 +1480,18 @@ packages: dependency: transitive description: name: sqflite_android - sha256: ecd684501ebc2ae9a83536e8b15731642b9570dc8623e0073d227d0ee2bfea88 + sha256: "2b3070c5fa881839f8b402ee4a39c1b4d561704d4ebbbcfb808a119bc2a1701b" url: "https://pub.dev" source: hosted - version: "2.4.2+2" + version: "2.4.1" sqflite_common: dependency: "direct main" description: name: sqflite_common - sha256: "6ef422a4525ecc601db6c0a2233ff448c731307906e92cabc9ba292afaae16a6" + sha256: "84731e8bfd8303a3389903e01fb2141b6e59b5973cacbb0929021df08dddbe8b" url: "https://pub.dev" source: hosted - version: "2.5.6" + version: "2.5.5" sqflite_common_ffi: dependency: transitive description: @@ -1472,10 +1504,10 @@ packages: dependency: "direct main" description: name: sqflite_common_ffi_web - sha256: "793c1ff5b0c95ac618e7731e209db99e96abff59ad3432a3c91bd2b1454a00d5" + sha256: "983cf7b33b16e6bc086c8e09f6a1fae69d34cdb167d7acaf64cbd3515942d4e6" url: "https://pub.dev" source: hosted - version: "1.0.1+2" + version: "1.0.0" sqflite_darwin: dependency: transitive description: @@ -1536,10 +1568,10 @@ packages: dependency: transitive description: name: synchronized - sha256: c254ade258ec8282947a0acbbc90b9575b4f19673533ee46f2f6e9b3aeefd7c0 + sha256: "0669c70faae6270521ee4f05bffd2919892d42d1276e6c495be80174b6bc0ef6" url: "https://pub.dev" source: hosted - version: "3.4.0" + version: "3.3.1" term_glyph: dependency: transitive description: @@ -1552,26 +1584,26 @@ packages: dependency: transitive description: name: test - sha256: "65e29d831719be0591f7b3b1a32a3cda258ec98c58c7b25f7b84241bc31215bb" + sha256: "301b213cd241ca982e9ba50266bd3f5bd1ea33f1455554c5abb85d1be0e2d87e" url: "https://pub.dev" source: hosted - version: "1.26.2" + version: "1.25.15" test_api: dependency: transitive description: name: test_api - sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00" + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd url: "https://pub.dev" source: hosted - version: "0.7.6" + version: "0.7.4" test_core: dependency: transitive description: name: test_core - sha256: "80bf5a02b60af04b09e14f6fe68b921aad119493e26e490deaca5993fef1b05a" + sha256: "84d17c3486c8dfdbe5e12a50c8ae176d15e2a771b96909a9442b40173649ccaa" url: "https://pub.dev" source: hosted - version: "0.6.11" + version: "0.6.8" timeago: dependency: "direct main" description: @@ -1616,18 +1648,18 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: "5c8b6c2d89a78f5a1cca70a73d9d5f86c701b36b42f9c9dac7bad592113c28e9" + sha256: "81777b08c498a292d93ff2feead633174c386291e35612f8da438d6e92c4447e" url: "https://pub.dev" source: hosted - version: "6.3.24" + version: "6.3.20" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: "6b63f1441e4f653ae799166a72b50b1767321ecc263a57aadf825a7a2a5477d9" + sha256: d80b3f567a617cb923546034cc94bfe44eb15f989fe670b37f26abdb9d939cb7 url: "https://pub.dev" source: hosted - version: "6.3.5" + version: "6.3.4" url_launcher_linux: dependency: transitive description: @@ -1640,10 +1672,10 @@ packages: dependency: transitive description: name: url_launcher_macos - sha256: "8262208506252a3ed4ff5c0dc1e973d2c0e0ef337d0a074d35634da5d44397c9" + sha256: c043a77d6600ac9c38300567f33ef12b0ef4f4783a2c1f00231d2b1941fea13f url: "https://pub.dev" source: hosted - version: "3.2.4" + version: "3.2.3" url_launcher_platform_interface: dependency: transitive description: @@ -1712,18 +1744,18 @@ packages: dependency: transitive description: name: vector_math - sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.1.4" vm_service: dependency: transitive description: name: vm_service - sha256: "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60" + sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" url: "https://pub.dev" source: hosted - version: "15.0.2" + version: "14.3.1" wallet: dependency: transitive description: @@ -1784,10 +1816,10 @@ packages: dependency: transitive description: name: win32 - sha256: d7cb55e04cd34096cd3a79b3330245f54cb96a370a1c27adb3c84b917de8b08e + sha256: "329edf97fdd893e0f1e3b9e88d6a0e627128cc17cc316a8d67fda8f1451178ba" url: "https://pub.dev" source: hosted - version: "5.15.0" + version: "5.13.0" x25519: dependency: transitive description: @@ -1808,10 +1840,10 @@ packages: dependency: transitive description: name: xml - sha256: "971043b3a0d3da28727e40ed3e0b5d18b742fa5a68665cca88e74b7876d5e025" + sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 url: "https://pub.dev" source: hosted - version: "6.6.1" + version: "6.5.0" yaml: dependency: transitive description: @@ -1821,5 +1853,5 @@ packages: source: hosted version: "3.1.3" sdks: - dart: ">=3.9.0 <4.0.0" - flutter: ">=3.35.0" + dart: ">=3.7.2 <4.0.0" + flutter: ">=3.29.0" From 608657966b22af329c7cecb86d438d9b6cd6acec Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 12 Jan 2026 16:15:33 +0530 Subject: [PATCH 117/148] git commit -m "feat: update wallet properties when remote config is fetched - Update currencyName, symbol, currencyLogo, decimalDigits, and plugins - Apply changes when app resumes and remote config is refreshed - Use copyWith() to create updated wallet instance with new config values - Ensures UI reflects latest community configuration automatically" --- lib/state/wallet/logic.dart | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib/state/wallet/logic.dart b/lib/state/wallet/logic.dart index 225b8fdf..fac4784d 100644 --- a/lib/state/wallet/logic.dart +++ b/lib/state/wallet/logic.dart @@ -2183,6 +2183,19 @@ class WalletLogic extends WidgetsBindingObserver { [DBCommunity.fromConfig(remoteConfig)], ); debugPrint('Remote config updated'); + + // Update wallet properties with the new config + if (_state.wallet != null) { + final updatedWallet = _state.wallet!.copyWith( + currencyName: token.name, + symbol: token.symbol, + currencyLogo: remoteConfig.community.logo, + decimalDigits: token.decimals, + plugins: remoteConfig.plugins ?? [], + ); + _state.setWallet(updatedWallet); + debugPrint('Wallet properties updated with remote config'); + } } catch (e, s) { debugPrint('Error updating remote config: $e'); debugPrint('Stacktrace: $s'); From 71cbc38ac327a44a9c3ef73ade493b057e701fa0 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 12 Jan 2026 16:28:15 +0530 Subject: [PATCH 118/148] app release build --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 5523e327..e63ba31a 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: citizenwallet -version: 2.0.31+294 +version: 2.0.31+295 publish_to: none description: A mobile wallet for your community. environment: From 967554816b66f0bfe2d5436d8f6db95bc89cd191 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 12 Jan 2026 17:46:38 +0530 Subject: [PATCH 119/148] initialize sendToURL parameter in WalletScreenState --- lib/screens/wallet/screen.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/screens/wallet/screen.dart b/lib/screens/wallet/screen.dart index 73aaf54f..46859a4f 100644 --- a/lib/screens/wallet/screen.dart +++ b/lib/screens/wallet/screen.dart @@ -142,6 +142,7 @@ class WalletScreenState extends State _receiveParams = widget.receiveParams; _deepLink = widget.deepLink; _deepLinkParams = widget.deepLinkParams; + _sendToURL = widget.sendToURL; WidgetsBinding.instance.addPostFrameCallback((_) { onLoad(); From a8859a13fd0cd512201362b3f5bff65b76969f6d Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 12 Jan 2026 18:10:23 +0530 Subject: [PATCH 120/148] Add tipAmount and tipDescription parameter parsing to router - Parse tipAmount and tipDescription from URI query parameters in Landing route - Include tipAmount and tipDescription when constructing sendToParams - Parse tipAmount and tipDescription in Wallet route for sendToURL construction - Maintains consistency with existing parameter handling pattern --- lib/router/router.dart | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/lib/router/router.dart b/lib/router/router.dart index a5a5daca..0e12e4e2 100644 --- a/lib/router/router.dart +++ b/lib/router/router.dart @@ -90,6 +90,14 @@ GoRouter createRouter( sendToParams += '&description=${uri.queryParameters['description']}'; } + if (uri.queryParameters['tipAmount'] != null) { + sendToParams += + '&tipAmount=${uri.queryParameters['tipAmount']}'; + } + if (uri.queryParameters['tipDescription'] != null) { + sendToParams += + '&tipDescription=${uri.queryParameters['tipDescription']}'; + } } else if (eip681 != null) { sendToParams = encodeParams(uri.toString().replaceFirst('/?', '')); @@ -181,6 +189,9 @@ GoRouter createRouter( final tipTo = state.uri.queryParameters['tipTo']; final amount = state.uri.queryParameters['amount']; final description = state.uri.queryParameters['description']; + final tipAmount = state.uri.queryParameters['tipAmount']; + final tipDescription = + state.uri.queryParameters['tipDescription']; if (sendTo != null) { String params = 'sendto=$sendTo'; if (tipTo != null) { @@ -192,6 +203,12 @@ GoRouter createRouter( if (description != null) { params += '&description=$description'; } + if (tipAmount != null) { + params += '&tipAmount=$tipAmount'; + } + if (tipDescription != null) { + params += '&tipDescription=$tipDescription'; + } sendToURL = 'https://app.citizenwallet.xyz/?$params'; } } @@ -544,7 +561,6 @@ GoRouter createWebRouter( } } - return WebLandingScreen( voucher: state.uri.queryParameters['voucher'], voucherParams: state.uri.queryParameters['params'], From 13b02a8067b29a8c42fce39e2dd95a6fa8f74bfb Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 12 Jan 2026 18:32:00 +0530 Subject: [PATCH 121/148] refactor: remove unused sendTransaction parameter from SendToScreen - Remove sendTransaction property from SendToScreen widget - Remove unused SendTransaction import - Remove sendTransaction from router instantiation - Clean up commented-out dead code The sendTransaction parameter was never used within the SendToScreen widget and was never passed any value during navigation. --- lib/router/router.dart | 1 - lib/screens/send/send_to.dart | 4 ---- lib/screens/wallet/screen.dart | 1 + 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/lib/router/router.dart b/lib/router/router.dart index 0e12e4e2..ac62b029 100644 --- a/lib/router/router.dart +++ b/lib/router/router.dart @@ -276,7 +276,6 @@ GoRouter createRouter( voucherLogic: extra['voucherLogic'], isMinting: extra['isMinting'] ?? false, sendToURL: extra['sendToURL'], - sendTransaction: extra['sendTransaction'], ); }, ), diff --git a/lib/screens/send/send_to.dart b/lib/screens/send/send_to.dart index 2774855d..75c74cd5 100644 --- a/lib/screens/send/send_to.dart +++ b/lib/screens/send/send_to.dart @@ -1,5 +1,4 @@ // import 'package:citizenwallet/l10n/app_localizations.dart'; -import 'package:citizenwallet/models/send_transaction.dart'; import 'package:citizenwallet/services/wallet/contracts/profile.dart'; import 'package:citizenwallet/services/wallet/utils.dart'; import 'package:citizenwallet/state/profiles/logic.dart'; @@ -34,7 +33,6 @@ class SendToScreen extends StatefulWidget { final ProfilesLogic profilesLogic; final VoucherLogic? voucherLogic; final String? sendToURL; - final SendTransaction? sendTransaction; final bool isMinting; @@ -45,7 +43,6 @@ class SendToScreen extends StatefulWidget { this.voucherLogic, this.isMinting = false, this.sendToURL, - this.sendTransaction, }); @override @@ -57,7 +54,6 @@ class _SendToScreenState extends State { final ScanLogic _scanLogic = ScanLogic(); String? _currentSendToURL; final _scrollController = ScrollController(); - // late SendTransaction _sendTransaction; late void Function() debouncedAddressUpdate; diff --git a/lib/screens/wallet/screen.dart b/lib/screens/wallet/screen.dart index 46859a4f..e0983eef 100644 --- a/lib/screens/wallet/screen.dart +++ b/lib/screens/wallet/screen.dart @@ -586,6 +586,7 @@ class WalletScreenState extends State }); if (result != true && sendToURL != null) { + // TODO: check clear tipping _logic.clearTipTo(); _sendToURL = null; } From 96eef5a0f0a8bdb3a4148f82c6bb23c16a15f20e Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Tue, 13 Jan 2026 09:06:22 +0530 Subject: [PATCH 122/148] tipping with - to - amount - description --- lib/models/send_transaction.dart | 40 -------------- lib/router/router.dart | 2 - lib/screens/send/send_details.dart | 16 ++---- lib/screens/send/send_progress.dart | 28 ++++++---- lib/screens/send/tip_details.dart | 81 ++++++++++++----------------- lib/screens/wallet/receive.dart | 4 +- lib/screens/wallet/screen.dart | 5 +- lib/state/wallet/logic.dart | 33 +++++++----- lib/state/wallet/state.dart | 27 +++++----- 9 files changed, 93 insertions(+), 143 deletions(-) delete mode 100644 lib/models/send_transaction.dart diff --git a/lib/models/send_transaction.dart b/lib/models/send_transaction.dart deleted file mode 100644 index cf278cb0..00000000 --- a/lib/models/send_transaction.dart +++ /dev/null @@ -1,40 +0,0 @@ -class SendTransaction { - String? _to; - String? _amount; - String? _description; - String? _tipTo; - String? _tipAmount; - String? _tipDescription; - - SendTransaction({ - String? to, - String? amount, - String? description, - String? tipTo, - String? tipAmount, - String? tipDescription, - }) : _to = to, - _amount = amount, - _description = description, - _tipTo = tipTo, - _tipAmount = tipAmount, - _tipDescription = tipDescription; - - String? get to => _to; - set to(String? value) => _to = value; - - String? get amount => _amount; - set amount(String? value) => _amount = value; - - String? get description => _description; - set description(String? value) => _description = value; - - String? get tipTo => _tipTo; - set tipTo(String? value) => _tipTo = value; - - String? get tipAmount => _tipAmount; - set tipAmount(String? value) => _tipAmount = value; - - String? get tipDescription => _tipDescription; - set tipDescription(String? value) => _tipDescription = value; -} diff --git a/lib/router/router.dart b/lib/router/router.dart index ac62b029..1e085cf9 100644 --- a/lib/router/router.dart +++ b/lib/router/router.dart @@ -332,7 +332,6 @@ GoRouter createRouter( walletLogic: extra['walletLogic'], profilesLogic: extra['profilesLogic'], isMinting: extra['isMinting'] ?? false, - sendTransaction: extra['sendTransaction'], ); }, ), @@ -363,7 +362,6 @@ GoRouter createRouter( to: state.pathParameters['to'], isMinting: extra?['isMinting'] ?? false, profilesLogic: extra?['profilesLogic'], - sendTransaction: extra?['sendTransaction'], walletLogic: extra?['walletLogic'], ); }, diff --git a/lib/screens/send/send_details.dart b/lib/screens/send/send_details.dart index ca9d9a2e..b6b6ee45 100644 --- a/lib/screens/send/send_details.dart +++ b/lib/screens/send/send_details.dart @@ -1,5 +1,4 @@ // import 'package:citizenwallet/l10n/app_localizations.dart'; -import 'package:citizenwallet/models/send_transaction.dart'; import 'package:citizenwallet/services/config/config.dart'; import 'package:citizenwallet/services/wallet/utils.dart'; import 'package:citizenwallet/state/profiles/logic.dart'; @@ -230,17 +229,13 @@ class _SendDetailsScreenState extends State { final toAccount = selectedAddress ?? walletLogic.addressController.value.text; - - final sendTransaction = SendTransaction( - amount: walletLogic.amountController.value.text, - to: toAccount, - description: walletLogic.messageController.value.text.trim(), - ); + final amount = walletLogic.amountController.value.text; + final description = walletLogic.messageController.value.text.trim(); walletLogic.sendTransaction( - sendTransaction.amount!, - sendTransaction.to!, - message: sendTransaction.description!, + amount, + toAccount, + message: description, ); await Future.delayed(const Duration(milliseconds: 50)); @@ -253,7 +248,6 @@ class _SendDetailsScreenState extends State { 'isMinting': widget.isMinting, 'walletLogic': walletLogic, 'profilesLogic': widget.profilesLogic, - 'sendTransaction': sendTransaction, }); walletLogic.clearInProgressTransaction(); diff --git a/lib/screens/send/send_progress.dart b/lib/screens/send/send_progress.dart index b4de216e..a9003e5a 100644 --- a/lib/screens/send/send_progress.dart +++ b/lib/screens/send/send_progress.dart @@ -1,6 +1,5 @@ // import 'package:citizenwallet/l10n/app_localizations.dart'; import 'dart:async'; -import 'package:citizenwallet/models/send_transaction.dart'; import 'package:citizenwallet/models/transaction.dart'; import 'package:citizenwallet/services/wallet/utils.dart'; import 'package:citizenwallet/state/profiles/logic.dart'; @@ -8,6 +7,7 @@ import 'package:citizenwallet/state/profiles/state.dart'; import 'package:citizenwallet/state/wallet/logic.dart'; import 'package:citizenwallet/state/wallet/state.dart'; import 'package:citizenwallet/theme/provider.dart'; +import 'package:citizenwallet/utils/send.dart'; import 'package:citizenwallet/widgets/button.dart'; import 'package:citizenwallet/widgets/coin_logo.dart'; import 'package:citizenwallet/widgets/loaders/progress_circle.dart'; @@ -23,7 +23,6 @@ class SendProgress extends StatefulWidget { final bool isMinting; final WalletLogic? walletLogic; final ProfilesLogic? profilesLogic; - final SendTransaction? sendTransaction; const SendProgress({ super.key, @@ -31,7 +30,6 @@ class SendProgress extends StatefulWidget { this.isMinting = false, this.walletLogic, this.profilesLogic, - this.sendTransaction, }); @override @@ -76,15 +74,17 @@ class _SendProgressState extends State { }); } - Future handleSendTip(BuildContext context) async { + Future handleSendTip( + BuildContext context, + SendDestination tipping, + ) async { if (!context.mounted) { return; } final navigator = GoRouter.of(context); - final toAccount = widget.sendTransaction?.to ?? - widget.walletLogic?.addressController.value.text; + final toAccount = tipping.to; await navigator.push( '/wallet/${widget.walletLogic?.account}/send/$toAccount/tip', @@ -92,7 +92,6 @@ class _SendProgressState extends State { 'walletLogic': widget.walletLogic, 'profilesLogic': widget.profilesLogic, 'isMinting': widget.isMinting, - 'sendTransaction': widget.sendTransaction, }, ); } @@ -118,9 +117,12 @@ class _SendProgressState extends State { (WalletState state) => state.inProgressTransactionError, ); + final tipping = context.select((WalletState state) => state.tipping); + if (inProgressTransaction.state == TransactionState.success && _previousState != TransactionState.success) { - final hasTip = context.read().hasTip; + final hasTip = + context.select((WalletState state) => state.tipping) != null; if (!hasTip) { handleStartCloseScreenTimer(context); } @@ -135,7 +137,8 @@ class _SendProgressState extends State { if (inProgressTransaction.state == TransactionState.fail && _previousState != TransactionState.fail && !_isClosing) { - final hasTip = context.read().hasTip; + final hasTip = + context.select((WalletState state) => state.tipping) != null; if (!hasTip) { handleStartCloseScreenTimer(context); } @@ -359,7 +362,7 @@ class _SendProgressState extends State { mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ - context.select((WalletState state) => state.hasTip) + tipping != null ? Column( children: [ Button( @@ -372,7 +375,8 @@ class _SendProgressState extends State { .colors .white .resolveFrom(context), - onPressed: () => handleSendTip(context), + onPressed: () => + handleSendTip(context, tipping), minWidth: 200, maxWidth: width - 60, ), @@ -383,6 +387,8 @@ class _SendProgressState extends State { onPressed: () { final navigator = GoRouter.of(context); + widget.walletLogic?.clearTipping(); + navigator.go( '/wallet/${widget.walletLogic?.account}'); }, diff --git a/lib/screens/send/tip_details.dart b/lib/screens/send/tip_details.dart index a1feea4f..61f82778 100644 --- a/lib/screens/send/tip_details.dart +++ b/lib/screens/send/tip_details.dart @@ -1,5 +1,4 @@ // import 'package:citizenwallet/l10n/app_localizations.dart'; -import 'package:citizenwallet/models/send_transaction.dart'; import 'package:citizenwallet/services/config/config.dart'; import 'package:citizenwallet/services/wallet/utils.dart'; import 'package:citizenwallet/state/profiles/logic.dart'; @@ -29,7 +28,6 @@ class TipDetailsScreen extends StatefulWidget { final WalletLogic walletLogic; final ProfilesLogic profilesLogic; final VoucherLogic? voucherLogic; - final SendTransaction? sendTransaction; final bool isMinting; final bool isLink; @@ -39,7 +37,6 @@ class TipDetailsScreen extends StatefulWidget { required this.walletLogic, required this.profilesLogic, this.voucherLogic, - this.sendTransaction, this.isMinting = false, this.isLink = false, }); @@ -60,12 +57,10 @@ class _TipDetailsScreenState extends State { late void Function() debouncedAmountUpdate; bool _isSending = false; - late SendTransaction _sendTransaction; @override void initState() { super.initState(); - _sendTransaction = widget.sendTransaction ?? SendTransaction(); // Clear amount controller when tip screen initializes // to ensure hasAmount state is reset @@ -73,10 +68,25 @@ class _TipDetailsScreenState extends State { WidgetsBinding.instance.addPostFrameCallback((_) { final walletLogic = widget.walletLogic; - final tipTo = context.read().tipTo; + final tipping = context.read().tipping; - if (tipTo != null) { - widget.profilesLogic.getProfile(tipTo).then((profile) { + if (tipping != null) { + // Set address state + walletLogic.setHasAddress(true); + + // Pre-fill amount and description if provided + if (tipping.amount != null) { + walletLogic.amountController.text = tipping.amount!; + } + if (tipping.description != null) { + walletLogic.messageController.text = tipping.description!; + } + + // Update amount after setting text + walletLogic.updateAmount(unlimited: widget.isMinting); + + // Load profile for tip recipient + widget.profilesLogic.getProfile(tipping.to).then((profile) { if (profile != null) { widget.profilesLogic.selectProfile(profile); } @@ -92,18 +102,6 @@ class _TipDetailsScreenState extends State { }); } - @override - void didChangeDependencies() { - super.didChangeDependencies(); - final tipTo = context.read().tipTo; - if (tipTo != null) { - widget.walletLogic.setHasTip(true); - widget.walletLogic.setHasAddress(true); - // Reset amount state since tip screen starts with empty amount - widget.walletLogic.updateAmount(unlimited: widget.isMinting); - } - } - @override void dispose() { amountFocusNode.dispose(); @@ -225,15 +223,14 @@ class _TipDetailsScreenState extends State { } } - void handleSend( - BuildContext context, String? selectedAddress, String? tipTo) async { + void handleSend(BuildContext context, String? selectedAddress) async { if (_isSending) { return; } final walletLogic = widget.walletLogic; - if (tipTo == null) { + if (selectedAddress == null) { return; } @@ -249,7 +246,7 @@ class _TipDetailsScreenState extends State { final isValid = walletLogic.validateSendFields( walletLogic.amountController.value.text, - selectedAddress ?? walletLogic.addressController.value.text, + selectedAddress, ); if (!isValid) { @@ -259,41 +256,30 @@ class _TipDetailsScreenState extends State { return; } - final toAccount = - selectedAddress ?? walletLogic.addressController.value.text; - - final sendTip = SendTransaction( - tipAmount: walletLogic.amountController.value.text, - tipTo: tipTo, - tipDescription: walletLogic.messageController.value.text.trim(), - ); - try { walletLogic.sendTransaction( - sendTip.tipAmount!, - sendTip.tipTo!, - message: sendTip.tipDescription!, + walletLogic.amountController.value.text, + selectedAddress, + message: walletLogic.messageController.value.text.trim(), ); } catch (e, stackTrace) { - print('error: $e'); - print('stack: $stackTrace'); + debugPrint('error: $e'); + debugPrint('stack: $stackTrace'); } - widget.walletLogic.setHasTip(false); + widget.walletLogic.clearTipping(); widget.walletLogic.setHasAddress(false); - widget.walletLogic.setTipTo(null); await Future.delayed(const Duration(milliseconds: 50)); HapticFeedback.heavyImpact(); final sent = await navigator.push( - '/wallet/${walletLogic.account}/send/$toAccount/progress', + '/wallet/${walletLogic.account}/send/$selectedAddress/progress', extra: { 'isMinting': widget.isMinting, 'walletLogic': walletLogic, 'profilesLogic': widget.profilesLogic, - 'sendTransaction': sendTip, }); if (sent == true) { @@ -416,10 +402,6 @@ class _TipDetailsScreenState extends State { (WalletState state) => state.wallet, ); - final tipTo = context.select( - (WalletState state) => state.tipTo, - ); - final balance = double.tryParse(wallet != null ? wallet.balance : '0.0') ?? 0.0; @@ -827,7 +809,6 @@ class _TipDetailsScreenState extends State { selectedProfile?.account ?? searchedProfile ?.account, - tipTo, ) : null, enabled: isSendingValid, @@ -836,8 +817,10 @@ class _TipDetailsScreenState extends State { ? AppLocalizations.of(context)! .swipeToMint : isLink - ? "${AppLocalizations.of(context)!.swipeToConfirm} Tip" - : "${AppLocalizations.of(context)!.swipeToSend} Tip", + ? AppLocalizations.of(context)! + .swipeToConfirm + : AppLocalizations.of(context)! + .swipeToSend, completionLabelColor: Theme.of(context) .colors .primary diff --git a/lib/screens/wallet/receive.dart b/lib/screens/wallet/receive.dart index 30afe332..00e6c080 100644 --- a/lib/screens/wallet/receive.dart +++ b/lib/screens/wallet/receive.dart @@ -117,7 +117,7 @@ class ReceiveScreenState extends State { _selectedProfile = context.read().selectedProfile; }); - widget.logic.setTipTo(result); + widget.logic.setTipping(to: result); // Update QR code with new tip information widget.logic.updateReceiveQR(); } @@ -130,7 +130,7 @@ class ReceiveScreenState extends State { }); widget.profilesLogic.deSelectProfile(); widget.logic.clearAddressController(); - widget.logic.setTipTo(null); + widget.logic.clearTipping(); widget.logic.updateReceiveQR(); } diff --git a/lib/screens/wallet/screen.dart b/lib/screens/wallet/screen.dart index e0983eef..57380e2a 100644 --- a/lib/screens/wallet/screen.dart +++ b/lib/screens/wallet/screen.dart @@ -586,8 +586,7 @@ class WalletScreenState extends State }); if (result != true && sendToURL != null) { - // TODO: check clear tipping - _logic.clearTipTo(); + _logic.clearTipping(); _sendToURL = null; } @@ -1125,7 +1124,7 @@ class WalletScreenState extends State _receiveParams = null; _deepLink = deepLink; _deepLinkParams = deepLinkParams; - + if (voucher != null && voucherParams != null) { _sendToURL = null; } else { diff --git a/lib/state/wallet/logic.dart b/lib/state/wallet/logic.dart index 81b1264e..e5ca0126 100644 --- a/lib/state/wallet/logic.dart +++ b/lib/state/wallet/logic.dart @@ -1665,16 +1665,20 @@ class WalletLogic extends WidgetsBindingObserver { _amountController.clear(); } - void clearTipTo() { - _state.clearTipTo(); - } - - void setTipTo(String? tipTo) { - _state.setTipTo(tipTo); + void setTipping({ + required String to, + String? amount, + String? description, + }) { + _state.setTipping( + to: to, + amount: amount, + description: description, + ); } - void setHasTip(bool value) { - _state.setHasTip(value); + void clearTipping() { + _state.clearTipping(); } void setHasAddress(bool value) { @@ -1827,8 +1831,11 @@ class WalletLogic extends WidgetsBindingObserver { // Handle tip information if present if (parsedData.tip != null) { - _state.setTipTo(parsedData.tip!.to); - _state.setHasTip(true); + _state.setTipping( + to: parsedData.tip!.to, + amount: parsedData.tip!.amount, + description: parsedData.tip!.description, + ); } return addressToUse; @@ -1894,9 +1901,9 @@ class WalletLogic extends WidgetsBindingObserver { } // Add tipTo parameter if it exists in the state - final tipTo = _state.tipTo; - if (tipTo != null && tipTo.isNotEmpty) { - params += '&tipTo=$tipTo'; + final tipping = _state.tipping; + if (tipping != null && tipping.to.isNotEmpty) { + params += '&tipTo=${tipping.to}'; } // Check if URL already has query parameters in the fragment diff --git a/lib/state/wallet/state.dart b/lib/state/wallet/state.dart index 4eb75cba..d87d6292 100644 --- a/lib/state/wallet/state.dart +++ b/lib/state/wallet/state.dart @@ -4,6 +4,7 @@ import 'package:citizenwallet/services/config/config.dart'; import 'package:citizenwallet/services/engine/events.dart'; import 'package:citizenwallet/services/preferences/preferences.dart'; import 'package:citizenwallet/state/wallet/utils.dart'; +import 'package:citizenwallet/utils/send.dart'; import 'package:collection/collection.dart'; import 'package:flutter/cupertino.dart'; @@ -80,9 +81,7 @@ class WalletState with ChangeNotifier { bool cwWalletsLoading = false; bool cwWalletsError = false; - String? tipTo; - bool _hasTip = false; - bool get hasTip => _hasTip; + SendDestination? tipping; void setEventServiceState(EventServiceState state) { eventServiceState = state; @@ -701,19 +700,23 @@ class WalletState with ChangeNotifier { notifyListeners(); } - void setTipTo(String? tipTo) { - this.tipTo = tipTo; + void setTipping({ + required String to, + String? amount, + String? description, + }) { + tipping = SendDestination( + to: to, + amount: amount, + description: description, + ); notifyListeners(); } - void setHasTip(bool value) { - _hasTip = value; + void clearTipping() { + tipping = null; notifyListeners(); } - void clearTipTo() { - tipTo = null; - _hasTip = false; - notifyListeners(); - } + bool get hasTip => tipping != null; } From 06bd89d347f33dc748fd7b931a26863e96d8a8d0 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Tue, 13 Jan 2026 09:21:48 +0530 Subject: [PATCH 123/148] fix: defer controller clearing in tip_details dispose to prevent build phase error Wrap clearAmountController() and resetInputErrorState() in addPostFrameCallback to avoid triggering rebuilds during navigation back to send_progress screen. This fixes the "setState() called during build" error. --- lib/screens/send/tip_details.dart | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/screens/send/tip_details.dart b/lib/screens/send/tip_details.dart index 61f82778..a83ec592 100644 --- a/lib/screens/send/tip_details.dart +++ b/lib/screens/send/tip_details.dart @@ -110,8 +110,12 @@ class _TipDetailsScreenState extends State { final walletLogic = widget.walletLogic; - walletLogic.clearAmountController(); - walletLogic.resetInputErrorState(); + // Schedule controller clearing after the current frame to avoid + // triggering rebuilds during navigation + WidgetsBinding.instance.addPostFrameCallback((_) { + walletLogic.clearAmountController(); + walletLogic.resetInputErrorState(); + }); super.dispose(); } From f3c5580f9136095f7015ccf5fd4e869a22a358c9 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Tue, 13 Jan 2026 09:38:35 +0530 Subject: [PATCH 124/148] ios pod --- ios/Podfile.lock | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index f1ccaa00..62e61e6b 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -156,6 +156,9 @@ PODS: - Flutter - FlutterMacOS - PromisesObjC (2.4.0) + - reown_yttrium (0.0.1): + - Flutter + - YttriumWrapper (= 0.8.35) - SDWebImage (5.21.2): - SDWebImage/Core (= 5.21.2) - SDWebImage/Core (5.21.2) @@ -170,6 +173,7 @@ PODS: - SwiftyGif (5.4.5) - url_launcher_ios (0.0.1): - Flutter + - YttriumWrapper (0.8.35) DEPENDENCIES: - audioplayers_darwin (from `.symlinks/plugins/audioplayers_darwin/ios`) @@ -187,6 +191,7 @@ DEPENDENCIES: - nfc_manager (from `.symlinks/plugins/nfc_manager/ios`) - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) + - reown_yttrium (from `.symlinks/plugins/reown_yttrium/ios`) - share_plus (from `.symlinks/plugins/share_plus/ios`) - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) - sqflite_darwin (from `.symlinks/plugins/sqflite_darwin/darwin`) @@ -213,6 +218,7 @@ SPEC REPOS: - PromisesObjC - SDWebImage - SwiftyGif + - YttriumWrapper EXTERNAL SOURCES: audioplayers_darwin: @@ -245,6 +251,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/package_info_plus/ios" path_provider_foundation: :path: ".symlinks/plugins/path_provider_foundation/darwin" + reown_yttrium: + :path: ".symlinks/plugins/reown_yttrium/ios" share_plus: :path: ".symlinks/plugins/share_plus/ios" shared_preferences_foundation: @@ -270,7 +278,7 @@ SPEC CHECKSUMS: FirebaseCoreInternal: 9afa45b1159304c963da48addb78275ef701c6b4 FirebaseInstallations: 317270fec08a5d418fdbc8429282238cab3ac843 FirebaseMessaging: 3b26e2cee503815e01c3701236b020aa9b576f09 - Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467 + Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 flutter_inappwebview_ios: 6f63631e2c62a7c350263b13fa5427aedefe81d4 flutter_secure_storage: d33dac7ae2ea08509be337e775f6b59f1ff45f12 google_sign_in_ios: 7411fab6948df90490dc4620ecbcabdc3ca04017 @@ -285,14 +293,16 @@ SPEC CHECKSUMS: nfc_manager: d7da7cb781f7744b94df5fe9dbca904ac4a0939e OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94 package_info_plus: c0502532a26c7662a62a356cebe2692ec5fe4ec4 - path_provider_foundation: 0b743cbb62d8e47eab856f09262bb8c1ddcfe6ba + path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 + reown_yttrium: c0e87e5965fa60a3559564cc35cffbba22976089 SDWebImage: 9f177d83116802728e122410fb25ad88f5c7608a share_plus: 8b6f8b3447e494cca5317c8c3073de39b3600d1f - shared_preferences_foundation: 5086985c1d43c5ba4d5e69a4e8083a389e2909e6 + shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 sqflite_darwin: 5a7236e3b501866c1c9befc6771dfd73ffb8702d SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4 - url_launcher_ios: bb13df5870e8c4234ca12609d04010a21be43dfa + url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe + YttriumWrapper: 31e937fe9fbe0f1314d2ca6be9ce9b379a059966 PODFILE CHECKSUM: f90b7b7d52ec0d905039aa6f51266424548151c7 From 06f821c5ee4fc51bcf93060f015f89b620e9f209 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Tue, 13 Jan 2026 11:18:21 +0530 Subject: [PATCH 125/148] fix: format amounts based on decimal support for editable text fields MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Parse and format amounts according to community decimal support before setting in amount controller - For communities without decimals (decimalDigits == 0): convert to integer format (e.g., "1.0" → "1") - For communities with decimals: format with appropriate precision and remove trailing zeros - Apply same formatting logic to tip amounts to ensure consistency - Fixes issue where pre-filled amounts with decimals were uneditable in communities that don't support decimal values The root cause was that input formatters (integerAmountFormatter vs amountFormatter) expect amounts in specific formats. When pre-filled amounts didn't match the expected format, the text field blocked all editing attempts. --- lib/state/wallet/logic.dart | 38 ++++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/lib/state/wallet/logic.dart b/lib/state/wallet/logic.dart index c1a2c0a3..41e6fbe5 100644 --- a/lib/state/wallet/logic.dart +++ b/lib/state/wallet/logic.dart @@ -1820,15 +1820,21 @@ class WalletLogic extends WidgetsBindingObserver { } if (parsedData.amount != null) { - if (format == QRFormat.eip681Transfer) { - final amount = fromDoubleUnit( - parsedData.amount!, - decimals: _wallet.currency.decimals, - ); - _amountController.text = amount; + // Parse amount value + final numValue = double.tryParse(parsedData.amount!) ?? 0; + + // Format amount based on community decimal support + final decimalDigits = _state.wallet?.decimalDigits ?? 0; + if (decimalDigits == 0) { + // No decimal support - use integer format + _amountController.text = numValue.toInt().toString(); } else { - _amountController.text = parsedData.amount!; + // Decimal support - format with appropriate precision + _amountController.text = numValue + .toStringAsFixed(decimalDigits) + .replaceAll(RegExp(r'\.?0+$'), ''); } + updateAmount(); } @@ -1855,10 +1861,24 @@ class WalletLogic extends WidgetsBindingObserver { } // Handle tip information if present - if (parsedData.tip != null) { + if (parsedData.tip != null && parsedData.tip!.amount != null) { + // Format tip amount based on community decimal support + final tipNumValue = double.tryParse(parsedData.tip!.amount!) ?? 0; + final decimalDigits = _state.wallet?.decimalDigits ?? 0; + String formattedTipAmount; + if (decimalDigits == 0) { + // No decimal support - use integer format + formattedTipAmount = tipNumValue.toInt().toString(); + } else { + // Decimal support - format with appropriate precision + formattedTipAmount = tipNumValue + .toStringAsFixed(decimalDigits) + .replaceAll(RegExp(r'\.?0+$'), ''); + } + _state.setTipping( to: parsedData.tip!.to, - amount: parsedData.tip!.amount, + amount: formattedTipAmount, description: parsedData.tip!.description, ); } From 139744f884263ea03a9275feea5b7357ba364f20 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Tue, 13 Jan 2026 12:05:35 +0530 Subject: [PATCH 126/148] fix: defer state updates in receive screen dispose to avoid widget tree lock Wraps clearTipping(), updateMessage(), and updateListenerAmount() calls in addPostFrameCallback during dispose() to prevent "setState() or markNeedsBuild() called when widget tree was locked" error. These methods trigger notifyListeners() which cannot be called during the dispose phase. Deferring them until after the current frame ensures the widget tree is unlocked before state updates occur. --- lib/screens/wallet/receive.dart | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/screens/wallet/receive.dart b/lib/screens/wallet/receive.dart index 00e6c080..fba2d4d4 100644 --- a/lib/screens/wallet/receive.dart +++ b/lib/screens/wallet/receive.dart @@ -80,6 +80,13 @@ class ReceiveScreenState extends State { widget.logic.clearInputControllers(); widget.profilesLogic.clearSearch(notify: false); + // Defer state updates until after the current frame to avoid widget tree lock + WidgetsBinding.instance.addPostFrameCallback((_) { + widget.logic.clearTipping(); + widget.logic.updateMessage(); + widget.logic.updateListenerAmount(); + }); + super.dispose(); } From 5e394b205da59acd5cc5f50a82043188c81ea51e Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Tue, 13 Jan 2026 12:38:07 +0530 Subject: [PATCH 127/148] fix: prevent black screen when navigating after tip transaction Coordinate navigation between send_progress and tip_details screens to avoid black screen flicker: - tip_details now pops back with success status instead of using go() - send_progress receives the result and handles final navigation - clearTipping() called before navigating to wallet home Previously, tip_details used navigator.go() which abruptly cleared the navigation stack while send_progress was still active, causing a black screen during the transition. Now the screens coordinate properly with pop/push, ensuring smooth navigation back to the wallet home. --- lib/screens/send/send_progress.dart | 8 +++++++- lib/screens/send/tip_details.dart | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/screens/send/send_progress.dart b/lib/screens/send/send_progress.dart index a9003e5a..b53d210f 100644 --- a/lib/screens/send/send_progress.dart +++ b/lib/screens/send/send_progress.dart @@ -86,7 +86,7 @@ class _SendProgressState extends State { final toAccount = tipping.to; - await navigator.push( + final tipSent = await navigator.push( '/wallet/${widget.walletLogic?.account}/send/$toAccount/tip', extra: { 'walletLogic': widget.walletLogic, @@ -94,6 +94,12 @@ class _SendProgressState extends State { 'isMinting': widget.isMinting, }, ); + + // If tip was sent successfully, navigate to wallet home + if (tipSent == true && context.mounted) { + widget.walletLogic?.clearTipping(); + handleDone(context); + } } @override diff --git a/lib/screens/send/tip_details.dart b/lib/screens/send/tip_details.dart index e305f372..361a9910 100644 --- a/lib/screens/send/tip_details.dart +++ b/lib/screens/send/tip_details.dart @@ -295,7 +295,7 @@ class _TipDetailsScreenState extends State { await Future.delayed(const Duration(milliseconds: 50)); if (navigator.canPop()) { - navigator.go('/wallet/${walletLogic.account}'); + navigator.pop(true); } else { navigator.go('/wallet/${walletLogic.account}'); } From 9c6dc0dd38526c9d92b6ea672cbdc133d6c59456 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Tue, 13 Jan 2026 12:50:02 +0530 Subject: [PATCH 128/148] app testflight release --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index e63ba31a..dcfc4e10 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: citizenwallet -version: 2.0.31+295 +version: 2.0.31+296 publish_to: none description: A mobile wallet for your community. environment: From 3e3ed6485cf139ccf41bc0096e4618a38de829c0 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Tue, 13 Jan 2026 14:59:20 +0530 Subject: [PATCH 129/148] fix: create tipping state even when tip amount is not provided Separate tipping initialization from amount formatting logic to ensure tipping state is created whenever a tip destination (tipTo) is present in the URL, regardless of whether tipAmount is specified. Previously, tipping state was only created when both tipTo AND tipAmount were present. Now the state is created with tipTo and optional amount, allowing users to manually enter the tip amount later. Example URL that now works: https://app.citizenwallet.xyz/?sendto=0x...@alias&tipTo=0x... Changes: - Remove null check for parsedData.tip!.amount from outer condition - Make formattedTipAmount nullable (String?) - Format amount only when provided, otherwise pass null to setTipping() --- lib/state/wallet/logic.dart | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/lib/state/wallet/logic.dart b/lib/state/wallet/logic.dart index 41e6fbe5..2ae3348c 100644 --- a/lib/state/wallet/logic.dart +++ b/lib/state/wallet/logic.dart @@ -1861,24 +1861,29 @@ class WalletLogic extends WidgetsBindingObserver { } // Handle tip information if present - if (parsedData.tip != null && parsedData.tip!.amount != null) { - // Format tip amount based on community decimal support - final tipNumValue = double.tryParse(parsedData.tip!.amount!) ?? 0; - final decimalDigits = _state.wallet?.decimalDigits ?? 0; - String formattedTipAmount; - if (decimalDigits == 0) { - // No decimal support - use integer format - formattedTipAmount = tipNumValue.toInt().toString(); - } else { - // Decimal support - format with appropriate precision - formattedTipAmount = tipNumValue - .toStringAsFixed(decimalDigits) - .replaceAll(RegExp(r'\.?0+$'), ''); + if (parsedData.tip != null) { + String? formattedTipAmount; + + // Format tip amount if provided, based on community decimal support + if (parsedData.tip!.amount != null) { + final tipNumValue = double.tryParse(parsedData.tip!.amount!) ?? 0; + final decimalDigits = _state.wallet?.decimalDigits ?? 0; + + if (decimalDigits == 0) { + // No decimal support - use integer format + formattedTipAmount = tipNumValue.toInt().toString(); + } else { + // Decimal support - format with appropriate precision + formattedTipAmount = tipNumValue + .toStringAsFixed(decimalDigits) + .replaceAll(RegExp(r'\.?0+$'), ''); + } } + // Always create tipping state if tip destination is present _state.setTipping( to: parsedData.tip!.to, - amount: formattedTipAmount, + amount: formattedTipAmount, // Will be null if not provided description: parsedData.tip!.description, ); } From 370bd5e6a9c0138c400c04f5322121c58267e52f Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Tue, 13 Jan 2026 15:24:23 +0530 Subject: [PATCH 130/148] fix: enable tip sending to addresses without profiles When sending a tip to an address that doesn't have an associated profile, the handleSend function was returning early with selectedAddress as null. Fixed by: - Setting addressController.text to the raw address when profile lookup fails - Adding addressController fallback in SlideToComplete address resolution This ensures tips can be sent to any valid address regardless of profile existence. --- lib/screens/send/tip_details.dart | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/screens/send/tip_details.dart b/lib/screens/send/tip_details.dart index 361a9910..3da79361 100644 --- a/lib/screens/send/tip_details.dart +++ b/lib/screens/send/tip_details.dart @@ -89,6 +89,9 @@ class _TipDetailsScreenState extends State { widget.profilesLogic.getProfile(tipping.to).then((profile) { if (profile != null) { widget.profilesLogic.selectProfile(profile); + } else { + // If no profile found, set the raw address so handleSend can use it + walletLogic.addressController.text = tipping.to; } }); } @@ -818,7 +821,11 @@ class _TipDetailsScreenState extends State { context, selectedProfile?.account ?? searchedProfile - ?.account, + ?.account ?? + walletLogic + .addressController + .value + .text, ) : null, enabled: isSendingValid, From 93f3bbd9356a2c4bf2d016c2d2336cc6329304b5 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Tue, 13 Jan 2026 15:36:30 +0530 Subject: [PATCH 131/148] app testflight build --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index dcfc4e10..604dba9a 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: citizenwallet -version: 2.0.31+296 +version: 2.0.31+297 publish_to: none description: A mobile wallet for your community. environment: From f3ed4e4f2fb0134d450553fc1eee44c2269ead54 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Fri, 23 Jan 2026 16:38:14 +0530 Subject: [PATCH 132/148] CommunityConfig with closed attribute --- lib/services/config/config.dart | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/services/config/config.dart b/lib/services/config/config.dart index 62c87085..f4a3c5df 100644 --- a/lib/services/config/config.dart +++ b/lib/services/config/config.dart @@ -62,6 +62,7 @@ class CommunityConfig { final String logo; final String? customDomain; final bool hidden; + final bool closed; final ColorTheme theme; final ContractLocation profile; final ContractLocation primaryToken; @@ -76,6 +77,7 @@ class CommunityConfig { required this.logo, this.customDomain, this.hidden = false, + this.closed = false, required this.theme, required this.profile, required this.primaryToken, @@ -96,6 +98,7 @@ class CommunityConfig { logo: json['logo'] ?? '', customDomain: json['custom_domain'], hidden: json['hidden'] ?? false, + closed: json['closed'] ?? false, theme: theme, profile: ContractLocation.fromJson(json['profile']), primaryToken: ContractLocation.fromJson(json['primary_token']), @@ -117,6 +120,7 @@ class CommunityConfig { 'logo': logo, 'custom_domain': customDomain, 'hidden': hidden, + 'closed': closed, 'theme': theme, 'profile': profile.toJson(), 'primary_token': primaryToken.toJson(), From 94148dee3700f1a96bc3d6f96da4c12ca18b397f Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Fri, 23 Jan 2026 16:39:25 +0530 Subject: [PATCH 133/148] SFLUV Community (Polygon) - closed attribute --- assets/config/v5/communities.json | 10 ++++++++++ assets/config/v5/communities.test.json | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index 08d80601..9bbb166c 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -458,6 +458,14 @@ "desc": "SFLUV has migrated from Polygon to BeraChain, so this community (SFLUV Polygon) has been closed. Click the link below to create an account in the new SFLUV community. Your SFLUV Polygon balance will be transferred over once you have a new account.", "button": "Migrate" } + }, + { + "url": "https://app.sfluv.org/map", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "name": "Map", + "featured": true, + "signature": true, + "launch_mode": "webview" } ], "version": 5, @@ -483,6 +491,8 @@ "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", "name": "SFLUV Community (Polygon)", "alias": "wallet.sfluv.org", + "hidden": true, + "closed": true, "theme": { "primary": "#eb6c6c" }, diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index 08d80601..9bbb166c 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -458,6 +458,14 @@ "desc": "SFLUV has migrated from Polygon to BeraChain, so this community (SFLUV Polygon) has been closed. Click the link below to create an account in the new SFLUV community. Your SFLUV Polygon balance will be transferred over once you have a new account.", "button": "Migrate" } + }, + { + "url": "https://app.sfluv.org/map", + "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", + "name": "Map", + "featured": true, + "signature": true, + "launch_mode": "webview" } ], "version": 5, @@ -483,6 +491,8 @@ "logo": "https://assets.citizenwallet.xyz/wallet-config/_images/sfluv.svg", "name": "SFLUV Community (Polygon)", "alias": "wallet.sfluv.org", + "hidden": true, + "closed": true, "theme": { "primary": "#eb6c6c" }, From a82991b75be18bd3b8e628dabb8cdd6a5813d720 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Fri, 23 Jan 2026 17:33:38 +0530 Subject: [PATCH 134/148] commuity closed banner - display/hide from screen navigation --- lib/screens/wallet/screen.dart | 80 +++++++++++++++++++++++++++------- 1 file changed, 64 insertions(+), 16 deletions(-) diff --git a/lib/screens/wallet/screen.dart b/lib/screens/wallet/screen.dart index 86278c61..4e6c5c94 100644 --- a/lib/screens/wallet/screen.dart +++ b/lib/screens/wallet/screen.dart @@ -87,6 +87,7 @@ class WalletScreenState extends State String? _sendToURL; Config? _config; bool _isClosedBannerDismissed = false; + int _bannerResetKey = 0; @override void initState() { @@ -374,6 +375,11 @@ class WalletScreenState extends State _profileLogic.resume(); _profilesLogic.resume(); _voucherLogic.resume(); + _logic.updateWalletConfigFromRemote(); + setState(() { + _isClosedBannerDismissed = false; + _bannerResetKey++; + }); navigator.go('/wallet/$_address'); } @@ -595,6 +601,11 @@ class WalletScreenState extends State _profileLogic.resume(); _profilesLogic.resume(); _voucherLogic.resume(); + _logic.updateWalletConfigFromRemote(); + setState(() { + _isClosedBannerDismissed = false; + _bannerResetKey++; + }); } void handleReceive() async { @@ -602,10 +613,16 @@ class WalletScreenState extends State final navigator = GoRouter.of(context); - navigator.push('/wallet/$_address/receive', extra: { + await navigator.push('/wallet/$_address/receive', extra: { 'logic': _logic, 'profilesLogic': _profilesLogic, }); + + _logic.updateWalletConfigFromRemote(); + setState(() { + _isClosedBannerDismissed = false; + _bannerResetKey++; + }); } Future handlePlugin(PluginConfig pluginConfig) async { @@ -700,6 +717,11 @@ class WalletScreenState extends State _profileLogic.resume(); _profilesLogic.resume(); _voucherLogic.resume(); + _logic.updateWalletConfigFromRemote(); + setState(() { + _isClosedBannerDismissed = false; + _bannerResetKey++; + }); } Future handleMint({String? receiveParams}) async { @@ -721,6 +743,11 @@ class WalletScreenState extends State _profileLogic.resume(); _profilesLogic.resume(); _voucherLogic.resume(); + _logic.updateWalletConfigFromRemote(); + setState(() { + _isClosedBannerDismissed = false; + _bannerResetKey++; + }); } void handleVouchers() async { @@ -742,6 +769,11 @@ class WalletScreenState extends State _profileLogic.resume(); _profilesLogic.resume(); _voucherLogic.resume(); + _logic.updateWalletConfigFromRemote(); + setState(() { + _isClosedBannerDismissed = false; + _bannerResetKey++; + }); } void handleCopy(String value) { @@ -768,6 +800,11 @@ class WalletScreenState extends State _profileLogic.resume(); _profilesLogic.resume(); _voucherLogic.resume(); + _logic.updateWalletConfigFromRemote(); + setState(() { + _isClosedBannerDismissed = false; + _bannerResetKey++; + }); } void handleLoad(String address) async { @@ -785,6 +822,11 @@ class WalletScreenState extends State if (args == null) { _logic.resumeFetching(); + _logic.updateWalletConfigFromRemote(); + setState(() { + _isClosedBannerDismissed = false; + _bannerResetKey++; + }); return; } @@ -792,6 +834,11 @@ class WalletScreenState extends State if (address == _address && alias == _alias) { _logic.resumeFetching(); + _logic.updateWalletConfigFromRemote(); + setState(() { + _isClosedBannerDismissed = false; + _bannerResetKey++; + }); return; } @@ -1201,13 +1248,14 @@ class WalletScreenState extends State final isOffline = eventServiceState == EventServiceState.error || eventServiceState == EventServiceState.connecting; - final isCommunityClosed = eventServiceState == EventServiceState.closed; + final config = context.select((WalletState state) => state.config); + final isCommunityClosed = eventServiceState == EventServiceState.closed || + (config?.community.closed ?? false); final offboardPlugin = context.select( (WalletState state) => state.config!.getOffboardPlugin(), ); final cleaningUp = context.select((WalletState state) => state.cleaningUp); - final config = context.select((WalletState state) => state.config); final hasActiveSessions = context.select((WalletConnectState state) => state.hasActiveSessions); @@ -1401,19 +1449,19 @@ class WalletScreenState extends State ), ), ), - if (isCommunityClosed) - CommunityClosedBanner( - handleOffboardPlugin: offboardPlugin != null - ? () => handlePlugin(offboardPlugin) - : null, - onDismiss: () { - setState(() { - _isClosedBannerDismissed = true; - }); - }, - display: isCommunityClosed, - offboardPlugin: offboardPlugin, - ), + CommunityClosedBanner( + key: ValueKey('community_closed_banner_$_bannerResetKey'), + handleOffboardPlugin: offboardPlugin != null + ? () => handlePlugin(offboardPlugin) + : null, + onDismiss: () { + setState(() { + _isClosedBannerDismissed = true; + }); + }, + display: isCommunityClosed && !_isClosedBannerDismissed, + offboardPlugin: offboardPlugin, + ), OfflineBanner( communityUrl: config?.community.url ?? '', display: isOffline, From 719a89e78186cdd7bbd7c65cb3a8f365183e24a4 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Fri, 23 Jan 2026 17:42:06 +0530 Subject: [PATCH 135/148] commuity closed banner - display/hide from app resume from background --- lib/screens/wallet/screen.dart | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lib/screens/wallet/screen.dart b/lib/screens/wallet/screen.dart index 4e6c5c94..6fb4bbef 100644 --- a/lib/screens/wallet/screen.dart +++ b/lib/screens/wallet/screen.dart @@ -153,6 +153,20 @@ class WalletScreenState extends State } } + @override + Future didChangeAppLifecycleState(AppLifecycleState state) async { + switch (state) { + case AppLifecycleState.resumed: + _logic.updateWalletConfigFromRemote(); + setState(() { + _isClosedBannerDismissed = false; + _bannerResetKey++; + }); + break; + default: + } + } + void onScrollUpdate() { if (_scrollController.position.pixels >= _scrollController.position.maxScrollExtent - 300) { From ce5833d4c5127127a6c935c209702a3c8dede971 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Fri, 23 Jan 2026 22:41:23 +0530 Subject: [PATCH 136/148] app build for testflight --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 604dba9a..2d816d52 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: citizenwallet -version: 2.0.31+297 +version: 2.0.31+298 publish_to: none description: A mobile wallet for your community. environment: From dd3334a1ac5e3eab89ce029dad1a66e6ad22a39a Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 26 Jan 2026 15:07:19 +0530 Subject: [PATCH 137/148] restore original WebSocket connect function - on error ``` _isConnected = false; _onStateChange(EventServiceState.error); ``` --- lib/services/engine/events.dart | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/lib/services/engine/events.dart b/lib/services/engine/events.dart index 9df5c67d..85618514 100644 --- a/lib/services/engine/events.dart +++ b/lib/services/engine/events.dart @@ -90,25 +90,9 @@ class EventService { onDone: _onDone, ); } catch (e) { - // Check if this is a WebSocketException with 404 status - if (e is WebSocketException) { - final fullError = e.toString(); - - // Check if the full error string contains "404" - if (fullError.contains('404')) { - // Don't reconnect on 404 - the endpoint doesn't exist - _isConnected = false; - _onStateChange(EventServiceState.closed); - return; - } - } - - // Handle other connection errors print('Connection error: $e'); - print('Error type: ${e.runtimeType}'); _isConnected = false; _onStateChange(EventServiceState.error); - Duration delay = Duration(seconds: _reconnectDelay.inSeconds); if (reconnectDelay != null && reconnectDelay >= _reconnectMaxSeconds) { delay = Duration(seconds: reconnectDelay.inSeconds); From 59f95821c9ed0230d7523077d40100309121296e Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 26 Jan 2026 15:07:54 +0530 Subject: [PATCH 138/148] update condition to show community closed banner --- lib/screens/wallet/screen.dart | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/screens/wallet/screen.dart b/lib/screens/wallet/screen.dart index 6fb4bbef..932153ca 100644 --- a/lib/screens/wallet/screen.dart +++ b/lib/screens/wallet/screen.dart @@ -1263,8 +1263,7 @@ class WalletScreenState extends State eventServiceState == EventServiceState.connecting; final config = context.select((WalletState state) => state.config); - final isCommunityClosed = eventServiceState == EventServiceState.closed || - (config?.community.closed ?? false); + final isCommunityClosed = (config?.community.closed ?? false); final offboardPlugin = context.select( (WalletState state) => state.config!.getOffboardPlugin(), ); From 7e30ac7ba6cc1942c2adc701d581977d5cef4cb8 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Mon, 26 Jan 2026 15:23:39 +0530 Subject: [PATCH 139/148] app testflight release --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 2d816d52..e253d736 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: citizenwallet -version: 2.0.31+298 +version: 2.0.31+299 publish_to: none description: A mobile wallet for your community. environment: From 24740386a05467a4dc28cfd8237ebbfcc6586e28 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Wed, 28 Jan 2026 09:19:47 +0530 Subject: [PATCH 140/148] Update Brussels Pay offboard plugin - Change migration action name from "Offboard" to "Migrate to Citizen Pay" - Update migration URL to new checkout endpoint (cw-cp-migration) - Update migration messaging to explain Brussels Pay is moving to Citizen Pay - Mark Brussels Pay community as closed - Apply changes to both production and test configs --- assets/config/v5/communities.json | 12 +++++++----- assets/config/v5/communities.test.json | 12 +++++++----- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/assets/config/v5/communities.json b/assets/config/v5/communities.json index 9bbb166c..3c8b8a1e 100644 --- a/assets/config/v5/communities.json +++ b/assets/config/v5/communities.json @@ -148,16 +148,17 @@ "signature": true }, { - "name": "Offboard", + "name": "Migrate to Citizen Pay", "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/wallet.pay.brussels.png", - "url": "https://my.citizenpay.xyz/cw-migrate", + "url": "https://checkout.citizenpay.xyz/cw-cp-migration", "launch_mode": "webview", "signature": true, + "hidden": true, "action": "offboard", "meta": { - "title": "Migrate to Citizen Pay", - "desc": "This community has moved. Migrate your balance over to the Citizen Pay App.", - "button": "Start Migration" + "title": "Brussels Pay is moving", + "desc": "In order to focus our support efforts we are moving to Citizen Pay. It is a very simple migration process, you will just send your tokens to your new Citizen Pay account. More information on the next page.", + "button": "Let's go" } } ], @@ -195,6 +196,7 @@ "primary": "#4a90e2" }, "hidden": false, + "closed": true, "profile": { "address": "0x56Cc38bDa01bE6eC6D854513C995f6621Ee71229", "chain_id": 100 diff --git a/assets/config/v5/communities.test.json b/assets/config/v5/communities.test.json index 9bbb166c..3c8b8a1e 100644 --- a/assets/config/v5/communities.test.json +++ b/assets/config/v5/communities.test.json @@ -148,16 +148,17 @@ "signature": true }, { - "name": "Offboard", + "name": "Migrate to Citizen Pay", "icon": "https://assets.citizenwallet.xyz/wallet-config/_images/wallet.pay.brussels.png", - "url": "https://my.citizenpay.xyz/cw-migrate", + "url": "https://checkout.citizenpay.xyz/cw-cp-migration", "launch_mode": "webview", "signature": true, + "hidden": true, "action": "offboard", "meta": { - "title": "Migrate to Citizen Pay", - "desc": "This community has moved. Migrate your balance over to the Citizen Pay App.", - "button": "Start Migration" + "title": "Brussels Pay is moving", + "desc": "In order to focus our support efforts we are moving to Citizen Pay. It is a very simple migration process, you will just send your tokens to your new Citizen Pay account. More information on the next page.", + "button": "Let's go" } } ], @@ -195,6 +196,7 @@ "primary": "#4a90e2" }, "hidden": false, + "closed": true, "profile": { "address": "0x56Cc38bDa01bE6eC6D854513C995f6621Ee71229", "chain_id": 100 From df339ea1b751d1735fdeab33c9e65a8f4d28c85a Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Wed, 28 Jan 2026 09:56:43 +0530 Subject: [PATCH 141/148] Add platform query parameter to plugin URIs Refactor constructPluginUri to include device platform (ios/android) as a query parameter. Replace string concatenation with Uri.parse and uri.replace for cleaner parameter handling and better maintainability. - Add platform utility import - Detect platform using isPlatformAndroid() helper - Use Uri class for proper query parameter merging - Preserve existing query parameters in both signature paths - Add platform parameter to all plugin URIs --- lib/state/wallet/logic.dart | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/lib/state/wallet/logic.dart b/lib/state/wallet/logic.dart index 2ae3348c..85f410d8 100644 --- a/lib/state/wallet/logic.dart +++ b/lib/state/wallet/logic.dart @@ -28,6 +28,7 @@ import 'package:citizenwallet/state/notifications/logic.dart'; import 'package:citizenwallet/state/theme/logic.dart'; import 'package:citizenwallet/state/wallet/state.dart'; import 'package:citizenwallet/utils/delay.dart'; +import 'package:citizenwallet/utils/platform.dart'; import 'package:citizenwallet/utils/qr.dart'; import 'package:citizenwallet/utils/random.dart'; import 'package:citizenwallet/utils/uint8.dart'; @@ -2086,17 +2087,47 @@ class WalletLogic extends WidgetsBindingObserver { final encodedRedirectUrl = Uri.encodeComponent(redirectUrl); final parsedURL = Uri.parse(appUniversalURL); + + // Determine platform value + final platformValue = isPlatformAndroid() ? 'android' : 'ios'; + + // Parse the plugin URL + final pluginUri = Uri.parse(pluginConfig.url); if (pluginConfig.signature) { + // Parse existing connection query params + final connectionParams = Uri(query: connection.queryParams).queryParameters; + + // Merge with platform parameter + final updatedUri = pluginUri.replace( + queryParameters: { + ...pluginUri.queryParameters, + ...connectionParams, + 'platform': platformValue, + }, + ); + return ( - '${pluginConfig.url}${pluginConfig.url.contains('?') ? '&' : '?'}${connection.queryParams}', + updatedUri.toString(), parsedURL.scheme != 'https' ? parsedURL.scheme : null, redirectUrl, ); } + // For non-signature case, add all parameters including platform + final updatedUri = pluginUri.replace( + queryParameters: { + ...pluginUri.queryParameters, + 'account': _wallet.account.hexEip55, + 'expiry': now.millisecondsSinceEpoch.toString(), + 'redirectUrl': encodedRedirectUrl, + 'signature': '0x123', + 'platform': platformValue, + }, + ); + return ( - '${pluginConfig.url}?account=${_wallet.account.hexEip55}&expiry=${now.millisecondsSinceEpoch}&redirectUrl=$encodedRedirectUrl&signature=0x123', + updatedUri.toString(), parsedURL.scheme != 'https' ? parsedURL.scheme : null, redirectUrl, ); From 51192431ad98dce8542dcf4a4a50bbea60696508 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Wed, 28 Jan 2026 10:10:37 +0530 Subject: [PATCH 142/148] app testflight release --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index e253d736..f4a29cb9 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: citizenwallet -version: 2.0.31+299 +version: 2.0.31+300 publish_to: none description: A mobile wallet for your community. environment: From 187e5689e422d67e54945555a86d5f5cead0b3bf Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Wed, 28 Jan 2026 23:58:33 +0530 Subject: [PATCH 143/148] local abi.json files from smartcontracts repo --- assets/contracts/accounts/Account.abi.json | 1 + .../accounts/AccountFactory.abi.json | 1 + .../accounts/TokenEntryPoint.abi.json | 1 + assets/contracts/apps/Profile.abi.json | 1 + assets/contracts/apps/SimpleFaucet.abi.json | 1 + .../contracts/external/CardFactory.abi.json | 216 ++++++++++++++++++ assets/contracts/external/DERC20.abi.json | 1 + .../external/SimpleAccountFactory.abi.json | 1 + assets/contracts/standards/ERC1155.abi.json | 1 + assets/contracts/standards/ERC20.abi.json | 1 + .../IAccessControlUpgradeable.abi.json | 1 + 11 files changed, 226 insertions(+) create mode 100644 assets/contracts/accounts/Account.abi.json create mode 100644 assets/contracts/accounts/AccountFactory.abi.json create mode 100644 assets/contracts/accounts/TokenEntryPoint.abi.json create mode 100644 assets/contracts/apps/Profile.abi.json create mode 100644 assets/contracts/apps/SimpleFaucet.abi.json create mode 100644 assets/contracts/external/CardFactory.abi.json create mode 100644 assets/contracts/external/DERC20.abi.json create mode 100644 assets/contracts/external/SimpleAccountFactory.abi.json create mode 100644 assets/contracts/standards/ERC1155.abi.json create mode 100644 assets/contracts/standards/ERC20.abi.json create mode 100644 assets/contracts/standards/IAccessControlUpgradeable.abi.json diff --git a/assets/contracts/accounts/Account.abi.json b/assets/contracts/accounts/Account.abi.json new file mode 100644 index 00000000..9ce756ce --- /dev/null +++ b/assets/contracts/accounts/Account.abi.json @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"contract IEntryPoint","name":"anEntryPoint","type":"address"},{"internalType":"contract ITokenEntryPoint","name":"aTokenEntryPoint","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IEntryPoint","name":"entryPoint","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"AccountInitialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"addDeposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"entryPoint","outputs":[{"internalType":"contract IEntryPoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"dest","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"func","type":"bytes"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"dest","type":"address[]"},{"internalType":"bytes[]","name":"func","type":"bytes[]"}],"name":"executeBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"anOwner","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_hash","type":"bytes32"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"isValidSignature","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"recoverOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenEntryPoint","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"tokensReceived","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"uint256","name":"callGasLimit","type":"uint256"},{"internalType":"uint256","name":"verificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}],"internalType":"struct UserOperation","name":"userOp","type":"tuple"},{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"uint256","name":"missingAccountFunds","type":"uint256"}],"name":"validateUserOp","outputs":[{"internalType":"uint256","name":"validationData","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"uint256","name":"callGasLimit","type":"uint256"},{"internalType":"uint256","name":"verificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}],"internalType":"struct UserOperation","name":"userOp","type":"tuple"},{"internalType":"bytes32","name":"userOpHash","type":"bytes32"}],"name":"validateUserOp","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"withdrawAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawDepositTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}] \ No newline at end of file diff --git a/assets/contracts/accounts/AccountFactory.abi.json b/assets/contracts/accounts/AccountFactory.abi.json new file mode 100644 index 00000000..c701232b --- /dev/null +++ b/assets/contracts/accounts/AccountFactory.abi.json @@ -0,0 +1 @@ +[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"AccountCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"accountImplementation","outputs":[{"internalType":"contract Account","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"salt","type":"uint256"}],"name":"createAccount","outputs":[{"internalType":"contract Account","name":"ret","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"salt","type":"uint256"}],"name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IEntryPoint","name":"_entryPoint","type":"address"},{"internalType":"contract ITokenEntryPoint","name":"_tokenEntryPoint","type":"address"},{"internalType":"address","name":"anOwner","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"}] \ No newline at end of file diff --git a/assets/contracts/accounts/TokenEntryPoint.abi.json b/assets/contracts/accounts/TokenEntryPoint.abi.json new file mode 100644 index 00000000..5984ad9f --- /dev/null +++ b/assets/contracts/accounts/TokenEntryPoint.abi.json @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"contract INonceManager","name":"anEntryPoint","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint192","name":"key","type":"uint192"}],"name":"getNonce","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"uint256","name":"callGasLimit","type":"uint256"},{"internalType":"uint256","name":"verificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}],"internalType":"struct UserOperation","name":"userOp","type":"tuple"}],"name":"getUserOpHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"uint256","name":"callGasLimit","type":"uint256"},{"internalType":"uint256","name":"verificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}],"internalType":"struct UserOperation[]","name":"ops","type":"tuple[]"},{"internalType":"address payable","name":"beneficiary","type":"address"}],"name":"handleOps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint192","name":"key","type":"uint192"}],"name":"incrementNonce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"anOwner","type":"address"},{"internalType":"address","name":"aPaymaster","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint192","name":"","type":"uint192"}],"name":"nonceSequenceNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paymaster","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPaymaster","type":"address"}],"name":"updatePaymaster","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"updateWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"}] \ No newline at end of file diff --git a/assets/contracts/apps/Profile.abi.json b/assets/contracts/apps/Profile.abi.json new file mode 100644 index 00000000..305e731d --- /dev/null +++ b/assets/contracts/apps/Profile.abi.json @@ -0,0 +1 @@ +[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_toTokenId","type":"uint256"}],"name":"BatchMetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"MetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROFILE_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"profile","type":"address"}],"name":"fromAddressToId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"fromIdToAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"profile","type":"address"}],"name":"get","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"username","type":"bytes32"}],"name":"getFromUsername","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"username","type":"bytes32"}],"name":"profiles","outputs":[{"internalType":"address","name":"profile","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"profile","type":"address"},{"internalType":"bytes32","name":"_username","type":"bytes32"},{"internalType":"string","name":"_uri","type":"string"}],"name":"set","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"profile","type":"address"}],"name":"usernames","outputs":[{"internalType":"bytes32","name":"username","type":"bytes32"}],"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/assets/contracts/apps/SimpleFaucet.abi.json b/assets/contracts/apps/SimpleFaucet.abi.json new file mode 100644 index 00000000..d36d3deb --- /dev/null +++ b/assets/contracts/apps/SimpleFaucet.abi.json @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REDEEM_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"contract IERC20Upgradeable","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint48","name":"_redeemInterval","type":"uint48"},{"internalType":"address","name":"_redeemAdmin","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"redeem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"redeemAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"redeemInterval","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"redeemTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"redeemed","outputs":[{"internalType":"uint48","name":"time","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20Upgradeable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/assets/contracts/external/CardFactory.abi.json b/assets/contracts/external/CardFactory.abi.json new file mode 100644 index 00000000..16307234 --- /dev/null +++ b/assets/contracts/external/CardFactory.abi.json @@ -0,0 +1,216 @@ +[ + { + "inputs": [ + { + "internalType": "contract IEntryPoint", + "name": "_entryPoint", + "type": "address" + }, + { + "internalType": "contract ITokenEntryPoint", + "name": "_tokenEntryPoint", + "type": "address" + }, + { + "internalType": "address[]", + "name": "_whitelistAddresses", + "type": "address[]" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "voucher", + "type": "address" + } + ], + "name": "CardCreated", + "type": "event" + }, + { + "inputs": [], + "name": "cardImplementation", + "outputs": [ + { + "internalType": "contract Card", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "contractAddress", + "type": "address" + } + ], + "name": "contractExists", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "cardHash", + "type": "bytes32" + } + ], + "name": "createCard", + "outputs": [ + { + "internalType": "contract Card", + "name": "ret", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "cardHash", + "type": "bytes32" + } + ], + "name": "getCardAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "serial", + "type": "uint256" + } + ], + "name": "getCardHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "addr", + "type": "address" + } + ], + "name": "isWhitelisted", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "cardHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferCardOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "addresses", + "type": "address[]" + } + ], + "name": "updateWhitelist", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "cardHash", + "type": "bytes32" + }, + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } +] \ No newline at end of file diff --git a/assets/contracts/external/DERC20.abi.json b/assets/contracts/external/DERC20.abi.json new file mode 100644 index 00000000..1065a7bf --- /dev/null +++ b/assets/contracts/external/DERC20.abi.json @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"address payable","name":"relayerAddress","type":"address"},{"indexed":false,"internalType":"bytes","name":"functionSignature","type":"bytes"}],"name":"MetaTransactionExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"CHILD_CHAIN_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CHILD_CHAIN_ID_BYTES","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSITOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ERC712_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROOT_CHAIN_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROOT_CHAIN_ID_BYTES","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes","name":"depositData","type":"bytes"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"bytes","name":"functionSignature","type":"bytes"},{"internalType":"bytes32","name":"sigR","type":"bytes32"},{"internalType":"bytes32","name":"sigS","type":"bytes32"},{"internalType":"uint8","name":"sigV","type":"uint8"}],"name":"executeMetaTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getNonce","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}] \ No newline at end of file diff --git a/assets/contracts/external/SimpleAccountFactory.abi.json b/assets/contracts/external/SimpleAccountFactory.abi.json new file mode 100644 index 00000000..c0877873 --- /dev/null +++ b/assets/contracts/external/SimpleAccountFactory.abi.json @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"contract IEntryPoint","name":"_entryPoint","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"accountImplementation","outputs":[{"internalType":"contract SimpleAccount","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"salt","type":"uint256"}],"name":"createAccount","outputs":[{"internalType":"contract SimpleAccount","name":"ret","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"salt","type":"uint256"}],"name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/assets/contracts/standards/ERC1155.abi.json b/assets/contracts/standards/ERC1155.abi.json new file mode 100644 index 00000000..57eaea05 --- /dev/null +++ b/assets/contracts/standards/ERC1155.abi.json @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/assets/contracts/standards/ERC20.abi.json b/assets/contracts/standards/ERC20.abi.json new file mode 100644 index 00000000..9c1f0997 --- /dev/null +++ b/assets/contracts/standards/ERC20.abi.json @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/assets/contracts/standards/IAccessControlUpgradeable.abi.json b/assets/contracts/standards/IAccessControlUpgradeable.abi.json new file mode 100644 index 00000000..c73da1ae --- /dev/null +++ b/assets/contracts/standards/IAccessControlUpgradeable.abi.json @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file From da9175748ef828ca3d3978d34011734b2261fea0 Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Thu, 29 Jan 2026 00:12:36 +0530 Subject: [PATCH 144/148] auto-gen localise files --- lib/l10n/app_localizations.dart | 36 +++++++++++++++--------------- lib/l10n/app_localizations_en.dart | 19 ++++++++-------- lib/l10n/app_localizations_es.dart | 19 ++++++++-------- lib/l10n/app_localizations_fr.dart | 19 ++++++++-------- lib/l10n/app_localizations_nl.dart | 19 ++++++++-------- 5 files changed, 58 insertions(+), 54 deletions(-) diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index 11b15a2c..f5c60b62 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -1296,6 +1296,24 @@ abstract class AppLocalizations { /// **'Community currently offline'** String get communityCurrentlyOffline; + /// No description provided for @communityClosed. + /// + /// In en, this message translates to: + /// **'This community is currently closed'** + String get communityClosed; + + /// No description provided for @communityClosedDescription. + /// + /// In en, this message translates to: + /// **'This community is not accepting transactions at this time. Contact the community administrator for more information.'** + String get communityClosedDescription; + + /// No description provided for @learnMore. + /// + /// In en, this message translates to: + /// **'Learn More'** + String get learnMore; + /// No description provided for @topup. /// /// In en, this message translates to: @@ -1332,24 +1350,6 @@ abstract class AppLocalizations { /// **'Account not found'** String get accountNotFound; - /// No description provided for @communityClosed. - /// - /// In en, this message translates to: - /// **'This community is currently closed'** - String get communityClosed; - - /// No description provided for @communityClosedDescription. - /// - /// In en, this message translates to: - /// **'This community is not accepting transactions at this time. Contact the community administrator for more information.'** - String get communityClosedDescription; - - /// No description provided for @learnMore. - /// - /// In en, this message translates to: - /// **'Learn More'** - String get learnMore; - /// No description provided for @sendTip. /// /// In en, this message translates to: diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart index 6b0c24e9..d78641b0 100644 --- a/lib/l10n/app_localizations_en.dart +++ b/lib/l10n/app_localizations_en.dart @@ -651,31 +651,32 @@ class AppLocalizationsEn extends AppLocalizations { String get communityCurrentlyOffline => 'Community currently offline'; @override - String get topup => 'Top Up'; + String get communityClosed => 'This community is currently closed'; @override - String get close => 'Close'; + String get communityClosedDescription => + 'This community is not accepting transactions at this time. Contact the community administrator for more information.'; @override - String get more => 'More'; + String get learnMore => 'Learn More'; @override - String get start => 'Start'; + String get topup => 'Top Up'; @override - String get connecting => 'Connecting'; + String get close => 'Close'; @override - String get accountNotFound => 'Account not found'; + String get more => 'More'; @override - String get communityClosed => 'This community is currently closed'; + String get start => 'Start'; @override - String get communityClosedDescription => 'This community is not accepting transactions at this time. Contact the community administrator for more information.'; + String get connecting => 'Connecting'; @override - String get learnMore => 'Learn More'; + String get accountNotFound => 'Account not found'; @override String get sendTip => 'Send Tip'; diff --git a/lib/l10n/app_localizations_es.dart b/lib/l10n/app_localizations_es.dart index 33c46b33..d40cd430 100644 --- a/lib/l10n/app_localizations_es.dart +++ b/lib/l10n/app_localizations_es.dart @@ -655,31 +655,32 @@ class AppLocalizationsEs extends AppLocalizations { 'Comunidad actualmente fuera de línea'; @override - String get topup => 'Recargar'; + String get communityClosed => 'Esta comunidad está actualmente cerrada'; @override - String get close => 'Cerrar'; + String get communityClosedDescription => + 'Esta comunidad no acepta transacciones en este momento. Ponte en contacto con el administrador de la comunidad para más información.'; @override - String get more => 'Más'; + String get learnMore => 'Más información'; @override - String get start => 'Iniciar'; + String get topup => 'Recargar'; @override - String get connecting => 'Conectando'; + String get close => 'Cerrar'; @override - String get accountNotFound => 'Cuenta no encontrada'; + String get more => 'Más'; @override - String get communityClosed => 'Esta comunidad está actualmente cerrada'; + String get start => 'Iniciar'; @override - String get communityClosedDescription => 'Esta comunidad no está aceptando transacciones en este momento. Contacta al administrador de la comunidad para obtener más información.'; + String get connecting => 'Conectando'; @override - String get learnMore => 'Más información'; + String get accountNotFound => 'Cuenta no encontrada'; @override String get sendTip => 'Enviar propina'; diff --git a/lib/l10n/app_localizations_fr.dart b/lib/l10n/app_localizations_fr.dart index 9e1a104a..bab5d9e5 100644 --- a/lib/l10n/app_localizations_fr.dart +++ b/lib/l10n/app_localizations_fr.dart @@ -656,31 +656,32 @@ class AppLocalizationsFr extends AppLocalizations { String get communityCurrentlyOffline => 'Communauté actuellement hors ligne'; @override - String get topup => 'Recharger'; + String get communityClosed => 'Cette communauté est actuellement fermée'; @override - String get close => 'Fermer'; + String get communityClosedDescription => + 'Cette communauté n\'accepte pas les transactions pour le moment. Contactez l\'administrateur de la communauté pour plus d\'informations.'; @override - String get more => 'Plus'; + String get learnMore => 'En savoir plus'; @override - String get start => 'Commencer'; + String get topup => 'Recharger'; @override - String get connecting => 'Connexion'; + String get close => 'Fermer'; @override - String get accountNotFound => 'Compte non trouvé'; + String get more => 'Plus'; @override - String get communityClosed => 'Cette communauté est actuellement fermée'; + String get start => 'Commencer'; @override - String get communityClosedDescription => 'Cette communauté n\'accepte pas les transactions pour le moment. Contactez l\'administrateur de la communauté pour plus d\'informations.'; + String get connecting => 'Connexion'; @override - String get learnMore => 'En savoir plus'; + String get accountNotFound => 'Compte non trouvé'; @override String get sendTip => 'Envoyer un pourboire'; diff --git a/lib/l10n/app_localizations_nl.dart b/lib/l10n/app_localizations_nl.dart index b8ba37b9..29e961a5 100644 --- a/lib/l10n/app_localizations_nl.dart +++ b/lib/l10n/app_localizations_nl.dart @@ -658,31 +658,32 @@ class AppLocalizationsNl extends AppLocalizations { String get communityCurrentlyOffline => 'Gemeenschap momenteel offline'; @override - String get topup => 'Opwaarderen'; + String get communityClosed => 'Deze gemeenschap is momenteel gesloten'; @override - String get close => 'Sluiten'; + String get communityClosedDescription => + 'Deze gemeenschap accepteert momenteel geen transacties. Neem contact op met de gemeenschapsbeheerder voor meer informatie.'; @override - String get more => 'Meer'; + String get learnMore => 'Meer informatie'; @override - String get start => 'Start'; + String get topup => 'Opwaarderen'; @override - String get connecting => 'Verbinding maken'; + String get close => 'Sluiten'; @override - String get accountNotFound => 'Account niet gevonden'; + String get more => 'Meer'; @override - String get communityClosed => 'Deze gemeenschap is momenteel gesloten'; + String get start => 'Start'; @override - String get communityClosedDescription => 'Deze gemeenschap accepteert momenteel geen transacties. Neem contact op met de gemeenschapsadministrator voor meer informatie.'; + String get connecting => 'Verbinding maken'; @override - String get learnMore => 'Meer informatie'; + String get accountNotFound => 'Account niet gevonden'; @override String get sendTip => 'Fooi versturen'; From 3504c2ce9ddc0aa1ebf64c2231615e269adb37df Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Thu, 29 Jan 2026 00:13:40 +0530 Subject: [PATCH 145/148] add local contract assets --- pubspec.yaml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pubspec.yaml b/pubspec.yaml index f4a29cb9..de368398 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -148,6 +148,7 @@ flutter: - assets/lottie/wallet_receive.json - assets/lottie/qr_scan_success.json - assets/lottie/piggie_bank.json + - packages/smartcontracts/contracts/accounts/Account.abi.json - packages/smartcontracts/contracts/accounts/AccountFactory.abi.json - packages/smartcontracts/contracts/external/DERC20.abi.json @@ -160,6 +161,19 @@ flutter: - packages/smartcontracts/contracts/standards/ERC1155.abi.json - packages/smartcontracts/contracts/apps/Profile.abi.json - packages/smartcontracts/contracts/external/CardFactory.abi.json + + - assets/contracts/accounts/Account.abi.json + - assets/contracts/accounts/AccountFactory.abi.json + - assets/contracts/accounts/TokenEntryPoint.abi.json + - assets/contracts/apps/Profile.abi.json + - assets/contracts/apps/SimpleFaucet.abi.json + - assets/contracts/external/CardFactory.abi.json + - assets/contracts/external/DERC20.abi.json + - assets/contracts/external/SimpleAccountFactory.abi.json + - assets/contracts/standards/ERC20.abi.json + - assets/contracts/standards/ERC1155.abi.json + - assets/contracts/standards/IAccessControlUpgradeable.abi.json + - packages/contractforge/abi/CardManagerModule.json - packages/contractforge/abi/Safe.json - packages/contractforge/abi/CommunityModule.json From 376be8726d4a2d1fd327fd1b0ddb9cfef3d5b5ec Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Thu, 29 Jan 2026 00:28:22 +0530 Subject: [PATCH 146/148] Update Android build configuration for compatibility - Upgrade Android Gradle plugin to 8.9.1 to satisfy AndroidX dependencies - Use flutter.minSdkVersion instead of hardcoded value for better Flutter integration Fixes build failure caused by androidx.browser:browser:1.9.0, androidx.core:core-ktx:1.17.0, and androidx.core:core:1.17.0 requiring AGP 8.9.1 or higher. --- android/app/build.gradle | 2 +- android/settings.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index a0519186..f1fe9cc2 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -52,7 +52,7 @@ android { applicationId "xyz.citizenwallet.wallet" // You can update the following values to match your application needs. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdkVersion 23 + minSdkVersion flutter.minSdkVersion targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName diff --git a/android/settings.gradle b/android/settings.gradle index 38584c19..fa553851 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -18,7 +18,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version '8.9.0' apply false + id "com.android.application" version '8.9.1' apply false id "org.jetbrains.kotlin.android" version "2.1.10" apply false id "com.google.gms.google-services" version "4.4.0" apply false } From 6761564dccf6f7354e5752f155166e4addee195c Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Thu, 29 Jan 2026 00:29:13 +0530 Subject: [PATCH 147/148] app release --- pubspec.lock | 316 +++++++++++++++++++++++++-------------------------- pubspec.yaml | 2 +- 2 files changed, 155 insertions(+), 163 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index 421acb2c..25f1cb75 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -13,10 +13,10 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: da0d9209ca76bde579f2da330aeb9df62b6319c834fa7baae052021b0462401f + sha256: c209688d9f5a5f26b2fb47a188131a6fb9e876ae9e47af3737c0b4f58a93470d url: "https://pub.dev" source: hosted - version: "85.0.0" + version: "91.0.0" _flutterfire_internals: dependency: transitive description: @@ -37,10 +37,10 @@ packages: dependency: transitive description: name: analyzer - sha256: "974859dc0ff5f37bc4313244b3218c791810d03ab3470a579580279ba971a48d" + sha256: f51c8499b35f9b26820cfe914828a6a98a94efd5cc78b37bb7d03debae3a1d08 url: "https://pub.dev" source: hosted - version: "7.7.1" + version: "8.4.1" archive: dependency: "direct main" description: @@ -69,10 +69,10 @@ packages: dependency: "direct main" description: name: async - sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 + sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb" url: "https://pub.dev" source: hosted - version: "2.12.0" + version: "2.13.0" audio_in_app: dependency: "direct main" description: @@ -161,14 +161,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.2" - buffer: - dependency: transitive - description: - name: buffer - sha256: "389da2ec2c16283c8787e0adaede82b1842102f8c8aae2f49003a766c5c6b3d1" - url: "https://pub.dev" - source: hosted - version: "1.2.3" cached_network_image: dependency: "direct main" description: @@ -197,10 +189,10 @@ packages: dependency: transitive description: name: cbor - sha256: f5239dd6b6ad24df67d1449e87d7180727d6f43b87b3c9402e6398c7a2d9609b + sha256: "259230d0c7f3ae58cb68cbc17b95484a038b2f63b15963b019d4bd9d28bf3fe0" url: "https://pub.dev" source: hosted - version: "6.3.7" + version: "6.5.0" characters: dependency: transitive description: @@ -221,10 +213,10 @@ packages: dependency: transitive description: name: checked_yaml - sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff + sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f" url: "https://pub.dev" source: hosted - version: "2.0.3" + version: "2.0.4" cli_config: dependency: transitive description: @@ -249,6 +241,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.2" + code_assets: + dependency: transitive + description: + name: code_assets + sha256: "83ccdaa064c980b5596c35dd64a8d3ecc68620174ab9b90b6343b753aa721687" + url: "https://pub.dev" + source: hosted + version: "1.0.0" collection: dependency: "direct main" description: @@ -261,10 +261,10 @@ packages: dependency: transitive description: name: connectivity_plus - sha256: b5e72753cf63becce2c61fd04dfe0f1c430cc5278b53a1342dc5ad839eab29ec + sha256: "33bae12a398f841c6cda09d1064212957265869104c478e5ad51e2fb26c3973c" url: "https://pub.dev" source: hosted - version: "6.1.5" + version: "7.0.0" connectivity_plus_platform_interface: dependency: transitive description: @@ -302,42 +302,42 @@ packages: dependency: "direct main" description: name: credential_manager - sha256: bb0c064fc27f73e4c851808e115290ef340ab88f656333cd8bc924609eceb477 + sha256: "3d09d3a753e9975f07dd8d4ba777ce33dbd0269d5196fc1bc3c349da84b1ff5b" url: "https://pub.dev" source: hosted - version: "2.0.7" + version: "2.0.8" credential_manager_android: dependency: transitive description: name: credential_manager_android - sha256: "5ae9e4790921874aa3a56d4849695a2f66ac2eacfa5a24f0bda2b4dd1cc02dae" + sha256: cac9b34efc2629fb927ed565795d1e324dbd942d7e6c39e97ed090b5f0ce5f3e url: "https://pub.dev" source: hosted - version: "2.0.7" + version: "2.0.8" credential_manager_ios: dependency: transitive description: name: credential_manager_ios - sha256: "5cabc6d070afcda12f585e9f091534b9acdd40c3740820b2e4b56fb54fe19b23" + sha256: f174ec4b9a98c893ed79fc2149e4d703b3c04ba2168ba7d8e06b9715ff52f154 url: "https://pub.dev" source: hosted - version: "2.0.7" + version: "2.0.8" credential_manager_platform_interface: dependency: transitive description: name: credential_manager_platform_interface - sha256: "118e8046f95597baf23caf0ec4bc739e4502f71441df593edd951f9b16bea69e" + sha256: e36781cc73dee360853275cd2fc7a535305d7368b5c3c7be7fb38f4be6bec3e7 url: "https://pub.dev" source: hosted - version: "2.0.7" + version: "2.0.8" cross_file: dependency: transitive description: name: cross_file - sha256: "942a4791cd385a68ccb3b32c71c427aba508a1bb949b86dff2adbe4049f16239" + sha256: "701dcfc06da0882883a2657c445103380e53e647060ad8d9dfb710c100996608" url: "https://pub.dev" source: hosted - version: "0.3.5" + version: "0.3.5+1" crypto: dependency: "direct main" description: @@ -350,10 +350,10 @@ packages: dependency: "direct main" description: name: cryptography - sha256: d146b76d33d94548cf035233fbc2f4338c1242fa119013bead807d033fc4ae05 + sha256: "3eda3029d34ec9095a27a198ac9785630fe525c0eb6a49f3d575272f8e792ef0" url: "https://pub.dev" source: hosted - version: "2.7.0" + version: "2.9.0" csslib: dependency: transitive description: @@ -382,10 +382,10 @@ packages: dependency: transitive description: name: dev_build - sha256: fda8a54458b2a873a84e0cd1513f4323a1fb0599ed5455245359bc0398bad9ee + sha256: "1d9aa167c05cbe4be9fbaf863c76dcee9bec302fb861270672beb6d6be0bc8f4" url: "https://pub.dev" source: hosted - version: "1.1.2+11" + version: "1.1.3+1" ed25519_edwards: dependency: transitive description: @@ -418,22 +418,6 @@ packages: url: "https://pub.dev" source: hosted version: "5.0.3" - equatable: - dependency: transitive - description: - name: equatable - sha256: "567c64b3cb4cf82397aac55f4f0cbd3ca20d77c6c03bedbc4ceaddc08904aef7" - url: "https://pub.dev" - source: hosted - version: "2.0.7" - eth_sig_util: - dependency: transitive - description: - name: eth_sig_util - sha256: "20fdc5ce3864e70e5ade1c1cd03cce4ef01018db00adab107303f9055d26b01a" - url: "https://pub.dev" - source: hosted - version: "0.0.9" event: dependency: transitive description: @@ -454,18 +438,18 @@ packages: dependency: transitive description: name: fake_async - sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" + sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44" url: "https://pub.dev" source: hosted - version: "1.3.2" + version: "1.3.3" ffi: dependency: transitive description: name: ffi - sha256: "289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418" + sha256: d07d37192dbf97461359c1518788f203b0c9102cfd2c35a716b823741219542c url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.1.5" file: dependency: transitive description: @@ -478,10 +462,10 @@ packages: dependency: "direct main" description: name: file_picker - sha256: f2d9f173c2c14635cc0e9b14c143c49ef30b4934e8d1d274d6206fcb0086a06f + sha256: "57d9a1dd5063f85fa3107fb42d1faffda52fdc948cefd5fe5ea85267a5fc7343" url: "https://pub.dev" source: hosted - version: "10.3.3" + version: "10.3.10" firebase_core: dependency: "direct main" description: @@ -656,10 +640,10 @@ packages: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: c2fe1001710127dfa7da89977a08d591398370d099aacdaa6d44da7eb14b8476 + sha256: ee8068e0e1cd16c4a82714119918efdeed33b3ba7772c54b5d094ab53f9b7fd1 url: "https://pub.dev" source: hosted - version: "2.0.31" + version: "2.0.33" flutter_secure_storage: dependency: "direct main" description: @@ -712,10 +696,10 @@ packages: dependency: "direct main" description: name: flutter_svg - sha256: "055de8921be7b8e8b98a233c7a5ef84b3a6fcc32f46f1ebf5b9bb3576d108355" + sha256: "87fbd7c534435b6c5d9d98b01e1fd527812b82e68ddd8bd35fc45ed0fa8f0a95" url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.2.3" flutter_test: dependency: "direct dev" description: flutter @@ -730,10 +714,10 @@ packages: dependency: transitive description: name: freezed_annotation - sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2 + sha256: "7294967ff0a6d98638e7acb774aac3af2550777accd8149c90af5b014e6d44d8" url: "https://pub.dev" source: hosted - version: "2.4.4" + version: "3.1.0" frontend_server_client: dependency: transitive description: @@ -838,6 +822,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.2.3" + hooks: + dependency: transitive + description: + name: hooks + sha256: "5d309c86e7ce34cd8e37aa71cb30cb652d3829b900ab145e4d9da564b31d59f7" + url: "https://pub.dev" + source: hosted + version: "1.0.0" html: dependency: transitive description: @@ -850,10 +842,10 @@ packages: dependency: "direct main" description: name: http - sha256: bb2ce4590bc2667c96f318d68cac1b5a7987ec819351d32b1c987239a815e007 + sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412" url: "https://pub.dev" source: hosted - version: "1.5.0" + version: "1.6.0" http_multi_server: dependency: transitive description: @@ -878,30 +870,22 @@ packages: url: "https://pub.dev" source: hosted version: "2.2.0" - ieee754: - dependency: transitive - description: - name: ieee754 - sha256: "7d87451c164a56c156180d34a4e93779372edd191d2c219206100b976203128c" - url: "https://pub.dev" - source: hosted - version: "1.0.3" image: dependency: "direct main" description: name: image - sha256: "4e973fcf4caae1a4be2fa0a13157aa38a8f9cb049db6529aa00b4d71abc4d928" + sha256: "492bd52f6c4fbb6ee41f781ff27765ce5f627910e1e0cbecfa3d9add5562604c" url: "https://pub.dev" source: hosted - version: "4.5.4" + version: "4.7.2" intl: dependency: "direct main" description: name: intl - sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf + sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5" url: "https://pub.dev" source: hosted - version: "0.19.0" + version: "0.20.2" io: dependency: transitive description: @@ -938,26 +922,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec + sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" url: "https://pub.dev" source: hosted - version: "10.0.8" + version: "11.0.2" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 + sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" url: "https://pub.dev" source: hosted - version: "3.0.9" + version: "3.0.10" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" lints: dependency: transitive description: @@ -986,10 +970,10 @@ packages: dependency: "direct main" description: name: lottie - sha256: c5fa04a80a620066c15cf19cc44773e19e9b38e989ff23ea32e5903ef1015950 + sha256: "8ae0be46dbd9e19641791dc12ee480d34e1fd3f84c749adc05f3ad9342b71b95" url: "https://pub.dev" source: hosted - version: "3.3.1" + version: "3.3.2" markdown: dependency: transitive description: @@ -1018,10 +1002,10 @@ packages: dependency: transitive description: name: meta - sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c + sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394" url: "https://pub.dev" source: hosted - version: "1.16.0" + version: "1.17.0" mime: dependency: transitive description: @@ -1034,10 +1018,10 @@ packages: dependency: "direct main" description: name: mobile_scanner - sha256: "023a71afb4d7cfb5529d0f2636aa8b43db66257905b9486d702085989769c5f2" + sha256: c6184bf2913dd66be244108c9c27ca04b01caf726321c44b0e7a7a1e32d41044 url: "https://pub.dev" source: hosted - version: "7.1.3" + version: "7.1.4" mocktail: dependency: "direct dev" description: @@ -1062,6 +1046,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.1" + native_toolchain_c: + dependency: transitive + description: + name: native_toolchain_c + sha256: "89e83885ba09da5fdf2cdacc8002a712ca238c28b7f717910b34bcd27b0d03ac" + url: "https://pub.dev" + source: hosted + version: "0.17.4" nested: dependency: transitive description: @@ -1102,6 +1094,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.2" + objective_c: + dependency: transitive + description: + name: objective_c + sha256: "7fd0c4d8ac8980011753b9bdaed2bf15111365924cdeeeaeb596214ea2b03537" + url: "https://pub.dev" + source: hosted + version: "9.2.4" octo_image: dependency: transitive description: @@ -1162,18 +1162,18 @@ packages: dependency: transitive description: name: path_provider_android - sha256: "3b4c1fc3aa55ddc9cd4aa6759984330d5c8e66aa7702a6223c61540dc6380c37" + sha256: f2c65e21139ce2c3dad46922be8272bb5963516045659e71bb16e151c93b580e url: "https://pub.dev" source: hosted - version: "2.2.19" + version: "2.2.22" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: "16eef174aacb07e09c351502740fa6254c165757638eba1e9116b0a781201bbd" + sha256: "2a376b7d6392d80cd3705782d2caa734ca4727776db0b6ec36ef3f1855197699" url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.6.0" path_provider_linux: dependency: transitive description: @@ -1202,10 +1202,10 @@ packages: dependency: transitive description: name: petitparser - sha256: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646" + sha256: "1a97266a94f7350d30ae522c0af07890c70b8e62c71e8e3920d1db4d23c057d1" url: "https://pub.dev" source: hosted - version: "6.1.0" + version: "7.0.1" platform: dependency: transitive description: @@ -1298,34 +1298,26 @@ packages: dependency: transitive description: name: reown_core - sha256: "37e8bd16263400856592b58331ec61665bcc8814d4a2a1801a7f12caf3c4673d" + sha256: "41295f6bc7a656af3b7bf20f69c0e41a4ee83a1d10803269e46f2213184e136b" url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.3.8" reown_sign: dependency: transitive description: name: reown_sign - sha256: ae2e171b93ddaae2ce7db18a66647afc9680cf55f49e88d49a3c3df5d1eb2cde + sha256: "28457489a9473bb68968df0a71f46b16b1e9d4636515c523018e801abe4bee2b" url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.3.8" reown_walletkit: dependency: "direct main" description: name: reown_walletkit - sha256: b779e4914c9299edea80a849773fc08ddd5e44549bf53a2fd26cac4a59f5c99c - url: "https://pub.dev" - source: hosted - version: "1.2.0" - reown_yttrium: - dependency: transitive - description: - name: reown_yttrium - sha256: e59d9e8dbad8e2c420c201719da12bca528c38ecab9571364d5b6d18715ce773 + sha256: c15985ef4227e714d5b6be694e867cd6e55468da517663eb037331185f77f533 url: "https://pub.dev" source: hosted - version: "0.0.1" + version: "1.3.8" rxdart: dependency: "direct main" description: @@ -1362,26 +1354,26 @@ packages: dependency: "direct main" description: name: shared_preferences - sha256: "6e8bf70b7fef813df4e9a36f658ac46d107db4b4cfe1048b477d4e453a8159f5" + sha256: "2939ae520c9024cb197fc20dee269cd8cdbf564c8b5746374ec6cacdc5169e64" url: "https://pub.dev" source: hosted - version: "2.5.3" + version: "2.5.4" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - sha256: bd14436108211b0d4ee5038689a56d4ae3620fd72fd6036e113bf1345bc74d9e + sha256: cbc40be9be1c5af4dab4d6e0de4d5d3729e6f3d65b89d21e1815d57705644a6f url: "https://pub.dev" source: hosted - version: "2.4.13" + version: "2.4.20" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03" + sha256: "4e7eaffc2b17ba398759f1151415869a34771ba11ebbccd1b0145472a619a64f" url: "https://pub.dev" source: hosted - version: "2.5.4" + version: "2.5.6" shared_preferences_linux: dependency: transitive description: @@ -1504,34 +1496,34 @@ packages: dependency: transitive description: name: sqflite_android - sha256: "2b3070c5fa881839f8b402ee4a39c1b4d561704d4ebbbcfb808a119bc2a1701b" + sha256: ecd684501ebc2ae9a83536e8b15731642b9570dc8623e0073d227d0ee2bfea88 url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.2+2" sqflite_common: dependency: "direct main" description: name: sqflite_common - sha256: "84731e8bfd8303a3389903e01fb2141b6e59b5973cacbb0929021df08dddbe8b" + sha256: "6ef422a4525ecc601db6c0a2233ff448c731307906e92cabc9ba292afaae16a6" url: "https://pub.dev" source: hosted - version: "2.5.5" + version: "2.5.6" sqflite_common_ffi: dependency: transitive description: name: sqflite_common_ffi - sha256: "9faa2fedc5385ef238ce772589f7718c24cdddd27419b609bb9c6f703ea27988" + sha256: c59fcdc143839a77581f7a7c4de018e53682408903a0a0800b95ef2dc4033eff url: "https://pub.dev" source: hosted - version: "2.3.6" + version: "2.4.0+2" sqflite_common_ffi_web: dependency: "direct main" description: name: sqflite_common_ffi_web - sha256: "983cf7b33b16e6bc086c8e09f6a1fae69d34cdb167d7acaf64cbd3515942d4e6" + sha256: "79338d0b69521d70cea10f841209ac87ce617921aaf7d33e7380682c83da1f06" url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.1.1" sqflite_darwin: dependency: transitive description: @@ -1552,10 +1544,10 @@ packages: dependency: transitive description: name: sqlite3 - sha256: "3145bd74dcdb4fd6f5c6dda4d4e4490a8087d7f286a14dee5d37087290f0f8a2" + sha256: c6cfe9b1cc159c9eb8ba174b533a60b5126f9db8c6e34efb127d2bc04bc45034 url: "https://pub.dev" source: hosted - version: "2.9.4" + version: "3.1.4" stack_trace: dependency: transitive description: @@ -1592,10 +1584,10 @@ packages: dependency: transitive description: name: synchronized - sha256: "0669c70faae6270521ee4f05bffd2919892d42d1276e6c495be80174b6bc0ef6" + sha256: c254ade258ec8282947a0acbbc90b9575b4f19673533ee46f2f6e9b3aeefd7c0 url: "https://pub.dev" source: hosted - version: "3.3.1" + version: "3.4.0" term_glyph: dependency: transitive description: @@ -1608,26 +1600,26 @@ packages: dependency: transitive description: name: test - sha256: "301b213cd241ca982e9ba50266bd3f5bd1ea33f1455554c5abb85d1be0e2d87e" + sha256: "75906bf273541b676716d1ca7627a17e4c4070a3a16272b7a3dc7da3b9f3f6b7" url: "https://pub.dev" source: hosted - version: "1.25.15" + version: "1.26.3" test_api: dependency: transitive description: name: test_api - sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd + sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55 url: "https://pub.dev" source: hosted - version: "0.7.4" + version: "0.7.7" test_core: dependency: transitive description: name: test_core - sha256: "84d17c3486c8dfdbe5e12a50c8ae176d15e2a771b96909a9442b40173649ccaa" + sha256: "0cc24b5ff94b38d2ae73e1eb43cc302b77964fbf67abad1e296025b78deb53d0" url: "https://pub.dev" source: hosted - version: "0.6.8" + version: "0.6.12" timeago: dependency: "direct main" description: @@ -1648,18 +1640,18 @@ packages: dependency: "direct main" description: name: universal_html - sha256: "56536254004e24d9d8cfdb7dbbf09b74cf8df96729f38a2f5c238163e3d58971" + sha256: c0bcae5c733c60f26c7dfc88b10b0fd27cbcc45cb7492311cdaa6067e21c9cd4 url: "https://pub.dev" source: hosted - version: "2.2.4" + version: "2.3.0" universal_io: dependency: "direct main" description: name: universal_io - sha256: "1722b2dcc462b4b2f3ee7d188dad008b6eb4c40bbd03a3de451d82c78bba9aad" + sha256: f63cbc48103236abf48e345e07a03ce5757ea86285ed313a6a032596ed9301e2 url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.3.1" url_launcher: dependency: "direct main" description: @@ -1672,34 +1664,34 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: "81777b08c498a292d93ff2feead633174c386291e35612f8da438d6e92c4447e" + sha256: "767344bf3063897b5cf0db830e94f904528e6dd50a6dfaf839f0abf509009611" url: "https://pub.dev" source: hosted - version: "6.3.20" + version: "6.3.28" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: d80b3f567a617cb923546034cc94bfe44eb15f989fe670b37f26abdb9d939cb7 + sha256: cfde38aa257dae62ffe79c87fab20165dfdf6988c1d31b58ebf59b9106062aad url: "https://pub.dev" source: hosted - version: "6.3.4" + version: "6.3.6" url_launcher_linux: dependency: transitive description: name: url_launcher_linux - sha256: "4e9ba368772369e3e08f231d2301b4ef72b9ff87c31192ef471b380ef29a4935" + sha256: d5e14138b3bc193a0f63c10a53c94b91d399df0512b1f29b94a043db7482384a url: "https://pub.dev" source: hosted - version: "3.2.1" + version: "3.2.2" url_launcher_macos: dependency: transitive description: name: url_launcher_macos - sha256: c043a77d6600ac9c38300567f33ef12b0ef4f4783a2c1f00231d2b1941fea13f + sha256: "368adf46f71ad3c21b8f06614adb38346f193f3a59ba8fe9a2fd74133070ba18" url: "https://pub.dev" source: hosted - version: "3.2.3" + version: "3.2.5" url_launcher_platform_interface: dependency: transitive description: @@ -1712,18 +1704,18 @@ packages: dependency: transitive description: name: url_launcher_web - sha256: "4bd2b7b4dc4d4d0b94e5babfffbca8eac1a126c7f3d6ecbc1a11013faa3abba2" + sha256: d0412fcf4c6b31ecfdb7762359b7206ffba3bbffd396c6d9f9c4616ece476c1f url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.2" url_launcher_windows: dependency: transitive description: name: url_launcher_windows - sha256: "3284b6d2ac454cf34f114e1d3319866fdd1e19cdc329999057e44ffe936cfa77" + sha256: "712c70ab1b99744ff066053cbe3e80c73332b38d46e5e945c98689b2e66fc15f" url: "https://pub.dev" source: hosted - version: "3.1.4" + version: "3.1.5" username_gen: dependency: "direct main" description: @@ -1760,26 +1752,26 @@ packages: dependency: transitive description: name: vector_graphics_compiler - sha256: d354a7ec6931e6047785f4db12a1f61ec3d43b207fc0790f863818543f8ff0dc + sha256: "201e876b5d52753626af64b6359cd13ac6011b80728731428fd34bc840f71c9b" url: "https://pub.dev" source: hosted - version: "1.1.19" + version: "1.1.20" vector_math: dependency: transitive description: name: vector_math - sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.2.0" vm_service: dependency: transitive description: name: vm_service - sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" + sha256: "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60" url: "https://pub.dev" source: hosted - version: "14.3.1" + version: "15.0.2" wallet: dependency: transitive description: @@ -1792,10 +1784,10 @@ packages: dependency: transitive description: name: watcher - sha256: "592ab6e2892f67760543fb712ff0177f4ec76c031f02f5b4ff8d3fc5eb9fb61a" + sha256: "1398c9f081a753f9226febe8900fce8f7d0a67163334e1c94a2438339d79d635" url: "https://pub.dev" source: hosted - version: "1.1.4" + version: "1.2.1" web: dependency: transitive description: @@ -1840,10 +1832,10 @@ packages: dependency: transitive description: name: win32 - sha256: "329edf97fdd893e0f1e3b9e88d6a0e627128cc17cc316a8d67fda8f1451178ba" + sha256: d7cb55e04cd34096cd3a79b3330245f54cb96a370a1c27adb3c84b917de8b08e url: "https://pub.dev" source: hosted - version: "5.13.0" + version: "5.15.0" x25519: dependency: transitive description: @@ -1864,10 +1856,10 @@ packages: dependency: transitive description: name: xml - sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 + sha256: "971043b3a0d3da28727e40ed3e0b5d18b742fa5a68665cca88e74b7876d5e025" url: "https://pub.dev" source: hosted - version: "6.5.0" + version: "6.6.1" yaml: dependency: transitive description: @@ -1877,5 +1869,5 @@ packages: source: hosted version: "3.1.3" sdks: - dart: ">=3.7.2 <4.0.0" - flutter: ">=3.29.0" + dart: ">=3.10.3 <4.0.0" + flutter: ">=3.38.4" diff --git a/pubspec.yaml b/pubspec.yaml index de368398..a9058c13 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: citizenwallet -version: 2.0.31+300 +version: 2.0.31+301 publish_to: none description: A mobile wallet for your community. environment: From 96b60cbaf480cc7cecd3c84cc76f69d4d8d196ca Mon Sep 17 00:00:00 2001 From: sajee_techi Date: Thu, 29 Jan 2026 00:29:25 +0530 Subject: [PATCH 148/148] ios --- macos/Flutter/GeneratedPluginRegistrant.swift | 2 -- 1 file changed, 2 deletions(-) diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index f771960c..1dbe5b53 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -16,7 +16,6 @@ import google_sign_in_ios import icloud_storage import mobile_scanner import package_info_plus -import path_provider_foundation import share_plus import shared_preferences_foundation import sqflite_darwin @@ -34,7 +33,6 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { IcloudStoragePlugin.register(with: registry.registrar(forPlugin: "IcloudStoragePlugin")) MobileScannerPlugin.register(with: registry.registrar(forPlugin: "MobileScannerPlugin")) FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin")) - PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) SharePlusMacosPlugin.register(with: registry.registrar(forPlugin: "SharePlusMacosPlugin")) SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin"))