EasyWallet是一个去中心化钱包,计划所有关于钱包方面的资产都将本地化,使用用户自定义RPC节点达到更高的可信度。 当然RPC接口有一定的局限性,所以有些功能比如交易记录等就只能通过浏览器查看了。用户亦可自定义添加Token支持(仅支持EVM链)。 接入BlockChair讯息接口提供消息浏览,关注时文时事。coingecko查看行情,了解行情。
目前支持助剂词导入和生成方式创建钱包,已支持Ethereum链资产使用 在钱包方面,所有数据都是本地化实现。目前数据库方面设计已完成多链支持基本工作。更多在计划中 虽说这是支持跨平台的,但目前进度在iOS平台上功能和UI都还比较简单粗糙 不过整体应用架构实现已完成对底层逻辑注入关系,所以在开发过程中关注于平台UI开发即可
这是一个Kotlin Multiplatform Project, 支持iOS和Android端。结构上由3大部分组成,分别是 platform, Wallet-Android, Wallet-iOS
- platform 是双端共享业务逻辑处理代码,其主要职责是将服务端接口数据通过逻辑处理包装成业务领域Model给UI层使用或者接收用户操作后触发更改云端/本地存储数据. 在实现上符合Clean Architecture架构,主要包含Model、Data、Domain层
- Wallet-Android 是Android界面实现, 使用Jetpack Compose + ViewModel开发 实现上使用MVI架构模式,其中Model来自 platform 拿到数据结果
- Wallet-iOS 是iOS端UI界面实现,使用SwiftUI开发,目前iOS只有简单的基础UI界面,支持功能不多,在架构上使用的是MVVM架构模式
由于项目中依赖wallet-core
实现区块链相关功能处理,其使用GitHub packages
进行包管理,所以想拉取依赖库,需要使用到github token
。
为了保证所有依赖都能成功下载,需要创建一个文件命名为github_token.properties
,并填入以下内容:
gpr.name=Your Github Name
gpr.key=Your Github token
-
旧版本:
不同链的数据来源也不同,所以需要不同apikey,可以查看NetworkModule.kt 中补上。 -
新版本: 使用本地配置来存储apikey,需要在
keystore
文件夹下新建一个名为apikey.properties
的文件 目前使用到3个平台的apikey
etherscan=XWNRRIQY******K7YP4F6
coingecko=CG-8******AwuyrcgDPL
opensea=008e**********91dd6564880a
准备好之后,可执行任务生成文件
./gradlew -p platform generateBuildKonfig
- Skie
- Wallet-Core
- Coroutine + Flow 用于异步
- koin 依赖注入
- ktor
- sqldelight
- coil
- Paging3
- BuildKonfig