Giter Club home page Giter Club logo

neow3j-docs's Introduction

neow3j Actions Status Maven Central Sonatype Nexus (Snapshots) javadoc codecov Codacy Badge

neow3j: A Java/Kotlin/Android Development Toolkit for the Neo Blockchain

Bongo Cat Neow3j

Neow3j is a development toolkit that provides easy and reliable tools to build Neo dApps and Smart Contracts using the Java platform (Java, Kotlin, Android). It is an open-source project developed by the community and maintained by AxLabs.

Visit neow3j.io for more information and technical documentation.

1ClickNode Logo If you are in need of a testnet or mainnet Neo node for your dApp but don't want to spend hours on setup, check out 1ClickNode.

Quickstart

Neow3j is composed of an SDK for dApp development and a devpack for smart contract development -- which also includes a compiler (JVM to NeoVM). The following sections describe how to get started with them! ๐Ÿš€

SDK

To make use of all neow3j SDK features, add io.neow3j:contract to your dependencies.

Gradle

implementation 'io.neow3j:contract:3.22.1'

Maven

<dependency>
    <groupId>io.neow3j</groupId>
    <artifactId>contract</artifactId>
    <version>3.22.1</version>
</dependency>

Releases are available for Neo Legacy and Neo N3. The example above shows the newest release of neow3j for Neo N3. To use the latest release for Neo Legacy, use the version 2.4.0.

Devpack/Compiler

For smart contract development, you need the io.neow3j:devpack dependency. It provides all Neo-related utilities to write your first smart contract on the Neo blockchain!

Then, add the following dependency to your project.

Gradle

implementation 'io.neow3j:devpack:3.22.1'

Maven

<dependency>
    <groupId>io.neow3j</groupId>
    <artifactId>devpack</artifactId>
    <version>3.22.1</version>
</dependency>

Note: The devpack and compiler are only available for Neo N3. Thus, Java cannot be used to compile smart contracts that are compatible with Neo Legacy.

Who's using neow3j? ๐Ÿš€

Donate ๐Ÿ’ฐ

Help the development of neow3j by sponsoring us using the following addresses:

Crypto Address
Neo N3 NfhQyNmMCLCKaaazL6gbvYxtkZNGVb8kRn
Neo Legacy AHb3PPUY6a36Gd6JXCkn8j8LKtbEUr3UfZ
ETH 0xe85EbabD96943655e2DcaC44d3F21DC75F403B2f
BTC 3L4br7KQ8DCJEZ77nBjJfrukWEdVRXoKiy

Thanks and Credits ๐Ÿ™

neow3j-docs's People

Contributors

csmuller avatar gsmachado avatar ixje avatar mialbu avatar test-user-117 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

picarodias

neow3j-docs's Issues

improve docs for the Storage

Provide more examples about the Storage. Check the TODOs in the file docs/neo3_guides/compiler_devpack/devpack.md.

URL redirect list

Sometimes we change how neow3j docs pages are structured and then it breaks a bunch of URLs that were spread in the past.

Let's say, that, for example, we tweet about the Smart Contract testing and spread the following link:
https://neow3j.io/#/neo-n3/smart_contract_development/testing

But, in some months we change how the page is structured and we rename smart_contract_development to smart_contract_dev. Then the link above will be broken and will not lead to the correct page.

We would need to have a list of paths (i.e., /neo-n3-testing, etc) that we could change to pages. This would give us a lot of flexibility and less maintenance cost.

Create a tutorial on how to design smart contract's storage

We've got the following message on Discord:

Hey guys, sorry again, but another annoying question from this noob.

Basically, I'm trying to conceptually understand how to use the ''storage'' function, but am having trouble. I combed through the various documentation for different implementations but cannot find a satisfactory answer.

If storage is composed of ''key: value'' pairs, then how would multiple variables get attached to a certain address within storage? > For example, let's say I create a smart contract that accepts not only GAS from different users, but also their metadata as well (i.e. their first name, favorite color, etc), how would this metadata get placed into storage and tied to a specific user's address, since the key (from address, in this case) can only be attached to one variable at a time?

Would I need to create a prefix for each individual user and then create an object of ''key:value" pairs affiliated with each prefix/ user? Also, is it possible for keys to be overwritten?

Secondly, is there an easy way to broadly get a glimpse of what has been put into storage? I tried returning just Storage.get() but that doesn't work... Seeing what is in ''storage'' would help me to better design my getter methods to return what the data I'm looking for.

Anyways, any advice in this area would be really helpful. So far, I think the documentation for neow3j exceeds that of any of the other implementations I've used. Thanks again.

I believe it would make sense to discuss, in detail, how to design storage for a smart contract -- taking a real-world example, of a token, or smth like that.

Then, we could explore more advanced topics like: "based on X smart contract, how to migrate storage uppon smart contract's updates?"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.