Bolt.cs 1.0 KB

1234567891011121314151617181920212223242526272829
  1. #pragma warning disable CS1591
  2. using Solana.Unity.Rpc;
  3. using Solana.Unity.Rpc.Types;
  4. using Solana.Unity.Wallet;
  5. using System;
  6. using System.Threading.Tasks;
  7. using WorldNamespace = World;
  8. namespace Bolt {
  9. public partial class World {
  10. public static async Task<WorldNamespace.Accounts.World> GetWorld(IRpcClient client, PublicKey world, Commitment commitment = Commitment.Finalized) {
  11. var Response = await client.GetAccountInfoAsync(world.ToString(), commitment);
  12. if (!Response.WasSuccessful)
  13. {
  14. throw new Exception(string.Join("\n", Response.ErrorData.Logs));
  15. }
  16. var accountInfo = Response.Result.Value;
  17. var data = Convert.FromBase64String(accountInfo.Data[0]);
  18. return WorldNamespace.Accounts.World.Deserialize(data);
  19. }
  20. public static byte[] SerializeArgs(object args)
  21. {
  22. return System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(args));
  23. }
  24. }
  25. }