Skip to content

Commit 3103075

Browse files
committed
Refactoring README.md
1 parent b7d9590 commit 3103075

File tree

6 files changed

+59
-81
lines changed

6 files changed

+59
-81
lines changed

README.md

Lines changed: 4 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -14,86 +14,9 @@ One of the foremost use case is the support of regulated asset classes and finan
1414

1515
## Content
1616

17-
### Audit Phase 1 limitations
17+
This repository is a monorepos of the different component of the projects.
1818

19-
The Audit Phase 1 concerned the Core and the Oracle monorepos.
20-
In particular the goal of this phase 1 is to audit a limited version of the C-Layer for standard STO and ICO Tokens only.
21-
22-
To this regard, the core only accepts in this version a fixed list of delegates defined at the Core deployment time.
23-
AuditData is also limited to the delegates configuration and cannot be updated.
24-
25-
Remaining tasks to prior to the audit:
26-
- Review and validates AuditData storage
27-
- AuditTokenDelegate must read AuditConfig and update AuditStorage accordingly,
28-
- Rely on token's Audit to eval Tokensale contributions,
29-
- Add more documentations,
30-
- Testing. Coverage up to 90% at least.
31-
32-
### C-Layer Core
33-
34-
The C-Layer can support the tokenization of the following assets: Bonds, Equity, Payment and Utility.
35-
36-
<img src="smartcontracts.core.png" height=500/>
37-
38-
The token is represented by a proxy contract which implements the ERC20 interface.
39-
The token rely on a core for all operations and in particular transfers.
40-
41-
The core has three roles:
42-
- Routing proxy call to the relevant token delegates. A delegate contains the code for all the operations.
43-
One delegate represent one asset class.
44-
- Database. All tokens data are stored within the core contract.
45-
This ensure that cross tokens operations are inherently safe and consistent in respect to the compliance.
46-
- Security. This core responsability is critical.
47-
Access control can be precisely managed through an integrated role base access control.
48-
49-
Many delegates are possible through a combination of existing delegates.
50-
The primary one will be the C-Layer Delegate Token which contains all the requirements for a regulated asset.
51-
However, the C-Layer Delegate Token does not define the supply generation and may be inherited with the Mintable Token Delegate.
52-
53-
Token Delegates include the following features:
54-
- Operable: provide an owner and ability to delegate restricted features to operators
55-
- Auditability: track sendings and receiptions
56-
- Proofs of ownership: store balance history within Ethereum state
57-
- Rule Engine: ERC-1592 (see below)
58-
- Claims: provides claims based on token balance or generated proofs of ownership
59-
- Seize: authorize operators to seize any tokens. Any seizure will emit a Seize events in the Ethereum history.
60-
61-
Following [ERC-1592](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1592.md), the token contains a rule engine.
62-
It allows to plug rules which follow the IRule interface implementations.
63-
Available rules are:
64-
- YesNoRule: accept or refuse all transfers (used for testing)
65-
- UserRule: lock all addresses which are not contains within a specified user registry.
66-
67-
### C-Layer Oracle
68-
69-
Three oracles are provided:
70-
- UserRegistry: contains a list of users alongs with their respective profiling informations.
71-
72-
- RatesProvider: contains a list of rates for many pairs. Rates history is available through events search.
73-
74-
- Tokensale: provides a way to operate a tokensale with happend both in FIAT (centralized) and in ETH (decentralized).
75-
The tokensale provides also the following features:
76-
- Contribution limitations based on a user profiles in user registry oracle
77-
- Automatic conversion from ETHER to FIAT through a rates provider oracle
78-
- Pre allocations of tokens to specific investors
79-
- Onchain SPA aggrement (defined as not mandatory)
80-
- Bonus provided until a certain dates
81-
82-
<img src="smartcontracts.oracle.png" height=500/>
83-
84-
### Callstacks
85-
86-
#### ERC20 Transfer callstack
87-
88-
<img src="callstack.transfer.png" height=500/>
89-
90-
#### Tokensale invest callstack
91-
92-
<img src="callstack.invest.png" height=500/>
93-
94-
### Coverage
95-
96-
The latest coverage result may be found below:
97-
- [Core](https://c-layer.github.io/contracts/c-layer-core/coverage/)
98-
- [Oracle](https://c-layer.github.io/contracts/c-layer-oracle/coverage/)
19+
- Common: contains the core and security architectures among other utilities
20+
- Oracle: contains an oracle
21+
- Token: contains the token core, all token delegates, a token factory with their own default configurations
9922

oracle/README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
2+
# Compliance Layer Oracle
3+
4+
## Content
5+
6+
This repository contains the oracle smart contracts
7+
8+
### C-Layer Oracle
9+
10+
Three oracles are provided:
11+
- UserRegistry: contains a list of users alongs with their respective profiling informations.
12+
13+
- RatesProvider: contains a list of rates for many pairs. Rates history is available through events search.
14+
15+
- Tokensale may be found in v1.0.
16+
17+
<img src="smartcontracts.oracle.png" height=500/>
18+
File renamed without changes.

smartcontracts.core.png

-314 KB
Binary file not shown.

token/README.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Compliance Layer Token
2+
3+
## Content
4+
5+
The current version of the C-Layer can support the tokenization of many assets: Bonds, Equity, Payment and Utility.
6+
7+
<img src="smartcontracts.token.png" height=500/>
8+
9+
The token is represented by a proxy contract which implements the ERC20 interface.
10+
The token rely on a core for all operations and in particular transfers.
11+
12+
The core has three roles:
13+
- Routing proxy call to the relevant token delegates. A delegate contains the code for all the operations.
14+
One delegate represent one asset class.
15+
- Database. All tokens data are stored within the core contract.
16+
This ensure that cross tokens operations are inherently safe and consistent in respect to the compliance.
17+
- Security. This core responsability is critical.
18+
Access control can be precisely managed through an integrated role base access control.
19+
20+
Many delegates are possible through a combination of existing delegates.
21+
The primary one will be the C-Layer Delegate Token which contains all the requirements for a regulated asset.
22+
However, the C-Layer Delegate Token does not define the supply generation and may be inherited with the Mintable Token Delegate.
23+
24+
Token Delegates include the following features:
25+
- Operable: provide an owner and ability to delegate restricted features to operators
26+
- Auditability: track sendings and receiptions
27+
- Rule Engine: ERC-1592 (see below)
28+
- Lock: prevents transfer during a period of time while allowing exceptions
29+
- Freeze: prevents transferability of certain addresses for a certain amount of time
30+
- Seize: authorize operators to seize any tokens. Any seizure will emit a Seize events in the Ethereum history.
31+
32+
Following [ERC-1592](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1592.md), the token contains a rule engine.
33+
It allows to plug rules which follow the IRule interface implementations.
34+
Available rules are:
35+
- YesNoRule: accept or refuse all transfers (used for testing)
36+
- UserRule: lock all addresses which are not contains within a specified user registry.
37+

token/smartcontracts.token.png

573 KB
Loading

0 commit comments

Comments
 (0)