We use Visual Studio 2022+ or JetBrains Rider for development.
You must have .NET 10 SDK installed. You can check your dotnet version with:
dotnet --version- Clone the repository
cdinto the repository- Restore and build:
dotnet restore
dotnet builddotnet test --verbosity normal --settings test.runsettings --filter "TestU"For integration tests, we use a rippled node in standalone mode with an automatic ledger acceptor. To set this up, you need Docker and Docker Compose installed.
# start rippled + ledger-acceptor via Docker Compose
docker compose -f .ci-config/docker-compose.ci.yml up -d
# wait for rippled to be healthy, then run integration tests
dotnet test Tests/Xrpl.Tests/Xrpl.Tests.csproj --verbosity normal --settings test.runsettings --filter "TestI"
# stop containers when done
docker compose -f .ci-config/docker-compose.ci.yml downFor amendment activation details, the nightly-develop standalone environment for unreleased amendments, temDISABLED troubleshooting and genesis account funding, see the Standalone Node Guide.
You can see the complete reference documentation at XrplCSharp docs. You can also generate them locally:
dotnet tool install -g docfx
docfx DocFx/docfx.jsonThis generates documentation into the docs/ directory.
Use this repo to generate a new DefinitionsJson file from the rippled source code. Instructions are available in that README.
- Your changes should have unit and/or integration tests.
- Your code should pass all the tests on GitHub Actions (unit and integration tests).
- Open a PR against
devand ensure that all CI passes. - Get a code review from one of the maintainers.
- Merge your changes.
- Ensure that all tests passed on the last CI that ran on
dev. - Update the version in all
.csprojfiles (Xrpl,Xrpl.AddressCodec,Xrpl.BinaryCodec,Xrpl.Keypairs). - Update
CHANGES.mdwith the new version and changelog. - Merge
devintorelease(the push toreleasepublishes the NuGet packages and deploys the documentation). - The NuGet publish workflow will start automatically on push to
release. - Create a GitHub release with the appropriate tag.
We have a low-traffic mailing list for announcements of new XrplCSharp releases. (About 1 email every couple of weeks)
If you're using the XRP Ledger in production, you should run a rippled server and subscribe to the ripple-server mailing list as well.