@1upmonster/duel 0.1.8 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/dist/admin.d.ts +20 -42
  2. package/dist/admin.js +82 -117
  3. package/dist/encryption.js +1 -2
  4. package/dist/generated/duel/accounts/index.d.ts +10 -0
  5. package/dist/generated/duel/accounts/index.js +11 -0
  6. package/dist/generated/duel/accounts/matchTicket.d.ts +38 -0
  7. package/dist/generated/duel/accounts/matchTicket.js +45 -0
  8. package/dist/generated/duel/accounts/queue.d.ts +42 -0
  9. package/dist/generated/duel/accounts/queue.js +45 -0
  10. package/dist/generated/duel/accounts/tenant.d.ts +41 -0
  11. package/dist/generated/duel/accounts/tenant.js +44 -0
  12. package/dist/generated/duel/errors/duel.d.ts +33 -0
  13. package/dist/generated/duel/errors/duel.js +37 -0
  14. package/dist/generated/duel/errors/index.d.ts +8 -0
  15. package/dist/generated/duel/errors/index.js +9 -0
  16. package/dist/generated/duel/index.d.ts +12 -0
  17. package/dist/generated/duel/index.js +13 -0
  18. package/dist/generated/duel/instructions/cancelTicket.d.ts +45 -0
  19. package/dist/generated/duel/instructions/cancelTicket.js +56 -0
  20. package/dist/generated/duel/instructions/closeTicket.d.ts +45 -0
  21. package/dist/generated/duel/instructions/closeTicket.js +56 -0
  22. package/dist/generated/duel/instructions/commitTickets.d.ts +39 -0
  23. package/dist/generated/duel/instructions/commitTickets.js +50 -0
  24. package/dist/generated/duel/instructions/createTicket.d.ts +48 -0
  25. package/dist/generated/duel/instructions/createTicket.js +63 -0
  26. package/dist/generated/duel/instructions/delegateQueue.d.ts +69 -0
  27. package/dist/generated/duel/instructions/delegateQueue.js +90 -0
  28. package/dist/generated/duel/instructions/delegateTicket.d.ts +69 -0
  29. package/dist/generated/duel/instructions/delegateTicket.js +90 -0
  30. package/dist/generated/duel/instructions/flushMatches.d.ts +37 -0
  31. package/dist/generated/duel/instructions/flushMatches.js +43 -0
  32. package/dist/generated/duel/instructions/index.d.ts +18 -0
  33. package/dist/generated/duel/instructions/index.js +19 -0
  34. package/dist/generated/duel/instructions/initializeQueue.d.ts +48 -0
  35. package/dist/generated/duel/instructions/initializeQueue.js +63 -0
  36. package/dist/generated/duel/instructions/initializeTenant.d.ts +70 -0
  37. package/dist/generated/duel/instructions/initializeTenant.js +67 -0
  38. package/dist/generated/duel/instructions/joinQueue.d.ts +51 -0
  39. package/dist/generated/duel/instructions/joinQueue.js +56 -0
  40. package/dist/generated/duel/instructions/processUndelegation.d.ts +43 -0
  41. package/dist/generated/duel/instructions/processUndelegation.js +49 -0
  42. package/dist/generated/duel/programs/duel.d.ts +88 -0
  43. package/dist/generated/duel/programs/duel.js +138 -0
  44. package/dist/generated/duel/programs/index.d.ts +8 -0
  45. package/dist/generated/duel/programs/index.js +9 -0
  46. package/dist/generated/duel/types/accountType.d.ts +25 -0
  47. package/dist/generated/duel/types/accountType.js +25 -0
  48. package/dist/generated/duel/types/index.d.ts +13 -0
  49. package/dist/generated/duel/types/index.js +14 -0
  50. package/dist/generated/duel/types/matchEntry.d.ts +23 -0
  51. package/dist/generated/duel/types/matchEntry.js +18 -0
  52. package/dist/generated/duel/types/matchFound.d.ts +23 -0
  53. package/dist/generated/duel/types/matchFound.js +18 -0
  54. package/dist/generated/duel/types/pendingMatch.d.ts +21 -0
  55. package/dist/generated/duel/types/pendingMatch.js +18 -0
  56. package/dist/generated/duel/types/queueEntry.d.ts +19 -0
  57. package/dist/generated/duel/types/queueEntry.js +18 -0
  58. package/dist/generated/duel/types/ticketStatus.d.ts +40 -0
  59. package/dist/generated/duel/types/ticketStatus.js +25 -0
  60. package/dist/generated/rps-game/accounts/gameSession.d.ts +40 -0
  61. package/dist/generated/rps-game/accounts/gameSession.js +45 -0
  62. package/dist/generated/rps-game/accounts/index.d.ts +9 -0
  63. package/dist/generated/rps-game/accounts/index.js +10 -0
  64. package/dist/generated/rps-game/accounts/playerProfile.d.ts +36 -0
  65. package/dist/generated/rps-game/accounts/playerProfile.js +47 -0
  66. package/dist/generated/rps-game/errors/index.d.ts +8 -0
  67. package/dist/generated/rps-game/errors/index.js +9 -0
  68. package/dist/generated/rps-game/errors/rpsGame.d.ts +25 -0
  69. package/dist/generated/rps-game/errors/rpsGame.js +29 -0
  70. package/dist/generated/rps-game/index.d.ts +12 -0
  71. package/dist/generated/rps-game/index.js +13 -0
  72. package/dist/generated/rps-game/instructions/closePlayer.d.ts +45 -0
  73. package/dist/generated/rps-game/instructions/closePlayer.js +56 -0
  74. package/dist/generated/rps-game/instructions/delegatePda.d.ts +69 -0
  75. package/dist/generated/rps-game/instructions/delegatePda.js +90 -0
  76. package/dist/generated/rps-game/instructions/index.d.ts +16 -0
  77. package/dist/generated/rps-game/instructions/index.js +17 -0
  78. package/dist/generated/rps-game/instructions/initializePlayer.d.ts +48 -0
  79. package/dist/generated/rps-game/instructions/initializePlayer.js +63 -0
  80. package/dist/generated/rps-game/instructions/makeChoice.d.ts +44 -0
  81. package/dist/generated/rps-game/instructions/makeChoice.js +46 -0
  82. package/dist/generated/rps-game/instructions/onMatchFound.d.ts +43 -0
  83. package/dist/generated/rps-game/instructions/onMatchFound.js +45 -0
  84. package/dist/generated/rps-game/instructions/persistResults.d.ts +43 -0
  85. package/dist/generated/rps-game/instructions/persistResults.js +50 -0
  86. package/dist/generated/rps-game/instructions/processUndelegation.d.ts +43 -0
  87. package/dist/generated/rps-game/instructions/processUndelegation.js +49 -0
  88. package/dist/generated/rps-game/instructions/startGame.d.ts +54 -0
  89. package/dist/generated/rps-game/instructions/startGame.js +67 -0
  90. package/dist/generated/rps-game/instructions/startGameWithTicket.d.ts +57 -0
  91. package/dist/generated/rps-game/instructions/startGameWithTicket.js +67 -0
  92. package/dist/generated/rps-game/programs/index.d.ts +8 -0
  93. package/dist/generated/rps-game/programs/index.js +9 -0
  94. package/dist/generated/rps-game/programs/rpsGame.d.ts +78 -0
  95. package/dist/generated/rps-game/programs/rpsGame.js +118 -0
  96. package/dist/generated/rps-game/types/accountType.d.ts +34 -0
  97. package/dist/generated/rps-game/types/accountType.js +25 -0
  98. package/dist/generated/rps-game/types/choice.d.ts +17 -0
  99. package/dist/generated/rps-game/types/choice.js +25 -0
  100. package/dist/generated/rps-game/types/gameResult.d.ts +26 -0
  101. package/dist/generated/rps-game/types/gameResult.js +25 -0
  102. package/dist/generated/rps-game/types/index.d.ts +10 -0
  103. package/dist/generated/rps-game/types/index.js +11 -0
  104. package/dist/index.d.ts +2 -1
  105. package/dist/index.js +3 -2
  106. package/dist/player.d.ts +21 -48
  107. package/dist/player.js +61 -140
  108. package/dist/tee.d.ts +14 -0
  109. package/dist/tee.js +62 -0
  110. package/dist/transaction.d.ts +11 -0
  111. package/dist/transaction.js +50 -0
  112. package/dist/utils.d.ts +4 -4
  113. package/dist/utils.js +23 -8
  114. package/package.json +3 -6
  115. package/src/admin.ts +129 -163
  116. package/src/duel.json +66 -2
  117. package/src/encryption.ts +0 -3
  118. package/src/generated/duel/accounts/index.ts +11 -0
  119. package/src/generated/duel/accounts/matchTicket.ts +77 -0
  120. package/src/generated/duel/accounts/queue.ts +77 -0
  121. package/src/generated/duel/accounts/tenant.ts +76 -0
  122. package/src/generated/duel/errors/duel.ts +48 -0
  123. package/src/generated/duel/errors/index.ts +9 -0
  124. package/src/generated/duel/index.ts +13 -0
  125. package/src/generated/duel/instructions/cancelTicket.ts +100 -0
  126. package/src/generated/duel/instructions/closeTicket.ts +100 -0
  127. package/src/generated/duel/instructions/commitTickets.ts +84 -0
  128. package/src/generated/duel/instructions/createTicket.ts +109 -0
  129. package/src/generated/duel/instructions/delegateQueue.ts +157 -0
  130. package/src/generated/duel/instructions/delegateTicket.ts +157 -0
  131. package/src/generated/duel/instructions/flushMatches.ts +76 -0
  132. package/src/generated/duel/instructions/index.ts +19 -0
  133. package/src/generated/duel/instructions/initializeQueue.ts +109 -0
  134. package/src/generated/duel/instructions/initializeTenant.ts +126 -0
  135. package/src/generated/duel/instructions/joinQueue.ts +106 -0
  136. package/src/generated/duel/instructions/processUndelegation.ts +86 -0
  137. package/src/generated/duel/programs/duel.ts +104 -0
  138. package/src/generated/duel/programs/index.ts +9 -0
  139. package/src/generated/duel/types/accountType.ts +36 -0
  140. package/src/generated/duel/types/index.ts +14 -0
  141. package/src/generated/duel/types/matchEntry.ts +25 -0
  142. package/src/generated/duel/types/matchFound.ts +25 -0
  143. package/src/generated/duel/types/pendingMatch.ts +25 -0
  144. package/src/generated/duel/types/queueEntry.ts +25 -0
  145. package/src/generated/duel/types/ticketStatus.ts +38 -0
  146. package/src/generated/rps-game/accounts/gameSession.ts +77 -0
  147. package/src/generated/rps-game/accounts/index.ts +10 -0
  148. package/src/generated/rps-game/accounts/playerProfile.ts +80 -0
  149. package/src/generated/rps-game/errors/index.ts +9 -0
  150. package/src/generated/rps-game/errors/rpsGame.ts +40 -0
  151. package/src/generated/rps-game/index.ts +13 -0
  152. package/src/generated/rps-game/instructions/closePlayer.ts +100 -0
  153. package/src/generated/rps-game/instructions/delegatePda.ts +157 -0
  154. package/src/generated/rps-game/instructions/index.ts +17 -0
  155. package/src/generated/rps-game/instructions/initializePlayer.ts +109 -0
  156. package/src/generated/rps-game/instructions/makeChoice.ts +84 -0
  157. package/src/generated/rps-game/instructions/onMatchFound.ts +79 -0
  158. package/src/generated/rps-game/instructions/persistResults.ts +88 -0
  159. package/src/generated/rps-game/instructions/processUndelegation.ts +86 -0
  160. package/src/generated/rps-game/instructions/startGame.ts +118 -0
  161. package/src/generated/rps-game/instructions/startGameWithTicket.ts +121 -0
  162. package/src/generated/rps-game/programs/index.ts +9 -0
  163. package/src/generated/rps-game/programs/rpsGame.ts +95 -0
  164. package/src/generated/rps-game/types/accountType.ts +36 -0
  165. package/src/generated/rps-game/types/choice.ts +25 -0
  166. package/src/generated/rps-game/types/gameResult.ts +37 -0
  167. package/src/generated/rps-game/types/index.ts +11 -0
  168. package/src/index.ts +2 -1
  169. package/src/player.ts +96 -192
  170. package/src/rps_game.json +991 -0
  171. package/src/tee.ts +79 -0
  172. package/src/transaction.ts +90 -0
  173. package/src/utils.ts +35 -20
  174. package/tsconfig.json +2 -2
  175. package/dist/client.d.ts +0 -54
  176. package/dist/client.js +0 -265
  177. package/dist/duel.json +0 -1207
  178. package/dist/private_matchmaking.json +0 -534
  179. package/dist/types.d.ts +0 -635
  180. package/dist/types.js +0 -2
  181. package/src/types.ts +0 -300
