> For the complete documentation index, see [llms.txt](https://505876833.gitbook.io/gao-jin-yun-xin-xin-yong-chi-v1.0/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://505876833.gitbook.io/gao-jin-yun-xin-xin-yong-chi-v1.0/zhi-neng-he-yue-kai-fa/zong-ti-kuang-jia.md).

# 总体框架

智能合约使用 Solidity ^0.8.0 开发

![合约UML图](https://3649160502-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAi4mF0F5vK1dOdGzysCZ%2Fuploads%2F56fPTT0w3gAdBXXkaoBo%2F%E4%BF%A1%E7%94%A8%E6%B1%A0%E5%90%88%E7%BA%A6%E6%9C%BA%E6%9E%84.png?alt=media\&token=184136d9-a499-4b47-90cc-bf682afd0ea4)

信用池区块链合约部分主要由六个合约构成

### 主合约

{% hint style="info" %}
为了后续的拓展和合约特殊含义，进行了分区（冗余）设计.
{% endhint %}

***MainSystem主合约***&#x662F;直接部署的合约，作为“中枢结构”，它负责沟通各个合约部件，以及记录它们之间交互的重要信息。

### 成员合约

{% hint style="info" %}
平台内用户在区块链上的去中心化身份标识.
{% endhint %}

***Bank银行身份主合约***&#x662F;通过调&#x7528;***MainSystem主合约***&#x4E2D;&#x7684;***addBank()***&#x529F;能创建，虽然创建功能由平台拥有者（盟主）完成，但只有相应的银行能调用该身份合约中的各种功能（除公开属性的查询外）。

***Company公司身份合约***&#x662F;通过调&#x7528;***MainSystem主合约***&#x4E2D;&#x7684;***addCompany()***&#x529F;能创建，虽然创建功能由平台拥有者（盟主）完成，但只有相应的公司能调用该身份合约中的各种功能（除公开属性的查询外）。

### 交易合约

平台内发出或生成的每一笔交易都&#x4EE5;***Transaction交易合约***&#x7684;形式存在，合约地址将是它们的唯一特征码。

### 存储合约

{% hint style="info" %}
存储与该平台相关的所有合约地址，方便检索和证明.
{% endhint %}

***MemberStorage注册用户记录合约***&#x7528;来记录经过平台认证（***addBank()***&#x6216;***addCompany()***）的用户，在部&#x7F72;***MainSystem主合约***&#x65F6;同时完成创建且仅能由该合约调用相关功能（除公开属性的查询外）。

***TxStorage交易记录合约***&#x7528;来记录经过平台内（本年内）发生的所有交易的合约地址，在部&#x7F72;***MainSystem主合约***&#x65F6;同时完成创建且仅能由该合约调用相关功能（除公开属性的查询外）。每隔设定的时间后（目前为1年=31536000秒），将重新生成新&#x7684;***TxStorage交易记录合约，***&#x4E0A;一次合约内的跨期交易将同步保存到最新生成的合约中。
