Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Soroban to mainline, 0.41.0 release prep #532

Merged
merged 32 commits into from
Sep 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
efa391f
Support for new stats in AssetResponse. (#482)
overcat Jul 21, 2023
fef2d79
Add support for InvokeHostFunctionOperation & add `Address` class. (#…
overcat Jul 25, 2023
9690f7a
Add support for BumpFootprintExpirationOperation and RestoreFootprint…
overcat Jul 27, 2023
717426e
Add some APIs to make it more convenient for users to construct Invok…
overcat Jul 31, 2023
25dc8a8
Added support for calling Soroban RPC server. (#492)
overcat Aug 2, 2023
17180d9
Correct the data type of certain fields to store the expected design …
overcat Aug 8, 2023
0dc9b4b
Add the fromXdrBase64, fromXdrByteArray, toXdrBase64 and toXdrByteArr…
overcat Aug 10, 2023
9c78566
Optimize the way of generating XDR classes. (#506)
overcat Aug 11, 2023
c9b9f99
Add abstractions for converting between SCVal and native types. (#500)
overcat Aug 14, 2023
6e9badb
Preserve existing auth entries after simulation if they're present (#…
overcat Aug 14, 2023
4181dc0
Add SorobanDataBuilder to prepare sorobanData easily. (#509)
overcat Aug 14, 2023
35eebc9
Merge branch 'master' into 0.41.0-beta.0
overcat Aug 14, 2023
712f071
Bump version.
overcat Aug 14, 2023
ef91404
Merge pull request #507 from overcat/0.41.0-beta.0
tamirms Aug 15, 2023
8be63cd
Use JDK 11 for CI builds & Bump version. (#511)
overcat Aug 16, 2023
ea4e12c
Migrate to GitHub Actions. (#512)
overcat Aug 21, 2023
bb68109
Bump version. (#513)
overcat Aug 21, 2023
d6379e9
Add tests to verify if the SDK can be successfully integrated into an…
overcat Aug 23, 2023
1461c2f
Fix the bug in Transaction.isSorobanTransaction to accommodate BumpFo…
overcat Sep 1, 2023
1834a22
Generate separate stellar-sdk-javadoc.jar release artifact(#519)
overcat Sep 5, 2023
9d21b19
Bump dependencies & Remove unnecessary dependencies. (#523)
overcat Sep 11, 2023
00da8ab
Merge branch 'master' into soroban (#527)
overcat Sep 12, 2023
e6ccc9e
Regenerate XDR (remove the dependency on Guava) (#525)
overcat Sep 12, 2023
6c5113a
Bump version to `0.41.0-beta.4` (#531)
overcat Sep 18, 2023
6a99b98
add support for Soroban Preview 11. (#530)
overcat Sep 18, 2023
cb16f30
Remove the dependency on Guava. (#534)
overcat Sep 18, 2023
8fbb282
Merge branch 'master' into soroban
overcat Sep 19, 2023
be49025
Refactor build script. (#528)
overcat Sep 19, 2023
1e11af9
Add support for parsing ContractCreditedEffect and ContractDebitedEff…
overcat Sep 19, 2023
8eb8c4f
Add helper functions to sign authorization entries. (#537)
overcat Sep 19, 2023
5605920
Bump version to `0.41.0` & update outdated links. (#538)
overcat Sep 19, 2023
39be5a9
added notes to changelog on jar types
sreuland Sep 19, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
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