### Install Web3j CLI (Windows PowerShell) Source: https://github.com/lfdt-web3j/web3j/blob/main/README.md Installs the Web3j Command Line Interface on Windows using PowerShell. This command sets the execution policy for the current process and then downloads and executes the installer script. ```powershell Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/hyperledger/web3j-installer/main/installer.ps1')) ``` -------------------------------- ### Install Web3j CLI (Unix) Source: https://github.com/lfdt-web3j/web3j/blob/main/README.md Installs the Web3j Command Line Interface on Unix-based systems. Ensure you source the script to make the commands available in your current shell session. ```shell curl -L get.web3j.io | sh && source ~/.web3j/source.sh ``` -------------------------------- ### Create New Web3j Project Source: https://github.com/lfdt-web3j/web3j/blob/main/README.md Creates a new Web3j project using the CLI. This is the simplest way to start a new project with Web3j. ```shell $ web3j new ``` -------------------------------- ### Build Web3j Project Including Integration Tests Source: https://github.com/lfdt-web3j/web3j/blob/main/README.md Execute this Gradle command to run a full build, including integration tests. Requires registry username and password to be set. ```bash $ ./gradlew -Pintegration-tests=true :integration-tests:test ``` -------------------------------- ### Generate Web3j Wrapper Class Source: https://github.com/lfdt-web3j/web3j/blob/main/core/src/main/resources/solidity/readme.txt Generate a Java wrapper class for a Solidity smart contract using the web3j CLI. Specify the ABI file, the base package for the generated class, and the output directory. ```bash web3j generate solidity -a ${fileName}.abi -p org.web3j.ens.contracts.generated -o ../../../../../main/java/ > /dev/null ``` -------------------------------- ### Generate ABI File with Solc Source: https://github.com/lfdt-web3j/web3j/blob/main/core/src/main/resources/solidity/readme.txt Use the solc compiler to generate the binary and ABI files for a Solidity contract. Ensure the contract file is in the specified location and the output directory is set. ```bash solc --bin --abi --optimize --overwrite ${fileName}.sol -o build/ ``` -------------------------------- ### Build Web3j Project Excluding Integration Tests Source: https://github.com/lfdt-web3j/web3j/blob/main/README.md Run this Gradle command to perform a full build of the Web3j project while skipping integration tests. ```bash $ ./gradlew check ``` -------------------------------- ### Proposal PR Template for Web3j Maintainer Source: https://github.com/lfdt-web3j/web3j/blob/main/MAINTAINERS.md Use this Markdown template when creating a Pull Request to propose a new maintainer for the Web3j project. It includes placeholders for the maintainer's handle, achievements, and a link to their contributions. ```markdown I propose to add [maintainer github handle] as a Web3J project maintainer. [maintainer github handle] contributed with many high quality commits: - [list significant achievements] Here are [their past contributions on Web3J project](https://github.com/hyperledger/web3j/commits?author=[user github handle]). Voting ends two weeks from today. For more information on this process see the Becoming a Maintainer section in the MAINTAINERS.md file. ``` -------------------------------- ### Add Web3j Gradle Dependency for Java Source: https://github.com/lfdt-web3j/web3j/blob/main/README.md Use this Gradle dependency to add the Web3j core library to your Java project. ```groovy implementation ('org.web3j:core:5.0.2') ``` -------------------------------- ### Add Web3j Maven Dependency for Java Source: https://github.com/lfdt-web3j/web3j/blob/main/README.md Use this Maven dependency to include the Web3j core library in your Java project. Requires Java 21 or later. ```xml org.web3j core 5.0.2 ``` -------------------------------- ### Add Web3j Gradle Dependency for Android Source: https://github.com/lfdt-web3j/web3j/blob/main/README.md Include this Gradle dependency for the Web3j core library in your Android project. ```groovy implementation ('org.web3j:core:4.12.3-android') ``` -------------------------------- ### Build Web3j Project Disabling Integration Tests Source: https://github.com/lfdt-web3j/web3j/blob/main/README.md Use this Gradle command to explicitly disable integration tests during the build process. ```bash $ ./gradlew -Pintegration-tests=false :test ``` -------------------------------- ### Add Web3j Maven Dependency for Android Source: https://github.com/lfdt-web3j/web3j/blob/main/README.md Include this Maven dependency for Web3j core library in your Android project. ```xml org.web3j core 4.12.3-android ``` -------------------------------- ### Keep BouncyCastle Classes Source: https://github.com/lfdt-web3j/web3j/wiki/Android-ProGuard-rules-for-web3j-android Configure ProGuard to keep BouncyCastle classes, especially for specific SPIs and helpers. ```proguard #-keep class org.bouncycastle.** -dontwarn org.bouncycastle.jce.provider.X509LDAPCertStoreSpi -dontwarn org.bouncycastle.x509.util.LDAPStoreHelper ``` -------------------------------- ### Suppress SafeVarargs and SLF4j Warnings Source: https://github.com/lfdt-web3j/web3j/wiki/Android-ProGuard-rules-for-web3j-android Use these rules to avoid warnings related to `java.lang.SafeVarargs` and SLF4j logging framework. ```proguard #-dontwarn java.lang.SafeVarargs -dontwarn org.slf4j.** ``` -------------------------------- ### Ignore Java8 Warnings Source: https://github.com/lfdt-web3j/web3j/wiki/Android-ProGuard-rules-for-web3j-android Use this rule to prevent ProGuard from warning about Java 8 specific utilities. ```proguard -dontwarn java8.util.** ``` -------------------------------- ### Keep Web3j Classes for Jackson Serialization Source: https://github.com/lfdt-web3j/web3j/wiki/Android-ProGuard-rules-for-web3j-android Ensure Web3j classes used with Jackson for reflection-based serialization are kept. ```proguard -keepclassmembers class org.web3j.protocol.** { ; } -keepclassmembers class org.web3j.crypto.* { *; } ``` -------------------------------- ### Ignore JNR Posix Warnings Source: https://github.com/lfdt-web3j/web3j/wiki/Android-ProGuard-rules-for-web3j-android Add this rule to suppress warnings related to the JNR Posix library. ```proguard -dontwarn jnr.posix.** ``` -------------------------------- ### Keep Web3j ABI Types Source: https://github.com/lfdt-web3j/web3j/wiki/Android-ProGuard-rules-for-web3j-android Preserve Web3j types that are used for runtime data extraction from type names, such as integer sizes. ```proguard -keep class * extends org.web3j.abi.TypeReference -keep class * extends org.web3j.abi.datatypes.Type ``` -------------------------------- ### Ignore JFFI Rules Source: https://github.com/lfdt-web3j/web3j/wiki/Android-ProGuard-rules-for-web3j-android This rule is for ignoring warnings related to the JFFI library. ```proguard #-dontwarn com.kenai.** ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.