Skip to content

Commit

Permalink
add a flag to skip start migration
Browse files Browse the repository at this point in the history
  • Loading branch information
ahmadkaouk committed Dec 12, 2024
1 parent 8e0fa2c commit 97c840d
Showing 1 changed file with 29 additions and 11 deletions.
40 changes: 29 additions & 11 deletions src/lazy-migrations/005-foreign-assets-migration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,11 @@ const argv = yargs(process.argv.slice(2))
demandOption: false,
conflicts: ["account-priv-key"],
},
"skip-start": {
type: "boolean",
default: false,
describe: "Skip the start migration step",
},
})
.check((argv) => {
if (!(argv["account-priv-key"] || argv["alith"])) {
Expand All @@ -49,7 +54,15 @@ interface MigrationInfo {
assetId: string;
remainingBalances: number;
remainingApprovals: number;
};
}

type MigrationStatus = {
type: 'Idle'
} | {
type: 'Migrating',
info: MigrationInfo
}


async function checkMigrationFailure(api: ApiPromise, txId: string) {
const events = await api.query.system.events();
Expand Down Expand Up @@ -94,6 +107,7 @@ async function main() {
const api = await getApiFor(argv);
const keyring = new Keyring({ type: "ethereum" });
const assetId = argv["asset-id"];
const skipStart = argv["skip-start"];

try {
let account: KeyringPair;
Expand All @@ -108,16 +122,20 @@ async function main() {
const rawMigrationInfo = await api.query.moonbeamLazyMigrations.foreignAssetMigrationStatusValue();
console.log("Migration info:", rawMigrationInfo.toString());

// Step 1: Start migration
const txStart = api.tx.moonbeamLazyMigrations.startForeignAssetsMigration(assetId);
await txStart.signAndSend(
account,
{ nonce: nonce++ },
monitorSubmittedExtrinsic(api, { id: `start-migration-${assetId}` })
);
await waitForAllMonitoredExtrinsics();
await checkMigrationFailure(api, `start-migration-${assetId}`);
console.log("Started migration for asset", assetId);
// Step 1: Start migration (skip if flag is set)
if (!skipStart) {
const txStart = api.tx.moonbeamLazyMigrations.startForeignAssetsMigration(assetId);
await txStart.signAndSend(
account,
{ nonce: nonce++ },
monitorSubmittedExtrinsic(api, { id: `start-migration-${assetId}` })
);
await waitForAllMonitoredExtrinsics();
await checkMigrationFailure(api, `start-migration-${assetId}`);
console.log("Started migration for asset", assetId);
} else {
console.log("Skipping start migration step");
}

// Step 2: Migrate balances
const txBalances = api.tx.moonbeamLazyMigrations.migrateForeignAssetBalances(argv.limit);
Expand Down

0 comments on commit 97c840d

Please sign in to comment.