Skip to content

Commit bd084b4

Browse files
authored
Merge pull request #573 from gregdhill/chore/all-clients
chore: set all versions in runtime-upgrade script
2 parents a75b9db + 1469060 commit bd084b4

1 file changed

Lines changed: 29 additions & 9 deletions

File tree

scripts/runtime-upgrade.ts

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,33 @@ async function printDiscordProposal(
7373
console.log("");
7474
}
7575

76+
async function setAllClientReleases(api: ApiPromise, baseUrl: String, runtimeName: String) {
77+
const checksumFile = await fetch(baseUrl + 'sha256sums.txt')
78+
.then(res => {
79+
if (res.status >= 400) {
80+
throw new Error("Bad response from server");
81+
}
82+
return res.text();
83+
});
84+
85+
const regex = new RegExp("([a-f0-9]+)\\\s*[.]\/((oracle|vault)-parachain-metadata-" + runtimeName + ")\n", "g");
86+
let matches = [];
87+
let match;
88+
while ((match = regex.exec(checksumFile)) !== null) {
89+
matches.push([match[1], match[2], match[3]]);
90+
}
91+
92+
return matches.map(([checksum, fullFileName, clientName]) => {
93+
return api.tx.clientsInfo.setPendingClientRelease(
94+
clientName,
95+
{
96+
uri: baseUrl + fullFileName,
97+
checksum: "0x" + checksum,
98+
}
99+
)
100+
});
101+
}
102+
76103
async function main(): Promise<void> {
77104
await cryptoWaitReady();
78105

@@ -112,20 +139,13 @@ async function main(): Promise<void> {
112139

113140
const clientsRepo = "https://github.com/interlay/interbtc-clients";
114141
const clientsVersion = args['clients-version'];
115-
console.log(`Downloading vault binary (${clientsVersion})...`);
116-
const vaultFileName = `vault-parachain-metadata-${args['runtime-name']}`;
117-
const vaultBinaryUri = `${clientsRepo}/releases/download/${clientsVersion}/${vaultFileName}`;
118-
const vaultBinary = await fetch(vaultBinaryUri);
119-
const vaultBinaryRaw = await vaultBinary.arrayBuffer();
120-
const vaultChecksum = sha256AsU8a(Buffer.from(vaultBinaryRaw));
121-
const vaultRelease = { uri: vaultBinaryUri, checksum: vaultChecksum };
142+
const clientsBaseUrl = `${clientsRepo}/releases/download/${clientsVersion}/`;
122143

123144
const paraApi = await createSubstrateAPI(args['parachain-endpoint']);
124145

125146
const batched = paraApi.tx.utility.batchAll([
126147
paraApi.tx.parachainSystem.authorizeUpgrade(codeHash),
127-
paraApi.tx.clientsInfo.setPendingClientRelease("vault", vaultRelease),
128-
]);
148+
].concat(await setAllClientReleases(paraApi, clientsBaseUrl, args['runtime-name'])));
129149

130150
const title = `Runtime Upgrade ${parachainVersion}`;
131151
printDiscordProposal(title, batched, args["parachain-endpoint"], paraApi);

0 commit comments

Comments
 (0)