https://github.com/fulldecent/aip-xxx-implementation
Java playground illustrating all best practices for Aion development
https://github.com/fulldecent/aip-xxx-implementation
Last synced: about 1 year ago
JSON representation
Java playground illustrating all best practices for Aion development
- Host: GitHub
- URL: https://github.com/fulldecent/aip-xxx-implementation
- Owner: fulldecent
- Created: 2019-07-24T23:48:35.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2020-10-13T15:12:27.000Z (over 5 years ago)
- Last Synced: 2025-02-14T10:56:19.369Z (over 1 year ago)
- Language: Java
- Homepage:
- Size: 9.64 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
[](https://travis-ci.com/fulldecent/aip-xxx-implementation)
# :warning: PROJECT STATUS: Technology preview :warning:
# AIP-XXX Favorite Number — Example Implementation
This project implements AIP-XXX, the Favorite Number Standard using all best practices.
This project also extends by adding its own features.
- `aipXXXGetFavoriteNumber()`
- `aipXXXSetFavoriteNumber()`
This project also extends by adding its own features.
- `setFavoriteNumberOnBackwardsDay()`
- `getOwner()`
- `setOwner()`
## Project scope
-[ A simple standard (interface)](https://github.com/fulldecent/aip-xxx-implementation/blob/master/Contract/src/main/java/org/aion/AIPXXXSetter.java)
- [A simple implementation ](https://github.com/fulldecent/aip-xxx-implementation/blob/master/Contract/src/main/java/org/aion/AIPXXX.java)
- [A simple dapp web front-end in vanilla JavaScript + Bootstrap CSS](https://github.com/fulldecent/aip-xxx-implementation/tree/master/SimpleApp/src)
## References
- Style, comments
- Oracle style guide for doc comments https://www.oracle.com/technetwork/java/javase/documentation/index-137868.html#styleguide
- What words to capitalize (refer examples), when to use periods and full sentences
- ["Include tags in the following order"](https://www.oracle.com/technetwork/java/javase/documentation/index-137868.html#orderoftags)
- Align text to columns
- Minimal requirements from https://github.com/aionnetwork/aion/wiki/Aion-Code-Conventions
- Not required by Aion, but adopting method naming requirements from https://google.github.io/styleguide/javaguide.html
- Code reuse pattern for separating an interface specification, a reference implementation, usage demonstrations, testing subjects and other tools. https://github.com/0xcert/ethereum-erc721#structure
- Which version of dependencies we should support
- Aion supports JDK version 11 https://docs.aion.network/docs/environment-variables
- Java versions supported by vendor https://www.oracle.com/technetwork/java/java-se-support-roadmap.html
- Aion protocol design
- Yes, `null` can be passed in the ABI https://github.com/aionnetwork/AVM/blob/master/org.aion.avm.userlib/src/org/aion/avm/userlib/abi/ABIEncoder.java#L387-L390
- Setting up a Java + Maven + JUnit + Aion project layout
- Best practice for Java+Maven+JUnit project layout https://github.com/junit-team/junit5-samples/tree/master/junit5-jupiter-starter-maven
- How to remove Maven initialization errors https://stackoverflow.com/questions/4123044/maven-3-warnings-about-build-plugins-plugin-version
- pom.xml for AVM Maven projects https://github.com/satran004/avm-samples/blob/master/SumContract-spock-sample/pom.xml
- Gitignore from https://github.com/github/gitignore/blob/master/Maven.gitignore
- Editorconfig is included and some rules are referenced to Google Java Style Guide
## License
This project is assigned copyright to Aion Foundation and released under the MIT license. Thank you to Aion Foundation for sponsoring this work!