Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
Grant Proposal | [507 - Odra - Casper Smart Contracts Framework](https://portal.devxdao.com/public-proposals/507)
------------ | -------------
Milestone | 6
Milestone Title | Tokens
OP | zie1ony
Reviewer | Mehmet Sait Gülmez <cenggulmez.65@gmail.com>



# Milestone Details

## Details & Acceptance Criteria

**Details of what will be delivered in milestone:**

Milestone #6 produces reusable modules:
- ERC721
- ERC1155

**Acceptance criteria:**

- Next version of odra is released to the http://crates.io.
- Above modules are included into the standard library.

**Additional notes regarding submission from OP:**

Both standards are avialable as a reusable modules published on https://crates.io/crates/odra-modules.

The code is here: https://github.com/odradev/odra/tree/release/0.4.0/modules/src

## Milestone Submission

The following milestone assets/artifacts were submitted for review:

Repository | Revision Reviewed
------------ | -------------
https://github.com/odradev/odra | 3632c5d


# Install & Usage Testing Procedure and Findings

The reviewer used a local installation of [Fedora Linux 35 (Workstation Edition)](assets/os-hardware.md) for the review. All instructions for the installation are available in the [README](https://github.com/odradev/odra) file. After following the instructions step by step, the reviewer was able to successfully install the project. However, it was observed that usage instructions and examples of creating and deploying ERC721 and ERC1155 smart contract to the Casper Network are not available in the documentation.

![](assets/install-1.png)
![](assets/install-2.png)
![](assets/install-3.png)
![](assets/install-4.png)

- [Build Logs](assets/build.md)

## Overall Impression of usage testing

The OP said that they have deployed erc721 to the network in their personal project but the reviewer observed that there was no instructions on how to create ERC721 and ERC1155 contract and deploy them to the Casper Network in documentation. Hence, the reviewer was unable to test ERC721 and ERC1155 on the Casper Network. The Op should provide users a clear documentation of ERC721 and ERC1155 usage.

Requirement | Finding
------------ | -------------
Project builds without errors | PASS
Documentation provides sufficient installation/execution instructions | PASS with Notes
Project functionality meets/exceeds acceptance criteria and operates without error | PASS with Notes

# Unit / Automated Testing

The reviewer observed that both positive and negative paths are available in the source code and amount of unit tests are sufficient. In adddition, the reviewer was able to successfully run all the unit tests.

- [Test Logs](assets/test-logs.md)

Requirement | Finding
------------ | -------------
Unit Tests - At least one positive path test | PASS
Unit Tests - At least one negative path test | PASS
Unit Tests - Additional path tests | PASS

# Documentation

### Code Documentation

The reviewer observed that properly formatted inline comments are not available in ERC721 and ERC1155 modules.

Requirement | Finding
------------ | -------------
Code Documented | PASS with Notes

### Project Documentation

The reviewer observed that ERC721 and ERC1155 modules were not documented. Therefore, the reviewer contacted to the OP for this issue and they said documentation of these modules was not the part of this milestone and they will provide full documentation for all modules in the next milestone.

Requirement | Finding
------------ | -------------
Usage Documented | PASS with Notes
Example Documented | PASS with Notes

## Overall Conclusion on Documentation

In the reviewer's opinion, the project documentation should be improved.

# Open Source Practices

## Licenses

The Project is released under the MIT License.

Requirement | Finding
------------ | -------------
OSI-approved open source software license | PASS

## Contribution Policies

The project contains a CONTRIBUTING and SECURITY policy that links to a Code of Conduct policy. Pull requests and Issues are enabled. As the reviewers of the previous milestones had suggested, the reviewer also suggested that it would be nice if CODE OF CONDUCT can be added in the repository.

Requirement | Finding
------------ | -------------
OSS contribution best practices | PASS

# Coding Standards

## General Observations

Code is generally well structured and readable. However, the reviewer thinks that inline comments should be added to the proper places in the source code in order to make them more clear and understandable.

# Final Conclusion

In the reviewer opinion, this submission should pass with notes.

# Recommendation

Recommendation | PASS with Notes
------------ | -------------
Original file line number Diff line number Diff line change
@@ -0,0 +1,208 @@
```bash
mehmet@fedora~ $ cargo install cargo-odra
Updating crates.io index
Installing cargo-odra v0.0.8
Compiling libc v0.2.147
Compiling proc-macro2 v1.0.64
Compiling unicode-ident v1.0.10
Compiling quote v1.0.29
Compiling thiserror v1.0.43
Compiling cfg-if v1.0.0
Compiling once_cell v1.18.0
Compiling memchr v2.5.0
Compiling autocfg v1.1.0
Compiling bitflags v1.3.2
Compiling serde v1.0.171
Compiling pkg-config v0.3.27
Compiling regex-automata v0.3.2
Compiling num-traits v0.2.15
Compiling itoa v1.0.8
Compiling jobserver v0.1.26
Compiling rustix v0.38.3
Compiling syn v2.0.25
Compiling cc v1.0.79
Compiling bstr v1.6.0
Compiling hex v0.4.3
Compiling time-core v0.1.1
Compiling bitflags v2.3.3
Compiling linux-raw-sys v0.4.3
Compiling time-macros v0.2.10
Compiling num_threads v0.1.6
Compiling static_assertions v1.1.0
Compiling io-lifetimes v1.0.11
Compiling ring v0.16.20
Compiling aho-corasick v1.0.2
Compiling smallvec v1.11.0
Compiling rustix v0.37.23
Compiling utf8parse v0.2.1
Compiling regex-syntax v0.7.3
Compiling anstyle-parse v0.2.1
Compiling is-terminal v0.4.9
Compiling openssl-sys v0.9.90
Compiling libz-sys v1.1.9
Compiling time v0.3.23
Compiling lock_api v0.4.10
Compiling log v0.4.19
Compiling version_check v0.9.4
Compiling linux-raw-sys v0.3.8
Compiling anstyle-query v1.0.0
Compiling crunchy v0.2.2
Compiling ucd-trie v0.1.6
Compiling colorchoice v1.0.0
Compiling anstyle v1.0.1
Compiling regex v1.8.4
Compiling parking_lot_core v0.9.8
Compiling thiserror-impl v1.0.43
Compiling serde_derive v1.0.171
Compiling anstream v0.3.2
Compiling pest v2.7.0
Compiling gix-hash v0.11.3
Compiling getrandom v0.2.10
Compiling percent-encoding v2.3.0
Compiling tiny-keccak v2.0.2
Compiling strsim v0.10.0
Compiling fastrand v1.9.0
Compiling proc-macro-hack v0.5.20+deprecated
Compiling clap_lex v0.4.1
Compiling same-file v1.0.6
Compiling untrusted v0.7.1
Compiling lazy_static v1.4.0
Compiling spin v0.5.2
Compiling tinyvec_macros v0.1.1
Compiling heck v0.4.1
Compiling scopeguard v1.1.0
Compiling tinyvec v1.6.0
Compiling clap_derive v4.2.0
Compiling walkdir v2.3.3
Compiling clap_builder v4.2.7
Compiling tempfile v3.5.0
Compiling pest_meta v2.7.0
Compiling gix-features v0.29.0
Compiling libssh2-sys v0.3.0
Compiling minimal-lexical v0.2.1
Compiling clap v4.2.7
Compiling nom v7.1.3
Compiling parking_lot v0.12.1
Compiling gix-fs v0.1.1
Compiling pest_generator v2.7.0
Compiling unicode-normalization v0.1.22
Compiling gix-hash v0.10.4
Compiling gix-date v0.4.3
Compiling btoi v0.4.3
Compiling hashbrown v0.14.0
Compiling fastrand v2.0.0
Compiling unicode-bidi v0.3.13
Compiling syn v1.0.109
Compiling equivalent v1.0.0
Compiling either v1.8.1
Compiling sha1_smol v1.0.0
Compiling itertools v0.10.5
Compiling gix-features v0.28.1
Compiling indexmap v2.0.0
Compiling gix-actor v0.19.0
Compiling idna v0.4.0
Compiling gix-utils v0.1.4
Compiling const-random-macro v0.1.15
Compiling pest_derive v2.7.0
Compiling gix-tempfile v5.0.3
Compiling kstring v2.0.0
Compiling serde_spanned v0.6.3
Compiling toml_datetime v0.6.3
Compiling form_urlencoded v1.2.0
Compiling rand_core v0.6.4
Compiling gix-path v0.7.3
Compiling gix-validate v0.7.6
Compiling liquid-derive v0.26.4
Compiling ahash v0.8.3
Compiling smartstring v1.0.1
Compiling psm v0.1.21
Compiling libgit2-sys v0.15.2+1.6.4
Compiling unicode-segmentation v1.10.1
Compiling anymap2 v0.13.0
Compiling winnow v0.4.9
Compiling crc32fast v1.3.2
Compiling doc-comment v0.3.3
Compiling ppv-lite86 v0.2.17
Compiling portable-atomic v1.3.3
Compiling unicode-width v0.1.10
Compiling console v0.15.7
Compiling rand_chacha v0.3.1
Compiling gix-object v0.28.0
Compiling url v2.4.0
Compiling liquid-core v0.26.4
Compiling const-random v0.1.15
Compiling gix-lock v5.0.1
Compiling toml_edit v0.19.12
Compiling clap_complete v4.3.2
Compiling nix v0.26.2
Compiling stacker v0.1.15
Compiling memmap2 v0.5.10
Compiling aho-corasick v0.7.20
Compiling cvt v0.1.2
Compiling paste v1.0.13
Compiling adler v1.0.2
Compiling semver v1.0.17
Compiling serde_json v1.0.100
Compiling anyhow v1.0.71
Compiling rustls v0.21.3
Compiling names v0.14.0
Compiling fnv v1.0.7
Compiling globset v0.4.10
Compiling miniz_oxide v0.7.1
Compiling fs_at v0.1.8
Compiling gix-ref v0.27.2
Compiling toml v0.7.6
Compiling liquid-lib v0.26.4
Compiling rhai_codegen v1.5.0
Compiling rand v0.8.5
Compiling gix-config-value v0.10.2
Compiling sct v0.7.0
Compiling rustls-webpki v0.101.1
Compiling rustls-webpki v0.100.1
Compiling gix-glob v0.5.5
Compiling gix-sec v0.6.2
Compiling path-dedot v3.1.0
Compiling thread_local v1.1.7
Compiling unicode-bom v1.1.4
Compiling ryu v1.0.14
Compiling humantime v2.1.0
Compiling number_prefix v0.4.0
Compiling normpath v1.1.1
Compiling openssl-probe v0.1.5
Compiling shell-words v1.1.0
Compiling zeroize v1.6.0
Compiling termcolor v1.2.0
Compiling remove_dir_all v0.8.2
Compiling dialoguer v0.10.4
Compiling indicatif v0.17.5
Compiling env_logger v0.10.0
Compiling ignore v0.4.20
Compiling gix-config v0.20.1
Compiling path-absolutize v3.0.14
Compiling webpki-roots v0.23.1
Compiling liquid v0.26.4
Compiling flate2 v1.0.26
Compiling rhai v1.13.0
Compiling clap_complete_nushell v0.1.11
Compiling clap_complete_fig v4.3.1
Compiling sanitize-filename v0.4.0
Compiling time v0.1.45
Compiling home v0.5.5
Compiling base64 v0.21.2
Compiling iana-time-zone v0.1.57
Compiling clap_complete_command v0.5.1
Compiling ureq v2.7.1
Compiling chrono v0.4.26
Compiling cargo_toml v0.15.3
Compiling convert_case v0.6.0
Compiling prettycli v0.1.1
Compiling glob v0.3.1
Compiling rm_rf v0.6.2
Compiling git2 v0.17.2
Compiling cargo-generate v0.18.3
Compiling cargo-odra v0.0.8
Finished release [optimized] target(s) in 1m 16s
Installing /home/mehmet/.cargo/bin/cargo-odra
Installed package `cargo-odra v0.0.8` (executable `cargo-odra`)

```
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
```bash
Static hostname: fedora
Icon name: computer-laptop
Chassis: laptop
Operating System: Fedora Linux 35 (Workstation Edition)
CPE OS Name: cpe:/o:fedoraproject:fedora:35
Kernel: Linux 6.0.12-100.fc35.x86_64
Architecture: x86-64
Hardware Vendor: Lenovo
Hardware Model: ThinkPad E15 Gen 2
```
Loading