DestroyComponent.cs 2.3 KB

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