instructions.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import * as borsh from 'borsh';
  2. class Assignable {
  3. constructor(properties) {
  4. for (const [key, value] of Object.entries(properties)) {
  5. this[key] = value;
  6. }
  7. }
  8. }
  9. export enum NftMinterInstruction {
  10. Init = 0,
  11. Create = 1,
  12. Mint = 2,
  13. }
  14. export class InitArgs extends Assignable {
  15. toBuffer() {
  16. return Buffer.from(borsh.serialize(InitArgsSchema, this));
  17. }
  18. }
  19. const InitArgsSchema = new Map([
  20. [
  21. InitArgs,
  22. {
  23. kind: 'struct',
  24. fields: [['instruction', 'u8']],
  25. },
  26. ],
  27. ]);
  28. export class CreateTokenArgs extends Assignable {
  29. toBuffer() {
  30. return Buffer.from(borsh.serialize(CreateTokenArgsSchema, this));
  31. }
  32. }
  33. const CreateTokenArgsSchema = new Map([
  34. [
  35. CreateTokenArgs,
  36. {
  37. kind: 'struct',
  38. fields: [
  39. ['instruction', 'u8'],
  40. ['nft_title', 'string'],
  41. ['nft_symbol', 'string'],
  42. ['nft_uri', 'string'],
  43. ],
  44. },
  45. ],
  46. ]);
  47. export class MintToArgs extends Assignable {
  48. toBuffer() {
  49. return Buffer.from(borsh.serialize(MintToArgsSchema, this));
  50. }
  51. }
  52. const MintToArgsSchema = new Map([
  53. [
  54. MintToArgs,
  55. {
  56. kind: 'struct',
  57. fields: [['instruction', 'u8']],
  58. },
  59. ],
  60. ]);