ci: Add a script to generate changes to ci-config (#2431)

* Add basic lookup for amendments
This commit is contained in:
Jackson Mills
2023-08-18 15:24:48 -07:00
committed by GitHub
parent 5581474627
commit 49447a9beb
5 changed files with 94 additions and 8 deletions

View File

@@ -0,0 +1,56 @@
const xrpl = require("xrpl");
const fs = require("fs");
const path = require("path");
const filePath = path.resolve(__dirname, "./rippled.cfg");
const existingConfig = fs.readFileSync(filePath, "utf-8");
const networkToEmulate = "wss://s.devnet.rippletest.net:51233/";
const amendmentsToIgnore = [
"86E83A7D2ECE3AD5FA87AB2195AE015C950469ABF0B72EAACED318F74886AE90", // CryptoConditionsSuite is obsolete
];
async function main() {
const client = new xrpl.Client(networkToEmulate);
await client.connect();
// Looks up what amendments have been enabled via their hash
const request = {
command: "ledger_entry",
index: "7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4",
ledger_index: "validated",
};
const response = await client.request(request);
const amendments = response.result.node.Amendments;
const newAmendments = [];
amendments.forEach((amendment) => {
if (
!existingConfig.includes(amendment) &&
!amendmentsToIgnore.includes(amendment)
) {
newAmendments.push(amendment);
}
});
if (newAmendments.length > 0) {
console.log(
"New Amendment Hashes - Look up their names on https://xrpl.org/known-amendments.html"
);
newAmendments.forEach((amendment) => {
console.log(amendment);
});
} else {
console.log(
`No new amendments to add!
Looking at network: ${networkToEmulate}.
Path to config: ${filePath}`
);
}
await client.disconnect();
}
main().catch((error) => console.log(error));

View File

@@ -98,13 +98,9 @@ validators.txt
# 3. Click on each amendment to get their Amendment ID and name to add to this list manually.
# You will likely update the list with all amendments from a new release of rippled all at once.
# To get the list of amendments on a network (e.g. devnet):
# 1. Run this ledger_entry command against the network to get a list of enabled amendment ids. (Command is in the websocket link as an easy way to run it)
# https://xrpl.org/websocket-api-tool.html?server=wss%3A%2F%2Fs1.ripple.com%2F&req=%7B%22command%22%3A%22ledger_entry%22%2C%22index%22%3A%227DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4%22%2C%22ledger_index%22%3A%22validated%22%7D
# 2. Strip away the quotes and commas
# 3. Add the amendment name to the same line as each amendment id (You can look them up via hash on https://xrpl.org/known-amendments.html)
# Ex. 4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373 Multisign
# The amendment name can be any string (including just a number)
# To get the list of amendments on a network (e.g. devnet) follow the steps in xrpl.js's CONTRIBUTING.md for "Updating the Docker container".
# https://github.com/XRPLF/xrpl.js/blob/main/CONTRIBUTING.md
# (Running the script `getNewAmendments.js` should help you identify any new amendments that should be added.)
#
# Note: The version of rippled you use this config with must have an implementation for the amendments you attempt to enable or it will crash.
# If you need the version of rippled to be more up to date, you may need to make a comment on this repo: https://github.com/WietseWind/docker-rippled
@@ -164,6 +160,10 @@ F1ED6B4A411D8B872E65B9DCB4C8B100375B0DD3D62D07192E011D6D7F339013 fixTrustLinesTo
2E2FB9CF8A44EB80F4694D38AADAE9B8B7ADAFD2F092E10068E61C98C4F092B0 fixUniversalNumber
75A7E01C505DD5A179DFE3E000A9B6F1EDDEB55A12F95579A23E15B15DC8BE5A ImmediateOfferKilled
93E516234E35E08CA689FA33A6D38E103881F8DCB53023F728C307AA89D515A7 XRPFees
# 1.11.0 Amendments
B2A4DB846F0891BF2C76AB2F2ACC8F5B4EC64437135C6E56F3F859DE5FFD5856 ExpandedSignerList
# 1.12.0-b1 Amendments
56B241D7A43D40354D02A9DC4C8DF5C7A1F930D92A9035C4E12291B3CA3E1C2B featureClawback
27CD95EE8E1E5A537FF2F89B6CEB7C622E78E9374EBD7DCBEDFAE21CD6F16E0A fixReducedOffersV1
# Added August 9th, 2023
AE35ABDEFBDE520372B31C957020B34A7A4A9DC3115A69803A44016477C84D6E fixNFTokenRemint