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

Single Asset Vault #11

Draft
wants to merge 92 commits into
base: vault-base
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
ea1fffe
Enforce levelization in libxrpl with CMake (#5111)
thejohnfreeman Dec 6, 2024
eabca84
Antithesis instrumentation improvements (#5213)
Bronek Dec 16, 2024
5cd72f2
Add MPTIssue to STIssue (#5200)
gregtatcam Dec 16, 2024
bcbfb04
fix: allow overlapping types in `Expected` (#5218)
mvadari Dec 16, 2024
7506852
fix: Add header for set_difference (#5197)
legleux Dec 16, 2024
49e0d54
Set version to 2.4.0-b1
ximinez Dec 16, 2024
1a032f0
Integrate STNumber with STParsedJSON
thejohnfreeman Nov 7, 2024
ff8c649
Start vault implementation
thejohnfreeman Oct 17, 2024
a8ec8e7
wip
thejohnfreeman Nov 12, 2024
d09e74e
format
thejohnfreeman Nov 12, 2024
1680477
progress
thejohnfreeman Nov 12, 2024
ebc97ae
progress
thejohnfreeman Nov 12, 2024
286612c
progress
thejohnfreeman Nov 12, 2024
6046fa2
progress
thejohnfreeman Nov 13, 2024
1255216
progress
thejohnfreeman Nov 13, 2024
1ff1274
AND_THEN
thejohnfreeman Nov 14, 2024
ea6c040
wip
thejohnfreeman Nov 14, 2024
ea30f44
fix
thejohnfreeman Nov 22, 2024
12646cb
revise tests
thejohnfreeman Dec 3, 2024
54d511b
remove blob constants
thejohnfreeman Dec 6, 2024
b5619fb
bless sfAsset to carry MPT
thejohnfreeman Dec 6, 2024
ad58166
wip clawback
thejohnfreeman Dec 6, 2024
ecec6e5
Fix failing MPToken payment test
Bronek Dec 17, 2024
eae2cd3
Fix compilation errors
Bronek Dec 18, 2024
526f715
Comment out failing test
Bronek Dec 18, 2024
b9f1200
Fix formatting
Bronek Dec 18, 2024
241429b
Simplify conversions to Json::Value
Bronek Dec 18, 2024
679e35f
refactor: add `rpcName` to `LEDGER_ENTRY` macro (#5202)
mvadari Jan 2, 2025
0324764
prefix Uint384 and Uint512 with Hash in server_definitions (#5231)
shawnxie999 Jan 2, 2025
040cd23
chore: add macos dependency installation (#5233)
rrmanukyan Jan 7, 2025
58af62f
XLS-46: DynamicNFT (#5048)
tequdev Jan 9, 2025
07f118c
chore: update deprecated Github Actions (#5241)
mvadari Jan 9, 2025
ccc0889
Permissioned Domains (XLS-80d) (#5161)
oleks-rip Jan 10, 2025
8d5cfb9
Merge branch 'develop' into vault
Bronek Jan 13, 2025
ff8b9aa
Fix failing assert in `connect` RPC (#5235)
mvadari Jan 14, 2025
bf8bbff
Merge branch 'develop' into vault
Bronek Jan 15, 2025
9e4a7d5
Fix the flag processing of NFTokenModify (#5246)
tequdev Jan 16, 2025
7be5c31
Fix levelization script to ignore commented includes (#5194)
vlntb Jan 16, 2025
839d17e
fix: Use consistent CMake settings for all modules (#5228)
ximinez Jan 16, 2025
ebd8e63
Set version to 2.4.0-b2
ximinez Jan 16, 2025
375614d
Merge branch 'develop' into vault
Bronek Jan 17, 2025
c325b6c
Fix Vault unit tests
Bronek Jan 17, 2025
dbaa12a
WIP permissioned domain support
Bronek Jan 17, 2025
580a85f
WIP support adding domainID in VaultSet
Bronek Jan 20, 2025
eac3abd
fix: Error consistency in LedgerEntry::parsePermissionedDomains() (#5…
kuznetsss Jan 21, 2025
c08f86d
Remove temSTRING_TOO_LARGE, fix authorizedDomain, refactor Vault_test
Bronek Jan 21, 2025
e1e67b2
Update branch management and merge / release processes (#5215)
ximinez Jan 23, 2025
25a20ad
Add VaultID to account
Bronek Jan 23, 2025
870882f
test: Unit tests to recreate invalid index logic error (#5242)
ximinez Jan 23, 2025
20710f5
Cleanup API-CHANGELOG.md (#5207)
Bronek Jan 23, 2025
409c1d5
Add missing space character to a log message (#5251)
tequdev Jan 23, 2025
2c4a224
Verify credentials in VaultDeposit
Bronek Jan 23, 2025
3868c04
Switch from assert to XRPL_ASSERT (#5245)
Bronek Jan 23, 2025
5fbee8c
Add [validator_list_threshold] to validators.txt to improve UNL secur…
Bronek Jan 23, 2025
9bf9a1e
Merge branch 'develop' into vault
Bronek Jan 24, 2025
86d249a
Fix checo of expired credential
Bronek Jan 24, 2025
65d6c48
Unit tests naming fix
Bronek Jan 24, 2025
ed4870c
chore: Update Visual Studio CI to VS 2022, and add VS Debug builds (#…
ximinez Jan 24, 2025
02dec4f
Merge branch 'develop' into vault
Bronek Jan 27, 2025
b6e3453
Update secp256k1 library to 0.6.0 (#5254)
legleux Jan 27, 2025
b14c249
Reduce the peer charges for well-behaved peers:
vlntb Jan 13, 2025
f3e201f
Set version to 2.3.1-rc1
vlntb Jan 27, 2025
50b8f19
Fix CI unit tests (#5196)
oleks-rip Jan 28, 2025
dcc4581
Add RPC "simulate" to execute a dry run of a transaction (#5069)
mvadari Jan 29, 2025
cb0ddbf
Update conan in the "nix" CI jobs
ximinez Jan 29, 2025
8458233
Set version to 2.3.1
ximinez Jan 29, 2025
3d02580
Merge remote-tracking branch 'upstream/master' into merge231
ximinez Jan 29, 2025
1b75dc8
Set version to 2.4.0-b3
ximinez Jan 30, 2025
3eebdae
Implement MPT domain checks
Bronek Jan 27, 2025
33e1c42
Add deep freeze feature (XLS-77d) (#5187)
vvysokikh1 Jan 31, 2025
ad68074
MPT permissioned domain checks
Bronek Jan 30, 2025
06a8a61
WIP trying to fix MSVC compilation error
Bronek Jan 31, 2025
a98e59a
Revert "WIP trying to fix MSVC compilation error"
ximinez Jan 31, 2025
21e0e7e
Fix ICE errors by reusing a global static const object
ximinez Jan 31, 2025
eed18d1
Remove unnecessary ValueProxy friend operator !=
ximinez Jan 31, 2025
c3f9a4c
Fix MSVC build: Get the intended const& for some fields
ximinez Jan 31, 2025
d1c7d1a
Merge branch 'develop' into vault
Bronek Feb 3, 2025
8baadd5
Fix clang build error
Bronek Feb 3, 2025
9decc05
Rename getSequence to getSeqValue
Bronek Feb 3, 2025
6765c10
Check permissioned domain enabled if DomainID is used
Bronek Feb 4, 2025
1884ec5
Check for frozen assets in preclaim
Bronek Feb 4, 2025
acaed58
Prevent deposit when asset is frozen for depositor
Bronek Feb 4, 2025
f6d6308
Improve git commit hash lookup (#5225)
ximinez Feb 5, 2025
fb3713b
Amendment `fixFrozenLPTokenTransfer` (#5227)
shawnxie999 Feb 5, 2025
ffaa8bd
Improve checks in Vault
Bronek Feb 6, 2025
b7c9577
Remove unnecessary check
Bronek Feb 6, 2025
02387fd
Updates Conan dependencies (#5256)
bthomee Feb 6, 2025
87d8881
Merge branch 'develop' into vault
Bronek Feb 7, 2025
c1d8bc4
Enforce freeze of pseudo-account
Bronek Feb 7, 2025
d9e4009
fix: issues in `simulate` RPC (#5265)
mvadari Feb 7, 2025
e9ed800
Optimise isFrozen check for pair of accounts
Bronek Feb 7, 2025
9d619b9
Merge branch 'develop' into vault
Bronek Feb 7, 2025
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
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .github/actions/build/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ runs:
${{ inputs.generator && format('-G "{0}"', inputs.generator) || '' }} \
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=build/generators/conan_toolchain.cmake \
-DCMAKE_BUILD_TYPE=${{ inputs.configuration }} \
-Dassert=TRUE \
-Dwerr=TRUE \
-Dtests=TRUE \
-Dxrpld=TRUE \
${{ inputs.cmake-args }} \
Expand Down
1 change: 1 addition & 0 deletions .github/actions/dependencies/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ runs:
conan export external/snappy snappy/1.1.10@
conan export external/rocksdb rocksdb/6.29.5@
conan export external/soci soci/4.0.3@
conan export external/nudb nudb/2.0.8@
- name: add Ripple Conan remote
shell: bash
run: |
Expand Down
96 changes: 48 additions & 48 deletions .github/workflows/clang-format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,52 +8,52 @@ jobs:
env:
CLANG_VERSION: 18
steps:
- uses: actions/checkout@v4
- name: Install clang-format
run: |
codename=$( lsb_release --codename --short )
sudo tee /etc/apt/sources.list.d/llvm.list >/dev/null <<EOF
deb http://apt.llvm.org/${codename}/ llvm-toolchain-${codename}-${CLANG_VERSION} main
deb-src http://apt.llvm.org/${codename}/ llvm-toolchain-${codename}-${CLANG_VERSION} main
EOF
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add
sudo apt-get update
sudo apt-get install clang-format-${CLANG_VERSION}
- name: Format first-party sources
run: find include src -type f \( -name '*.cpp' -o -name '*.hpp' -o -name '*.h' -o -name '*.ipp' \) -exec clang-format-${CLANG_VERSION} -i {} +
- name: Check for differences
id: assert
run: |
set -o pipefail
git diff --exit-code | tee "clang-format.patch"
- name: Upload patch
if: failure() && steps.assert.outcome == 'failure'
uses: actions/upload-artifact@v3
continue-on-error: true
with:
name: clang-format.patch
if-no-files-found: ignore
path: clang-format.patch
- name: What happened?
if: failure() && steps.assert.outcome == 'failure'
env:
PREAMBLE: |
If you are reading this, you are looking at a failed Github Actions
job. That means you pushed one or more files that did not conform
to the formatting specified in .clang-format. That may be because
you neglected to run 'git clang-format' or 'clang-format' before
committing, or that your version of clang-format has an
incompatibility with the one on this
machine, which is:
SUGGESTION: |
- uses: actions/checkout@v4
- name: Install clang-format
run: |
codename=$( lsb_release --codename --short )
sudo tee /etc/apt/sources.list.d/llvm.list >/dev/null <<EOF
deb http://apt.llvm.org/${codename}/ llvm-toolchain-${codename}-${CLANG_VERSION} main
deb-src http://apt.llvm.org/${codename}/ llvm-toolchain-${codename}-${CLANG_VERSION} main
EOF
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add
sudo apt-get update
sudo apt-get install clang-format-${CLANG_VERSION}
- name: Format first-party sources
run: find include src -type f \( -name '*.cpp' -o -name '*.hpp' -o -name '*.h' -o -name '*.ipp' \) -exec clang-format-${CLANG_VERSION} -i {} +
- name: Check for differences
id: assert
run: |
set -o pipefail
git diff --exit-code | tee "clang-format.patch"
- name: Upload patch
if: failure() && steps.assert.outcome == 'failure'
uses: actions/upload-artifact@v4
continue-on-error: true
with:
name: clang-format.patch
if-no-files-found: ignore
path: clang-format.patch
- name: What happened?
if: failure() && steps.assert.outcome == 'failure'
env:
PREAMBLE: |
If you are reading this, you are looking at a failed Github Actions
job. That means you pushed one or more files that did not conform
to the formatting specified in .clang-format. That may be because
you neglected to run 'git clang-format' or 'clang-format' before
committing, or that your version of clang-format has an
incompatibility with the one on this
machine, which is:
SUGGESTION: |
To fix it, you can do one of two things:
1. Download and apply the patch generated as an artifact of this
job to your repo, commit, and push.
2. Run 'git-clang-format --extensions cpp,h,hpp,ipp develop'
in your repo, commit, and push.
run: |
echo "${PREAMBLE}"
clang-format-${CLANG_VERSION} --version
echo "${SUGGESTION}"
exit 1
To fix it, you can do one of two things:
1. Download and apply the patch generated as an artifact of this
job to your repo, commit, and push.
2. Run 'git-clang-format --extensions cpp,h,hpp,ipp develop'
in your repo, commit, and push.
run: |
echo "${PREAMBLE}"
clang-format-${CLANG_VERSION} --version
echo "${SUGGESTION}"
exit 1
103 changes: 103 additions & 0 deletions .github/workflows/instrumentation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
name: instrumentation
on:
pull_request:
push:
# If the branches list is ever changed, be sure to change it on all
# build/test jobs (nix, macos, windows, instrumentation)
branches:
# Always build the package branches
- develop
- release
- master
# Branches that opt-in to running
- 'ci/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:

# NOTE we are not using dependencies built inside nix because nix is lagging
# with compiler versions. Instrumentation requires clang version 16 or later

instrumentation-build:
env:
CLANG_RELEASE: 16
strategy:
fail-fast: false
runs-on: [self-hosted, heavy]
container: debian:bookworm
steps:
- name: install prerequisites
env:
DEBIAN_FRONTEND: noninteractive
run: |
apt-get update
apt-get install --yes --no-install-recommends \
clang-${CLANG_RELEASE} clang++-${CLANG_RELEASE} \
python3-pip python-is-python3 make cmake git wget
apt-get clean
update-alternatives --install \
/usr/bin/clang clang /usr/bin/clang-${CLANG_RELEASE} 100 \
--slave /usr/bin/clang++ clang++ /usr/bin/clang++-${CLANG_RELEASE}
update-alternatives --auto clang
pip install --no-cache --break-system-packages "conan<2"
- name: checkout
uses: actions/checkout@v4

- name: prepare environment
run: |
mkdir ${GITHUB_WORKSPACE}/.build
echo "SOURCE_DIR=$GITHUB_WORKSPACE" >> $GITHUB_ENV
echo "BUILD_DIR=$GITHUB_WORKSPACE/.build" >> $GITHUB_ENV
echo "CC=/usr/bin/clang" >> $GITHUB_ENV
echo "CXX=/usr/bin/clang++" >> $GITHUB_ENV
- name: configure Conan
run: |
conan profile new --detect default
conan profile update settings.compiler=clang default
conan profile update settings.compiler.version=${CLANG_RELEASE} default
conan profile update settings.compiler.libcxx=libstdc++11 default
conan profile update settings.compiler.cppstd=20 default
conan profile update options.rocksdb=False default
conan profile update \
'conf.tools.build:compiler_executables={"c": "/usr/bin/clang", "cpp": "/usr/bin/clang++"}' default
conan profile update 'env.CXXFLAGS="-DBOOST_ASIO_DISABLE_CONCEPTS"' default
conan profile update 'conf.tools.build:cxxflags+=["-DBOOST_ASIO_DISABLE_CONCEPTS"]' default
conan export external/snappy snappy/1.1.10@
conan export external/soci soci/4.0.3@
- name: build dependencies
run: |
cd ${BUILD_DIR}
conan install ${SOURCE_DIR} \
--output-folder ${BUILD_DIR} \
--install-folder ${BUILD_DIR} \
--build missing \
--settings build_type=Debug
- name: build with instrumentation
run: |
cd ${BUILD_DIR}
cmake -S ${SOURCE_DIR} -B ${BUILD_DIR} \
-Dvoidstar=ON \
-Dtests=ON \
-Dxrpld=ON \
-DCMAKE_BUILD_TYPE=Debug \
-DSECP256K1_BUILD_BENCHMARK=OFF \
-DSECP256K1_BUILD_TESTS=OFF \
-DSECP256K1_BUILD_EXHAUSTIVE_TESTS=OFF \
-DCMAKE_TOOLCHAIN_FILE=${BUILD_DIR}/build/generators/conan_toolchain.cmake
cmake --build . --parallel $(nproc)
- name: verify instrumentation enabled
run: |
cd ${BUILD_DIR}
./rippled --version | grep libvoidstar
- name: run unit tests
run: |
cd ${BUILD_DIR}
./rippled -u --unittest-jobs $(( $(nproc)/4 ))
72 changes: 36 additions & 36 deletions .github/workflows/levelization.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,42 +8,42 @@ jobs:
env:
CLANG_VERSION: 10
steps:
- uses: actions/checkout@v4
- name: Check levelization
run: Builds/levelization/levelization.sh
- name: Check for differences
id: assert
run: |
set -o pipefail
git diff --exit-code | tee "levelization.patch"
- name: Upload patch
if: failure() && steps.assert.outcome == 'failure'
uses: actions/upload-artifact@v3
continue-on-error: true
with:
name: levelization.patch
if-no-files-found: ignore
path: levelization.patch
- name: What happened?
if: failure() && steps.assert.outcome == 'failure'
env:
MESSAGE: |
If you are reading this, you are looking at a failed Github
Actions job. That means you changed the dependency relationships
between the modules in rippled. That may be an improvement or a
regression. This check doesn't judge.
- uses: actions/checkout@v4
- name: Check levelization
run: Builds/levelization/levelization.sh
- name: Check for differences
id: assert
run: |
set -o pipefail
git diff --exit-code | tee "levelization.patch"
- name: Upload patch
if: failure() && steps.assert.outcome == 'failure'
uses: actions/upload-artifact@v4
continue-on-error: true
with:
name: levelization.patch
if-no-files-found: ignore
path: levelization.patch
- name: What happened?
if: failure() && steps.assert.outcome == 'failure'
env:
MESSAGE: |
If you are reading this, you are looking at a failed Github
Actions job. That means you changed the dependency relationships
between the modules in rippled. That may be an improvement or a
regression. This check doesn't judge.
A rule of thumb, though, is that if your changes caused
something to be removed from loops.txt, that's probably an
improvement. If something was added, it's probably a regression.
A rule of thumb, though, is that if your changes caused
something to be removed from loops.txt, that's probably an
improvement. If something was added, it's probably a regression.
To fix it, you can do one of two things:
1. Download and apply the patch generated as an artifact of this
job to your repo, commit, and push.
2. Run './Builds/levelization/levelization.sh' in your repo,
commit, and push.
To fix it, you can do one of two things:
1. Download and apply the patch generated as an artifact of this
job to your repo, commit, and push.
2. Run './Builds/levelization/levelization.sh' in your repo,
commit, and push.
See Builds/levelization/README.md for more info.
run: |
echo "${MESSAGE}"
exit 1
See Builds/levelization/README.md for more info.
run: |
echo "${MESSAGE}"
exit 1
28 changes: 26 additions & 2 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ on:
pull_request:
push:
# If the branches list is ever changed, be sure to change it on all
# build/test jobs (nix, macos, windows)
# build/test jobs (nix, macos, windows, instrumentation)
branches:
# Always build the package branches
- develop
Expand Down Expand Up @@ -41,13 +41,34 @@ jobs:
- name: install Ninja
if: matrix.generator == 'Ninja'
run: brew install ninja
- name: install python
run: |
if which python > /dev/null 2>&1; then
echo "Python executable exists"
else
brew install [email protected]
ln -s /opt/homebrew/bin/python3 /opt/homebrew/bin/python
fi
- name: install cmake
run: |
if which cmake > /dev/null 2>&1; then
echo "cmake executable exists"
else
brew install cmake
fi
- name: install nproc
run: |
brew install coreutils
- name: check environment
run: |
env | sort
echo ${PATH} | tr ':' '\n'
python --version
conan --version
cmake --version
nproc --version
echo -n "nproc returns: "
nproc
- name: configure Conan
run : |
conan profile new default --detect || true
Expand All @@ -66,6 +87,9 @@ jobs:
with:
generator: ${{ matrix.generator }}
configuration: ${{ matrix.configuration }}
cmake-args: ${{ matrix.cmake-args }}
- name: test
run: |
${build_dir}/rippled --unittest
n=$(nproc)
echo "Using $n test jobs"
${build_dir}/rippled --unittest --unittest-jobs $n
Loading