@@ -0,0 +1,9 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+ export * from './rpsGame';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL3Jwcy1nYW1lL3Byb2dyYW1zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILGNBQWMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIGNvZGUgd2FzIEFVVE9HRU5FUkFURUQgdXNpbmcgdGhlIENvZGFtYSBsaWJyYXJ5LlxuICogUGxlYXNlIERPIE5PVCBFRElUIFRISVMgRklMRSwgaW5zdGVhZCB1c2UgdmlzaXRvcnNcbiAqIHRvIGFkZCBmZWF0dXJlcywgdGhlbiByZXJ1biBDb2RhbWEgdG8gdXBkYXRlIGl0LlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2NvZGFtYS1pZGwvY29kYW1hXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9ycHNHYW1lJzsiXX0=
@@ -0,0 +1,78 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+ import { type Address, type ClientWithPayer, type ClientWithRpc, type ClientWithTransactionPlanning, type ClientWithTransactionSending, type GetAccountInfoApi, type GetMultipleAccountsApi, type Instruction, type InstructionWithData, type ReadonlyUint8Array } from '@solana/kit';
9
+ import { type SelfFetchFunctions, type SelfPlanAndSendFunctions } from '@solana/program-client-core';
10
+ import { getGameSessionCodec, getPlayerProfileCodec, type GameSession, type GameSessionArgs, type PlayerProfile, type PlayerProfileArgs } from '../accounts';
11
+ import { getClosePlayerInstructionAsync, getDelegatePdaInstructionAsync, getInitializePlayerInstructionAsync, getMakeChoiceInstruction, getOnMatchFoundInstruction, getPersistResultsInstruction, getProcessUndelegationInstruction, getStartGameInstructionAsync, getStartGameWithTicketInstructionAsync, type ClosePlayerAsyncInput, type DelegatePdaAsyncInput, type InitializePlayerAsyncInput, type MakeChoiceInput, type OnMatchFoundInput, type ParsedClosePlayerInstruction, type ParsedDelegatePdaInstruction, type ParsedInitializePlayerInstruction, type ParsedMakeChoiceInstruction, type ParsedOnMatchFoundInstruction, type ParsedPersistResultsInstruction, type ParsedProcessUndelegationInstruction, type ParsedStartGameInstruction, type ParsedStartGameWithTicketInstruction, type PersistResultsInput, type ProcessUndelegationInput, type StartGameAsyncInput, type StartGameWithTicketAsyncInput } from '../instructions';
12
+ export declare const RPS_GAME_PROGRAM_ADDRESS: Address<"8ohu3RobXyZ2DebyJjbs2co9YCG275FUsVckEcmDbCos">;
13
+ export declare enum RpsGameAccount {
14
+ GameSession = 0,
15
+ PlayerProfile = 1
16
+ }
17
+ export declare function identifyRpsGameAccount(account: {
18
+ data: ReadonlyUint8Array;
19
+ } | ReadonlyUint8Array): RpsGameAccount;
20
+ export declare enum RpsGameInstruction {
21
+ ClosePlayer = 0,
22
+ DelegatePda = 1,
23
+ InitializePlayer = 2,
24
+ MakeChoice = 3,
25
+ OnMatchFound = 4,
26
+ PersistResults = 5,
27
+ ProcessUndelegation = 6,
28
+ StartGame = 7,
29
+ StartGameWithTicket = 8
30
+ }
31
+ export declare function identifyRpsGameInstruction(instruction: {
32
+ data: ReadonlyUint8Array;
33
+ } | ReadonlyUint8Array): RpsGameInstruction;
34
+ export type ParsedRpsGameInstruction<TProgram extends string = '8ohu3RobXyZ2DebyJjbs2co9YCG275FUsVckEcmDbCos'> = {
35
+ instructionType: RpsGameInstruction.ClosePlayer;
36
+ } & ParsedClosePlayerInstruction<TProgram> | {
37
+ instructionType: RpsGameInstruction.DelegatePda;
38
+ } & ParsedDelegatePdaInstruction<TProgram> | {
39
+ instructionType: RpsGameInstruction.InitializePlayer;
40
+ } & ParsedInitializePlayerInstruction<TProgram> | {
41
+ instructionType: RpsGameInstruction.MakeChoice;
42
+ } & ParsedMakeChoiceInstruction<TProgram> | {
43
+ instructionType: RpsGameInstruction.OnMatchFound;
44
+ } & ParsedOnMatchFoundInstruction<TProgram> | {
45
+ instructionType: RpsGameInstruction.PersistResults;
46
+ } & ParsedPersistResultsInstruction<TProgram> | {
47
+ instructionType: RpsGameInstruction.ProcessUndelegation;
48
+ } & ParsedProcessUndelegationInstruction<TProgram> | {
49
+ instructionType: RpsGameInstruction.StartGame;
50
+ } & ParsedStartGameInstruction<TProgram> | {
51
+ instructionType: RpsGameInstruction.StartGameWithTicket;
52
+ } & ParsedStartGameWithTicketInstruction<TProgram>;
53
+ export declare function parseRpsGameInstruction<TProgram extends string>(instruction: Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array>): ParsedRpsGameInstruction<TProgram>;
54
+ export type RpsGamePlugin = {
55
+ accounts: RpsGamePluginAccounts;
56
+ instructions: RpsGamePluginInstructions;
57
+ };
58
+ export type RpsGamePluginAccounts = {
59
+ gameSession: ReturnType<typeof getGameSessionCodec> & SelfFetchFunctions<GameSessionArgs, GameSession>;
60
+ playerProfile: ReturnType<typeof getPlayerProfileCodec> & SelfFetchFunctions<PlayerProfileArgs, PlayerProfile>;
61
+ };
62
+ export type RpsGamePluginInstructions = {
63
+ closePlayer: (input: MakeOptional<ClosePlayerAsyncInput, "payer">) => ReturnType<typeof getClosePlayerInstructionAsync> & SelfPlanAndSendFunctions;
64
+ delegatePda: (input: MakeOptional<DelegatePdaAsyncInput, "payer">) => ReturnType<typeof getDelegatePdaInstructionAsync> & SelfPlanAndSendFunctions;
65
+ initializePlayer: (input: MakeOptional<InitializePlayerAsyncInput, "payer">) => ReturnType<typeof getInitializePlayerInstructionAsync> & SelfPlanAndSendFunctions;
66
+ makeChoice: (input: MakeChoiceInput) => ReturnType<typeof getMakeChoiceInstruction> & SelfPlanAndSendFunctions;
67
+ onMatchFound: (input: OnMatchFoundInput) => ReturnType<typeof getOnMatchFoundInstruction> & SelfPlanAndSendFunctions;
68
+ persistResults: (input: MakeOptional<PersistResultsInput, "payer">) => ReturnType<typeof getPersistResultsInstruction> & SelfPlanAndSendFunctions;
69
+ processUndelegation: (input: MakeOptional<ProcessUndelegationInput, "payer">) => ReturnType<typeof getProcessUndelegationInstruction> & SelfPlanAndSendFunctions;
70
+ startGame: (input: StartGameAsyncInput) => ReturnType<typeof getStartGameInstructionAsync> & SelfPlanAndSendFunctions;
71
+ startGameWithTicket: (input: StartGameWithTicketAsyncInput) => ReturnType<typeof getStartGameWithTicketInstructionAsync> & SelfPlanAndSendFunctions;
72
+ };
73
+ export type RpsGamePluginRequirements = ClientWithRpc<GetAccountInfoApi & GetMultipleAccountsApi> & ClientWithPayer & ClientWithTransactionPlanning & ClientWithTransactionSending;
74
+ export declare function rpsGameProgram(): <T extends RpsGamePluginRequirements>(client: T) => T & {
75
+ rpsGame: RpsGamePlugin;
76
+ };
77
+ type MakeOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
78
+ export {};
@@ -0,0 +1,118 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+ import { assertIsInstructionWithAccounts, containsBytes, fixEncoderSize, getBytesEncoder, SOLANA_ERROR__PROGRAM_CLIENTS__FAILED_TO_IDENTIFY_ACCOUNT, SOLANA_ERROR__PROGRAM_CLIENTS__FAILED_TO_IDENTIFY_INSTRUCTION, SOLANA_ERROR__PROGRAM_CLIENTS__UNRECOGNIZED_INSTRUCTION_TYPE, SolanaError } from '@solana/kit';
9
+ import { addSelfFetchFunctions, addSelfPlanAndSendFunctions } from '@solana/program-client-core';
10
+ import { getGameSessionCodec, getPlayerProfileCodec } from '../accounts';
11
+ import { getClosePlayerInstructionAsync, getDelegatePdaInstructionAsync, getInitializePlayerInstructionAsync, getMakeChoiceInstruction, getOnMatchFoundInstruction, getPersistResultsInstruction, getProcessUndelegationInstruction, getStartGameInstructionAsync, getStartGameWithTicketInstructionAsync, parseClosePlayerInstruction, parseDelegatePdaInstruction, parseInitializePlayerInstruction, parseMakeChoiceInstruction, parseOnMatchFoundInstruction, parsePersistResultsInstruction, parseProcessUndelegationInstruction, parseStartGameInstruction, parseStartGameWithTicketInstruction } from '../instructions';
12
+ export const RPS_GAME_PROGRAM_ADDRESS = '8ohu3RobXyZ2DebyJjbs2co9YCG275FUsVckEcmDbCos';
13
+ export var RpsGameAccount;
14
+ (function (RpsGameAccount) {
15
+ RpsGameAccount[RpsGameAccount["GameSession"] = 0] = "GameSession";
16
+ RpsGameAccount[RpsGameAccount["PlayerProfile"] = 1] = "PlayerProfile";
17
+ })(RpsGameAccount || (RpsGameAccount = {}));
18
+ export function identifyRpsGameAccount(account) {
19
+ const data = 'data' in account ? account.data : account;
20
+ if (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([150, 116, 20, 197, 205, 121, 220, 240])), 0)) {
21
+ return RpsGameAccount.GameSession;
22
+ }
23
+ if (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([82, 226, 99, 87, 164, 130, 181, 80])), 0)) {
24
+ return RpsGameAccount.PlayerProfile;
25
+ }
26
+ throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__FAILED_TO_IDENTIFY_ACCOUNT, { accountData: data, programName: "rpsGame" });
27
+ }
28
+ export var RpsGameInstruction;
29
+ (function (RpsGameInstruction) {
30
+ RpsGameInstruction[RpsGameInstruction["ClosePlayer"] = 0] = "ClosePlayer";
31
+ RpsGameInstruction[RpsGameInstruction["DelegatePda"] = 1] = "DelegatePda";
32
+ RpsGameInstruction[RpsGameInstruction["InitializePlayer"] = 2] = "InitializePlayer";
33
+ RpsGameInstruction[RpsGameInstruction["MakeChoice"] = 3] = "MakeChoice";
34
+ RpsGameInstruction[RpsGameInstruction["OnMatchFound"] = 4] = "OnMatchFound";
35
+ RpsGameInstruction[RpsGameInstruction["PersistResults"] = 5] = "PersistResults";
36
+ RpsGameInstruction[RpsGameInstruction["ProcessUndelegation"] = 6] = "ProcessUndelegation";
37
+ RpsGameInstruction[RpsGameInstruction["StartGame"] = 7] = "StartGame";
38
+ RpsGameInstruction[RpsGameInstruction["StartGameWithTicket"] = 8] = "StartGameWithTicket";
39
+ })(RpsGameInstruction || (RpsGameInstruction = {}));
40
+ export function identifyRpsGameInstruction(instruction) {
41
+ const data = 'data' in instruction ? instruction.data : instruction;
42
+ if (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([225, 227, 204, 63, 32, 122, 58, 227])), 0)) {
43
+ return RpsGameInstruction.ClosePlayer;
44
+ }
45
+ if (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([248, 217, 193, 46, 124, 191, 64, 135])), 0)) {
46
+ return RpsGameInstruction.DelegatePda;
47
+ }
48
+ if (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([79, 249, 88, 177, 220, 62, 56, 128])), 0)) {
49
+ return RpsGameInstruction.InitializePlayer;
50
+ }
51
+ if (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([207, 18, 251, 32, 135, 122, 160, 77])), 0)) {
52
+ return RpsGameInstruction.MakeChoice;
53
+ }
54
+ if (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([66, 209, 170, 159, 10, 195, 34, 214])), 0)) {
55
+ return RpsGameInstruction.OnMatchFound;
56
+ }
57
+ if (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([9, 175, 42, 217, 2, 48, 80, 81])), 0)) {
58
+ return RpsGameInstruction.PersistResults;
59
+ }
60
+ if (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([196, 28, 41, 206, 48, 37, 51, 167])), 0)) {
61
+ return RpsGameInstruction.ProcessUndelegation;
62
+ }
63
+ if (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([249, 47, 252, 172, 184, 162, 245, 14])), 0)) {
64
+ return RpsGameInstruction.StartGame;
65
+ }
66
+ if (containsBytes(data, fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([2, 250, 253, 202, 51, 138, 80, 20])), 0)) {
67
+ return RpsGameInstruction.StartGameWithTicket;
68
+ }
69
+ throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__FAILED_TO_IDENTIFY_INSTRUCTION, { instructionData: data, programName: "rpsGame" });
70
+ }
71
+ export function parseRpsGameInstruction(instruction) {
72
+ const instructionType = identifyRpsGameInstruction(instruction);
73
+ switch (instructionType) {
74
+ case RpsGameInstruction.ClosePlayer: {
75
+ assertIsInstructionWithAccounts(instruction);
76
+ return { instructionType: RpsGameInstruction.ClosePlayer, ...parseClosePlayerInstruction(instruction) };
77
+ }
78
+ case RpsGameInstruction.DelegatePda: {
79
+ assertIsInstructionWithAccounts(instruction);
80
+ return { instructionType: RpsGameInstruction.DelegatePda, ...parseDelegatePdaInstruction(instruction) };
81
+ }
82
+ case RpsGameInstruction.InitializePlayer: {
83
+ assertIsInstructionWithAccounts(instruction);
84
+ return { instructionType: RpsGameInstruction.InitializePlayer, ...parseInitializePlayerInstruction(instruction) };
85
+ }
86
+ case RpsGameInstruction.MakeChoice: {
87
+ assertIsInstructionWithAccounts(instruction);
88
+ return { instructionType: RpsGameInstruction.MakeChoice, ...parseMakeChoiceInstruction(instruction) };
89
+ }
90
+ case RpsGameInstruction.OnMatchFound: {
91
+ assertIsInstructionWithAccounts(instruction);
92
+ return { instructionType: RpsGameInstruction.OnMatchFound, ...parseOnMatchFoundInstruction(instruction) };
93
+ }
94
+ case RpsGameInstruction.PersistResults: {
95
+ assertIsInstructionWithAccounts(instruction);
96
+ return { instructionType: RpsGameInstruction.PersistResults, ...parsePersistResultsInstruction(instruction) };
97
+ }
98
+ case RpsGameInstruction.ProcessUndelegation: {
99
+ assertIsInstructionWithAccounts(instruction);
100
+ return { instructionType: RpsGameInstruction.ProcessUndelegation, ...parseProcessUndelegationInstruction(instruction) };
101
+ }
102
+ case RpsGameInstruction.StartGame: {
103
+ assertIsInstructionWithAccounts(instruction);
104
+ return { instructionType: RpsGameInstruction.StartGame, ...parseStartGameInstruction(instruction) };
105
+ }
106
+ case RpsGameInstruction.StartGameWithTicket: {
107
+ assertIsInstructionWithAccounts(instruction);
108
+ return { instructionType: RpsGameInstruction.StartGameWithTicket, ...parseStartGameWithTicketInstruction(instruction) };
109
+ }
110
+ default: throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__UNRECOGNIZED_INSTRUCTION_TYPE, { instructionType: instructionType, programName: "rpsGame" });
111
+ }
112
+ }
113
+ export function rpsGameProgram() {
114
+ return (client) => {
115
+ return { ...client, rpsGame: { accounts: { gameSession: addSelfFetchFunctions(client, getGameSessionCodec()), playerProfile: addSelfFetchFunctions(client, getPlayerProfileCodec()) }, instructions: { closePlayer: input => addSelfPlanAndSendFunctions(client, getClosePlayerInstructionAsync({ ...input, payer: input.payer ?? client.payer.address })), delegatePda: input => addSelfPlanAndSendFunctions(client, getDelegatePdaInstructionAsync({ ...input, payer: input.payer ?? client.payer })), initializePlayer: input => addSelfPlanAndSendFunctions(client, getInitializePlayerInstructionAsync({ ...input, payer: input.payer ?? client.payer })), makeChoice: input => addSelfPlanAndSendFunctions(client, getMakeChoiceInstruction(input)), onMatchFound: input => addSelfPlanAndSendFunctions(client, getOnMatchFoundInstruction(input)), persistResults: input => addSelfPlanAndSendFunctions(client, getPersistResultsInstruction({ ...input, payer: input.payer ?? client.payer })), processUndelegation: input => addSelfPlanAndSendFunctions(client, getProcessUndelegationInstruction({ ...input, payer: input.payer ?? client.payer.address })), startGame: input => addSelfPlanAndSendFunctions(client, getStartGameInstructionAsync(input)), startGameWithTicket: input => addSelfPlanAndSendFunctions(client, getStartGameWithTicketInstructionAsync(input)) } } };
116
+ };
117
+ }
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnBzR2FtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nZW5lcmF0ZWQvcnBzLWdhbWUvcHJvZ3JhbXMvcnBzR2FtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUseURBQXlELEVBQUUsNkRBQTZELEVBQUUsNERBQTRELEVBQUUsV0FBVyxFQUEyUCxNQUFNLGFBQWEsQ0FBQztBQUM1aUIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLDJCQUEyQixFQUEwRCxNQUFNLDZCQUE2QixDQUFDO0FBQ3pKLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBc0YsTUFBTSxhQUFhLENBQUM7QUFDN0osT0FBTyxFQUFFLDhCQUE4QixFQUFFLDhCQUE4QixFQUFFLG1DQUFtQyxFQUFFLHdCQUF3QixFQUFFLDBCQUEwQixFQUFFLDRCQUE0QixFQUFFLGlDQUFpQyxFQUFFLDRCQUE0QixFQUFFLHNDQUFzQyxFQUFFLDJCQUEyQixFQUFFLDJCQUEyQixFQUFFLGdDQUFnQyxFQUFFLDBCQUEwQixFQUFFLDRCQUE0QixFQUFFLDhCQUE4QixFQUFFLG1DQUFtQyxFQUFFLHlCQUF5QixFQUFFLG1DQUFtQyxFQUFpbEIsTUFBTSxpQkFBaUIsQ0FBQztBQUU3cUMsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsOENBQXlHLENBQUM7QUFFbEosTUFBTSxDQUFOLElBQVksY0FBNkM7QUFBekQsV0FBWSxjQUFjO0lBQUcsaUVBQVcsQ0FBQTtJQUFFLHFFQUFhLENBQUE7QUFBQyxDQUFDLEVBQTdDLGNBQWMsS0FBZCxjQUFjLFFBQStCO0FBRXpELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxPQUEwRDtJQUM3RixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDeEQsSUFBSSxhQUFhLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLGNBQWMsQ0FBQyxXQUFXLENBQUM7SUFBQyxDQUFDO0lBQzVLLElBQUksYUFBYSxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQUMsT0FBTyxjQUFjLENBQUMsYUFBYSxDQUFDO0lBQUMsQ0FBQztJQUNuSyxNQUFNLElBQUksV0FBVyxDQUFDLHlEQUF5RCxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztBQUNwSSxDQUFDO0FBRUQsTUFBTSxDQUFOLElBQVksa0JBQWdLO0FBQTVLLFdBQVksa0JBQWtCO0lBQUcseUVBQVcsQ0FBQTtJQUFFLHlFQUFXLENBQUE7SUFBRSxtRkFBZ0IsQ0FBQTtJQUFFLHVFQUFVLENBQUE7SUFBRSwyRUFBWSxDQUFBO0lBQUUsK0VBQWMsQ0FBQTtJQUFFLHlGQUFtQixDQUFBO0lBQUUscUVBQVMsQ0FBQTtJQUFFLHlGQUFtQixDQUFBO0FBQUMsQ0FBQyxFQUFoSyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBQThJO0FBRTVLLE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxXQUE4RDtJQUNyRyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDcEUsSUFBSSxhQUFhLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLGtCQUFrQixDQUFDLFdBQVcsQ0FBQztJQUFDLENBQUM7SUFDOUssSUFBSSxhQUFhLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLGtCQUFrQixDQUFDLFdBQVcsQ0FBQztJQUFDLENBQUM7SUFDM0ssSUFBSSxhQUFhLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDO0lBQUMsQ0FBQztJQUM5SyxJQUFJLGFBQWEsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUFDLE9BQU8sa0JBQWtCLENBQUMsVUFBVSxDQUFDO0lBQUMsQ0FBQztJQUN6SyxJQUFJLGFBQWEsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUFDLE9BQU8sa0JBQWtCLENBQUMsWUFBWSxDQUFDO0lBQUMsQ0FBQztJQUMzSyxJQUFJLGFBQWEsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUFDLE9BQU8sa0JBQWtCLENBQUMsY0FBYyxDQUFDO0lBQUMsQ0FBQztJQUN4SyxJQUFJLGFBQWEsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUs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LE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxDQUFDLEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLEVBQUUsOEJBQThCLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLEVBQUUsOEJBQThCLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsMkJBQTJCLENBQUMsTUFBTSxFQUFFLG1DQUFtQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLEVBQUUsd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLEVBQUUsMEJBQTBCLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLEVBQUUsNEJBQTRCLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsMkJBQTJCLENBQUMsTUFBTSxFQUFFLGlDQUFpQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsMkJBQTJCLENBQUMsTUFBTSxFQUFFLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLEVBQUUsc0NBQXNDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUNoMUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpcyBjb2RlIHdhcyBBVVRPR0VORVJBVEVEIHVzaW5nIHRoZSBDb2RhbWEgbGlicmFyeS5cbiAqIFBsZWFzZSBETyBOT1QgRURJVCBUSElTIEZJTEUsIGluc3RlYWQgdXNlIHZpc2l0b3JzXG4gKiB0byBhZGQgZmVhdHVyZXMsIHRoZW4gcmVydW4gQ29kYW1hIHRvIHVwZGF0ZSBpdC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9jb2RhbWEtaWRsL2NvZGFtYVxuICovXG5cbmltcG9ydCB7IGFzc2VydElzSW5zdHJ1Y3Rpb25XaXRoQWNjb3VudHMsIGNvbnRhaW5zQnl0ZXMsIGZpeEVuY29kZXJTaXplLCBnZXRCeXRlc0VuY29kZXIsIFNPTEFOQV9FUlJPUl9fUFJPR1JBTV9DTElFTlRTX19GQUlMRURfVE9fSURFTlRJRllfQUNDT1VOVCwgU09MQU5BX0VSUk9SX19QUk9HUkFNX0NMSUVOVFNfX0ZBSUxFRF9UT19JREVOVElGWV9JTlNUUlVDVElPTiwgU09MQU5BX0VSUk9SX19QUk9HUkFNX0NMSUVOVFNfX1VOUkVDT0dOSVpFRF9JTlNUUlVDVElPTl9UWVBFLCBTb2xhbmFFcnJvciwgdHlwZSBBZGRyZXNzLCB0eXBlIENsaWVudFdpdGhQYXllciwgdHlwZSBDbGllbnRXaXRoUnBjLCB0eXBlIENsaWVudFdpdGhUcmFuc2FjdGlvblBsYW5uaW5nLCB0eXBlIENsaWVudFdpdGhUcmFuc2FjdGlvblNlbmRpbmcsIHR5cGUgR2V0QWNjb3VudEluZm9BcGksIHR5cGUgR2V0TXVsdGlwbGVBY2NvdW50c0FwaSwgdHlwZSBJbnN0cnVjdGlvbiwgdHlwZSBJbnN0cnVjdGlvbldpdGhEYXRhLCB0eXBlIFJlYWRvbmx5VWludDhBcnJheSB9IGZyb20gJ0Bzb2xhbmEva2l0JztcbmltcG9ydCB7IGFkZFNlbGZGZXRjaEZ1bmN0aW9ucywgYWRkU2VsZlBsYW5BbmRTZW5kRnVuY3Rpb25zLCB0eXBlIFNlbGZGZXRjaEZ1bmN0aW9ucywgdHlwZSBTZWxmUGxhbkFuZFNlbmRGdW5jdGlvbnMgfSBmcm9tICdAc29sYW5hL3Byb2dyYW0tY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgZ2V0R2FtZVNlc3Npb25Db2RlYywgZ2V0UGxheWVyUHJvZmlsZUNvZGVjLCB0eXBlIEdhbWVTZXNzaW9uLCB0eXBlIEdhbWVTZXNzaW9uQXJncywgdHlwZSBQbGF5ZXJQcm9maWxlLCB0eXBlIFBsYXllclByb2ZpbGVBcmdzIH0gZnJvbSAnLi4vYWNjb3VudHMnO1xuaW1wb3J0IHsgZ2V0Q2xvc2VQbGF5ZXJJbnN0cnVjdGlvbkFzeW5jLCBnZXREZWxlZ2F0ZVBkYUluc3RydWN0aW9uQXN5bmMsIGdldEluaXRpYWxpemVQbGF5ZXJJbnN0cnVjdGlvbkFzeW5jLCBnZXRNYWtlQ2hvaWNlSW5zdHJ1Y3Rpb24sIGdldE9uTWF0Y2hGb3VuZEluc3RydWN0aW9uLCBnZXRQZXJzaXN0UmVzdWx0c0luc3RydWN0aW9uLCBnZXRQcm9jZXNzVW5kZWxlZ2F0aW9uSW5zdHJ1Y3Rpb24sIGdldFN0YXJ0R2FtZUluc3RydWN0aW9uQXN5bmMsIGdldFN0YXJ0R2FtZVdpdGhUaWNrZXRJbnN0cnVjdGlvbkFzeW5jLCBwYXJzZUNsb3NlUGxheWVySW5zdHJ1Y3Rpb24sIHBhcnNlRGVsZWdhdGVQZGFJbnN0cnVjdGlvbiwgcGFyc2VJbml0aWFsaXplUGxheWVySW5zdHJ1Y3Rpb24sIHBhcnNlTWFrZUNob2ljZUluc3RydWN0aW9uLCBwYXJzZU9uTWF0Y2hGb3VuZEluc3RydWN0aW9uLCBwYXJzZVBlcnNpc3RSZXN1bHRzSW5zdHJ1Y3Rpb24sIHBhcnNlUHJvY2Vzc1VuZGVsZWdhdGlvbkluc3RydWN0aW9uLCBwYXJzZVN0YXJ0R2FtZUluc3RydWN0aW9uLCBwYXJzZVN0YXJ0R2FtZVdpdGhUaWNrZXRJbnN0cnVjdGlvbiwgdHlwZSBDbG9zZVBsYXllckFzeW5jSW5wdXQsIHR5cGUgRGVsZWdhdGVQZGFBc3luY0lucHV0LCB0eXBlIEluaXRpYWxpemVQbGF5ZXJBc3luY0lucHV0LCB0eXBlIE1ha2VDaG9pY2VJbnB1dCwgdHlwZSBPbk1hdGNoRm91bmRJbnB1dCwgdHlwZSBQYXJzZWRDbG9zZVBsYXllckluc3RydWN0aW9uLCB0eXBlIFBhcnNlZERlbGVnYXRlUGRhSW5zdHJ1Y3Rpb24sIHR5cGUgUGFyc2VkSW5pdGlhbGl6ZVBsYXllckluc3RydWN0aW9uLCB0eXBlIFBhcnNlZE1ha2VDaG9pY2VJbnN0cnVjdGlvbiwgdHlwZSBQYXJzZWRPbk1hdGNoRm91bmRJbnN0cnVjdGlvbiwgdHlwZSBQYXJzZWRQZXJzaXN0UmVzdWx0c0luc3RydWN0aW9uLCB0eXBlIFBhcnNlZFByb2Nlc3NVbmRlbGVnYXRpb25JbnN0cnVjdGlvbiwgdHlwZSBQYXJzZWRTdGFydEdhbWVJbnN0cnVjdGlvbiwgdHlwZSBQYXJzZWRTdGFydEdhbWVXaXRoVGlja2V0SW5zdHJ1Y3Rpb24sIHR5cGUgUGVyc2lzdFJlc3VsdHNJbnB1dCwgdHlwZSBQcm9jZXNzVW5kZWxlZ2F0aW9uSW5wdXQsIHR5cGUgU3RhcnRHYW1lQXN5bmNJbnB1dCwgdHlwZSBTdGFydEdhbWVXaXRoVGlja2V0QXN5bmNJbnB1dCB9IGZyb20gJy4uL2luc3RydWN0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBSUFNfR0FNRV9QUk9HUkFNX0FERFJFU1MgPSAnOG9odTNSb2JYeVoyRGVieUpqYnMyY285WUNHMjc1RlVzVmNrRWNtRGJDb3MnIGFzIEFkZHJlc3M8JzhvaHUzUm9iWHlaMkRlYnlKamJzMmNvOVlDRzI3NUZVc1Zja0VjbURiQ29zJz47XG5cbmV4cG9ydCBlbnVtIFJwc0dhbWVBY2NvdW50IHsgR2FtZVNlc3Npb24sIFBsYXllclByb2ZpbGUgfVxuXG5leHBvcnQgZnVuY3Rpb24gaWRlbnRpZnlScHNHYW1lQWNjb3VudChhY2NvdW50OiB7IGRhdGE6IFJlYWRvbmx5VWludDhBcnJheSB9IHwgUmVhZG9ubHlVaW50OEFycmF5KTogUnBzR2FtZUFjY291bnQge1xuICAgIGNvbnN0IGRhdGEgPSAnZGF0YScgaW4gYWNjb3VudCA/IGFjY291bnQuZGF0YSA6IGFjY291bnQ7XG4gICAgaWYgKGNvbnRhaW5zQnl0ZXMoZGF0YSwgZml4RW5jb2RlclNpemUoZ2V0Qnl0ZXNFbmNvZGVyKCksIDgpLmVuY29kZShuZXcgVWludDhBcnJheShbMTUwLCAxMTYsIDIwLCAxOTcsIDIwNSwgMTIxLCAyMjAsIDI0MF0pKSwgMCkpIHsgcmV0dXJuIFJwc0dhbWVBY2NvdW50LkdhbWVTZXNzaW9uOyB9XG5pZiAoY29udGFpbnNCeXRlcyhkYXRhLCBmaXhFbmNvZGVyU2l6ZShnZXRCeXRlc0VuY29kZXIoKSwgOCkuZW5jb2RlKG5ldyBVaW50OEFycmF5KFs4MiwgMjI2LCA5OSwgODcsIDE2NCwgMTMwLCAxODEsIDgwXSkpLCAwKSkgeyByZXR1cm4gUnBzR2FtZUFjY291bnQuUGxheWVyUHJvZmlsZTsgfVxuICAgIHRocm93IG5ldyBTb2xhbmFFcnJvcihTT0xBTkFfRVJST1JfX1BST0dSQU1fQ0xJRU5UU19fRkFJTEVEX1RPX0lERU5USUZZX0FDQ09VTlQsIHsgYWNjb3VudERhdGE6IGRhdGEsIHByb2dyYW1OYW1lOiBcInJwc0dhbWVcIiB9KTtcbn1cblxuZXhwb3J0IGVudW0gUnBzR2FtZUluc3RydWN0aW9uIHsgQ2xvc2VQbGF5ZXIsIERlbGVnYXRlUGRhLCBJbml0aWFsaXplUGxheWVyLCBNYWtlQ2hvaWNlLCBPbk1hdGNoRm91bmQsIFBlcnNpc3RSZXN1bHRzLCBQcm9jZXNzVW5kZWxlZ2F0aW9uLCBTdGFydEdhbWUsIFN0YXJ0R2FtZVdpdGhUaWNrZXQgfVxuXG5leHBvcnQgZnVuY3Rpb24gaWRlbnRpZnlScHNHYW1lSW5zdHJ1Y3Rpb24oaW5zdHJ1Y3Rpb246IHsgZGF0YTogUmVhZG9ubHlVaW50OEFycmF5IH0gfCBSZWFkb25seVVpbnQ4QXJyYXkpOiBScHNHYW1lSW5zdHJ1Y3Rpb24ge1xuICAgIGNvbnN0IGRhdGEgPSAnZGF0YScgaW4gaW5zdHJ1Y3Rpb24gPyBpbnN0cnVjdGlvbi5kYXRhIDogaW5zdHJ1Y3Rpb247XG4gICAgaWYgKGNvbnRhaW5zQnl0ZXMoZGF0YSwgZml4RW5jb2RlclNpemUoZ2V0Qnl0ZXNFbmNvZGVyKCksIDgpLmVuY29kZShuZXcgVWludDhBcnJheShbMjI1LCAyMjcsIDIwNCwgNjMsIDMyLCAxMjIsIDU4LCAyMjddKSksIDApKSB7IHJldHVybiBScHNHYW1lSW5zdHJ1Y3Rpb24uQ2xvc2VQbGF5ZXI7IH1cbmlmIChjb250YWluc0J5dGVzKGRhdGEsIGZpeEVuY29kZXJTaXplKGdldEJ5dGVzRW5jb2RlcigpLCA4KS5lbmNvZGUobmV3IFVpbnQ4QXJyYXkoWzI0OCwgMjE3LCAxOTMsIDQ2LCAxMjQsIDE5MSwgNjQsIDEzNV0pKSwgMCkpIHsgcmV0dXJuIFJwc0dhbWVJbnN0cnVjdGlvbi5EZWxlZ2F0ZVBkYTsgfVxuaWYgKGNvbnRhaW5zQnl0ZXMoZGF0YSwgZml4RW5jb2RlclNpemUoZ2V0Qnl0ZXNFbmNvZGVyKCksIDgpLmVuY29kZShuZXcgVWludDhBcnJheShbNzksIDI0OSwgODgsIDE3NywgMjIwLCA2MiwgNTYsIDEyOF0pKSwgMCkpIHsgcmV0dXJuIFJwc0dhbWVJbnN0cnVjdGlvbi5Jbml0aWFsaXplUGxheWVyOyB9XG5pZiAoY29udGFpbnNCeXRlcyhkYXRhLCBmaXhFbmNvZGVyU2l6ZShnZXRCeXRlc0VuY29kZXIoKSwgOCkuZW5jb2RlKG5ldyBVaW50OEFycmF5KFsyMDcsIDE4LCAyNTEsIDMyLCAxMzUsIDEyMiwgMTYwLCA3N10pKSwgMCkpIHsgcmV0dXJuIFJwc0dhbWVJbnN0cnVjdGlvbi5NYWtlQ2hvaWNlOyB9XG5pZiAoY29udGFpbnNCeXRlcyhkYXRhLCBmaXhFbmNvZGVyU2l6ZShnZXRCeXRlc0VuY29kZXIoKSwgOCkuZW5jb2RlKG5ldyBVaW50OEFycmF5KFs2NiwgMjA5LCAxNzAsIDE1OSwgMTAsIDE5NSwgMzQsIDIxNF0pKSwgMCkpIHsgcmV0dXJuIFJwc0dhbWVJbnN0cnVjdGlvbi5Pbk1hdGNoRm91bmQ7IH1cbmlmIChjb250YWluc0J5dGVzKGRhdGEsIGZpeEVuY29kZXJTaXplKGdldEJ5dGVzRW5jb2RlcigpLCA4KS5lbmNvZGUobmV3IFVpbnQ4QXJyYXkoWzksIDE3NSwgNDIsIDIxNywgMiwgNDgsIDgwLCA4MV0pKSwgMCkpIHsgcmV0dXJuIFJwc0dhbWVJbnN0cnVjdGlvbi5QZXJzaXN0UmVzdWx0czsgfVxuaWYgKGNvbnRhaW5zQnl0ZXMoZGF0YSwgZml4RW5jb2RlclNpemUoZ2V0Qnl0ZXNFbmNvZGVyKCksIDgpLmVuY29kZShuZXcgVWludDhBcnJheShbMTk2LCAyOCwgNDEsIDIwNiwgNDgsIDM3LCA1MSwgMTY3XSkpLCAwKSkgeyByZXR1cm4gUnBzR2FtZUluc3RydWN0aW9uLlByb2Nlc3NVbmRlbGVnYXRpb247IH1cbmlmIChjb250YWluc0J5dGVzKGRhdGEsIGZpeEVuY29kZXJTaXplKGdldEJ5dGVzRW5jb2RlcigpLCA4KS5lbmNvZGUobmV3IFVpbnQ4QXJyYXkoWzI0OSwgNDcsIDI1MiwgMTcyLCAxODQsIDE2MiwgMjQ1LCAxNF0pKSwgMCkpIHsgcmV0dXJuIFJwc0dhbWVJbnN0cnVjdGlvbi5TdGFydEdhbWU7IH1cbmlmIChjb250YWluc0J5dGVzKGRhdGEsIGZpeEVuY29kZXJTaXplKGdldEJ5dGVzRW5jb2RlcigpLCA4KS5lbmNvZGUobmV3IFVpbnQ4QXJyYXkoWzIsIDI1MCwgMjUzLCAyMDIsIDUxLCAxMzgsIDgwLCAyMF0pKSwgMCkpIHsgcmV0dXJuIFJwc0dhbWVJbnN0cnVjdGlvbi5TdGFydEdhbWVXaXRoVGlja2V0OyB9XG4gICAgdGhyb3cgbmV3IFNvbGFuYUVycm9yKFNPTEFOQV9FUlJPUl9fUFJPR1JBTV9DTElFTlRTX19GQUlMRURfVE9fSURFTlRJRllfSU5TVFJVQ1RJT04sIHsgaW5zdHJ1Y3Rpb25EYXRhOiBkYXRhLCBwcm9ncmFtTmFtZTogXCJycHNHYW1lXCIgfSk7XG59XG5cbmV4cG9ydCB0eXBlIFBhcnNlZFJwc0dhbWVJbnN0cnVjdGlvbjxUUHJvZ3JhbSBleHRlbmRzIHN0cmluZyA9ICc4b2h1M1JvYlh5WjJEZWJ5SmpiczJjbzlZQ0cyNzVGVXNWY2tFY21EYkNvcyc+ID1cbnwgeyBpbnN0cnVjdGlvblR5cGU6IFJwc0dhbWVJbnN0cnVjdGlvbi5DbG9zZVBsYXllciB9ICYgUGFyc2VkQ2xvc2VQbGF5ZXJJbnN0cnVjdGlvbjxUUHJvZ3JhbT5cbnwgeyBpbnN0cnVjdGlvblR5cGU6IFJwc0dhbWVJbnN0cnVjdGlvbi5EZWxlZ2F0ZVBkYSB9ICYgUGFyc2VkRGVsZWdhdGVQZGFJbnN0cnVjdGlvbjxUUHJvZ3JhbT5cbnwgeyBpbnN0cnVjdGlvblR5cGU6IFJwc0dhbWVJbnN0cnVjdGlvbi5Jbml0aWFsaXplUGxheWVyIH0gJiBQYXJzZWRJbml0aWFsaXplUGxheWVySW5zdHJ1Y3Rpb248VFByb2dyYW0+XG58IHsgaW5zdHJ1Y3Rpb25UeXBlOiBScHNHYW1lSW5zdHJ1Y3Rpb24uTWFrZUNob2ljZSB9ICYgUGFyc2VkTWFrZUNob2ljZUluc3RydWN0aW9uPFRQcm9ncmFtPlxufCB7IGluc3RydWN0aW9uVHlwZTogUnBzR2FtZUluc3RydWN0aW9uLk9uTWF0Y2hGb3VuZCB9ICYgUGFyc2VkT25NYXRjaEZvdW5kSW5zdHJ1Y3Rpb248VFByb2dyYW0+XG58IHsgaW5zdHJ1Y3Rpb25UeXBlOiBScHNHYW1lSW5zdHJ1Y3Rpb24uUGVyc2lzdFJlc3VsdHMgfSAmIFBhcnNlZFBlcnNpc3RSZXN1bHRzSW5zdHJ1Y3Rpb248VFByb2dyYW0+XG58IHsgaW5zdHJ1Y3Rpb25UeXBlOiBScHNHYW1lSW5zdHJ1Y3Rpb24uUHJvY2Vzc1VuZGVsZWdhdGlvbiB9ICYgUGFyc2VkUHJvY2Vzc1VuZGVsZWdhdGlvbkluc3RydWN0aW9uPFRQcm9ncmFtPlxufCB7IGluc3RydWN0aW9uVHlwZTogUnBzR2FtZUluc3RydWN0aW9uLlN0YXJ0R2FtZSB9ICYgUGFyc2VkU3RhcnRHYW1lSW5zdHJ1Y3Rpb248VFByb2dyYW0+XG58IHsgaW5zdHJ1Y3Rpb25UeXBlOiBScHNHYW1lSW5zdHJ1Y3Rpb24uU3RhcnRHYW1lV2l0aFRpY2tldCB9ICYgUGFyc2VkU3RhcnRHYW1lV2l0aFRpY2tldEluc3RydWN0aW9uPFRQcm9ncmFtPlxuXG5cbiAgICAgICAgZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUnBzR2FtZUluc3RydWN0aW9uPFRQcm9ncmFtIGV4dGVuZHMgc3RyaW5nPihcbiAgICAgICAgICAgIGluc3RydWN0aW9uOiBJbnN0cnVjdGlvbjxUUHJvZ3JhbT4gXG4gICAgICAgICAgICAgICAgJiBJbnN0cnVjdGlvbldpdGhEYXRhPFJlYWRvbmx5VWludDhBcnJheT5cbiAgICAgICAgKTogUGFyc2VkUnBzR2FtZUluc3RydWN0aW9uPFRQcm9ncmFtPiB7XG4gICAgICAgICAgICBjb25zdCBpbnN0cnVjdGlvblR5cGUgPSBpZGVudGlmeVJwc0dhbWVJbnN0cnVjdGlvbihpbnN0cnVjdGlvbik7XG4gICAgICAgICAgICBzd2l0Y2ggKGluc3RydWN0aW9uVHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgUnBzR2FtZUluc3RydWN0aW9uLkNsb3NlUGxheWVyOiB7IGFzc2VydElzSW5zdHJ1Y3Rpb25XaXRoQWNjb3VudHMoaW5zdHJ1Y3Rpb24pO1xucmV0dXJuIHsgaW5zdHJ1Y3Rpb25UeXBlOiBScHNHYW1lSW5zdHJ1Y3Rpb24uQ2xvc2VQbGF5ZXIsIC4uLnBhcnNlQ2xvc2VQbGF5ZXJJbnN0cnVjdGlvbihpbnN0cnVjdGlvbikgfTsgfVxuY2FzZSBScHNHYW1lSW5zdHJ1Y3Rpb24uRGVsZWdhdGVQZGE6IHsgYXNzZXJ0SXNJbnN0cnVjdGlvbldpdGhBY2NvdW50cyhpbnN0cnVjdGlvbik7XG5yZXR1cm4geyBpbnN0cnVjdGlvblR5cGU6IFJwc0dhbWVJbnN0cnVjdGlvbi5EZWxlZ2F0ZVBkYSwgLi4ucGFyc2VEZWxlZ2F0ZVBkYUluc3RydWN0aW9uKGluc3RydWN0aW9uKSB9OyB9XG5jYXNlIFJwc0dhbWVJbnN0cnVjdGlvbi5Jbml0aWFsaXplUGxheWVyOiB7IGFzc2VydElzSW5zdHJ1Y3Rpb25XaXRoQWNjb3VudHMoaW5zdHJ1Y3Rpb24pO1xucmV0dXJuIHsgaW5zdHJ1Y3Rpb25UeXBlOiBScHNHYW1lSW5zdHJ1Y3Rpb24uSW5pdGlhbGl6ZVBsYXllciwgLi4ucGFyc2VJbml0aWFsaXplUGxheWVySW5zdHJ1Y3Rpb24oaW5zdHJ1Y3Rpb24pIH07IH1cbmNhc2UgUnBzR2FtZUluc3RydWN0aW9uLk1ha2VDaG9pY2U6IHsgYXNzZXJ0SXNJbnN0cnVjdGlvbldpdGhBY2NvdW50cyhpbnN0cnVjdGlvbik7XG5yZXR1cm4geyBpbnN0cnVjdGlvblR5cGU6IFJwc0dhbWVJbnN0cnVjdGlvbi5NYWtlQ2hvaWNlLCAuLi5wYXJzZU1ha2VDaG9pY2VJbnN0cnVjdGlvbihpbnN0cnVjdGlvbikgfTsgfVxuY2FzZSBScHNHYW1lSW5zdHJ1Y3Rpb24uT25NYXRjaEZvdW5kOiB7IGFzc2VydElzSW5zdHJ1Y3Rpb25XaXRoQWNjb3VudHMoaW5zdHJ1Y3Rpb24pO1xucmV0dXJuIHsgaW5zdHJ1Y3Rpb25UeXBlOiBScHNHYW1lSW5zdHJ1Y3Rpb24uT25NYXRjaEZvdW5kLCAuLi5wYXJzZU9uTWF0Y2hGb3VuZEluc3RydWN0aW9uKGluc3RydWN0aW9uKSB9OyB9XG5jYXNlIFJwc0dhbWVJbnN0cnVjdGlvbi5QZXJzaXN0UmVzdWx0czogeyBhc3NlcnRJc0luc3RydWN0aW9uV2l0aEFjY291bnRzKGluc3RydWN0aW9uKTtcbnJldHVybiB7IGluc3RydWN0aW9uVHlwZTogUnBzR2FtZUluc3RydWN0aW9uLlBlcnNpc3RSZXN1bHRzLCAuLi5wYXJzZVBlcnNpc3RSZXN1bHRzSW5zdHJ1Y3Rpb24oaW5zdHJ1Y3Rpb24pIH07IH1cbmNhc2UgUnBzR2FtZUluc3RydWN0aW9uLlByb2Nlc3NVbmRlbGVnYXRpb246IHsgYXNzZXJ0SXNJbnN0cnVjdGlvbldpdGhBY2NvdW50cyhpbnN0cnVjdGlvbik7XG5yZXR1cm4geyBpbnN0cnVjdGlvblR5cGU6IFJwc0dhbWVJbnN0cnVjdGlvbi5Qcm9jZXNzVW5kZWxlZ2F0aW9uLCAuLi5wYXJzZVByb2Nlc3NVbmRlbGVnYXRpb25JbnN0cnVjdGlvbihpbnN0cnVjdGlvbikgfTsgfVxuY2FzZSBScHNHYW1lSW5zdHJ1Y3Rpb24uU3RhcnRHYW1lOiB7IGFzc2VydElzSW5zdHJ1Y3Rpb25XaXRoQWNjb3VudHMoaW5zdHJ1Y3Rpb24pO1xucmV0dXJuIHsgaW5zdHJ1Y3Rpb25UeXBlOiBScHNHYW1lSW5zdHJ1Y3Rpb24uU3RhcnRHYW1lLCAuLi5wYXJzZVN0YXJ0R2FtZUluc3RydWN0aW9uKGluc3RydWN0aW9uKSB9OyB9XG5jYXNlIFJwc0dhbWVJbnN0cnVjdGlvbi5TdGFydEdhbWVXaXRoVGlja2V0OiB7IGFzc2VydElzSW5zdHJ1Y3Rpb25XaXRoQWNjb3VudHMoaW5zdHJ1Y3Rpb24pO1xucmV0dXJuIHsgaW5zdHJ1Y3Rpb25UeXBlOiBScHNHYW1lSW5zdHJ1Y3Rpb24uU3RhcnRHYW1lV2l0aFRpY2tldCwgLi4ucGFyc2VTdGFydEdhbWVXaXRoVGlja2V0SW5zdHJ1Y3Rpb24oaW5zdHJ1Y3Rpb24pIH07IH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB0aHJvdyBuZXcgU29sYW5hRXJyb3IoU09MQU5BX0VSUk9SX19QUk9HUkFNX0NMSUVOVFNfX1VOUkVDT0dOSVpFRF9JTlNUUlVDVElPTl9UWVBFLCB7IGluc3RydWN0aW9uVHlwZTogaW5zdHJ1Y3Rpb25UeXBlIGFzIHN0cmluZywgcHJvZ3JhbU5hbWU6IFwicnBzR2FtZVwiIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbmV4cG9ydCB0eXBlIFJwc0dhbWVQbHVnaW4gPSB7IGFjY291bnRzOiBScHNHYW1lUGx1Z2luQWNjb3VudHM7IGluc3RydWN0aW9uczogUnBzR2FtZVBsdWdpbkluc3RydWN0aW9uczsgfVxuXG5leHBvcnQgdHlwZSBScHNHYW1lUGx1Z2luQWNjb3VudHMgPSB7IGdhbWVTZXNzaW9uOiBSZXR1cm5UeXBlPHR5cGVvZiBnZXRHYW1lU2Vzc2lvbkNvZGVjPiAmIFNlbGZGZXRjaEZ1bmN0aW9uczxHYW1lU2Vzc2lvbkFyZ3MsIEdhbWVTZXNzaW9uPjsgcGxheWVyUHJvZmlsZTogUmV0dXJuVHlwZTx0eXBlb2YgZ2V0UGxheWVyUHJvZmlsZUNvZGVjPiAmIFNlbGZGZXRjaEZ1bmN0aW9uczxQbGF5ZXJQcm9maWxlQXJncywgUGxheWVyUHJvZmlsZT47IH1cblxuZXhwb3J0IHR5cGUgUnBzR2FtZVBsdWdpbkluc3RydWN0aW9ucyA9IHsgY2xvc2VQbGF5ZXI6IChpbnB1dDogTWFrZU9wdGlvbmFsPENsb3NlUGxheWVyQXN5bmNJbnB1dCwgXCJwYXllclwiPikgPT4gUmV0dXJuVHlwZTx0eXBlb2YgZ2V0Q2xvc2VQbGF5ZXJJbnN0cnVjdGlvbkFzeW5jPiAmIFNlbGZQbGFuQW5kU2VuZEZ1bmN0aW9uczsgZGVsZWdhdGVQZGE6IChpbnB1dDogTWFrZU9wdGlvbmFsPERlbGVnYXRlUGRhQXN5bmNJbnB1dCwgXCJwYXllclwiPikgPT4gUmV0dXJuVHlwZTx0eXBlb2YgZ2V0RGVsZWdhdGVQZGFJbnN0cnVjdGlvbkFzeW5jPiAmIFNlbGZQbGFuQW5kU2VuZEZ1bmN0aW9uczsgaW5pdGlhbGl6ZVBsYXllcjogKGlucHV0OiBNYWtlT3B0aW9uYWw8SW5pdGlhbGl6ZVBsYXllckFzeW5jSW5wdXQsIFwicGF5ZXJcIj4pID0+IFJldHVyblR5cGU8dHlwZW9mIGdldEluaXRpYWxpemVQbGF5ZXJJbnN0cnVjdGlvbkFzeW5jPiAmIFNlbGZQbGFuQW5kU2VuZEZ1bmN0aW9uczsgbWFrZUNob2ljZTogKGlucHV0OiBNYWtlQ2hvaWNlSW5wdXQpID0+IFJldHVyblR5cGU8dHlwZW9mIGdldE1ha2VDaG9pY2VJbnN0cnVjdGlvbj4gJiBTZWxmUGxhbkFuZFNlbmRGdW5jdGlvbnM7IG9uTWF0Y2hGb3VuZDogKGlucHV0OiBPbk1hdGNoRm91bmRJbnB1dCkgPT4gUmV0dXJuVHlwZTx0eXBlb2YgZ2V0T25NYXRjaEZvdW5kSW5zdHJ1Y3Rpb24+ICYgU2VsZlBsYW5BbmRTZW5kRnVuY3Rpb25zOyBwZXJzaXN0UmVzdWx0czogKGlucHV0OiBNYWtlT3B0aW9uYWw8UGVyc2lzdFJlc3VsdHNJbnB1dCwgXCJwYXllclwiPikgPT4gUmV0dXJuVHlwZTx0eXBlb2YgZ2V0UGVyc2lzdFJlc3VsdHNJbnN0cnVjdGlvbj4gJiBTZWxmUGxhbkFuZFNlbmRGdW5jdGlvbnM7IHByb2Nlc3NVbmRlbGVnYXRpb246IChpbnB1dDogTWFrZU9wdGlvbmFsPFByb2Nlc3NVbmRlbGVnYXRpb25JbnB1dCwgXCJwYXllclwiPikgPT4gUmV0dXJuVHlwZTx0eXBlb2YgZ2V0UHJvY2Vzc1VuZGVsZWdhdGlvbkluc3RydWN0aW9uPiAmIFNlbGZQbGFuQW5kU2VuZEZ1bmN0aW9uczsgc3RhcnRHYW1lOiAoaW5wdXQ6IFN0YXJ0R2FtZUFzeW5jSW5wdXQpID0+IFJldHVyblR5cGU8dHlwZW9mIGdldFN0YXJ0R2FtZUluc3RydWN0aW9uQXN5bmM+ICYgU2VsZlBsYW5BbmRTZW5kRnVuY3Rpb25zOyBzdGFydEdhbWVXaXRoVGlja2V0OiAoaW5wdXQ6IFN0YXJ0R2FtZVdpdGhUaWNrZXRBc3luY0lucHV0KSA9PiBSZXR1cm5UeXBlPHR5cGVvZiBnZXRTdGFydEdhbWVXaXRoVGlja2V0SW5zdHJ1Y3Rpb25Bc3luYz4gJiBTZWxmUGxhbkFuZFNlbmRGdW5jdGlvbnM7IH1cblxuZXhwb3J0IHR5cGUgUnBzR2FtZVBsdWdpblJlcXVpcmVtZW50cyA9IENsaWVudFdpdGhScGM8R2V0QWNjb3VudEluZm9BcGkgJiBHZXRNdWx0aXBsZUFjY291bnRzQXBpPiAmIENsaWVudFdpdGhQYXllciAmIENsaWVudFdpdGhUcmFuc2FjdGlvblBsYW5uaW5nICYgQ2xpZW50V2l0aFRyYW5zYWN0aW9uU2VuZGluZ1xuXG5leHBvcnQgZnVuY3Rpb24gcnBzR2FtZVByb2dyYW0oKSB7XG4gICAgcmV0dXJuIDxUIGV4dGVuZHMgUnBzR2FtZVBsdWdpblJlcXVpcmVtZW50cz4oY2xpZW50OiBUKSA9PiB7XG4gICAgICAgIHJldHVybiB7IC4uLmNsaWVudCwgcnBzR2FtZTogPFJwc0dhbWVQbHVnaW4+eyBhY2NvdW50czogeyBnYW1lU2Vzc2lvbjogYWRkU2VsZkZldGNoRnVuY3Rpb25zKGNsaWVudCwgZ2V0R2FtZVNlc3Npb25Db2RlYygpKSwgcGxheWVyUHJvZmlsZTogYWRkU2VsZkZldGNoRnVuY3Rpb25zKGNsaWVudCwgZ2V0UGxheWVyUHJvZmlsZUNvZGVjKCkpIH0sIGluc3RydWN0aW9uczogeyBjbG9zZVBsYXllcjogaW5wdXQgPT4gYWRkU2VsZlBsYW5BbmRTZW5kRnVuY3Rpb25zKGNsaWVudCwgZ2V0Q2xvc2VQbGF5ZXJJbnN0cnVjdGlvbkFzeW5jKHsgLi4uaW5wdXQsIHBheWVyOiBpbnB1dC5wYXllciA/PyBjbGllbnQucGF5ZXIuYWRkcmVzcyB9KSksIGRlbGVnYXRlUGRhOiBpbnB1dCA9PiBhZGRTZWxmUGxhbkFuZFNlbmRGdW5jdGlvbnMoY2xpZW50LCBnZXREZWxlZ2F0ZVBkYUluc3RydWN0aW9uQXN5bmMoeyAuLi5pbnB1dCwgcGF5ZXI6IGlucHV0LnBheWVyID8/IGNsaWVudC5wYXllciB9KSksIGluaXRpYWxpemVQbGF5ZXI6IGlucHV0ID0+IGFkZFNlbGZQbGFuQW5kU2VuZEZ1bmN0aW9ucyhjbGllbnQsIGdldEluaXRpYWxpemVQbGF5ZXJJbnN0cnVjdGlvbkFzeW5jKHsgLi4uaW5wdXQsIHBheWVyOiBpbnB1dC5wYXllciA/PyBjbGllbnQucGF5ZXIgfSkpLCBtYWtlQ2hvaWNlOiBpbnB1dCA9PiBhZGRTZWxmUGxhbkFuZFNlbmRGdW5jdGlvbnMoY2xpZW50LCBnZXRNYWtlQ2hvaWNlSW5zdHJ1Y3Rpb24oaW5wdXQpKSwgb25NYXRjaEZvdW5kOiBpbnB1dCA9PiBhZGRTZWxmUGxhbkFuZFNlbmRGdW5jdGlvbnMoY2xpZW50LCBnZXRPbk1hdGNoRm91bmRJbnN0cnVjdGlvbihpbnB1dCkpLCBwZXJzaXN0UmVzdWx0czogaW5wdXQgPT4gYWRkU2VsZlBsYW5BbmRTZW5kRnVuY3Rpb25zKGNsaWVudCwgZ2V0UGVyc2lzdFJlc3VsdHNJbnN0cnVjdGlvbih7IC4uLmlucHV0LCBwYXllcjogaW5wdXQucGF5ZXIgPz8gY2xpZW50LnBheWVyIH0pKSwgcHJvY2Vzc1VuZGVsZWdhdGlvbjogaW5wdXQgPT4gYWRkU2VsZlBsYW5BbmRTZW5kRnVuY3Rpb25zKGNsaWVudCwgZ2V0UHJvY2Vzc1VuZGVsZWdhdGlvbkluc3RydWN0aW9uKHsgLi4uaW5wdXQsIHBheWVyOiBpbnB1dC5wYXllciA/PyBjbGllbnQucGF5ZXIuYWRkcmVzcyB9KSksIHN0YXJ0R2FtZTogaW5wdXQgPT4gYWRkU2VsZlBsYW5BbmRTZW5kRnVuY3Rpb25zKGNsaWVudCwgZ2V0U3RhcnRHYW1lSW5zdHJ1Y3Rpb25Bc3luYyhpbnB1dCkpLCBzdGFydEdhbWVXaXRoVGlja2V0OiBpbnB1dCA9PiBhZGRTZWxmUGxhbkFuZFNlbmRGdW5jdGlvbnMoY2xpZW50LCBnZXRTdGFydEdhbWVXaXRoVGlja2V0SW5zdHJ1Y3Rpb25Bc3luYyhpbnB1dCkpIH0gfSB9O1xuICAgIH07XG59XG5cbnR5cGUgTWFrZU9wdGlvbmFsPFQsIEsgZXh0ZW5kcyBrZXlvZiBUPiA9IE9taXQ8VCwgSz4gJiBQYXJ0aWFsPFBpY2s8VCwgSz4+OyJdfQ==
@@ -0,0 +1,34 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+ import { type Address, type Codec, type Decoder, type Encoder, type GetDiscriminatedUnionVariant, type GetDiscriminatedUnionVariantContent } from '@solana/kit';
9
+ export type AccountType = {
10
+ __kind: "PlayerProfile";
11
+ player: Address;
12
+ } | {
13
+ __kind: "GameSession";
14
+ p1: Address;
15
+ p2: Address;
16
+ id: bigint;
17
+ };
18
+ export type AccountTypeArgs = {
19
+ __kind: "PlayerProfile";
20
+ player: Address;
21
+ } | {
22
+ __kind: "GameSession";
23
+ p1: Address;
24
+ p2: Address;
25
+ id: number | bigint;
26
+ };
27
+ export declare function getAccountTypeEncoder(): Encoder<AccountTypeArgs>;
28
+ export declare function getAccountTypeDecoder(): Decoder<AccountType>;
29
+ export declare function getAccountTypeCodec(): Codec<AccountTypeArgs, AccountType>;
30
+ export declare function accountType(kind: 'PlayerProfile', data: GetDiscriminatedUnionVariantContent<AccountTypeArgs, '__kind', 'PlayerProfile'>): GetDiscriminatedUnionVariant<AccountTypeArgs, '__kind', 'PlayerProfile'>;
31
+ export declare function accountType(kind: 'GameSession', data: GetDiscriminatedUnionVariantContent<AccountTypeArgs, '__kind', 'GameSession'>): GetDiscriminatedUnionVariant<AccountTypeArgs, '__kind', 'GameSession'>;
32
+ export declare function isAccountType<K extends AccountType['__kind']>(kind: K, value: AccountType): value is AccountType & {
33
+ __kind: K;
34
+ };
@@ -0,0 +1,25 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+ import { combineCodec, getAddressDecoder, getAddressEncoder, getDiscriminatedUnionDecoder, getDiscriminatedUnionEncoder, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder } from '@solana/kit';
9
+ export function getAccountTypeEncoder() {
10
+ return getDiscriminatedUnionEncoder([['PlayerProfile', getStructEncoder([['player', getAddressEncoder()]])], ['GameSession', getStructEncoder([['p1', getAddressEncoder()], ['p2', getAddressEncoder()], ['id', getU64Encoder()]])]]);
11
+ }
12
+ export function getAccountTypeDecoder() {
13
+ return getDiscriminatedUnionDecoder([['PlayerProfile', getStructDecoder([['player', getAddressDecoder()]])], ['GameSession', getStructDecoder([['p1', getAddressDecoder()], ['p2', getAddressDecoder()], ['id', getU64Decoder()]])]]);
14
+ }
15
+ export function getAccountTypeCodec() {
16
+ return combineCodec(getAccountTypeEncoder(), getAccountTypeDecoder());
17
+ }
18
+ export function accountType(kind, data) {
19
+ return Array.isArray(data) ? { __kind: kind, fields: data } : { __kind: kind, ...(data ?? {}) };
20
+ }
21
+ export function isAccountType(kind, value) {
22
+ return value.__kind === kind;
23
+ }
24
+ ;
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudFR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL3Jwcy1nYW1lL3R5cGVzL2FjY291bnRUeXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsNEJBQTRCLEVBQUUsNEJBQTRCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBcUksTUFBTSxhQUFhLENBQUM7QUFNbFYsTUFBTSxVQUFVLHFCQUFxQjtJQUNqQyxPQUFPLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFPLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCO0lBQ2pDLE9BQU8sNEJBQTRCLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMU8sQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUI7SUFDL0IsT0FBTyxZQUFZLENBQUMscUJBQXFCLEVBQUUsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUM7QUFDMUUsQ0FBQztBQUtELE1BQU0sVUFBVSxXQUFXLENBQTRDLElBQU8sRUFBRSxJQUFXO0lBQ3pGLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUNsRyxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBa0MsSUFBTyxFQUFFLEtBQWtCO0lBQ3hGLE9BQU8sS0FBSyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUM7QUFDL0IsQ0FBQztBQUFBLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaXMgY29kZSB3YXMgQVVUT0dFTkVSQVRFRCB1c2luZyB0aGUgQ29kYW1hIGxpYnJhcnkuXG4gKiBQbGVhc2UgRE8gTk9UIEVESVQgVEhJUyBGSUxFLCBpbnN0ZWFkIHVzZSB2aXNpdG9yc1xuICogdG8gYWRkIGZlYXR1cmVzLCB0aGVuIHJlcnVuIENvZGFtYSB0byB1cGRhdGUgaXQuXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vY29kYW1hLWlkbC9jb2RhbWFcbiAqL1xuXG5pbXBvcnQgeyBjb21iaW5lQ29kZWMsIGdldEFkZHJlc3NEZWNvZGVyLCBnZXRBZGRyZXNzRW5jb2RlciwgZ2V0RGlzY3JpbWluYXRlZFVuaW9uRGVjb2RlciwgZ2V0RGlzY3JpbWluYXRlZFVuaW9uRW5jb2RlciwgZ2V0U3RydWN0RGVjb2RlciwgZ2V0U3RydWN0RW5jb2RlciwgZ2V0VTY0RGVjb2RlciwgZ2V0VTY0RW5jb2RlciwgdHlwZSBBZGRyZXNzLCB0eXBlIENvZGVjLCB0eXBlIERlY29kZXIsIHR5cGUgRW5jb2RlciwgdHlwZSBHZXREaXNjcmltaW5hdGVkVW5pb25WYXJpYW50LCB0eXBlIEdldERpc2NyaW1pbmF0ZWRVbmlvblZhcmlhbnRDb250ZW50IH0gZnJvbSAnQHNvbGFuYS9raXQnO1xuXG5leHBvcnQgdHlwZSBBY2NvdW50VHlwZSA9IHsgX19raW5kOiBcIlBsYXllclByb2ZpbGVcIiwgcGxheWVyOiBBZGRyZXNzOyAgfSB8IHsgX19raW5kOiBcIkdhbWVTZXNzaW9uXCIsIHAxOiBBZGRyZXNzOyBwMjogQWRkcmVzczsgaWQ6IGJpZ2ludDsgIH07XG5cbmV4cG9ydCB0eXBlIEFjY291bnRUeXBlQXJncyA9IHsgX19raW5kOiBcIlBsYXllclByb2ZpbGVcIiwgcGxheWVyOiBBZGRyZXNzOyAgfSB8IHsgX19raW5kOiBcIkdhbWVTZXNzaW9uXCIsIHAxOiBBZGRyZXNzOyBwMjogQWRkcmVzczsgaWQ6IG51bWJlciB8IGJpZ2ludDsgIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBY2NvdW50VHlwZUVuY29kZXIoKTogRW5jb2RlcjxBY2NvdW50VHlwZUFyZ3M+IHtcbiAgICByZXR1cm4gZ2V0RGlzY3JpbWluYXRlZFVuaW9uRW5jb2RlcihbWydQbGF5ZXJQcm9maWxlJywgZ2V0U3RydWN0RW5jb2RlcihbWydwbGF5ZXInLCBnZXRBZGRyZXNzRW5jb2RlcigpXV0pXSwgWydHYW1lU2Vzc2lvbicsIGdldFN0cnVjdEVuY29kZXIoW1sncDEnLCBnZXRBZGRyZXNzRW5jb2RlcigpXSwgWydwMicsIGdldEFkZHJlc3NFbmNvZGVyKCldLCBbJ2lkJywgZ2V0VTY0RW5jb2RlcigpXV0pXV0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWNjb3VudFR5cGVEZWNvZGVyKCk6IERlY29kZXI8QWNjb3VudFR5cGU+IHtcbiAgICByZXR1cm4gZ2V0RGlzY3JpbWluYXRlZFVuaW9uRGVjb2RlcihbWydQbGF5ZXJQcm9maWxlJywgZ2V0U3RydWN0RGVjb2RlcihbWydwbGF5ZXInLCBnZXRBZGRyZXNzRGVjb2RlcigpXV0pXSwgWydHYW1lU2Vzc2lvbicsIGdldFN0cnVjdERlY29kZXIoW1sncDEnLCBnZXRBZGRyZXNzRGVjb2RlcigpXSwgWydwMicsIGdldEFkZHJlc3NEZWNvZGVyKCldLCBbJ2lkJywgZ2V0VTY0RGVjb2RlcigpXV0pXV0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWNjb3VudFR5cGVDb2RlYygpOiBDb2RlYzxBY2NvdW50VHlwZUFyZ3MsIEFjY291bnRUeXBlPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVDb2RlYyhnZXRBY2NvdW50VHlwZUVuY29kZXIoKSwgZ2V0QWNjb3VudFR5cGVEZWNvZGVyKCkpO1xufVxuXG4vLyBEYXRhIEVudW0gSGVscGVycy5cbmV4cG9ydCBmdW5jdGlvbiBhY2NvdW50VHlwZShraW5kOiAnUGxheWVyUHJvZmlsZScsIGRhdGE6IEdldERpc2NyaW1pbmF0ZWRVbmlvblZhcmlhbnRDb250ZW50PEFjY291bnRUeXBlQXJncywgJ19fa2luZCcsICdQbGF5ZXJQcm9maWxlJz4pOiBHZXREaXNjcmltaW5hdGVkVW5pb25WYXJpYW50PEFjY291bnRUeXBlQXJncywgJ19fa2luZCcsICdQbGF5ZXJQcm9maWxlJz47XG5leHBvcnQgZnVuY3Rpb24gYWNjb3VudFR5cGUoa2luZDogJ0dhbWVTZXNzaW9uJywgZGF0YTogR2V0RGlzY3JpbWluYXRlZFVuaW9uVmFyaWFudENvbnRlbnQ8QWNjb3VudFR5cGVBcmdzLCAnX19raW5kJywgJ0dhbWVTZXNzaW9uJz4pOiBHZXREaXNjcmltaW5hdGVkVW5pb25WYXJpYW50PEFjY291bnRUeXBlQXJncywgJ19fa2luZCcsICdHYW1lU2Vzc2lvbic+O1xuZXhwb3J0IGZ1bmN0aW9uIGFjY291bnRUeXBlPEsgZXh0ZW5kcyBBY2NvdW50VHlwZUFyZ3NbJ19fa2luZCddLCBEYXRhPihraW5kOiBLLCBkYXRhPzogRGF0YSkge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShkYXRhKSA/IHsgX19raW5kOiBraW5kLCBmaWVsZHM6IGRhdGEgfSA6IHsgX19raW5kOiBraW5kLCAuLi4oZGF0YSA/PyB7fSkgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQWNjb3VudFR5cGU8SyBleHRlbmRzIEFjY291bnRUeXBlWydfX2tpbmQnXT4oa2luZDogSywgdmFsdWU6IEFjY291bnRUeXBlKTogdmFsdWUgaXMgQWNjb3VudFR5cGUgJiB7IF9fa2luZDogSyB9IHtcbiAgcmV0dXJuIHZhbHVlLl9fa2luZCA9PT0ga2luZDtcbn07XG4iXX0=
@@ -0,0 +1,17 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+ import { type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder } from '@solana/kit';
9
+ export declare enum Choice {
10
+ Rock = 0,
11
+ Paper = 1,
12
+ Scissors = 2
13
+ }
14
+ export type ChoiceArgs = Choice;
15
+ export declare function getChoiceEncoder(): FixedSizeEncoder<ChoiceArgs>;
16
+ export declare function getChoiceDecoder(): FixedSizeDecoder<Choice>;
17
+ export declare function getChoiceCodec(): FixedSizeCodec<ChoiceArgs, Choice>;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+ import { combineCodec, getEnumDecoder, getEnumEncoder } from '@solana/kit';
9
+ export var Choice;
10
+ (function (Choice) {
11
+ Choice[Choice["Rock"] = 0] = "Rock";
12
+ Choice[Choice["Paper"] = 1] = "Paper";
13
+ Choice[Choice["Scissors"] = 2] = "Scissors";
14
+ })(Choice || (Choice = {}));
15
+ ;
16
+ export function getChoiceEncoder() {
17
+ return getEnumEncoder(Choice);
18
+ }
19
+ export function getChoiceDecoder() {
20
+ return getEnumDecoder(Choice);
21
+ }
22
+ export function getChoiceCodec() {
23
+ return combineCodec(getChoiceEncoder(), getChoiceDecoder());
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvaWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9ycHMtZ2FtZS90eXBlcy9jaG9pY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFxRSxNQUFNLGFBQWEsQ0FBQztBQUU5SSxNQUFNLENBQU4sSUFBWSxNQUFnQztBQUE1QyxXQUFZLE1BQU07SUFBRyxtQ0FBSSxDQUFBO0lBQUUscUNBQUssQ0FBQTtJQUFFLDJDQUFRLENBQUE7QUFBQyxDQUFDLEVBQWhDLE1BQU0sS0FBTixNQUFNLFFBQTBCO0FBQUEsQ0FBQztBQUk3QyxNQUFNLFVBQVUsZ0JBQWdCO0lBQzVCLE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2xDLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCO0lBQzVCLE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2xDLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYztJQUMxQixPQUFPLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztBQUNoRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIGNvZGUgd2FzIEFVVE9HRU5FUkFURUQgdXNpbmcgdGhlIENvZGFtYSBsaWJyYXJ5LlxuICogUGxlYXNlIERPIE5PVCBFRElUIFRISVMgRklMRSwgaW5zdGVhZCB1c2UgdmlzaXRvcnNcbiAqIHRvIGFkZCBmZWF0dXJlcywgdGhlbiByZXJ1biBDb2RhbWEgdG8gdXBkYXRlIGl0LlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2NvZGFtYS1pZGwvY29kYW1hXG4gKi9cblxuaW1wb3J0IHsgY29tYmluZUNvZGVjLCBnZXRFbnVtRGVjb2RlciwgZ2V0RW51bUVuY29kZXIsIHR5cGUgRml4ZWRTaXplQ29kZWMsIHR5cGUgRml4ZWRTaXplRGVjb2RlciwgdHlwZSBGaXhlZFNpemVFbmNvZGVyIH0gZnJvbSAnQHNvbGFuYS9raXQnO1xuXG5leHBvcnQgZW51bSBDaG9pY2UgeyBSb2NrLCBQYXBlciwgU2Npc3NvcnMgfTtcblxuZXhwb3J0IHR5cGUgQ2hvaWNlQXJncyA9IENob2ljZTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldENob2ljZUVuY29kZXIoKTogRml4ZWRTaXplRW5jb2RlcjxDaG9pY2VBcmdzPiB7XG4gICAgcmV0dXJuIGdldEVudW1FbmNvZGVyKENob2ljZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDaG9pY2VEZWNvZGVyKCk6IEZpeGVkU2l6ZURlY29kZXI8Q2hvaWNlPiB7XG4gICAgcmV0dXJuIGdldEVudW1EZWNvZGVyKENob2ljZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDaG9pY2VDb2RlYygpOiBGaXhlZFNpemVDb2RlYzxDaG9pY2VBcmdzLCBDaG9pY2U+IHtcbiAgICByZXR1cm4gY29tYmluZUNvZGVjKGdldENob2ljZUVuY29kZXIoKSwgZ2V0Q2hvaWNlRGVjb2RlcigpKTtcbn0iXX0=
@@ -0,0 +1,26 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+ import { type Address, type Codec, type Decoder, type Encoder, type GetDiscriminatedUnionVariant, type GetDiscriminatedUnionVariantContent } from '@solana/kit';
9
+ export type GameResult = {
10
+ __kind: "Winner";
11
+ fields: readonly [Address];
12
+ } | {
13
+ __kind: "Tie";
14
+ } | {
15
+ __kind: "None";
16
+ };
17
+ export type GameResultArgs = GameResult;
18
+ export declare function getGameResultEncoder(): Encoder<GameResultArgs>;
19
+ export declare function getGameResultDecoder(): Decoder<GameResult>;
20
+ export declare function getGameResultCodec(): Codec<GameResultArgs, GameResult>;
21
+ export declare function gameResult(kind: 'Winner', data: GetDiscriminatedUnionVariantContent<GameResultArgs, '__kind', 'Winner'>['fields']): GetDiscriminatedUnionVariant<GameResultArgs, '__kind', 'Winner'>;
22
+ export declare function gameResult(kind: 'Tie'): GetDiscriminatedUnionVariant<GameResultArgs, '__kind', 'Tie'>;
23
+ export declare function gameResult(kind: 'None'): GetDiscriminatedUnionVariant<GameResultArgs, '__kind', 'None'>;
24
+ export declare function isGameResult<K extends GameResult['__kind']>(kind: K, value: GameResult): value is GameResult & {
25
+ __kind: K;
26
+ };
@@ -0,0 +1,25 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+ import { combineCodec, getAddressDecoder, getAddressEncoder, getDiscriminatedUnionDecoder, getDiscriminatedUnionEncoder, getStructDecoder, getStructEncoder, getTupleDecoder, getTupleEncoder, getUnitDecoder, getUnitEncoder } from '@solana/kit';
9
+ export function getGameResultEncoder() {
10
+ return getDiscriminatedUnionEncoder([['Winner', getStructEncoder([['fields', getTupleEncoder([getAddressEncoder()])]])], ['Tie', getUnitEncoder()], ['None', getUnitEncoder()]]);
11
+ }
12
+ export function getGameResultDecoder() {
13
+ return getDiscriminatedUnionDecoder([['Winner', getStructDecoder([['fields', getTupleDecoder([getAddressDecoder()])]])], ['Tie', getUnitDecoder()], ['None', getUnitDecoder()]]);
14
+ }
15
+ export function getGameResultCodec() {
16
+ return combineCodec(getGameResultEncoder(), getGameResultDecoder());
17
+ }
18
+ export function gameResult(kind, data) {
19
+ return Array.isArray(data) ? { __kind: kind, fields: data } : { __kind: kind, ...(data ?? {}) };
20
+ }
21
+ export function isGameResult(kind, value) {
22
+ return value.__kind === kind;
23
+ }
24
+ ;
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FtZVJlc3VsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nZW5lcmF0ZWQvcnBzLWdhbWUvdHlwZXMvZ2FtZVJlc3VsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLDRCQUE0QixFQUFFLDRCQUE0QixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBcUksTUFBTSxhQUFhLENBQUM7QUFNdFgsTUFBTSxVQUFVLG9CQUFvQjtJQUNoQyxPQUFPLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckwsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0I7SUFDaEMsT0FBTyw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JMLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCO0lBQzlCLE9BQU8sWUFBWSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0FBQ3hFLENBQUM7QUFNRCxNQUFNLFVBQVUsVUFBVSxDQUEyQyxJQUFPLEVBQUUsSUFBVztJQUN2RixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFDbEcsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQWlDLElBQU8sRUFBRSxLQUFpQjtJQUNyRixPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDO0FBQy9CLENBQUM7QUFBQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIGNvZGUgd2FzIEFVVE9HRU5FUkFURUQgdXNpbmcgdGhlIENvZGFtYSBsaWJyYXJ5LlxuICogUGxlYXNlIERPIE5PVCBFRElUIFRISVMgRklMRSwgaW5zdGVhZCB1c2UgdmlzaXRvcnNcbiAqIHRvIGFkZCBmZWF0dXJlcywgdGhlbiByZXJ1biBDb2RhbWEgdG8gdXBkYXRlIGl0LlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2NvZGFtYS1pZGwvY29kYW1hXG4gKi9cblxuaW1wb3J0IHsgY29tYmluZUNvZGVjLCBnZXRBZGRyZXNzRGVjb2RlciwgZ2V0QWRkcmVzc0VuY29kZXIsIGdldERpc2NyaW1pbmF0ZWRVbmlvbkRlY29kZXIsIGdldERpc2NyaW1pbmF0ZWRVbmlvbkVuY29kZXIsIGdldFN0cnVjdERlY29kZXIsIGdldFN0cnVjdEVuY29kZXIsIGdldFR1cGxlRGVjb2RlciwgZ2V0VHVwbGVFbmNvZGVyLCBnZXRVbml0RGVjb2RlciwgZ2V0VW5pdEVuY29kZXIsIHR5cGUgQWRkcmVzcywgdHlwZSBDb2RlYywgdHlwZSBEZWNvZGVyLCB0eXBlIEVuY29kZXIsIHR5cGUgR2V0RGlzY3JpbWluYXRlZFVuaW9uVmFyaWFudCwgdHlwZSBHZXREaXNjcmltaW5hdGVkVW5pb25WYXJpYW50Q29udGVudCB9IGZyb20gJ0Bzb2xhbmEva2l0JztcblxuZXhwb3J0IHR5cGUgR2FtZVJlc3VsdCA9IHsgX19raW5kOiBcIldpbm5lclwiLCBmaWVsZHM6IHJlYWRvbmx5IFtBZGRyZXNzXTsgIH0gfCB7IF9fa2luZDogXCJUaWVcIiB9IHwgeyBfX2tpbmQ6IFwiTm9uZVwiIH07XG5cbmV4cG9ydCB0eXBlIEdhbWVSZXN1bHRBcmdzID0gR2FtZVJlc3VsdDtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEdhbWVSZXN1bHRFbmNvZGVyKCk6IEVuY29kZXI8R2FtZVJlc3VsdEFyZ3M+IHtcbiAgICByZXR1cm4gZ2V0RGlzY3JpbWluYXRlZFVuaW9uRW5jb2RlcihbWydXaW5uZXInLCBnZXRTdHJ1Y3RFbmNvZGVyKFtbJ2ZpZWxkcycsIGdldFR1cGxlRW5jb2RlcihbZ2V0QWRkcmVzc0VuY29kZXIoKV0pXV0pXSwgWydUaWUnLCBnZXRVbml0RW5jb2RlcigpXSwgWydOb25lJywgZ2V0VW5pdEVuY29kZXIoKV1dKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEdhbWVSZXN1bHREZWNvZGVyKCk6IERlY29kZXI8R2FtZVJlc3VsdD4ge1xuICAgIHJldHVybiBnZXREaXNjcmltaW5hdGVkVW5pb25EZWNvZGVyKFtbJ1dpbm5lcicsIGdldFN0cnVjdERlY29kZXIoW1snZmllbGRzJywgZ2V0VHVwbGVEZWNvZGVyKFtnZXRBZGRyZXNzRGVjb2RlcigpXSldXSldLCBbJ1RpZScsIGdldFVuaXREZWNvZGVyKCldLCBbJ05vbmUnLCBnZXRVbml0RGVjb2RlcigpXV0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0R2FtZVJlc3VsdENvZGVjKCk6IENvZGVjPEdhbWVSZXN1bHRBcmdzLCBHYW1lUmVzdWx0PiB7XG4gICAgcmV0dXJuIGNvbWJpbmVDb2RlYyhnZXRHYW1lUmVzdWx0RW5jb2RlcigpLCBnZXRHYW1lUmVzdWx0RGVjb2RlcigpKTtcbn1cblxuLy8gRGF0YSBFbnVtIEhlbHBlcnMuXG5leHBvcnQgZnVuY3Rpb24gZ2FtZVJlc3VsdChraW5kOiAnV2lubmVyJywgZGF0YTogR2V0RGlzY3JpbWluYXRlZFVuaW9uVmFyaWFudENvbnRlbnQ8R2FtZVJlc3VsdEFyZ3MsICdfX2tpbmQnLCAnV2lubmVyJz5bJ2ZpZWxkcyddKTogR2V0RGlzY3JpbWluYXRlZFVuaW9uVmFyaWFudDxHYW1lUmVzdWx0QXJncywgJ19fa2luZCcsICdXaW5uZXInPjtcbmV4cG9ydCBmdW5jdGlvbiBnYW1lUmVzdWx0KGtpbmQ6ICdUaWUnKTogR2V0RGlzY3JpbWluYXRlZFVuaW9uVmFyaWFudDxHYW1lUmVzdWx0QXJncywgJ19fa2luZCcsICdUaWUnPjtcbmV4cG9ydCBmdW5jdGlvbiBnYW1lUmVzdWx0KGtpbmQ6ICdOb25lJyk6IEdldERpc2NyaW1pbmF0ZWRVbmlvblZhcmlhbnQ8R2FtZVJlc3VsdEFyZ3MsICdfX2tpbmQnLCAnTm9uZSc+O1xuZXhwb3J0IGZ1bmN0aW9uIGdhbWVSZXN1bHQ8SyBleHRlbmRzIEdhbWVSZXN1bHRBcmdzWydfX2tpbmQnXSwgRGF0YT4oa2luZDogSywgZGF0YT86IERhdGEpIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoZGF0YSkgPyB7IF9fa2luZDoga2luZCwgZmllbGRzOiBkYXRhIH0gOiB7IF9fa2luZDoga2luZCwgLi4uKGRhdGEgPz8ge30pIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0dhbWVSZXN1bHQ8SyBleHRlbmRzIEdhbWVSZXN1bHRbJ19fa2luZCddPihraW5kOiBLLCB2YWx1ZTogR2FtZVJlc3VsdCk6IHZhbHVlIGlzIEdhbWVSZXN1bHQgJiB7IF9fa2luZDogSyB9IHtcbiAgcmV0dXJuIHZhbHVlLl9fa2luZCA9PT0ga2luZDtcbn07XG4iXX0=
@@ -0,0 +1,10 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+ export * from './accountType';
9
+ export * from './choice';
10
+ export * from './gameResult';
@@ -0,0 +1,11 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+ export * from './accountType';
9
+ export * from './choice';
10
+ export * from './gameResult';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL3Jwcy1nYW1lL3R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIGNvZGUgd2FzIEFVVE9HRU5FUkFURUQgdXNpbmcgdGhlIENvZGFtYSBsaWJyYXJ5LlxuICogUGxlYXNlIERPIE5PVCBFRElUIFRISVMgRklMRSwgaW5zdGVhZCB1c2UgdmlzaXRvcnNcbiAqIHRvIGFkZCBmZWF0dXJlcywgdGhlbiByZXJ1biBDb2RhbWEgdG8gdXBkYXRlIGl0LlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2NvZGFtYS1pZGwvY29kYW1hXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9hY2NvdW50VHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2Nob2ljZSc7XG5leHBvcnQgKiBmcm9tICcuL2dhbWVSZXN1bHQnOyJdfQ==
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./admin.js";
2
2
  export * from "./player.js";
3
- export * from "./types.js";
3
+ export * from "./tee.js";
4
4
  export * as utils from "./utils.js";
5
+ export { fetchMaybeTenant, fetchTenant, fetchMaybeQueue, fetchQueue } from "./generated/duel/index.js";
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from "./admin.js";
2
2
  export * from "./player.js";
3
- export * from "./types.js";
3
+ export * from "./tee.js";
4
4
  export * as utils from "./utils.js";
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxZQUFZLENBQUM7QUFDM0IsT0FBTyxLQUFLLEtBQUssTUFBTSxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9hZG1pbi5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGxheWVyLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90eXBlcy5qc1wiO1xuZXhwb3J0ICogYXMgdXRpbHMgZnJvbSBcIi4vdXRpbHMuanNcIjtcbiJdfQ==
5
+ export { fetchMaybeTenant, fetchTenant, fetchMaybeQueue, fetchQueue } from "./generated/duel/index.js";
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxVQUFVLENBQUM7QUFDekIsT0FBTyxLQUFLLEtBQUssTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9hZG1pbi5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGxheWVyLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90ZWUuanNcIjtcbmV4cG9ydCAqIGFzIHV0aWxzIGZyb20gXCIuL3V0aWxzLmpzXCI7XG5leHBvcnQgeyBmZXRjaE1heWJlVGVuYW50LCBmZXRjaFRlbmFudCwgZmV0Y2hNYXliZVF1ZXVlLCBmZXRjaFF1ZXVlIH0gZnJvbSBcIi4vZ2VuZXJhdGVkL2R1ZWwvaW5kZXguanNcIjtcbiJdfQ==
package/dist/player.d.ts CHANGED
@@ -1,51 +1,24 @@
1
- import * as anchor from "@coral-xyz/anchor";
2
- import * as web3 from "@solana/web3.js";
3
- import type { Duel } from "./types.js";
1
+ import { type Address, type TransactionSigner, type Rpc, type SolanaRpcApi } from "@solana/kit";
4
2
  export declare class MatchmakingPlayer {
5
- program: anchor.Program<Duel>;
6
- provider: anchor.AnchorProvider;
7
- constructor(provider: anchor.AnchorProvider, programId: web3.PublicKey | string);
8
- /**
9
- * Derive MatchTicket PDA
10
- */
11
- getTicketPda(player: web3.PublicKey, tenant: web3.PublicKey): web3.PublicKey;
12
- /**
13
- * Fetch MatchTicket account data
14
- */
15
- getTicket(ticketPda: web3.PublicKey): Promise<any>;
16
- /**
17
- * Create MatchTicket PDA on L1
18
- */
19
- createTicket(tenant: web3.PublicKey, confirmOptions?: web3.ConfirmOptions, signers?: web3.Keypair[]): Promise<web3.TransactionSignature>;
20
- /**
21
- * Delegate ticket into TEE (becomes invisible on L1)
22
- */
23
- delegateTicket(player: web3.PublicKey, tenant: web3.PublicKey, validator?: web3.PublicKey, confirmOptions?: web3.ConfirmOptions, signers?: web3.Keypair[]): Promise<web3.TransactionSignature>;
24
- /**
25
- * Join Queue (TEE Aware) - now requires ticket
26
- */
27
- joinQueue(queue: web3.PublicKey, tenant: web3.PublicKey, playerData: web3.PublicKey, confirmOptions?: web3.ConfirmOptions, signers?: web3.Keypair[]): Promise<web3.TransactionSignature>;
28
- /**
29
- * Cancel search, marks ticket as Cancelled (runs in TEE)
30
- */
31
- cancelTicket(tenant: web3.PublicKey, confirmOptions?: web3.ConfirmOptions, signers?: web3.Keypair[]): Promise<web3.TransactionSignature>;
32
- /**
33
- * Close ticket and reclaim rent (L1, after match consumed or cancelled)
34
- */
35
- closeTicket(tenant: web3.PublicKey, confirmOptions?: web3.ConfirmOptions, signers?: web3.Keypair[]): Promise<web3.TransactionSignature>;
36
- /**
37
- * Wait for match by subscribing to ticket PDA changes on L1.
38
- * Returns match info when ticket status changes to Matched.
39
- */
40
- waitForMatch(ticketPda: web3.PublicKey, connection: web3.Connection, timeoutMs?: number): Promise<{
41
- opponent: web3.PublicKey;
42
- matchId: anchor.BN;
43
- } | null>;
44
- /**
45
- * Poll L1 for ticket status (fallback for environments without websocket)
46
- */
47
- pollForMatch(ticketPda: web3.PublicKey, connection: web3.Connection, maxAttempts?: number, pollInterval?: number, signal?: AbortSignal): Promise<{
48
- opponent: web3.PublicKey;
49
- matchId: anchor.BN;
3
+ rpc: Rpc<SolanaRpcApi>;
4
+ signer: TransactionSigner;
5
+ programId: Address;
6
+ constructor(rpc: Rpc<SolanaRpcApi>, signer: TransactionSigner, programId?: Address);
7
+ getTicketPda(player: Address, tenant: Address): Promise<Address>;
8
+ getTicket(ticketPda: Address): Promise<import("@solana/accounts").MaybeAccount<import("./generated/duel/index.js").MatchTicket, string>>;
9
+ createTicket(tenant: Address): Promise<string>;
10
+ delegateTicket(player: Address, tenant: Address, validator?: Address): Promise<string>;
11
+ joinQueue(queue: Address, tenant: Address, playerData: Address): Promise<string>;
12
+ cancelTicket(tenant: Address): Promise<string>;
13
+ closeTicket(tenant: Address): Promise<string>;
14
+ /**
15
+ * Poll L1 for ticket status.
16
+ * Returns match info when status becomes Matched.
17
+ */
18
+ pollForMatch(ticketPda: Address, maxAttempts?: number, pollInterval?: number, signal?: AbortSignal): Promise<{
19
+ opponent: Address;
20
+ matchId: bigint;
50
21
  } | null>;
22
+ /** Create a new MatchmakingPlayer pointing at a TEE RPC endpoint. */
23
+ withRpc(teeUrl: string): MatchmakingPlayer;
51
24
  }