Enable `SingleAssetVault` feature
High Level Overview of Change
Switch Supported::yes for SingleAssetVault feature.
High Level Overview of Change
This PR will enable SingleAssetVault feature, implemented in #5224.
Type of Change
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Refactor (non-breaking change that only restructures code)
- [ ] Performance (increase or change in throughput and/or latency)
- [ ] Tests (you added tests for code that already exists, or your new feature included in this PR)
- [ ] Documentation update
- [ ] Chore (no impact to binary, e.g.
.gitignore, formatting, dropping support for older tooling) - [ ] Release
Hey, just checking in on this PR. Wanted to know how it’s going — I’d like to start testing the feature.
Hey, just checking in on this PR. Wanted to know how it’s going — I’d like to start testing the feature.
You can start testing it now; I try to keep this branch up-to-date with the current develop. The remaining planned changes related to this PR won't change much in your experience (see comment https://github.com/XRPLF/rippled/pull/5224#issuecomment-2895251022 for details)
Hi @Bronek, thanks for the help.
I’ve been trying to test the SingleAssetVault feature myself, but it seems like the feature isn’t enabled yet—I’m getting a message that it’s not supported. Could you clarify how the Ripple team is enabling or testing it on their end?
Should we be toggling a specific feature flag or config to activate it locally? Any guidance would be appreciated!
Thanks!
Hi @Bronek, thanks for the help.
I’ve been trying to test the SingleAssetVault feature myself, but it seems like the feature isn’t enabled yet—I’m getting a message that it’s not supported. Could you clarify how the Ripple team is enabling or testing it on their end?
Should we be toggling a specific feature flag or config to activate it locally? Any guidance would be appreciated!
Thanks!
Yes, you need to cherry pick this commit onto develop or whatever branch you are working on, or change Supported::no to Supported::yes in the features.macro file
Hey, thank you, but I think in this branch the feature is enabled. Am I wrong?
Hey, thank you, but I think in this branch the feature is enabled. Am I wrong?
Oops. lol yes this branch will work. I'm assuming you are running standalone? Then you need to either use a genesis.json or add the feature to the config. https://github.com/XRPLF/xrpl.js/blob/392a2037074ab53e4c40aad734117bdf13a69296/.ci-config/rippled.cfg#L187
I’m running on my standalone this :
curl -s -X POST http://localhost:5007 -H "Content-Type: application/json" -d '{"method": "feature", "params": [{}]}' | grep -A 5 SingleAssetVault
and after running it I get :
"81BD2619B6B3C8625AC5D0BC01DE17F06C3F0AB95C7C87C93715B87A4FD240D8":{"count":0,"enabled":false,"name":"SingleAssetVault","supported":true,"threshold":1,"validations":0,"vetoed":false}
My standalone config is :
[server]
port_peer
port_ws
port_http
port_ws_admin
port_ws_public
[port_peer]
port = 51235
ip = 0.0.0.0
protocol = peer
[port_ws]
port = 6005
ip = 0.0.0.0
protocol = ws
admin = 0.0.0.0
send_queue_limit = 500
[port_http]
port = 5005
ip = 0.0.0.0
protocol = http
admin = 0.0.0.0
send_queue_limit = 500
[port_ws_admin]
port = 6006
ip = 0.0.0.0
admin = 0.0.0.0
protocol = ws
send_queue_limit = 500
[port_ws_public]
port = 6007
ip = 0.0.0.0
protocol = ws
send_queue_limit = 500
[node_size]
tiny
[node_db]
type=NuDB
path=/var/lib/rippled/db/nudb
online_delete=512
advisory_delete=0
[database_path]
/var/lib/rippled/db
[debug_logfile]
/var/log/rippled/debug.log
[sntp_servers]
time.windows.com
time.apple.com
time.nist.gov
pool.ntp.org
[ips_fixed]
rippled-standalone 51235
[rpc_startup]
{ "command": "log_level", "severity": "warning" }
{ "command": "feature", "feature": "SingleAssetVault", "action": "accept", "vetoed": false }
{ "command": "feature", "feature": "MPTokensV1", "action": "accept", "vetoed": false }
{ "command": "feature", "feature": "SingleAssetVault", "action": "accept" }
{ "command": "feature", "feature": "MPTokensV1", "action": "accept" }
{ "command": "ledger_accept" }
{ "command": "ledger_accept" }
{ "command": "ledger_accept" }
{ "command": "ledger_accept" }
{ "command": "ledger_accept" }
[ssl_verify]
1
# Enable standalone mode
[standalone]
1
# Force server to use test network
[network_id]
102
[validator_file]
/etc/opt/ripple/validators.txt
# Enable specific features directly with feature names
[features]
SingleAssetVault
MPTokensV1
What do I need to do to enable it ?
I’m running on my standalone this :
curl -s -X POST http://localhost:5007 -H "Content-Type: application/json" -d '{"method": "feature", "params": [{}]}' | grep -A 5 SingleAssetVault. . . What do I need to do to enable it ?
You should not need a long list of [rpc_startup] commands to enable a feature which is already listed in [features] section. Also, if you switch your rippled command line options from --standalone to --start you will just run an isolated ledger with everything you want.
Codecov Report
:white_check_mark: All modified and coverable lines are covered by tests.
:white_check_mark: Project coverage is 78.6%. Comparing base (13a12c6) to head (94a1fac).
Additional details and impacted files
@@ Coverage Diff @@
## develop #5444 +/- ##
=======================================
Coverage 78.6% 78.6%
=======================================
Files 817 817
Lines 68984 68984
Branches 8245 8240 -5
=======================================
Hits 54201 54201
Misses 14783 14783
:rocket: New features to boost your workflow:
- :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
Maybe a stupid question, but what's the point of enabling Vault if there's nothing else that can use it yet? (e.g. Lending)
So we do not have a PR enabling more features at once ?
So we do not have a PR enabling more features at once ?
- I don't think there's any harm in enabling more than one feature at once.
- I think the transitive enabling we talked about last week is a viable option.
- I don't think SAV should be enabled until we've resolved the
VaultWithdraw.Destinationpayment issues that I took a first crack at in #5629.
So we do not have a PR enabling more features at once ?
1. I don't think there's any harm in enabling more than one feature at once. 2. I think the transitive enabling we talked about last week is a viable option. 3. I don't think SAV should be enabled until we've resolved the `VaultWithdraw.Destination` payment issues that I took a first crack at in [DRAFT: Ximinez/lending vault payments #5629](https://github.com/XRPLF/rippled/pull/5629).
Draft PR: #5826, assuming unit tests pass.
Should be enabled after Lending Protocol is done.