InitializeComponent.cs 2.2 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 InitializeComponentInstruction {
  10. public PublicKey Pda { get; set; }
  11. public TransactionInstruction Instruction { get; set; }
  12. }
  13. public static async Task<InitializeComponentInstruction> InitializeComponent(PublicKey payer, PublicKey entity, PublicKey componentId, byte[] seed, PublicKey authority = null) {
  14. var componentPda = WorldProgram.FindComponentPda(componentId, entity, seed);
  15. return await InitializeComponent(payer, entity, componentId, componentPda, authority);
  16. }
  17. public static async Task<InitializeComponentInstruction> InitializeComponent(PublicKey payer, PublicKey entity, PublicKey componentId, string seed, PublicKey authority = null) {
  18. var componentPda = WorldProgram.FindComponentPda(componentId, entity, seed);
  19. return await InitializeComponent(payer, entity, componentId, componentPda, authority);
  20. }
  21. public static async Task<InitializeComponentInstruction> InitializeComponent(PublicKey payer, PublicKey entity, PublicKey componentId, PublicKey authority = null) {
  22. var componentPda = WorldProgram.FindComponentPda(componentId, entity);
  23. return await InitializeComponent(payer, entity, componentId, componentPda, authority);
  24. }
  25. public static async Task<InitializeComponentInstruction> InitializeComponent(PublicKey payer, PublicKey entity, PublicKey componentId, PublicKey componentPda, PublicKey authority = null) {
  26. var initializeComponent = new InitializeComponentAccounts() {
  27. Payer = payer,
  28. Entity = entity,
  29. Data = componentPda,
  30. ComponentProgram = componentId,
  31. Authority = authority ?? new PublicKey(WorldProgram.ID)
  32. };
  33. var instruction = WorldProgram.InitializeComponent(initializeComponent);
  34. return new InitializeComponentInstruction() {
  35. Pda = componentPda,
  36. Instruction = instruction
  37. };
  38. }
  39. }
  40. }