Skip to content

Commit

Permalink
Merge pull request #532 from stellar/soroban
Browse files Browse the repository at this point in the history
Soroban to mainline, 0.41.0 release prep
  • Loading branch information
tomerweller authored Sep 19, 2023
2 parents adad474 + 39be5a9 commit 574b1f2
Show file tree
Hide file tree
Showing 658 changed files with 44,249 additions and 4,911 deletions.
73 changes: 0 additions & 73 deletions .circleci/config.yml

This file was deleted.

134 changes: 134 additions & 0 deletions .github/workflows/test-deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
name: "Test and Deploy"

on:
push:
branches:
- master
pull_request:
release:
types:
- created

env:
JAVA_VERSION: '17'
JAVA_DISTRIBUTION: 'microsoft'

jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up JDK
uses: actions/setup-java@v2
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.JAVA_DISTRIBUTION }}
- name: Test
run: ./gradlew check

build:
needs: test
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up JDK
uses: actions/setup-java@v2
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.JAVA_DISTRIBUTION }}
- name: Build
run: ./gradlew build
- name: Persist JAR Artifacts
uses: actions/upload-artifact@v3
with:
name: libs
path: build/libs/*.jar

javadoc:
needs: test
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up JDK
uses: actions/setup-java@v2
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.JAVA_DISTRIBUTION }}
- name: Generate Documentation
run: ./gradlew javadoc
- name: Persist Documentation
uses: actions/upload-artifact@v3
with:
name: javadoc
path: javadoc

android-test:
needs: build
runs-on: macos-13
name: android-test (api ${{ matrix.emulator.api-level }})
strategy:
fail-fast: false
matrix:
# minSdk and targetSdk, see ${project_root}/android_test/app/build.gradle.kts
# TODO: Investigate why it is unstable on API 33.
emulator: [
{ api-level: 26, target: google_apis },
{ api-level: 32, target: playstore }
]
steps:
- name: checkout
uses: actions/checkout@v3
- name: Download JAR Artifact
uses: actions/download-artifact@v2
with:
name: libs
path: android_test/app/libs/
- uses: actions/setup-java@v3
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.JAVA_DISTRIBUTION }}
- name: run tests
uses: reactivecircus/android-emulator-runner@v2
with:
working-directory: ./android_test
api-level: ${{ matrix.emulator.api-level }}
target: ${{ matrix.emulator.target }}
script: ./gradlew connectedCheck
arch: x86_64
profile: 'pixel_2'

deploy:
needs: [ build, javadoc ] # TODO: add android-test when it is stable.
permissions:
contents: write
if: github.event_name == 'release' && github.event.action == 'created'
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Download JAR Artifact
uses: actions/download-artifact@v2
with:
name: libs
path: libs
- name: Download Java Documentation
uses: actions/download-artifact@v2
with:
name: javadoc
path: javadoc
- name: Archive Documentation
run: tar -czf stellar-sdk-javadoc.tar.gz javadoc
- name: Upload artifacts to GitHub Release
uses: softprops/action-gh-release@v1
with:
files: |
libs/*.jar
stellar-sdk-javadoc.tar.gz
- name: Upload Documentation to GitHub Pages
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: javadoc

53 changes: 53 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,59 @@ As this project is pre 1.0, breaking changes may happen for minor version bumps.

## Pending

## 0.41.0
* Add support for Soroban Preview 11. ([#530](https://github.com/stellar/java-stellar-sdk/pull/530))
* New effects have been added to support Protocol 20 (Soroban) ([#535](https://github.com/stellar/java-stellar-sdk/pull/535)):
- `ContractCredited` occurs when a Stellar asset moves into its corresponding Stellar Asset Contract instance
- `ContractDebited` occurs when a Stellar asset moves out of its corresponding Stellar Asset Contract instance
* Add helper functions to sign authorization entries. ([#537](https://github.com/stellar/java-stellar-sdk/pull/537))

### Breaking changes
* Bump dependencies & Remove unnecessary dependencies like guava. ([#523](https://github.com/stellar/java-stellar-sdk/pull/523))
* No longer provide a shadow jar that contains embedded, relocated third-party dependencies. ([#528](https://github.com/stellar/java-stellar-sdk/issues/528))
Instead the default `stellar-sdk.jar` and the `com.github.stellar:java-stellar-sdk:{version}` dependency are now packaged
as 'thin library' jar, having no embedded dependencies.
- if your project used `stellar-sdk.jar` directly on classpath loader, will need to obtain the `.jar` for each dependency version listed in `build.gradle.kts`
and include all in your project classpath, or consider downloading the 'uber' jar from the published artifacts on repo
`https://jitpack.io/com/github/stellar/java-stellar-sdk/{version}/java-stellar-sdk-{version}-uber.jar`
- if your project utilizes dependency management for build such as gradle/maven, then you can choose from the following artifacts
using the dependency classifier:
```kotlin
implementation("com.github.stellar:java-stellar-sdk:{version}") // thin jar
implementation("com.github.stellar:java-stellar-sdk:{version}:uber") // uber jar
implementation("com.github.stellar:java-stellar-sdk:{version}:javadoc") // javadoc jar
implementation("com.github.stellar:java-stellar-sdk:{version}:sources") // sources jar
```

- When using the 'thin' jar in dependency management, it will automatically fetch dependencies transitively.
If your project declares dependencies that are also declared here, then your project will override
the preferences of this project and may cause runtime conflict.

- When using the 'uber' jar in dependency management or as `.jar` in classpath , be aware that it does not relocate the dependent packages.

* `Utils.claimableBalanceIdToXDR` and `Utils.xdrToClaimableBalanceId` have been removed. ([#503](https://github.com/stellar/java-stellar-sdk/pull/503))
* The types of the following fields have changed. ([#498](https://github.com/stellar/java-stellar-sdk/pull/498))
| field | before | now |
| ----------------------------------------- | ------ | ---------- |
| LedgerBounds.minLedger | int | long |
| LedgerBounds.maxLedger | int | long |
| MemoId.id | long | BigInteger |
| TimeBounds.minTime | long | BigInteger |
| TimeBounds.maxTime | long | BigInteger |
| TransactionBuilder.baseFee | int | long |
| TransactionPreconditions.TIMEOUT_INFINITE | long | BigInteger |
| TransactionPreconditions.minSeqAge | Long | BigInteger |
| TransactionPreconditions.minSeqLedgerGap | int | long |

## 0.41.0-beta.3
* Fix the bug in Transaction.isSorobanTransaction to accommodate BumpFootprintExpirationOperation. ([#518](https://github.com/stellar/java-stellar-sdk/pull/518))

## 0.41.0-beta.0
* Add support for Soroban Preview 10. ([#490](https://github.com/stellar/java-stellar-sdk/issues/490))
* Correct the data type of certain fields to store the expected design values. ([#497](https://github.com/stellar/java-stellar-sdk/pull/497))
* Add source account comparison to `ClawbackClaimableBalanceOperation`, `LiquidityPoolWithdrawOperation`, and `LiquidityPoolDepositOperation` for equality check. ([#484](https://github.com/stellar/java-stellar-sdk/pull/484))
* Add basic implementation of `liquidity_pools?account` ([#426](https://github.com/stellar/java-stellar-sdk/pull/426))

## 0.40.1
* Fix the issue of unable to parse liquidity_pool_revoked effect properly. ([#521](https://github.com/stellar/java-stellar-sdk/pull/521))
* Define cursor, order and limit in AssetsRequestBuilder object. ([#522](https://github.com/stellar/java-stellar-sdk/pull/522))
Expand Down
37 changes: 37 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
XDRS = xdr/Stellar-SCP.x \
xdr/Stellar-ledger-entries.x \
xdr/Stellar-ledger.x \
xdr/Stellar-overlay.x \
xdr/Stellar-transaction.x \
xdr/Stellar-types.x \
xdr/Stellar-contract-env-meta.x \
xdr/Stellar-contract-meta.x \
xdr/Stellar-contract-spec.x \
xdr/Stellar-contract.x \
xdr/Stellar-internal.x \
xdr/Stellar-contract-config-setting.x

XDRGEN_COMMIT=f0c41458ca0b66b4649b18deddc9f7a11199f1f9
XDRNEXT_COMMIT=9ac02641139e6717924fdad716f6e958d0168491

.PHONY: xdr xdr-clean xdr-update

xdr-generate: $(XDRS)
docker run -it --rm -v $$PWD:/wd -w /wd ruby /bin/bash -c '\
gem install specific_install -v 0.3.8 && \
gem specific_install https://github.com/stellar/xdrgen.git -b $(XDRGEN_COMMIT) && \
xdrgen \
--language java \
--namespace org.stellar.sdk.xdr \
--output src/main/java/org/stellar/sdk/xdr/ \
$(XDRS)'
./gradlew :spotlessApply

xdr/%.x:
curl -Lsf -o $@ https://raw.githubusercontent.com/stellar/stellar-xdr/$(XDRNEXT_COMMIT)/$(@F)

xdr-clean:
rm xdr/*.x || true
rm src/main/java/org/stellar/sdk/xdr/*.java || true

xdr-update: xdr-clean xdr-generate
16 changes: 0 additions & 16 deletions after_deploy.sh

This file was deleted.

15 changes: 15 additions & 0 deletions android_test/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
*.iml
.gradle
/local.properties
/.idea/caches
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
.DS_Store
/build
/captures
.externalNativeBuild
.cxx
local.properties
4 changes: 4 additions & 0 deletions android_test/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Android Test
This folder contains a simple project for testing whether stellar-sdk can be successfully integrated into an Android project.

This project is based on a template project created using Android Studio, and I have tried my best not to make any excessive modifications.
1 change: 1 addition & 0 deletions android_test/app/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/build
Loading

0 comments on commit 574b1f2

Please sign in to comment.