generate-idls.mjs 696 B

12345678910111213141516171819202122
  1. #!/usr/bin/env zx
  2. import 'zx/globals';
  3. import { generateIdl } from '@metaplex-foundation/shank-js';
  4. import { getCargo, getProgramFolders } from './utils.mjs';
  5. const binaryInstallDir = path.join(__dirname, '..', '.cargo');
  6. getProgramFolders().forEach((folder) => {
  7. const cargo = getCargo(folder);
  8. const isShank = Object.keys(cargo.dependencies).includes('shank');
  9. const programDir = path.join(__dirname, '..', folder);
  10. generateIdl({
  11. generator: isShank ? 'shank' : 'anchor',
  12. programName: cargo.package.name.replace(/-/g, '_'),
  13. programId: cargo.package.metadata.solana['program-id'],
  14. idlDir: programDir,
  15. idlName: 'idl',
  16. programDir,
  17. binaryInstallDir,
  18. });
  19. });