Skip to content

Commit 1ebb3c1

Browse files
authored
Merge pull request #22 from Supercolony-net/update-roadmap
Updated roadmap
2 parents f782164 + 8d06b91 commit 1ebb3c1

24 files changed

Lines changed: 58 additions & 35 deletions

File tree

README.md

Lines changed: 35 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,22 @@ which can be reused or customized by everyone.
1616
To understand how to use the library better to check [examples](examples) and [doc](doc) folders.
1717

1818
At the moment library is using own version of ink!, but it is the same as [ink!-3.0-rc3](https://github.com/paritytech/ink/releases/tag/v3.0.0-rc3)
19-
with additional [fix](https://github.com/Supercolony-net/ink/commit/4ade565ca0adf746c130ef32e50f54a9504970cb).
20-
!ink will fix that issue in next release.
19+
with additional fixes:
20+
- [Not generate metadata if compile_as_dependency is true](https://github.com/paritytech/ink/pull/811)
21+
- [Remove Salt in code generation during build_create](https://github.com/paritytech/ink/pull/842)
2122

22-
## Events
23+
### Events
2324
‼️ Important ‼️
2425

2526
Events are not supported currently due to how ink! currently handles them.
2627
The identifiers of events must be based on the name of the trait. At the moment, ink! doesn't support it,
2728
but it must be fixed with this [issue](https://github.com/paritytech/ink/issues/809).
2829

29-
## The library is not production-ready, these issues must be resolved first:
30+
### The library is not production-ready, these issues must be resolved first:
3031
* [Standard token naming convention](https://github.com/Supercolony-net/openbrush-contracts/issues/1)
3132
* [Event's identifiers are based on the naming of the storage structure](https://github.com/Supercolony-net/openbrush-contracts/issues/2)
3233

33-
Usage of the library looks not pretty, but it will be simplified with resolving issues:
34+
### Usage of the library looks not pretty, but it will be simplified with resolving issues:
3435
* [Returning of error doesn't mean revert of transaction](https://github.com/Supercolony-net/openbrush-contracts/issues/3)
3536
* [#[ink::trait_definition] doesn't support generics and default implementation](https://github.com/Supercolony-net/openbrush-contracts/issues/4)
3637
* [Library provides implementation on Rust level instead of ink! level](https://github.com/Supercolony-net/openbrush-contracts/issues/5)
@@ -39,14 +40,38 @@ Usage of the library looks not pretty, but it will be simplified with resolving
3940
The upgradable contract will be available after resolving of this [issue](https://github.com/Supercolony-net/openbrush-contracts/issues/7)
4041

4142
## Roadmap 🚗
43+
------- Release 0.1.0
44+
- [x] Implement fungible, non-fungible, and multi tokens.
45+
- [x] Implement AccessControl and Ownable.
46+
- [x] Add examples of how to reuse ERC20, ERC721, AccessControl implementations.
47+
- [x] Stub implementations for `token` and `access` folders.
48+
- [x] Add base description of project
49+
50+
------- Release 0.2.0
51+
- [x] Remove the boilerplate to make the internal implementation external.
52+
- - [x] Implement `brush::contract` macro to consume all brush's stuff before ink!.
53+
- - [x] Implement `brush::trait_definition` which stores definition of trait and allow to use it in `brush::contract` macro.
54+
- - [x] Implement `impl_trait!` macro which reuse internal implementation in external impl section.
55+
- [x] Refactor examples and tests with new macros.
56+
- [x] Decide how to handle errors and implement it in library(Decided to use `panic!` and `assert!`).
57+
58+
------- Release 0.3.0
59+
- [x] Create derive macro for storage traits. This macro must adds fields to contract's struct.
60+
- [x] Cover all contracts with unit tests and integration tests.
61+
- [x] Create documentation based on readme. Add comments to macros with example of usage.
62+
- [x] Add `Ownable` + `ERC1155` example.
63+
- [x] Support simple modifiers(which can only call functions without code injection).
64+
- [x] Instead of `impl_trait!` macro add support of default implementation in external trait definition.
65+
Users can define default implementation in traits and macro will copy/paste this implementation during the generation of the contract.
66+
4267
------- Release 1.0.0
4368
- [ ] Finalize PSP for fungible tokens. Refactor of implementation.
44-
- [ ] Support code injection in modifiers. Implement a reentrancy guard with new modifiers.
45-
- [ ] Add more examples and documentation on how to use the library.
46-
69+
- [x] Support code injection in modifiers.
70+
- [x] Implement a reentrancy guard and example of usage.
71+
- [ ] Add more examples and documentation on how to use the library.
4772

4873
------- Pre-release 2.0.0
49-
- [ ] PSPs for NFT and multi-token.
74+
- [ ] PSPs for NFT and multi-token.
5075
- [ ] Add extensions: AccessControlEnumerable, ERC721Enumerable.
5176
- [ ] Refactor NFT and multi-token according to final decisions in PSPs.
5277

@@ -57,14 +82,12 @@ The upgradable contract will be available after resolving of this [issue](https:
5782
- [ ] More documentation and examples.
5883
- [ ] Audit.
5984

60-
61-
6285
------- Release 3.0.0
6386
- [ ] All extensions for tokens(Pausable, TimeLockController and etc).
6487
- [ ] Improve ink! to allow code injection to have default implementation on ink! level instead Rust level.
6588
- [ ] Refactor the library according to new changes.
6689

67-
90+
------- Release 4.0.0
6891
- [ ] Add support of upgradable contracts to ink!/contract-pallet level.
6992
- [ ] Create upgradable contracts.
7093

contracts/access/access-control/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "access-control"
3-
version = "0.2.0-rc1"
3+
version = "0.3.0-rc1"
44
authors = ["Supercolony <green.baneling@supercolony.net>"]
55
edition = "2018"
66

contracts/access/access-control/derive/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "access_control_derive"
3-
version = "0.2.0-rc1"
3+
version = "0.3.0-rc1"
44
authors = ["Supercolony <green.baneling@supercolony.net>"]
55
edition = "2018"
66

contracts/access/ownable/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ownable"
3-
version = "0.2.0-rc1"
3+
version = "0.3.0-rc1"
44
authors = ["Supercolony <green.baneling@supercolony.net>"]
55
edition = "2018"
66

contracts/access/ownable/derive/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ownable_derive"
3-
version = "0.2.0-rc1"
3+
version = "0.3.0-rc1"
44
authors = ["Supercolony <green.baneling@supercolony.net>"]
55
edition = "2018"
66

contracts/brush/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "brush"
3-
version = "0.2.0-rc1"
3+
version = "0.3.0-rc1"
44
authors = ["Supercolony <green.baneling@supercolony.net>"]
55
edition = "2018"
66

contracts/brush/proc_macros/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "proc_macros"
3-
version = "0.2.0-rc1"
3+
version = "0.3.0-rc1"
44
authors = ["Supercolony <green.baneling@supercolony.net>"]
55
edition = "2018"
66

contracts/security/reentrancy_guard/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "reentrancy_guard"
3-
version = "0.2.0-rc1"
3+
version = "0.3.0-rc1"
44
authors = ["Supercolony <green.baneling@supercolony.net>"]
55
edition = "2018"
66

contracts/security/reentrancy_guard/derive/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "reentrancy_guard_derive"
3-
version = "0.2.0-rc1"
3+
version = "0.3.0-rc1"
44
authors = ["Supercolony <green.baneling@supercolony.net>"]
55
edition = "2018"
66

contracts/token/psp1155/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "psp1155"
3-
version = "0.2.0-rc1"
3+
version = "0.3.0-rc1"
44
authors = ["Supercolony <green.baneling@supercolony.net>"]
55
edition = "2018"
66

0 commit comments

Comments
 (0)