1. 用户场景
1. 用户可以选择提取或者兑换的时候启用多签验证
2. 用户在安全设置里面设置多签,主要是开通多签,配置多签账户和签名通过比例
3. 当用户触发多签时候,创建针对交易的一次多签,创建成功并自自动为创建用户做一次签名
4. 其他成员打开我们应用(不需要系统登录)根据钱包获取待签名列表,发起签名
5. 签名通过之后,根据签名结果,关联到交易,运营人员可以审核通过并且执行下一步动作
6. 多签未通过的时候可以取消,确定以后不能取消
2.用例分析
2.1 用例
2.2 时序图
3.领域划分
3.1 分析用例
3.1.1 实体
- 多签(Multisig):由多个参与用户组成的多重签名机制,包括多签地址、多签钱包、多签状态等属性。
- 交易(Transaction):包括交易编号、交易金额、交易状态等属性。
- 用户(User):包括用户ID、用户名、密码等属性。
3.1.2 值对象
- 待签列表(PendingList):包括待签交易的交易编号、交易金额、交易状态等属性。
- 交易详情(TransactionDetail):包括交易描述、交易时间、交易类型等属性。
3.1.3 聚合
- 多签聚合(Multisig Aggregate):由多签、交易、待签列表等构成,表示一个完整的多重签名机制。
3.1.4 服务
- 多签服务(MultisigService):提供创建多签、启用关闭多签、发起交易、上传多签到合约、查看目前交易中的多签等操作。
- 参与用户服务(ParticipantService):提供查看待签列表、发起同意签名、发起取消交易签名等操作。
- 钱包系统服务(WalletSystemService):负责监听合约事件,获取多签结果并通知交易系统。
3.1.5 领域事件
- 多签创建事件(MultisigCreatedEvent):当多签创建成功时触发,包含多签地址、多签钱包等信息。
- 多签启用事件(MultisigEnabledEvent):当多签启用成功时触发,包含多签地址、多签钱包等信息。
- 多签关闭事件(MultisigDisabledEvent):当多签关闭成功时触发,包含多签地址、多签钱包等信息。
- 多签交易事件(MultisigTransactionEvent):当多签交易发起时触发,包含交易信息和多签地址等信息。
- 待签交易事件(PendingTransactionEvent):当有待签交易时触发,包含待签交易信息和多签地址等信息。
- 同意签名事件(AgreeSignatureEvent):当参与用户同意签名时触发,包含交易信息和多签地址等信息。
- 取消签名事件(CancelSignatureEvent):当参与用户取消签名时触发,包含交易信息和多签地址等信息。
- 交易创建事件(TransactionCreatedEvent):当交易创建成功时触发,包含交易信息和用户信息等。
- 交易状态变更事件(TransactionStatusChangedEvent):当交易状态发生变化时触发,包含交易信息和状态变更原因等信息。
3.2 划分域
3.2.1 核心域
- 多签管理域:包括多签聚合、多签服务等,是整个系统的核心业务领域。
- 交易管理域:包括交易实体、交易服务等,是整个系统的核心数据领域。
3.2.2 支撑域
- 钱包系统管理域:包括钱包系统服务等,为多签管理域和交易管理域提供支持。
3.2.3 通用域
- 用户管理域:包括用户实体、用户服务等,为整个系统提供通用的用户管理功能。
- 待签列表管理域:包括待签列表值对象、参与用户服务等,为整个系统提供通用的待签列表管理功能。
4.应用架构
5.数据库设计
Attachments:
image2023-5-24_11-34-10.png (image/png)
image2023-5-24_14-12-38.png (image/png)
image2023-5-24_14-28-50.png (image/png)
image2023-5-24_14-12-38.png (image/png)
image2023-5-24_14-28-50.png (image/png)