DestroyComponent.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #pragma warning disable CS1591
  2. using Solana.Unity.Rpc.Models;
  3. using Solana.Unity.Wallet;
  4. using System.Threading.Tasks;
  5. using World.Program;
  6. namespace Bolt {
  7. public partial class World {
  8. public class DestroyComponentInstruction {
  9. public TransactionInstruction Instruction { get; set; }
  10. }
  11. public static async Task<DestroyComponentInstruction> DestroyComponent(PublicKey authority, PublicKey receiver, PublicKey entity, PublicKey componentId, byte[] seed) {
  12. var componentPda = WorldProgram.FindComponentPda(componentId, entity, seed);
  13. return await DestroyComponent(authority, receiver, entity, componentId, componentPda);
  14. }
  15. public static async Task<DestroyComponentInstruction> DestroyComponent(PublicKey authority, PublicKey receiver, PublicKey entity, PublicKey componentId, string seed) {
  16. var componentPda = WorldProgram.FindComponentPda(componentId, entity, seed);
  17. return await DestroyComponent(authority, receiver, entity, componentId, componentPda);
  18. }
  19. public static async Task<DestroyComponentInstruction> DestroyComponent(PublicKey authority, PublicKey receiver, PublicKey entity, PublicKey componentId) {
  20. var componentPda = WorldProgram.FindComponentPda(componentId, entity);
  21. return await DestroyComponent(authority, receiver, entity, componentId, componentPda);
  22. }
  23. public static async Task<DestroyComponentInstruction> DestroyComponent(PublicKey authority, PublicKey receiver, PublicKey entity, PublicKey componentProgram, PublicKey componentPda) {
  24. var componentProgramData = WorldProgram.FindComponentProgramDataPda(componentProgram);
  25. var destroyComponent = new DestroyComponentAccounts() {
  26. Authority = authority,
  27. Receiver = receiver,
  28. Entity = entity,
  29. Component = componentPda,
  30. ComponentProgram = componentProgram,
  31. ComponentProgramData = componentProgramData
  32. };
  33. var instruction = WorldProgram.DestroyComponent(destroyComponent);
  34. return new DestroyComponentInstruction() {
  35. Instruction = instruction
  36. };
  37. }
  38. }
  39. }