prepare.mjs 876 B

12345678910111213141516171819202122232425262728293031323334
  1. #!/usr/bin/env zx
  2. import { mkdir, rm } from 'node:fs/promises';
  3. import { join } from 'node:path';
  4. import { $ } from 'zx';
  5. const programs = [
  6. {
  7. id: 'metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s',
  8. name: 'token_metadata.so',
  9. },
  10. ];
  11. const outputDir = 'tests/fixtures';
  12. const overwrite = true;
  13. try {
  14. for (const program of programs) {
  15. const { id, name } = program;
  16. const outputFile = join(outputDir, name);
  17. await $`solana config set -um`;
  18. try {
  19. await mkdir(outputDir, { recursive: true });
  20. if (overwrite) await rm(outputFile, { force: true });
  21. await $`solana program dump ${id} ${outputFile}`;
  22. console.log(`Program ${id} dumped to ${outputFile}`);
  23. } catch (error) {
  24. console.error(`Error dumping ${id}: ${error.message}`);
  25. }
  26. }
  27. } catch (error) {
  28. console.error(`Error preparing programs: ${error.message}`);
  29. }