@1upmonster/duel 0.1.7 → 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 -118
  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 -49
  107. package/dist/player.js +61 -141
  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 +4 -7
  115. package/src/admin.ts +129 -164
  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 -193
  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 -517
  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,45 @@
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 { assertAccountExists, assertAccountsExist, combineCodec, decodeAccount, fetchEncodedAccount, fetchEncodedAccounts, fixDecoderSize, fixEncoderSize, getAddressDecoder, getAddressEncoder, getArrayDecoder, getArrayEncoder, getBytesDecoder, getBytesEncoder, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, getU8Decoder, getU8Encoder, transformEncoder } from '@solana/kit';
9
+ import { getMatchEntryDecoder, getMatchEntryEncoder, getPendingMatchDecoder, getPendingMatchEncoder, getQueueEntryDecoder, getQueueEntryEncoder } from '../types';
10
+ export const QUEUE_DISCRIMINATOR = new Uint8Array([204, 167, 6, 247, 20, 33, 2, 188]);
11
+ export function getQueueDiscriminatorBytes() { return fixEncoderSize(getBytesEncoder(), 8).encode(QUEUE_DISCRIMINATOR); }
12
+ /** Gets the encoder for {@link QueueArgs} account data. */
13
+ export function getQueueEncoder() {
14
+ return transformEncoder(getStructEncoder([['discriminator', fixEncoderSize(getBytesEncoder(), 8)], ['authority', getAddressEncoder()], ['tenant', getAddressEncoder()], ['bump', getU8Encoder()], ['matchCounter', getU64Encoder()], ['entries', getArrayEncoder(getQueueEntryEncoder())], ['matches', getArrayEncoder(getMatchEntryEncoder())], ['pendingMatches', getArrayEncoder(getPendingMatchEncoder())]]), (value) => ({ ...value, discriminator: QUEUE_DISCRIMINATOR }));
15
+ }
16
+ /** Gets the decoder for {@link Queue} account data. */
17
+ export function getQueueDecoder() {
18
+ return getStructDecoder([['discriminator', fixDecoderSize(getBytesDecoder(), 8)], ['authority', getAddressDecoder()], ['tenant', getAddressDecoder()], ['bump', getU8Decoder()], ['matchCounter', getU64Decoder()], ['entries', getArrayDecoder(getQueueEntryDecoder())], ['matches', getArrayDecoder(getMatchEntryDecoder())], ['pendingMatches', getArrayDecoder(getPendingMatchDecoder())]]);
19
+ }
20
+ /** Gets the codec for {@link Queue} account data. */
21
+ export function getQueueCodec() {
22
+ return combineCodec(getQueueEncoder(), getQueueDecoder());
23
+ }
24
+ export function decodeQueue(encodedAccount) {
25
+ return decodeAccount(encodedAccount, getQueueDecoder());
26
+ }
27
+ export async function fetchQueue(rpc, address, config) {
28
+ const maybeAccount = await fetchMaybeQueue(rpc, address, config);
29
+ assertAccountExists(maybeAccount);
30
+ return maybeAccount;
31
+ }
32
+ export async function fetchMaybeQueue(rpc, address, config) {
33
+ const maybeAccount = await fetchEncodedAccount(rpc, address, config);
34
+ return decodeQueue(maybeAccount);
35
+ }
36
+ export async function fetchAllQueue(rpc, addresses, config) {
37
+ const maybeAccounts = await fetchAllMaybeQueue(rpc, addresses, config);
38
+ assertAccountsExist(maybeAccounts);
39
+ return maybeAccounts;
40
+ }
41
+ export async function fetchAllMaybeQueue(rpc, addresses, config) {
42
+ const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);
43
+ return maybeAccounts.map((maybeAccount) => decodeQueue(maybeAccount));
44
+ }
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL2R1ZWwvYWNjb3VudHMvcXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFvTixNQUFNLGFBQWEsQ0FBQztBQUMzbEIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLHNCQUFzQixFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUF3SCxNQUFNLFVBQVUsQ0FBQztBQUV4UixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBRXRGLE1BQU0sVUFBVSwwQkFBMEIsS0FBSyxPQUFPLGNBQWMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFNekgsMkRBQTJEO0FBQzNELE1BQU0sVUFBVSxlQUFlO0lBQzNCLE9BQU8sZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLEVBQUUsYUFBYSxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxlQUFlLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNyZCxDQUFDO0FBRUQsdURBQXVEO0FBQ3ZELE1BQU0sVUFBVSxlQUFlO0lBQzNCLE9BQU8sZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLEVBQUUsYUFBYSxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxlQUFlLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwWSxDQUFDO0FBRUQscURBQXFEO0FBQ3JELE1BQU0sVUFBVSxhQUFhO0lBQ3pCLE9BQU8sWUFBWSxDQUFDLGVBQWUsRUFBRSxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUlELE1BQU0sVUFBVSxXQUFXLENBQW1DLGNBQXdFO0lBQ3BJLE9BQU8sYUFBYSxDQUFDLGNBQStDLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztBQUMzRixDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxVQUFVLENBQzlCLEdBQThDLEVBQzlDLE9BQTBCLEVBQzFCLE1BQTJCO0lBRTNCLE1BQU0sWUFBWSxHQUFHLE1BQU0sZUFBZSxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDakUsbUJBQW1CLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEMsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsZUFBZSxDQUNuQyxHQUE4QyxFQUM5QyxPQUEwQixFQUMxQixNQUEyQjtJQUUzQixNQUFNLFlBQVksR0FBRyxNQUFNLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDckUsT0FBTyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsYUFBYSxDQUNqQyxHQUErQyxFQUMvQyxTQUF5QixFQUN6QixNQUE0QjtJQUU1QixNQUFNLGFBQWEsR0FBRyxNQUFNLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdkUsbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDbkMsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsa0JBQWtCLENBQ3RDLEdBQStDLEVBQy9DLFNBQXlCLEVBQ3pCLE1BQTRCO0lBRTVCLE1BQU0sYUFBYSxHQUFHLE1BQU0sb0JBQW9CLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN6RSxPQUFPLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0FBQ3hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaXMgY29kZSB3YXMgQVVUT0dFTkVSQVRFRCB1c2luZyB0aGUgQ29kYW1hIGxpYnJhcnkuXG4gKiBQbGVhc2UgRE8gTk9UIEVESVQgVEhJUyBGSUxFLCBpbnN0ZWFkIHVzZSB2aXNpdG9yc1xuICogdG8gYWRkIGZlYXR1cmVzLCB0aGVuIHJlcnVuIENvZGFtYSB0byB1cGRhdGUgaXQuXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vY29kYW1hLWlkbC9jb2RhbWFcbiAqL1xuXG5pbXBvcnQgeyBhc3NlcnRBY2NvdW50RXhpc3RzLCBhc3NlcnRBY2NvdW50c0V4aXN0LCBjb21iaW5lQ29kZWMsIGRlY29kZUFjY291bnQsIGZldGNoRW5jb2RlZEFjY291bnQsIGZldGNoRW5jb2RlZEFjY291bnRzLCBmaXhEZWNvZGVyU2l6ZSwgZml4RW5jb2RlclNpemUsIGdldEFkZHJlc3NEZWNvZGVyLCBnZXRBZGRyZXNzRW5jb2RlciwgZ2V0QXJyYXlEZWNvZGVyLCBnZXRBcnJheUVuY29kZXIsIGdldEJ5dGVzRGVjb2RlciwgZ2V0Qnl0ZXNFbmNvZGVyLCBnZXRTdHJ1Y3REZWNvZGVyLCBnZXRTdHJ1Y3RFbmNvZGVyLCBnZXRVNjREZWNvZGVyLCBnZXRVNjRFbmNvZGVyLCBnZXRVOERlY29kZXIsIGdldFU4RW5jb2RlciwgdHJhbnNmb3JtRW5jb2RlciwgdHlwZSBBY2NvdW50LCB0eXBlIEFkZHJlc3MsIHR5cGUgQ29kZWMsIHR5cGUgRGVjb2RlciwgdHlwZSBFbmNvZGVkQWNjb3VudCwgdHlwZSBFbmNvZGVyLCB0eXBlIEZldGNoQWNjb3VudENvbmZpZywgdHlwZSBGZXRjaEFjY291bnRzQ29uZmlnLCB0eXBlIE1heWJlQWNjb3VudCwgdHlwZSBNYXliZUVuY29kZWRBY2NvdW50LCB0eXBlIFJlYWRvbmx5VWludDhBcnJheSB9IGZyb20gJ0Bzb2xhbmEva2l0JztcbmltcG9ydCB7IGdldE1hdGNoRW50cnlEZWNvZGVyLCBnZXRNYXRjaEVudHJ5RW5jb2RlciwgZ2V0UGVuZGluZ01hdGNoRGVjb2RlciwgZ2V0UGVuZGluZ01hdGNoRW5jb2RlciwgZ2V0UXVldWVFbnRyeURlY29kZXIsIGdldFF1ZXVlRW50cnlFbmNvZGVyLCB0eXBlIE1hdGNoRW50cnksIHR5cGUgTWF0Y2hFbnRyeUFyZ3MsIHR5cGUgUGVuZGluZ01hdGNoLCB0eXBlIFBlbmRpbmdNYXRjaEFyZ3MsIHR5cGUgUXVldWVFbnRyeSwgdHlwZSBRdWV1ZUVudHJ5QXJncyB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IFFVRVVFX0RJU0NSSU1JTkFUT1IgPSBuZXcgVWludDhBcnJheShbMjA0LCAxNjcsIDYsIDI0NywgMjAsIDMzLCAyLCAxODhdKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFF1ZXVlRGlzY3JpbWluYXRvckJ5dGVzKCkgeyByZXR1cm4gZml4RW5jb2RlclNpemUoZ2V0Qnl0ZXNFbmNvZGVyKCksIDgpLmVuY29kZShRVUVVRV9ESVNDUklNSU5BVE9SKTsgfVxuXG5leHBvcnQgdHlwZSBRdWV1ZSA9IHsgZGlzY3JpbWluYXRvcjogUmVhZG9ubHlVaW50OEFycmF5OyBhdXRob3JpdHk6IEFkZHJlc3M7IHRlbmFudDogQWRkcmVzczsgYnVtcDogbnVtYmVyOyBtYXRjaENvdW50ZXI6IGJpZ2ludDsgZW50cmllczogQXJyYXk8UXVldWVFbnRyeT47IG1hdGNoZXM6IEFycmF5PE1hdGNoRW50cnk+OyBwZW5kaW5nTWF0Y2hlczogQXJyYXk8UGVuZGluZ01hdGNoPjsgIH07XG5cbmV4cG9ydCB0eXBlIFF1ZXVlQXJncyA9IHsgYXV0aG9yaXR5OiBBZGRyZXNzOyB0ZW5hbnQ6IEFkZHJlc3M7IGJ1bXA6IG51bWJlcjsgbWF0Y2hDb3VudGVyOiBudW1iZXIgfCBiaWdpbnQ7IGVudHJpZXM6IEFycmF5PFF1ZXVlRW50cnlBcmdzPjsgbWF0Y2hlczogQXJyYXk8TWF0Y2hFbnRyeUFyZ3M+OyBwZW5kaW5nTWF0Y2hlczogQXJyYXk8UGVuZGluZ01hdGNoQXJncz47ICB9O1xuXG4vKiogR2V0cyB0aGUgZW5jb2RlciBmb3Ige0BsaW5rIFF1ZXVlQXJnc30gYWNjb3VudCBkYXRhLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFF1ZXVlRW5jb2RlcigpOiBFbmNvZGVyPFF1ZXVlQXJncz4ge1xuICAgIHJldHVybiB0cmFuc2Zvcm1FbmNvZGVyKGdldFN0cnVjdEVuY29kZXIoW1snZGlzY3JpbWluYXRvcicsIGZpeEVuY29kZXJTaXplKGdldEJ5dGVzRW5jb2RlcigpLCA4KV0sIFsnYXV0aG9yaXR5JywgZ2V0QWRkcmVzc0VuY29kZXIoKV0sIFsndGVuYW50JywgZ2V0QWRkcmVzc0VuY29kZXIoKV0sIFsnYnVtcCcsIGdldFU4RW5jb2RlcigpXSwgWydtYXRjaENvdW50ZXInLCBnZXRVNjRFbmNvZGVyKCldLCBbJ2VudHJpZXMnLCBnZXRBcnJheUVuY29kZXIoZ2V0UXVldWVFbnRyeUVuY29kZXIoKSldLCBbJ21hdGNoZXMnLCBnZXRBcnJheUVuY29kZXIoZ2V0TWF0Y2hFbnRyeUVuY29kZXIoKSldLCBbJ3BlbmRpbmdNYXRjaGVzJywgZ2V0QXJyYXlFbmNvZGVyKGdldFBlbmRpbmdNYXRjaEVuY29kZXIoKSldXSksICh2YWx1ZSkgPT4gKHsgLi4udmFsdWUsIGRpc2NyaW1pbmF0b3I6IFFVRVVFX0RJU0NSSU1JTkFUT1IgfSkpO1xufVxuXG4vKiogR2V0cyB0aGUgZGVjb2RlciBmb3Ige0BsaW5rIFF1ZXVlfSBhY2NvdW50IGRhdGEuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UXVldWVEZWNvZGVyKCk6IERlY29kZXI8UXVldWU+IHtcbiAgICByZXR1cm4gZ2V0U3RydWN0RGVjb2RlcihbWydkaXNjcmltaW5hdG9yJywgZml4RGVjb2RlclNpemUoZ2V0Qnl0ZXNEZWNvZGVyKCksIDgpXSwgWydhdXRob3JpdHknLCBnZXRBZGRyZXNzRGVjb2RlcigpXSwgWyd0ZW5hbnQnLCBnZXRBZGRyZXNzRGVjb2RlcigpXSwgWydidW1wJywgZ2V0VThEZWNvZGVyKCldLCBbJ21hdGNoQ291bnRlcicsIGdldFU2NERlY29kZXIoKV0sIFsnZW50cmllcycsIGdldEFycmF5RGVjb2RlcihnZXRRdWV1ZUVudHJ5RGVjb2RlcigpKV0sIFsnbWF0Y2hlcycsIGdldEFycmF5RGVjb2RlcihnZXRNYXRjaEVudHJ5RGVjb2RlcigpKV0sIFsncGVuZGluZ01hdGNoZXMnLCBnZXRBcnJheURlY29kZXIoZ2V0UGVuZGluZ01hdGNoRGVjb2RlcigpKV1dKTtcbn1cblxuLyoqIEdldHMgdGhlIGNvZGVjIGZvciB7QGxpbmsgUXVldWV9IGFjY291bnQgZGF0YS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWV1ZUNvZGVjKCk6IENvZGVjPFF1ZXVlQXJncywgUXVldWU+IHtcbiAgICByZXR1cm4gY29tYmluZUNvZGVjKGdldFF1ZXVlRW5jb2RlcigpLCBnZXRRdWV1ZURlY29kZXIoKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVRdWV1ZTxUQWRkcmVzcyBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4oZW5jb2RlZEFjY291bnQ6IEVuY29kZWRBY2NvdW50PFRBZGRyZXNzPik6IEFjY291bnQ8UXVldWUsIFRBZGRyZXNzPjtcbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVRdWV1ZTxUQWRkcmVzcyBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4oZW5jb2RlZEFjY291bnQ6IE1heWJlRW5jb2RlZEFjY291bnQ8VEFkZHJlc3M+KTogTWF5YmVBY2NvdW50PFF1ZXVlLCBUQWRkcmVzcz47XG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlUXVldWU8VEFkZHJlc3MgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmc+KGVuY29kZWRBY2NvdW50OiBFbmNvZGVkQWNjb3VudDxUQWRkcmVzcz4gfCBNYXliZUVuY29kZWRBY2NvdW50PFRBZGRyZXNzPik6IEFjY291bnQ8UXVldWUsIFRBZGRyZXNzPiB8IE1heWJlQWNjb3VudDxRdWV1ZSwgVEFkZHJlc3M+IHtcbiAgcmV0dXJuIGRlY29kZUFjY291bnQoZW5jb2RlZEFjY291bnQgYXMgTWF5YmVFbmNvZGVkQWNjb3VudDxUQWRkcmVzcz4sIGdldFF1ZXVlRGVjb2RlcigpKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoUXVldWU8VEFkZHJlc3MgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmc+KFxuICBycGM6IFBhcmFtZXRlcnM8dHlwZW9mIGZldGNoRW5jb2RlZEFjY291bnQ+WzBdLFxuICBhZGRyZXNzOiBBZGRyZXNzPFRBZGRyZXNzPixcbiAgY29uZmlnPzogRmV0Y2hBY2NvdW50Q29uZmlnLFxuKTogUHJvbWlzZTxBY2NvdW50PFF1ZXVlLCBUQWRkcmVzcz4+IHtcbiAgY29uc3QgbWF5YmVBY2NvdW50ID0gYXdhaXQgZmV0Y2hNYXliZVF1ZXVlKHJwYywgYWRkcmVzcywgY29uZmlnKTtcbiAgYXNzZXJ0QWNjb3VudEV4aXN0cyhtYXliZUFjY291bnQpO1xuICByZXR1cm4gbWF5YmVBY2NvdW50O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hNYXliZVF1ZXVlPFRBZGRyZXNzIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPihcbiAgcnBjOiBQYXJhbWV0ZXJzPHR5cGVvZiBmZXRjaEVuY29kZWRBY2NvdW50PlswXSxcbiAgYWRkcmVzczogQWRkcmVzczxUQWRkcmVzcz4sXG4gIGNvbmZpZz86IEZldGNoQWNjb3VudENvbmZpZyxcbik6IFByb21pc2U8TWF5YmVBY2NvdW50PFF1ZXVlLCBUQWRkcmVzcz4+IHtcbiAgY29uc3QgbWF5YmVBY2NvdW50ID0gYXdhaXQgZmV0Y2hFbmNvZGVkQWNjb3VudChycGMsIGFkZHJlc3MsIGNvbmZpZyk7XG4gIHJldHVybiBkZWNvZGVRdWV1ZShtYXliZUFjY291bnQpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hBbGxRdWV1ZShcbiAgcnBjOiBQYXJhbWV0ZXJzPHR5cGVvZiBmZXRjaEVuY29kZWRBY2NvdW50cz5bMF0sXG4gIGFkZHJlc3NlczogQXJyYXk8QWRkcmVzcz4sXG4gIGNvbmZpZz86IEZldGNoQWNjb3VudHNDb25maWcsXG4pOiBQcm9taXNlPEFjY291bnQ8UXVldWU+W10+IHtcbiAgY29uc3QgbWF5YmVBY2NvdW50cyA9IGF3YWl0IGZldGNoQWxsTWF5YmVRdWV1ZShycGMsIGFkZHJlc3NlcywgY29uZmlnKTtcbiAgYXNzZXJ0QWNjb3VudHNFeGlzdChtYXliZUFjY291bnRzKTtcbiAgcmV0dXJuIG1heWJlQWNjb3VudHM7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaEFsbE1heWJlUXVldWUoXG4gIHJwYzogUGFyYW1ldGVyczx0eXBlb2YgZmV0Y2hFbmNvZGVkQWNjb3VudHM+WzBdLFxuICBhZGRyZXNzZXM6IEFycmF5PEFkZHJlc3M+LFxuICBjb25maWc/OiBGZXRjaEFjY291bnRzQ29uZmlnLFxuKTogUHJvbWlzZTxNYXliZUFjY291bnQ8UXVldWU+W10+IHtcbiAgY29uc3QgbWF5YmVBY2NvdW50cyA9IGF3YWl0IGZldGNoRW5jb2RlZEFjY291bnRzKHJwYywgYWRkcmVzc2VzLCBjb25maWcpO1xuICByZXR1cm4gbWF5YmVBY2NvdW50cy5tYXAoKG1heWJlQWNjb3VudCkgPT4gZGVjb2RlUXVldWUobWF5YmVBY2NvdW50KSk7XG59Il19
@@ -0,0 +1,41 @@
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 { fetchEncodedAccount, fetchEncodedAccounts, type Account, type Address, type Codec, type Decoder, type EncodedAccount, type Encoder, type FetchAccountConfig, type FetchAccountsConfig, type MaybeAccount, type MaybeEncodedAccount, type Option, type OptionOrNullable, type ReadonlyUint8Array } from '@solana/kit';
9
+ export declare const TENANT_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
10
+ export declare function getTenantDiscriminatorBytes(): ReadonlyUint8Array<ArrayBuffer>;
11
+ export type Tenant = {
12
+ discriminator: ReadonlyUint8Array;
13
+ authority: Address;
14
+ tenantProgramId: Address;
15
+ eloOffset: number;
16
+ eloSize: number;
17
+ eloWindow: bigint;
18
+ callbackProgramId: Option<Address>;
19
+ callbackDiscriminator: Option<ReadonlyUint8Array>;
20
+ };
21
+ export type TenantArgs = {
22
+ authority: Address;
23
+ tenantProgramId: Address;
24
+ eloOffset: number;
25
+ eloSize: number;
26
+ eloWindow: number | bigint;
27
+ callbackProgramId: OptionOrNullable<Address>;
28
+ callbackDiscriminator: OptionOrNullable<ReadonlyUint8Array>;
29
+ };
30
+ /** Gets the encoder for {@link TenantArgs} account data. */
31
+ export declare function getTenantEncoder(): Encoder<TenantArgs>;
32
+ /** Gets the decoder for {@link Tenant} account data. */
33
+ export declare function getTenantDecoder(): Decoder<Tenant>;
34
+ /** Gets the codec for {@link Tenant} account data. */
35
+ export declare function getTenantCodec(): Codec<TenantArgs, Tenant>;
36
+ export declare function decodeTenant<TAddress extends string = string>(encodedAccount: EncodedAccount<TAddress>): Account<Tenant, TAddress>;
37
+ export declare function decodeTenant<TAddress extends string = string>(encodedAccount: MaybeEncodedAccount<TAddress>): MaybeAccount<Tenant, TAddress>;
38
+ export declare function fetchTenant<TAddress extends string = string>(rpc: Parameters<typeof fetchEncodedAccount>[0], address: Address<TAddress>, config?: FetchAccountConfig): Promise<Account<Tenant, TAddress>>;
39
+ export declare function fetchMaybeTenant<TAddress extends string = string>(rpc: Parameters<typeof fetchEncodedAccount>[0], address: Address<TAddress>, config?: FetchAccountConfig): Promise<MaybeAccount<Tenant, TAddress>>;
40
+ export declare function fetchAllTenant(rpc: Parameters<typeof fetchEncodedAccounts>[0], addresses: Array<Address>, config?: FetchAccountsConfig): Promise<Account<Tenant>[]>;
41
+ export declare function fetchAllMaybeTenant(rpc: Parameters<typeof fetchEncodedAccounts>[0], addresses: Array<Address>, config?: FetchAccountsConfig): Promise<MaybeAccount<Tenant>[]>;
@@ -0,0 +1,44 @@
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 { assertAccountExists, assertAccountsExist, combineCodec, decodeAccount, fetchEncodedAccount, fetchEncodedAccounts, fixDecoderSize, fixEncoderSize, getAddressDecoder, getAddressEncoder, getBytesDecoder, getBytesEncoder, getOptionDecoder, getOptionEncoder, getStructDecoder, getStructEncoder, getU32Decoder, getU32Encoder, getU64Decoder, getU64Encoder, getU8Decoder, getU8Encoder, transformEncoder } from '@solana/kit';
9
+ export const TENANT_DISCRIMINATOR = new Uint8Array([61, 43, 215, 51, 232, 242, 209, 170]);
10
+ export function getTenantDiscriminatorBytes() { return fixEncoderSize(getBytesEncoder(), 8).encode(TENANT_DISCRIMINATOR); }
11
+ /** Gets the encoder for {@link TenantArgs} account data. */
12
+ export function getTenantEncoder() {
13
+ return transformEncoder(getStructEncoder([['discriminator', fixEncoderSize(getBytesEncoder(), 8)], ['authority', getAddressEncoder()], ['tenantProgramId', getAddressEncoder()], ['eloOffset', getU32Encoder()], ['eloSize', getU8Encoder()], ['eloWindow', getU64Encoder()], ['callbackProgramId', getOptionEncoder(getAddressEncoder())], ['callbackDiscriminator', getOptionEncoder(fixEncoderSize(getBytesEncoder(), 8))]]), (value) => ({ ...value, discriminator: TENANT_DISCRIMINATOR }));
14
+ }
15
+ /** Gets the decoder for {@link Tenant} account data. */
16
+ export function getTenantDecoder() {
17
+ return getStructDecoder([['discriminator', fixDecoderSize(getBytesDecoder(), 8)], ['authority', getAddressDecoder()], ['tenantProgramId', getAddressDecoder()], ['eloOffset', getU32Decoder()], ['eloSize', getU8Decoder()], ['eloWindow', getU64Decoder()], ['callbackProgramId', getOptionDecoder(getAddressDecoder())], ['callbackDiscriminator', getOptionDecoder(fixDecoderSize(getBytesDecoder(), 8))]]);
18
+ }
19
+ /** Gets the codec for {@link Tenant} account data. */
20
+ export function getTenantCodec() {
21
+ return combineCodec(getTenantEncoder(), getTenantDecoder());
22
+ }
23
+ export function decodeTenant(encodedAccount) {
24
+ return decodeAccount(encodedAccount, getTenantDecoder());
25
+ }
26
+ export async function fetchTenant(rpc, address, config) {
27
+ const maybeAccount = await fetchMaybeTenant(rpc, address, config);
28
+ assertAccountExists(maybeAccount);
29
+ return maybeAccount;
30
+ }
31
+ export async function fetchMaybeTenant(rpc, address, config) {
32
+ const maybeAccount = await fetchEncodedAccount(rpc, address, config);
33
+ return decodeTenant(maybeAccount);
34
+ }
35
+ export async function fetchAllTenant(rpc, addresses, config) {
36
+ const maybeAccounts = await fetchAllMaybeTenant(rpc, addresses, config);
37
+ assertAccountsExist(maybeAccounts);
38
+ return maybeAccounts;
39
+ }
40
+ export async function fetchAllMaybeTenant(rpc, addresses, config) {
41
+ const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);
42
+ return maybeAccounts.map((maybeAccount) => decodeTenant(maybeAccount));
43
+ }
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9kdWVsL2FjY291bnRzL3RlbmFudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQXdQLE1BQU0sYUFBYSxDQUFDO0FBRS9wQixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBRTFGLE1BQU0sVUFBVSwyQkFBMkIsS0FBSyxPQUFPLGNBQWMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFNM0gsNERBQTREO0FBQzVELE1BQU0sVUFBVSxnQkFBZ0I7SUFDNUIsT0FBTyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLGNBQWMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLGlCQUFpQixFQUFFLENBQUMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLENBQUMsRUFBRSxD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LFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0FBQ3pFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaXMgY29kZSB3YXMgQVVUT0dFTkVSQVRFRCB1c2luZyB0aGUgQ29kYW1hIGxpYnJhcnkuXG4gKiBQbGVhc2UgRE8gTk9UIEVESVQgVEhJUyBGSUxFLCBpbnN0ZWFkIHVzZSB2aXNpdG9yc1xuICogdG8gYWRkIGZlYXR1cmVzLCB0aGVuIHJlcnVuIENvZGFtYSB0byB1cGRhdGUgaXQuXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vY29kYW1hLWlkbC9jb2RhbWFcbiAqL1xuXG5pbXBvcnQgeyBhc3NlcnRBY2NvdW50RXhpc3RzLCBhc3NlcnRBY2NvdW50c0V4aXN0LCBjb21iaW5lQ29kZWMsIGRlY29kZUFjY291bnQsIGZldGNoRW5jb2RlZEFjY291bnQsIGZldGNoRW5jb2RlZEFjY291bnRzLCBmaXhEZWNvZGVyU2l6ZSwgZml4RW5jb2RlclNpemUsIGdldEFkZHJlc3NEZWNvZGVyLCBnZXRBZGRyZXNzRW5jb2RlciwgZ2V0Qnl0ZXNEZWNvZGVyLCBnZXRCeXRlc0VuY29kZXIsIGdldE9wdGlvbkRlY29kZXIsIGdldE9wdGlvbkVuY29kZXIsIGdldFN0cnVjdERlY29kZXIsIGdldFN0cnVjdEVuY29kZXIsIGdldFUzMkRlY29kZXIsIGdldFUzMkVuY29kZXIsIGdldFU2NERlY29kZXIsIGdldFU2NEVuY29kZXIsIGdldFU4RGVjb2RlciwgZ2V0VThFbmNvZGVyLCB0cmFuc2Zvcm1FbmNvZGVyLCB0eXBlIEFjY291bnQsIHR5cGUgQWRkcmVzcywgdHlwZSBDb2RlYywgdHlwZSBEZWNvZGVyLCB0eXBlIEVuY29kZWRBY2NvdW50LCB0eXBlIEVuY29kZXIsIHR5cGUgRmV0Y2hBY2NvdW50Q29uZmlnLCB0eXBlIEZldGNoQWNjb3VudHNDb25maWcsIHR5cGUgTWF5YmVBY2NvdW50LCB0eXBlIE1heWJlRW5jb2RlZEFjY291bnQsIHR5cGUgT3B0aW9uLCB0eXBlIE9wdGlvbk9yTnVsbGFibGUsIHR5cGUgUmVhZG9ubHlVaW50OEFycmF5IH0gZnJvbSAnQHNvbGFuYS9raXQnO1xuXG5leHBvcnQgY29uc3QgVEVOQU5UX0RJU0NSSU1JTkFUT1IgPSBuZXcgVWludDhBcnJheShbNjEsIDQzLCAyMTUsIDUxLCAyMzIsIDI0MiwgMjA5LCAxNzBdKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRlbmFudERpc2NyaW1pbmF0b3JCeXRlcygpIHsgcmV0dXJuIGZpeEVuY29kZXJTaXplKGdldEJ5dGVzRW5jb2RlcigpLCA4KS5lbmNvZGUoVEVOQU5UX0RJU0NSSU1JTkFUT1IpOyB9XG5cbmV4cG9ydCB0eXBlIFRlbmFudCA9IHsgZGlzY3JpbWluYXRvcjogUmVhZG9ubHlVaW50OEFycmF5OyBhdXRob3JpdHk6IEFkZHJlc3M7IHRlbmFudFByb2dyYW1JZDogQWRkcmVzczsgZWxvT2Zmc2V0OiBudW1iZXI7IGVsb1NpemU6IG51bWJlcjsgZWxvV2luZG93OiBiaWdpbnQ7IGNhbGxiYWNrUHJvZ3JhbUlkOiBPcHRpb248QWRkcmVzcz47IGNhbGxiYWNrRGlzY3JpbWluYXRvcjogT3B0aW9uPFJlYWRvbmx5VWludDhBcnJheT47ICB9O1xuXG5leHBvcnQgdHlwZSBUZW5hbnRBcmdzID0geyBhdXRob3JpdHk6IEFkZHJlc3M7IHRlbmFudFByb2dyYW1JZDogQWRkcmVzczsgZWxvT2Zmc2V0OiBudW1iZXI7IGVsb1NpemU6IG51bWJlcjsgZWxvV2luZG93OiBudW1iZXIgfCBiaWdpbnQ7IGNhbGxiYWNrUHJvZ3JhbUlkOiBPcHRpb25Pck51bGxhYmxlPEFkZHJlc3M+OyBjYWxsYmFja0Rpc2NyaW1pbmF0b3I6IE9wdGlvbk9yTnVsbGFibGU8UmVhZG9ubHlVaW50OEFycmF5PjsgIH07XG5cbi8qKiBHZXRzIHRoZSBlbmNvZGVyIGZvciB7QGxpbmsgVGVuYW50QXJnc30gYWNjb3VudCBkYXRhLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRlbmFudEVuY29kZXIoKTogRW5jb2RlcjxUZW5hbnRBcmdzPiB7XG4gICAgcmV0dXJuIHRyYW5zZm9ybUVuY29kZXIoZ2V0U3RydWN0RW5jb2RlcihbWydkaXNjcmltaW5hdG9yJywgZml4RW5jb2RlclNpemUoZ2V0Qnl0ZXNFbmNvZGVyKCksIDgpXSwgWydhdXRob3JpdHknLCBnZXRBZGRyZXNzRW5jb2RlcigpXSwgWyd0ZW5hbnRQcm9ncmFtSWQnLCBnZXRBZGRyZXNzRW5jb2RlcigpXSwgWydlbG9PZmZzZXQnLCBnZXRVMzJFbmNvZGVyKCldLCBbJ2Vsb1NpemUnLCBnZXRVOEVuY29kZXIoKV0sIFsnZWxvV2luZG93JywgZ2V0VTY0RW5jb2RlcigpXSwgWydjYWxsYmFja1Byb2dyYW1JZCcsIGdldE9wdGlvbkVuY29kZXIoZ2V0QWRkcmVzc0VuY29kZXIoKSldLCBbJ2NhbGxiYWNrRGlzY3JpbWluYXRvcicsIGdldE9wdGlvbkVuY29kZXIoZml4RW5jb2RlclNpemUoZ2V0Qnl0ZXNFbmNvZGVyKCksIDgpKV1dKSwgKHZhbHVlKSA9PiAoeyAuLi52YWx1ZSwgZGlzY3JpbWluYXRvcjogVEVOQU5UX0RJU0NSSU1JTkFUT1IgfSkpO1xufVxuXG4vKiogR2V0cyB0aGUgZGVjb2RlciBmb3Ige0BsaW5rIFRlbmFudH0gYWNjb3VudCBkYXRhLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRlbmFudERlY29kZXIoKTogRGVjb2RlcjxUZW5hbnQ+IHtcbiAgICByZXR1cm4gZ2V0U3RydWN0RGVjb2RlcihbWydkaXNjcmltaW5hdG9yJywgZml4RGVjb2RlclNpemUoZ2V0Qnl0ZXNEZWNvZGVyKCksIDgpXSwgWydhdXRob3JpdHknLCBnZXRBZGRyZXNzRGVjb2RlcigpXSwgWyd0ZW5hbnRQcm9ncmFtSWQnLCBnZXRBZGRyZXNzRGVjb2RlcigpXSwgWydlbG9PZmZzZXQnLCBnZXRVMzJEZWNvZGVyKCldLCBbJ2Vsb1NpemUnLCBnZXRVOERlY29kZXIoKV0sIFsnZWxvV2luZG93JywgZ2V0VTY0RGVjb2RlcigpXSwgWydjYWxsYmFja1Byb2dyYW1JZCcsIGdldE9wdGlvbkRlY29kZXIoZ2V0QWRkcmVzc0RlY29kZXIoKSldLCBbJ2NhbGxiYWNrRGlzY3JpbWluYXRvcicsIGdldE9wdGlvbkRlY29kZXIoZml4RGVjb2RlclNpemUoZ2V0Qnl0ZXNEZWNvZGVyKCksIDgpKV1dKTtcbn1cblxuLyoqIEdldHMgdGhlIGNvZGVjIGZvciB7QGxpbmsgVGVuYW50fSBhY2NvdW50IGRhdGEuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGVuYW50Q29kZWMoKTogQ29kZWM8VGVuYW50QXJncywgVGVuYW50PiB7XG4gICAgcmV0dXJuIGNvbWJpbmVDb2RlYyhnZXRUZW5hbnRFbmNvZGVyKCksIGdldFRlbmFudERlY29kZXIoKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVUZW5hbnQ8VEFkZHJlc3MgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmc+KGVuY29kZWRBY2NvdW50OiBFbmNvZGVkQWNjb3VudDxUQWRkcmVzcz4pOiBBY2NvdW50PFRlbmFudCwgVEFkZHJlc3M+O1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZVRlbmFudDxUQWRkcmVzcyBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4oZW5jb2RlZEFjY291bnQ6IE1heWJlRW5jb2RlZEFjY291bnQ8VEFkZHJlc3M+KTogTWF5YmVBY2NvdW50PFRlbmFudCwgVEFkZHJlc3M+O1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZVRlbmFudDxUQWRkcmVzcyBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4oZW5jb2RlZEFjY291bnQ6IEVuY29kZWRBY2NvdW50PFRBZGRyZXNzPiB8IE1heWJlRW5jb2RlZEFjY291bnQ8VEFkZHJlc3M+KTogQWNjb3VudDxUZW5hbnQsIFRBZGRyZXNzPiB8IE1heWJlQWNjb3VudDxUZW5hbnQsIFRBZGRyZXNzPiB7XG4gIHJldHVybiBkZWNvZGVBY2NvdW50KGVuY29kZWRBY2NvdW50IGFzIE1heWJlRW5jb2RlZEFjY291bnQ8VEFkZHJlc3M+LCBnZXRUZW5hbnREZWNvZGVyKCkpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hUZW5hbnQ8VEFkZHJlc3MgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmc+KFxuICBycGM6IFBhcmFtZXRlcnM8dHlwZW9mIGZldGNoRW5jb2RlZEFjY291bnQ+WzBdLFxuICBhZGRyZXNzOiBBZGRyZXNzPFRBZGRyZXNzPixcbiAgY29uZmlnPzogRmV0Y2hBY2NvdW50Q29uZmlnLFxuKTogUHJvbWlzZTxBY2NvdW50PFRlbmFudCwgVEFkZHJlc3M+PiB7XG4gIGNvbnN0IG1heWJlQWNjb3VudCA9IGF3YWl0IGZldGNoTWF5YmVUZW5hbnQocnBjLCBhZGRyZXNzLCBjb25maWcpO1xuICBhc3NlcnRBY2NvdW50RXhpc3RzKG1heWJlQWNjb3VudCk7XG4gIHJldHVybiBtYXliZUFjY291bnQ7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaE1heWJlVGVuYW50PFRBZGRyZXNzIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPihcbiAgcnBjOiBQYXJhbWV0ZXJzPHR5cGVvZiBmZXRjaEVuY29kZWRBY2NvdW50PlswXSxcbiAgYWRkcmVzczogQWRkcmVzczxUQWRkcmVzcz4sXG4gIGNvbmZpZz86IEZldGNoQWNjb3VudENvbmZpZyxcbik6IFByb21pc2U8TWF5YmVBY2NvdW50PFRlbmFudCwgVEFkZHJlc3M+PiB7XG4gIGNvbnN0IG1heWJlQWNjb3VudCA9IGF3YWl0IGZldGNoRW5jb2RlZEFjY291bnQocnBjLCBhZGRyZXNzLCBjb25maWcpO1xuICByZXR1cm4gZGVjb2RlVGVuYW50KG1heWJlQWNjb3VudCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaEFsbFRlbmFudChcbiAgcnBjOiBQYXJhbWV0ZXJzPHR5cGVvZiBmZXRjaEVuY29kZWRBY2NvdW50cz5bMF0sXG4gIGFkZHJlc3NlczogQXJyYXk8QWRkcmVzcz4sXG4gIGNvbmZpZz86IEZldGNoQWNjb3VudHNDb25maWcsXG4pOiBQcm9taXNlPEFjY291bnQ8VGVuYW50PltdPiB7XG4gIGNvbnN0IG1heWJlQWNjb3VudHMgPSBhd2FpdCBmZXRjaEFsbE1heWJlVGVuYW50KHJwYywgYWRkcmVzc2VzLCBjb25maWcpO1xuICBhc3NlcnRBY2NvdW50c0V4aXN0KG1heWJlQWNjb3VudHMpO1xuICByZXR1cm4gbWF5YmVBY2NvdW50cztcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoQWxsTWF5YmVUZW5hbnQoXG4gIHJwYzogUGFyYW1ldGVyczx0eXBlb2YgZmV0Y2hFbmNvZGVkQWNjb3VudHM+WzBdLFxuICBhZGRyZXNzZXM6IEFycmF5PEFkZHJlc3M+LFxuICBjb25maWc/OiBGZXRjaEFjY291bnRzQ29uZmlnLFxuKTogUHJvbWlzZTxNYXliZUFjY291bnQ8VGVuYW50PltdPiB7XG4gIGNvbnN0IG1heWJlQWNjb3VudHMgPSBhd2FpdCBmZXRjaEVuY29kZWRBY2NvdW50cyhycGMsIGFkZHJlc3NlcywgY29uZmlnKTtcbiAgcmV0dXJuIG1heWJlQWNjb3VudHMubWFwKChtYXliZUFjY291bnQpID0+IGRlY29kZVRlbmFudChtYXliZUFjY291bnQpKTtcbn0iXX0=
@@ -0,0 +1,33 @@
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 SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM, type SolanaError } from '@solana/kit';
9
+ /** InvalidTenant: Account does not belong to the specified Tenant Program */
10
+ export declare const DUEL_ERROR__INVALID_TENANT = 6000;
11
+ /** DataTooSmall: Account data too small for ELO read */
12
+ export declare const DUEL_ERROR__DATA_TOO_SMALL = 6001;
13
+ /** Unauthorized: Unauthorized access */
14
+ export declare const DUEL_ERROR__UNAUTHORIZED = 6002;
15
+ /** InvalidEloSize: Invalid ELO size (must be 1, 2, 4, or 8 bytes) */
16
+ export declare const DUEL_ERROR__INVALID_ELO_SIZE = 6003;
17
+ /** InvalidTicketStatus: Invalid ticket status for this operation */
18
+ export declare const DUEL_ERROR__INVALID_TICKET_STATUS = 6004;
19
+ /** InvalidTicketAccount: Invalid ticket account */
20
+ export declare const DUEL_ERROR__INVALID_TICKET_ACCOUNT = 6005;
21
+ /** MissingCallbackProgram: Missing or invalid callback program in remaining accounts */
22
+ export declare const DUEL_ERROR__MISSING_CALLBACK_PROGRAM = 6006;
23
+ export type DuelError = typeof DUEL_ERROR__DATA_TOO_SMALL | typeof DUEL_ERROR__INVALID_ELO_SIZE | typeof DUEL_ERROR__INVALID_TENANT | typeof DUEL_ERROR__INVALID_TICKET_ACCOUNT | typeof DUEL_ERROR__INVALID_TICKET_STATUS | typeof DUEL_ERROR__MISSING_CALLBACK_PROGRAM | typeof DUEL_ERROR__UNAUTHORIZED;
24
+ export declare function getDuelErrorMessage(code: DuelError): string;
25
+ export declare function isDuelError<TProgramErrorCode extends DuelError>(error: unknown, transactionMessage: {
26
+ instructions: Record<number, {
27
+ programAddress: Address;
28
+ }>;
29
+ }, code?: TProgramErrorCode): error is SolanaError<typeof SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM> & Readonly<{
30
+ context: Readonly<{
31
+ code: TProgramErrorCode;
32
+ }>;
33
+ }>;
@@ -0,0 +1,37 @@
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 { isProgramError } from '@solana/kit';
9
+ import { DUEL_PROGRAM_ADDRESS } from '../programs';
10
+ /** InvalidTenant: Account does not belong to the specified Tenant Program */
11
+ export const DUEL_ERROR__INVALID_TENANT = 0x1770; // 6000
12
+ /** DataTooSmall: Account data too small for ELO read */
13
+ export const DUEL_ERROR__DATA_TOO_SMALL = 0x1771; // 6001
14
+ /** Unauthorized: Unauthorized access */
15
+ export const DUEL_ERROR__UNAUTHORIZED = 0x1772; // 6002
16
+ /** InvalidEloSize: Invalid ELO size (must be 1, 2, 4, or 8 bytes) */
17
+ export const DUEL_ERROR__INVALID_ELO_SIZE = 0x1773; // 6003
18
+ /** InvalidTicketStatus: Invalid ticket status for this operation */
19
+ export const DUEL_ERROR__INVALID_TICKET_STATUS = 0x1774; // 6004
20
+ /** InvalidTicketAccount: Invalid ticket account */
21
+ export const DUEL_ERROR__INVALID_TICKET_ACCOUNT = 0x1775; // 6005
22
+ /** MissingCallbackProgram: Missing or invalid callback program in remaining accounts */
23
+ export const DUEL_ERROR__MISSING_CALLBACK_PROGRAM = 0x1776; // 6006
24
+ let duelErrorMessages;
25
+ if (process.env.NODE_ENV !== 'production') {
26
+ duelErrorMessages = { [DUEL_ERROR__DATA_TOO_SMALL]: `Account data too small for ELO read`, [DUEL_ERROR__INVALID_ELO_SIZE]: `Invalid ELO size (must be 1, 2, 4, or 8 bytes)`, [DUEL_ERROR__INVALID_TENANT]: `Account does not belong to the specified Tenant Program`, [DUEL_ERROR__INVALID_TICKET_ACCOUNT]: `Invalid ticket account`, [DUEL_ERROR__INVALID_TICKET_STATUS]: `Invalid ticket status for this operation`, [DUEL_ERROR__MISSING_CALLBACK_PROGRAM]: `Missing or invalid callback program in remaining accounts`, [DUEL_ERROR__UNAUTHORIZED]: `Unauthorized access` };
27
+ }
28
+ export function getDuelErrorMessage(code) {
29
+ if (process.env.NODE_ENV !== 'production') {
30
+ return duelErrorMessages[code];
31
+ }
32
+ return 'Error message not available in production bundles.';
33
+ }
34
+ export function isDuelError(error, transactionMessage, code) {
35
+ return isProgramError(error, transactionMessage, DUEL_PROGRAM_ADDRESS, code);
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nZW5lcmF0ZWQvZHVlbC9lcnJvcnMvZHVlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUUsY0FBYyxFQUFnRixNQUFNLGFBQWEsQ0FBQztBQUMzSCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbkQsNkVBQTZFO0FBQzdFLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLE1BQU0sQ0FBQyxDQUFDLE9BQU87QUFDekQsd0RBQXdEO0FBQ3hELE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLE1BQU0sQ0FBQyxDQUFDLE9BQU87QUFDekQsd0NBQXdDO0FBQ3hDLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLE1BQU0sQ0FBQyxDQUFDLE9BQU87QUFDdkQscUVBQXFFO0FBQ3JFLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLE1BQU0sQ0FBQyxDQUFDLE9BQU87QUFDM0Qsb0VBQW9FO0FBQ3BFLE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLE9BQU87QUFDaEUsbURBQW1EO0FBQ25ELE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLE9BQU87QUFDakUsd0ZBQXdGO0FBQ3hGLE1BQU0sQ0FBQyxNQUFNLG9DQUFvQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLE9BQU87QUFJbkUsSUFBSSxpQkFBd0QsQ0FBQztBQUM3RCxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLFlBQVksRUFBRSxDQUFDO0lBQzFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLHFDQUFxQyxFQUFFLENBQUMsNEJBQTRCLENBQUMsRUFBRSxnREFBZ0QsRUFBRSxDQUFDLDBCQUEwQixDQUFDLEVBQUUseURBQXlELEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQyxFQUFFLHdCQUF3QixFQUFFLENBQUMsaUNBQWlDLENBQUMsRUFBRSwwQ0FBMEMsRUFBRSxDQUFDLG9DQUFvQyxDQUFDLEVBQUUsMkRBQTJELEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLENBQUM7QUFDbGpCLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsSUFBZTtJQUNqRCxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLFlBQVksRUFBRSxDQUFDO1FBQzFDLE9BQVEsaUJBQStDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELE9BQU8sb0RBQW9ELENBQUM7QUFDOUQsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQ3ZCLEtBQWMsRUFDZCxrQkFBaUYsRUFDakYsSUFBd0I7SUFFMUIsT0FBTyxjQUFjLENBQW9CLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNsRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIGNvZGUgd2FzIEFVVE9HRU5FUkFURUQgdXNpbmcgdGhlIENvZGFtYSBsaWJyYXJ5LlxuICogUGxlYXNlIERPIE5PVCBFRElUIFRISVMgRklMRSwgaW5zdGVhZCB1c2UgdmlzaXRvcnNcbiAqIHRvIGFkZCBmZWF0dXJlcywgdGhlbiByZXJ1biBDb2RhbWEgdG8gdXBkYXRlIGl0LlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2NvZGFtYS1pZGwvY29kYW1hXG4gKi9cblxuaW1wb3J0IHsgaXNQcm9ncmFtRXJyb3IsIHR5cGUgQWRkcmVzcywgdHlwZSBTT0xBTkFfRVJST1JfX0lOU1RSVUNUSU9OX0VSUk9SX19DVVNUT00sIHR5cGUgU29sYW5hRXJyb3IgfSBmcm9tICdAc29sYW5hL2tpdCc7XG5pbXBvcnQgeyBEVUVMX1BST0dSQU1fQUREUkVTUyB9IGZyb20gJy4uL3Byb2dyYW1zJztcblxuLyoqIEludmFsaWRUZW5hbnQ6IEFjY291bnQgZG9lcyBub3QgYmVsb25nIHRvIHRoZSBzcGVjaWZpZWQgVGVuYW50IFByb2dyYW0gKi9cbmV4cG9ydCBjb25zdCBEVUVMX0VSUk9SX19JTlZBTElEX1RFTkFOVCA9IDB4MTc3MDsgLy8gNjAwMFxuLyoqIERhdGFUb29TbWFsbDogQWNjb3VudCBkYXRhIHRvbyBzbWFsbCBmb3IgRUxPIHJlYWQgKi9cbmV4cG9ydCBjb25zdCBEVUVMX0VSUk9SX19EQVRBX1RPT19TTUFMTCA9IDB4MTc3MTsgLy8gNjAwMVxuLyoqIFVuYXV0aG9yaXplZDogVW5hdXRob3JpemVkIGFjY2VzcyAqL1xuZXhwb3J0IGNvbnN0IERVRUxfRVJST1JfX1VOQVVUSE9SSVpFRCA9IDB4MTc3MjsgLy8gNjAwMlxuLyoqIEludmFsaWRFbG9TaXplOiBJbnZhbGlkIEVMTyBzaXplIChtdXN0IGJlIDEsIDIsIDQsIG9yIDggYnl0ZXMpICovXG5leHBvcnQgY29uc3QgRFVFTF9FUlJPUl9fSU5WQUxJRF9FTE9fU0laRSA9IDB4MTc3MzsgLy8gNjAwM1xuLyoqIEludmFsaWRUaWNrZXRTdGF0dXM6IEludmFsaWQgdGlja2V0IHN0YXR1cyBmb3IgdGhpcyBvcGVyYXRpb24gKi9cbmV4cG9ydCBjb25zdCBEVUVMX0VSUk9SX19JTlZBTElEX1RJQ0tFVF9TVEFUVVMgPSAweDE3NzQ7IC8vIDYwMDRcbi8qKiBJbnZhbGlkVGlja2V0QWNjb3VudDogSW52YWxpZCB0aWNrZXQgYWNjb3VudCAqL1xuZXhwb3J0IGNvbnN0IERVRUxfRVJST1JfX0lOVkFMSURfVElDS0VUX0FDQ09VTlQgPSAweDE3NzU7IC8vIDYwMDVcbi8qKiBNaXNzaW5nQ2FsbGJhY2tQcm9ncmFtOiBNaXNzaW5nIG9yIGludmFsaWQgY2FsbGJhY2sgcHJvZ3JhbSBpbiByZW1haW5pbmcgYWNjb3VudHMgKi9cbmV4cG9ydCBjb25zdCBEVUVMX0VSUk9SX19NSVNTSU5HX0NBTExCQUNLX1BST0dSQU0gPSAweDE3NzY7IC8vIDYwMDZcblxuZXhwb3J0IHR5cGUgRHVlbEVycm9yID0gdHlwZW9mIERVRUxfRVJST1JfX0RBVEFfVE9PX1NNQUxMIHwgdHlwZW9mIERVRUxfRVJST1JfX0lOVkFMSURfRUxPX1NJWkUgfCB0eXBlb2YgRFVFTF9FUlJPUl9fSU5WQUxJRF9URU5BTlQgfCB0eXBlb2YgRFVFTF9FUlJPUl9fSU5WQUxJRF9USUNLRVRfQUNDT1VOVCB8IHR5cGVvZiBEVUVMX0VSUk9SX19JTlZBTElEX1RJQ0tFVF9TVEFUVVMgfCB0eXBlb2YgRFVFTF9FUlJPUl9fTUlTU0lOR19DQUxMQkFDS19QUk9HUkFNIHwgdHlwZW9mIERVRUxfRVJST1JfX1VOQVVUSE9SSVpFRDtcblxubGV0IGR1ZWxFcnJvck1lc3NhZ2VzOiBSZWNvcmQ8RHVlbEVycm9yLCBzdHJpbmc+IHwgdW5kZWZpbmVkO1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgZHVlbEVycm9yTWVzc2FnZXMgPSB7IFtEVUVMX0VSUk9SX19EQVRBX1RPT19TTUFMTF06IGBBY2NvdW50IGRhdGEgdG9vIHNtYWxsIGZvciBFTE8gcmVhZGAsIFtEVUVMX0VSUk9SX19JTlZBTElEX0VMT19TSVpFXTogYEludmFsaWQgRUxPIHNpemUgKG11c3QgYmUgMSwgMiwgNCwgb3IgOCBieXRlcylgLCBbRFVFTF9FUlJPUl9fSU5WQUxJRF9URU5BTlRdOiBgQWNjb3VudCBkb2VzIG5vdCBiZWxvbmcgdG8gdGhlIHNwZWNpZmllZCBUZW5hbnQgUHJvZ3JhbWAsIFtEVUVMX0VSUk9SX19JTlZBTElEX1RJQ0tFVF9BQ0NPVU5UXTogYEludmFsaWQgdGlja2V0IGFjY291bnRgLCBbRFVFTF9FUlJPUl9fSU5WQUxJRF9USUNLRVRfU1RBVFVTXTogYEludmFsaWQgdGlja2V0IHN0YXR1cyBmb3IgdGhpcyBvcGVyYXRpb25gLCBbRFVFTF9FUlJPUl9fTUlTU0lOR19DQUxMQkFDS19QUk9HUkFNXTogYE1pc3Npbmcgb3IgaW52YWxpZCBjYWxsYmFjayBwcm9ncmFtIGluIHJlbWFpbmluZyBhY2NvdW50c2AsIFtEVUVMX0VSUk9SX19VTkFVVEhPUklaRURdOiBgVW5hdXRob3JpemVkIGFjY2Vzc2AgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldER1ZWxFcnJvck1lc3NhZ2UoY29kZTogRHVlbEVycm9yKTogc3RyaW5nIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICByZXR1cm4gKGR1ZWxFcnJvck1lc3NhZ2VzIGFzIFJlY29yZDxEdWVsRXJyb3IsIHN0cmluZz4pW2NvZGVdO1xuICB9XG5cbiAgcmV0dXJuICdFcnJvciBtZXNzYWdlIG5vdCBhdmFpbGFibGUgaW4gcHJvZHVjdGlvbiBidW5kbGVzLic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0R1ZWxFcnJvcjxUUHJvZ3JhbUVycm9yQ29kZSBleHRlbmRzIER1ZWxFcnJvcj4oXG4gICAgZXJyb3I6IHVua25vd24sXG4gICAgdHJhbnNhY3Rpb25NZXNzYWdlOiB7IGluc3RydWN0aW9uczogUmVjb3JkPG51bWJlciwgeyBwcm9ncmFtQWRkcmVzczogQWRkcmVzcyB9PiB9LFxuICAgIGNvZGU/OiBUUHJvZ3JhbUVycm9yQ29kZSxcbik6IGVycm9yIGlzIFNvbGFuYUVycm9yPHR5cGVvZiBTT0xBTkFfRVJST1JfX0lOU1RSVUNUSU9OX0VSUk9SX19DVVNUT00+ICYgUmVhZG9ubHk8eyBjb250ZXh0OiBSZWFkb25seTx7IGNvZGU6IFRQcm9ncmFtRXJyb3JDb2RlIH0+IH0+IHtcbiAgcmV0dXJuIGlzUHJvZ3JhbUVycm9yPFRQcm9ncmFtRXJyb3JDb2RlPihlcnJvciwgdHJhbnNhY3Rpb25NZXNzYWdlLCBEVUVMX1BST0dSQU1fQUREUkVTUywgY29kZSk7XG59Il19
@@ -0,0 +1,8 @@
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 './duel';
@@ -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 './duel';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL2R1ZWwvZXJyb3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILGNBQWMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIGNvZGUgd2FzIEFVVE9HRU5FUkFURUQgdXNpbmcgdGhlIENvZGFtYSBsaWJyYXJ5LlxuICogUGxlYXNlIERPIE5PVCBFRElUIFRISVMgRklMRSwgaW5zdGVhZCB1c2UgdmlzaXRvcnNcbiAqIHRvIGFkZCBmZWF0dXJlcywgdGhlbiByZXJ1biBDb2RhbWEgdG8gdXBkYXRlIGl0LlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2NvZGFtYS1pZGwvY29kYW1hXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9kdWVsJzsiXX0=
@@ -0,0 +1,12 @@
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 './accounts';
9
+ export * from './errors';
10
+ export * from './instructions';
11
+ export * from './programs';
12
+ export * from './types';
@@ -0,0 +1,13 @@
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 './accounts';
9
+ export * from './errors';
10
+ export * from './instructions';
11
+ export * from './programs';
12
+ export * from './types';
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL2R1ZWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpcyBjb2RlIHdhcyBBVVRPR0VORVJBVEVEIHVzaW5nIHRoZSBDb2RhbWEgbGlicmFyeS5cbiAqIFBsZWFzZSBETyBOT1QgRURJVCBUSElTIEZJTEUsIGluc3RlYWQgdXNlIHZpc2l0b3JzXG4gKiB0byBhZGQgZmVhdHVyZXMsIHRoZW4gcmVydW4gQ29kYW1hIHRvIHVwZGF0ZSBpdC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9jb2RhbWEtaWRsL2NvZGFtYVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vYWNjb3VudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9lcnJvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnN0cnVjdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9ncmFtcyc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJzsiXX0=
@@ -0,0 +1,45 @@
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 AccountMeta, type AccountSignerMeta, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type Instruction, type InstructionWithAccounts, type InstructionWithData, type ReadonlyAccount, type ReadonlySignerAccount, type ReadonlyUint8Array, type TransactionSigner, type WritableAccount } from '@solana/kit';
9
+ import { DUEL_PROGRAM_ADDRESS } from '../programs';
10
+ export declare const CANCEL_TICKET_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
11
+ export declare function getCancelTicketDiscriminatorBytes(): ReadonlyUint8Array<ArrayBuffer>;
12
+ export type CancelTicketInstruction<TProgram extends string = typeof DUEL_PROGRAM_ADDRESS, TAccountTicket extends string | AccountMeta<string> = string, TAccountTenant extends string | AccountMeta<string> = string, TAccountPlayer extends string | AccountMeta<string> = string, TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[TAccountTicket extends string ? WritableAccount<TAccountTicket> : TAccountTicket, TAccountTenant extends string ? ReadonlyAccount<TAccountTenant> : TAccountTenant, TAccountPlayer extends string ? ReadonlySignerAccount<TAccountPlayer> & AccountSignerMeta<TAccountPlayer> : TAccountPlayer, ...TRemainingAccounts]>;
13
+ export type CancelTicketInstructionData = {
14
+ discriminator: ReadonlyUint8Array;
15
+ };
16
+ export type CancelTicketInstructionDataArgs = {};
17
+ export declare function getCancelTicketInstructionDataEncoder(): FixedSizeEncoder<CancelTicketInstructionDataArgs>;
18
+ export declare function getCancelTicketInstructionDataDecoder(): FixedSizeDecoder<CancelTicketInstructionData>;
19
+ export declare function getCancelTicketInstructionDataCodec(): FixedSizeCodec<CancelTicketInstructionDataArgs, CancelTicketInstructionData>;
20
+ export type CancelTicketAsyncInput<TAccountTicket extends string = string, TAccountTenant extends string = string, TAccountPlayer extends string = string> = {
21
+ ticket?: Address<TAccountTicket>;
22
+ tenant: Address<TAccountTenant>;
23
+ player: TransactionSigner<TAccountPlayer>;
24
+ };
25
+ export declare function getCancelTicketInstructionAsync<TAccountTicket extends string, TAccountTenant extends string, TAccountPlayer extends string, TProgramAddress extends Address = typeof DUEL_PROGRAM_ADDRESS>(input: CancelTicketAsyncInput<TAccountTicket, TAccountTenant, TAccountPlayer>, config?: {
26
+ programAddress?: TProgramAddress;
27
+ }): Promise<CancelTicketInstruction<TProgramAddress, TAccountTicket, TAccountTenant, TAccountPlayer>>;
28
+ export type CancelTicketInput<TAccountTicket extends string = string, TAccountTenant extends string = string, TAccountPlayer extends string = string> = {
29
+ ticket: Address<TAccountTicket>;
30
+ tenant: Address<TAccountTenant>;
31
+ player: TransactionSigner<TAccountPlayer>;
32
+ };
33
+ export declare function getCancelTicketInstruction<TAccountTicket extends string, TAccountTenant extends string, TAccountPlayer extends string, TProgramAddress extends Address = typeof DUEL_PROGRAM_ADDRESS>(input: CancelTicketInput<TAccountTicket, TAccountTenant, TAccountPlayer>, config?: {
34
+ programAddress?: TProgramAddress;
35
+ }): CancelTicketInstruction<TProgramAddress, TAccountTicket, TAccountTenant, TAccountPlayer>;
36
+ export type ParsedCancelTicketInstruction<TProgram extends string = typeof DUEL_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
37
+ programAddress: Address<TProgram>;
38
+ accounts: {
39
+ ticket: TAccountMetas[0];
40
+ tenant: TAccountMetas[1];
41
+ player: TAccountMetas[2];
42
+ };
43
+ data: CancelTicketInstructionData;
44
+ };
45
+ export declare function parseCancelTicketInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedCancelTicketInstruction<TProgram, TAccountMetas>;
@@ -0,0 +1,56 @@
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, fixDecoderSize, fixEncoderSize, getAddressEncoder, getBytesDecoder, getBytesEncoder, getProgramDerivedAddress, getStructDecoder, getStructEncoder, SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, SolanaError, transformEncoder } from '@solana/kit';
9
+ import { getAccountMetaFactory, getAddressFromResolvedInstructionAccount } from '@solana/program-client-core';
10
+ import { DUEL_PROGRAM_ADDRESS } from '../programs';
11
+ export const CANCEL_TICKET_DISCRIMINATOR = new Uint8Array([216, 28, 247, 206, 195, 171, 100, 143]);
12
+ export function getCancelTicketDiscriminatorBytes() { return fixEncoderSize(getBytesEncoder(), 8).encode(CANCEL_TICKET_DISCRIMINATOR); }
13
+ export function getCancelTicketInstructionDataEncoder() {
14
+ return transformEncoder(getStructEncoder([['discriminator', fixEncoderSize(getBytesEncoder(), 8)]]), (value) => ({ ...value, discriminator: CANCEL_TICKET_DISCRIMINATOR }));
15
+ }
16
+ export function getCancelTicketInstructionDataDecoder() {
17
+ return getStructDecoder([['discriminator', fixDecoderSize(getBytesDecoder(), 8)]]);
18
+ }
19
+ export function getCancelTicketInstructionDataCodec() {
20
+ return combineCodec(getCancelTicketInstructionDataEncoder(), getCancelTicketInstructionDataDecoder());
21
+ }
22
+ export async function getCancelTicketInstructionAsync(input, config) {
23
+ // Program address.
24
+ const programAddress = config?.programAddress ?? DUEL_PROGRAM_ADDRESS;
25
+ // Original accounts.
26
+ const originalAccounts = { ticket: { value: input.ticket ?? null, isWritable: true }, tenant: { value: input.tenant ?? null, isWritable: false }, player: { value: input.player ?? null, isWritable: false } };
27
+ const accounts = originalAccounts;
28
+ // Resolve default values.
29
+ if (!accounts.ticket.value) {
30
+ accounts.ticket.value = await getProgramDerivedAddress({ programAddress, seeds: [getBytesEncoder().encode(new Uint8Array([116, 105, 99, 107, 101, 116])), getAddressEncoder().encode(getAddressFromResolvedInstructionAccount("player", accounts.player.value)), getAddressEncoder().encode(getAddressFromResolvedInstructionAccount("tenant", accounts.tenant.value))] });
31
+ }
32
+ const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');
33
+ return Object.freeze({ accounts: [getAccountMeta("ticket", accounts.ticket), getAccountMeta("tenant", accounts.tenant), getAccountMeta("player", accounts.player)], data: getCancelTicketInstructionDataEncoder().encode({}), programAddress });
34
+ }
35
+ export function getCancelTicketInstruction(input, config) {
36
+ // Program address.
37
+ const programAddress = config?.programAddress ?? DUEL_PROGRAM_ADDRESS;
38
+ // Original accounts.
39
+ const originalAccounts = { ticket: { value: input.ticket ?? null, isWritable: true }, tenant: { value: input.tenant ?? null, isWritable: false }, player: { value: input.player ?? null, isWritable: false } };
40
+ const accounts = originalAccounts;
41
+ const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');
42
+ return Object.freeze({ accounts: [getAccountMeta("ticket", accounts.ticket), getAccountMeta("tenant", accounts.tenant), getAccountMeta("player", accounts.player)], data: getCancelTicketInstructionDataEncoder().encode({}), programAddress });
43
+ }
44
+ export function parseCancelTicketInstruction(instruction) {
45
+ if (instruction.accounts.length < 3) {
46
+ throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, { actualAccountMetas: instruction.accounts.length, expectedAccountMetas: 3 });
47
+ }
48
+ let accountIndex = 0;
49
+ const getNextAccount = () => {
50
+ const accountMeta = instruction.accounts[accountIndex];
51
+ accountIndex += 1;
52
+ return accountMeta;
53
+ };
54
+ return { programAddress: instruction.programAddress, accounts: { ticket: getNextAccount(), tenant: getNextAccount(), player: getNextAccount() }, data: getCancelTicketInstructionDataDecoder().decode(instruction.data) };
55
+ }
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuY2VsVGlja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9kdWVsL2luc3RydWN0aW9ucy9jYW5jZWxUaWNrZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsd0JBQXdCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUseURBQXlELEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFnVSxNQUFNLGFBQWEsQ0FBQztBQUN0bEIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHdDQUF3QyxFQUFtQyxNQUFNLDZCQUE2QixDQUFDO0FBQy9JLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBRW5HLE1BQU0sVUFBVSxpQ0FBaUMsS0FBSyxPQUFPLGNBQWMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFTeEksTUFBTSxVQUFVLHFDQUFxQztJQUNqRCxPQUFPLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsY0FBYyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsYUFBYSxFQUFFLDJCQUEyQixFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2hMLENBQUM7QUFFRCxNQUFNLFVBQVUscUNBQXFDO0lBQ2pELE9BQU8sZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkYsQ0FBQztBQUVELE1BQU0sVUFBVSxtQ0FBbUM7SUFDL0MsT0FBTyxZQUFZLENBQUMscUNBQXFDLEVBQUUsRUFBRSxxQ0FBcUMsRUFBRSxDQUFDLENBQUM7QUFDMUcsQ0FBQztBQVFELE1BQU0sQ0FBQyxLQUFLLFVBQVUsK0JBQStCLENBQTZKLEtBQTZFLEVBQUUsTUFBNkM7SUFDNVUsbUJBQW1CO0lBQ3JCLE1BQU0sY0FBYyxHQUFHLE1BQU0sRUFBRSxjQUFjLElBQUksb0JBQW9CLENBQUM7SUFFckUscUJBQXFCO0lBQ3RCLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFBO0lBQzlNLE1BQU0sUUFBUSxHQUFHLGdCQUFxRixDQUFDO0lBR3ZHLDBCQUEwQjtJQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QixRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLHdCQUF3QixDQUFDLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDLGVBQWUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLENBQUMsTUFBTSxDQUFDLHdDQUF3QyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxNQUFNLENBQUMsd0NBQXdDLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzVyxDQUFDO0lBRUQsTUFBTSxjQUFjLEdBQUcscUJBQXFCLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzFFLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLGNBQWMsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLGNBQWMsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLHFDQUFxQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLGNBQWMsRUFBOEYsQ0FBQyxDQUFDO0FBQzVVLENBQUM7QUFRRCxNQUFNLFVBQVUsMEJBQTBCLENBQTZKLEtBQXdFLEVBQUUsTUFBNkM7SUFDNVQsbUJBQW1CO0lBQ3JCLE1BQU0sY0FBYyxHQUFHLE1BQU0sRUFBRSxjQUFjLElBQUksb0JBQW9CLENBQUM7SUFFckUscUJBQXFCO0lBQ3RCLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFBO0lBQzlNLE1BQU0sUUFBUSxHQUFHLGdCQUFxRixDQUFDO0lBS3ZHLE1BQU0sY0FBYyxHQUFHLHFCQUFxQixDQUFDLGNBQWMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMxRSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxjQUFjLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxjQUFjLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxxQ0FBcUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxjQUFjLEVBQThGLENBQUMsQ0FBQztBQUM1VSxDQUFDO0FBVUQsTUFBTSxVQUFVLDRCQUE0QixDQUF3RSxXQUFxSDtJQUN2TyxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxXQUFXLENBQUMseURBQXlELEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2pLLENBQUM7SUFDRCxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDckIsTUFBTSxjQUFjLEdBQUcsR0FBRyxFQUFFO1FBQzFCLE1BQU0sV0FBVyxHQUFJLFdBQVcsQ0FBQyxRQUEwQixDQUFDLFlBQVksQ0FBRSxDQUFDO1FBQzNFLFlBQVksSUFBSSxDQUFDLENBQUM7UUFDbEIsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQyxDQUFBO0lBQ0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLENBQUMsY0FBYyxFQUFFLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLHFDQUFxQyxFQUFFLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0FBQzVOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaXMgY29kZSB3YXMgQVVUT0dFTkVSQVRFRCB1c2luZyB0aGUgQ29kYW1hIGxpYnJhcnkuXG4gKiBQbGVhc2UgRE8gTk9UIEVESVQgVEhJUyBGSUxFLCBpbnN0ZWFkIHVzZSB2aXNpdG9yc1xuICogdG8gYWRkIGZlYXR1cmVzLCB0aGVuIHJlcnVuIENvZGFtYSB0byB1cGRhdGUgaXQuXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vY29kYW1hLWlkbC9jb2RhbWFcbiAqL1xuXG5pbXBvcnQgeyBjb21iaW5lQ29kZWMsIGZpeERlY29kZXJTaXplLCBmaXhFbmNvZGVyU2l6ZSwgZ2V0QWRkcmVzc0VuY29kZXIsIGdldEJ5dGVzRGVjb2RlciwgZ2V0Qnl0ZXNFbmNvZGVyLCBnZXRQcm9ncmFtRGVyaXZlZEFkZHJlc3MsIGdldFN0cnVjdERlY29kZXIsIGdldFN0cnVjdEVuY29kZXIsIFNPTEFOQV9FUlJPUl9fUFJPR1JBTV9DTElFTlRTX19JTlNVRkZJQ0lFTlRfQUNDT1VOVF9NRVRBUywgU29sYW5hRXJyb3IsIHRyYW5zZm9ybUVuY29kZXIsIHR5cGUgQWNjb3VudE1ldGEsIHR5cGUgQWNjb3VudFNpZ25lck1ldGEsIHR5cGUgQWRkcmVzcywgdHlwZSBGaXhlZFNpemVDb2RlYywgdHlwZSBGaXhlZFNpemVEZWNvZGVyLCB0eXBlIEZpeGVkU2l6ZUVuY29kZXIsIHR5cGUgSW5zdHJ1Y3Rpb24sIHR5cGUgSW5zdHJ1Y3Rpb25XaXRoQWNjb3VudHMsIHR5cGUgSW5zdHJ1Y3Rpb25XaXRoRGF0YSwgdHlwZSBSZWFkb25seUFjY291bnQsIHR5cGUgUmVhZG9ubHlTaWduZXJBY2NvdW50LCB0eXBlIFJlYWRvbmx5VWludDhBcnJheSwgdHlwZSBUcmFuc2FjdGlvblNpZ25lciwgdHlwZSBXcml0YWJsZUFjY291bnQgfSBmcm9tICdAc29sYW5hL2tpdCc7XG5pbXBvcnQgeyBnZXRBY2NvdW50TWV0YUZhY3RvcnksIGdldEFkZHJlc3NGcm9tUmVzb2x2ZWRJbnN0cnVjdGlvbkFjY291bnQsIHR5cGUgUmVzb2x2ZWRJbnN0cnVjdGlvbkFjY291bnQgfSBmcm9tICdAc29sYW5hL3Byb2dyYW0tY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgRFVFTF9QUk9HUkFNX0FERFJFU1MgfSBmcm9tICcuLi9wcm9ncmFtcyc7XG5cbmV4cG9ydCBjb25zdCBDQU5DRUxfVElDS0VUX0RJU0NSSU1JTkFUT1IgPSBuZXcgVWludDhBcnJheShbMjE2LCAyOCwgMjQ3LCAyMDYsIDE5NSwgMTcxLCAxMDAsIDE0M10pO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2FuY2VsVGlja2V0RGlzY3JpbWluYXRvckJ5dGVzKCkgeyByZXR1cm4gZml4RW5jb2RlclNpemUoZ2V0Qnl0ZXNFbmNvZGVyKCksIDgpLmVuY29kZShDQU5DRUxfVElDS0VUX0RJU0NSSU1JTkFUT1IpOyB9XG5cbmV4cG9ydCB0eXBlIENhbmNlbFRpY2tldEluc3RydWN0aW9uPFRQcm9ncmFtIGV4dGVuZHMgc3RyaW5nID0gdHlwZW9mIERVRUxfUFJPR1JBTV9BRERSRVNTLCBUQWNjb3VudFRpY2tldCBleHRlbmRzIHN0cmluZyB8IEFjY291bnRNZXRhPHN0cmluZz4gPSBzdHJpbmcsIFRBY2NvdW50VGVuYW50IGV4dGVuZHMgc3RyaW5nIHwgQWNjb3VudE1ldGE8c3RyaW5nPiA9IHN0cmluZywgVEFjY291bnRQbGF5ZXIgZXh0ZW5kcyBzdHJpbmcgfCBBY2NvdW50TWV0YTxzdHJpbmc+ID0gc3RyaW5nLCBUUmVtYWluaW5nQWNjb3VudHMgZXh0ZW5kcyByZWFkb25seSBBY2NvdW50TWV0YTxzdHJpbmc+W10gPSBbXT4gPVxuSW5zdHJ1Y3Rpb248VFByb2dyYW0+ICYgSW5zdHJ1Y3Rpb25XaXRoRGF0YTxSZWFkb25seVVpbnQ4QXJyYXk+ICYgSW5zdHJ1Y3Rpb25XaXRoQWNjb3VudHM8W1RBY2NvdW50VGlja2V0IGV4dGVuZHMgc3RyaW5nID8gV3JpdGFibGVBY2NvdW50PFRBY2NvdW50VGlja2V0PiA6IFRBY2NvdW50VGlja2V0LCBUQWNjb3VudFRlbmFudCBleHRlbmRzIHN0cmluZyA/IFJlYWRvbmx5QWNjb3VudDxUQWNjb3VudFRlbmFudD4gOiBUQWNjb3VudFRlbmFudCwgVEFjY291bnRQbGF5ZXIgZXh0ZW5kcyBzdHJpbmcgPyBSZWFkb25seVNpZ25lckFjY291bnQ8VEFjY291bnRQbGF5ZXI+ICYgQWNjb3VudFNpZ25lck1ldGE8VEFjY291bnRQbGF5ZXI+IDogVEFjY291bnRQbGF5ZXIsIC4uLlRSZW1haW5pbmdBY2NvdW50c10+O1xuXG5leHBvcnQgdHlwZSBDYW5jZWxUaWNrZXRJbnN0cnVjdGlvbkRhdGEgPSB7IGRpc2NyaW1pbmF0b3I6IFJlYWRvbmx5VWludDhBcnJheTsgIH07XG5cbmV4cG9ydCB0eXBlIENhbmNlbFRpY2tldEluc3RydWN0aW9uRGF0YUFyZ3MgPSB7ICB9O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2FuY2VsVGlja2V0SW5zdHJ1Y3Rpb25EYXRhRW5jb2RlcigpOiBGaXhlZFNpemVFbmNvZGVyPENhbmNlbFRpY2tldEluc3RydWN0aW9uRGF0YUFyZ3M+IHtcbiAgICByZXR1cm4gdHJhbnNmb3JtRW5jb2RlcihnZXRTdHJ1Y3RFbmNvZGVyKFtbJ2Rpc2NyaW1pbmF0b3InLCBmaXhFbmNvZGVyU2l6ZShnZXRCeXRlc0VuY29kZXIoKSwgOCldXSksICh2YWx1ZSkgPT4gKHsgLi4udmFsdWUsIGRpc2NyaW1pbmF0b3I6IENBTkNFTF9USUNLRVRfRElTQ1JJTUlOQVRPUiB9KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDYW5jZWxUaWNrZXRJbnN0cnVjdGlvbkRhdGFEZWNvZGVyKCk6IEZpeGVkU2l6ZURlY29kZXI8Q2FuY2VsVGlja2V0SW5zdHJ1Y3Rpb25EYXRhPiB7XG4gICAgcmV0dXJuIGdldFN0cnVjdERlY29kZXIoW1snZGlzY3JpbWluYXRvcicsIGZpeERlY29kZXJTaXplKGdldEJ5dGVzRGVjb2RlcigpLCA4KV1dKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENhbmNlbFRpY2tldEluc3RydWN0aW9uRGF0YUNvZGVjKCk6IEZpeGVkU2l6ZUNvZGVjPENhbmNlbFRpY2tldEluc3RydWN0aW9uRGF0YUFyZ3MsIENhbmNlbFRpY2tldEluc3RydWN0aW9uRGF0YT4ge1xuICAgIHJldHVybiBjb21iaW5lQ29kZWMoZ2V0Q2FuY2VsVGlja2V0SW5zdHJ1Y3Rpb25EYXRhRW5jb2RlcigpLCBnZXRDYW5jZWxUaWNrZXRJbnN0cnVjdGlvbkRhdGFEZWNvZGVyKCkpO1xufVxuXG5leHBvcnQgdHlwZSBDYW5jZWxUaWNrZXRBc3luY0lucHV0PFRBY2NvdW50VGlja2V0IGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLCBUQWNjb3VudFRlbmFudCBleHRlbmRzIHN0cmluZyA9IHN0cmluZywgVEFjY291bnRQbGF5ZXIgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmc+ID0gIHtcbiAgdGlja2V0PzogQWRkcmVzczxUQWNjb3VudFRpY2tldD47XG50ZW5hbnQ6IEFkZHJlc3M8VEFjY291bnRUZW5hbnQ+O1xucGxheWVyOiBUcmFuc2FjdGlvblNpZ25lcjxUQWNjb3VudFBsYXllcj47XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRDYW5jZWxUaWNrZXRJbnN0cnVjdGlvbkFzeW5jPFRBY2NvdW50VGlja2V0IGV4dGVuZHMgc3RyaW5nLCBUQWNjb3VudFRlbmFudCBleHRlbmRzIHN0cmluZywgVEFjY291bnRQbGF5ZXIgZXh0ZW5kcyBzdHJpbmcsIFRQcm9ncmFtQWRkcmVzcyBleHRlbmRzIEFkZHJlc3MgPSB0eXBlb2YgRFVFTF9QUk9HUkFNX0FERFJFU1M+KGlucHV0OiBDYW5jZWxUaWNrZXRBc3luY0lucHV0PFRBY2NvdW50VGlja2V0LCBUQWNjb3VudFRlbmFudCwgVEFjY291bnRQbGF5ZXI+LCBjb25maWc/OiB7IHByb2dyYW1BZGRyZXNzPzogVFByb2dyYW1BZGRyZXNzIH0gKTogUHJvbWlzZTxDYW5jZWxUaWNrZXRJbnN0cnVjdGlvbjxUUHJvZ3JhbUFkZHJlc3MsIFRBY2NvdW50VGlja2V0LCBUQWNjb3VudFRlbmFudCwgVEFjY291bnRQbGF5ZXI+PiB7XG4gIC8vIFByb2dyYW0gYWRkcmVzcy5cbmNvbnN0IHByb2dyYW1BZGRyZXNzID0gY29uZmlnPy5wcm9ncmFtQWRkcmVzcyA/PyBEVUVMX1BST0dSQU1fQUREUkVTUztcblxuIC8vIE9yaWdpbmFsIGFjY291bnRzLlxuY29uc3Qgb3JpZ2luYWxBY2NvdW50cyA9IHsgdGlja2V0OiB7IHZhbHVlOiBpbnB1dC50aWNrZXQgPz8gbnVsbCwgaXNXcml0YWJsZTogdHJ1ZSB9LCB0ZW5hbnQ6IHsgdmFsdWU6IGlucHV0LnRlbmFudCA/PyBudWxsLCBpc1dyaXRhYmxlOiBmYWxzZSB9LCBwbGF5ZXI6IHsgdmFsdWU6IGlucHV0LnBsYXllciA/PyBudWxsLCBpc1dyaXRhYmxlOiBmYWxzZSB9IH1cbmNvbnN0IGFjY291bnRzID0gb3JpZ2luYWxBY2NvdW50cyBhcyBSZWNvcmQ8a2V5b2YgdHlwZW9mIG9yaWdpbmFsQWNjb3VudHMsIFJlc29sdmVkSW5zdHJ1Y3Rpb25BY2NvdW50PjtcblxuXG4vLyBSZXNvbHZlIGRlZmF1bHQgdmFsdWVzLlxuaWYgKCFhY2NvdW50cy50aWNrZXQudmFsdWUpIHtcbmFjY291bnRzLnRpY2tldC52YWx1ZSA9IGF3YWl0IGdldFByb2dyYW1EZXJpdmVkQWRkcmVzcyh7IHByb2dyYW1BZGRyZXNzLCBzZWVkczogW2dldEJ5dGVzRW5jb2RlcigpLmVuY29kZShuZXcgVWludDhBcnJheShbMTE2LCAxMDUsIDk5LCAxMDcsIDEwMSwgMTE2XSkpLCBnZXRBZGRyZXNzRW5jb2RlcigpLmVuY29kZShnZXRBZGRyZXNzRnJvbVJlc29sdmVkSW5zdHJ1Y3Rpb25BY2NvdW50KFwicGxheWVyXCIsIGFjY291bnRzLnBsYXllci52YWx1ZSkpLCBnZXRBZGRyZXNzRW5jb2RlcigpLmVuY29kZShnZXRBZGRyZXNzRnJvbVJlc29sdmVkSW5zdHJ1Y3Rpb25BY2NvdW50KFwidGVuYW50XCIsIGFjY291bnRzLnRlbmFudC52YWx1ZSkpXSB9KTtcbn1cblxuY29uc3QgZ2V0QWNjb3VudE1ldGEgPSBnZXRBY2NvdW50TWV0YUZhY3RvcnkocHJvZ3JhbUFkZHJlc3MsICdwcm9ncmFtSWQnKTtcbnJldHVybiBPYmplY3QuZnJlZXplKHsgYWNjb3VudHM6IFtnZXRBY2NvdW50TWV0YShcInRpY2tldFwiLCBhY2NvdW50cy50aWNrZXQpLCBnZXRBY2NvdW50TWV0YShcInRlbmFudFwiLCBhY2NvdW50cy50ZW5hbnQpLCBnZXRBY2NvdW50TWV0YShcInBsYXllclwiLCBhY2NvdW50cy5wbGF5ZXIpXSwgZGF0YTogZ2V0Q2FuY2VsVGlja2V0SW5zdHJ1Y3Rpb25EYXRhRW5jb2RlcigpLmVuY29kZSh7fSksIHByb2dyYW1BZGRyZXNzIH0gYXMgQ2FuY2VsVGlja2V0SW5zdHJ1Y3Rpb248VFByb2dyYW1BZGRyZXNzLCBUQWNjb3VudFRpY2tldCwgVEFjY291bnRUZW5hbnQsIFRBY2NvdW50UGxheWVyPik7XG59XG5cbmV4cG9ydCB0eXBlIENhbmNlbFRpY2tldElucHV0PFRBY2NvdW50VGlja2V0IGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLCBUQWNjb3VudFRlbmFudCBleHRlbmRzIHN0cmluZyA9IHN0cmluZywgVEFjY291bnRQbGF5ZXIgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmc+ID0gIHtcbiAgdGlja2V0OiBBZGRyZXNzPFRBY2NvdW50VGlja2V0PjtcbnRlbmFudDogQWRkcmVzczxUQWNjb3VudFRlbmFudD47XG5wbGF5ZXI6IFRyYW5zYWN0aW9uU2lnbmVyPFRBY2NvdW50UGxheWVyPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENhbmNlbFRpY2tldEluc3RydWN0aW9uPFRBY2NvdW50VGlja2V0IGV4dGVuZHMgc3RyaW5nLCBUQWNjb3VudFRlbmFudCBleHRlbmRzIHN0cmluZywgVEFjY291bnRQbGF5ZXIgZXh0ZW5kcyBzdHJpbmcsIFRQcm9ncmFtQWRkcmVzcyBleHRlbmRzIEFkZHJlc3MgPSB0eXBlb2YgRFVFTF9QUk9HUkFNX0FERFJFU1M+KGlucHV0OiBDYW5jZWxUaWNrZXRJbnB1dDxUQWNjb3VudFRpY2tldCwgVEFjY291bnRUZW5hbnQsIFRBY2NvdW50UGxheWVyPiwgY29uZmlnPzogeyBwcm9ncmFtQWRkcmVzcz86IFRQcm9ncmFtQWRkcmVzcyB9ICk6IENhbmNlbFRpY2tldEluc3RydWN0aW9uPFRQcm9ncmFtQWRkcmVzcywgVEFjY291bnRUaWNrZXQsIFRBY2NvdW50VGVuYW50LCBUQWNjb3VudFBsYXllcj4ge1xuICAvLyBQcm9ncmFtIGFkZHJlc3MuXG5jb25zdCBwcm9ncmFtQWRkcmVzcyA9IGNvbmZpZz8ucHJvZ3JhbUFkZHJlc3MgPz8gRFVFTF9QUk9HUkFNX0FERFJFU1M7XG5cbiAvLyBPcmlnaW5hbCBhY2NvdW50cy5cbmNvbnN0IG9yaWdpbmFsQWNjb3VudHMgPSB7IHRpY2tldDogeyB2YWx1ZTogaW5wdXQudGlja2V0ID8/IG51bGwsIGlzV3JpdGFibGU6IHRydWUgfSwgdGVuYW50OiB7IHZhbHVlOiBpbnB1dC50ZW5hbnQgPz8gbnVsbCwgaXNXcml0YWJsZTogZmFsc2UgfSwgcGxheWVyOiB7IHZhbHVlOiBpbnB1dC5wbGF5ZXIgPz8gbnVsbCwgaXNXcml0YWJsZTogZmFsc2UgfSB9XG5jb25zdCBhY2NvdW50cyA9IG9yaWdpbmFsQWNjb3VudHMgYXMgUmVjb3JkPGtleW9mIHR5cGVvZiBvcmlnaW5hbEFjY291bnRzLCBSZXNvbHZlZEluc3RydWN0aW9uQWNjb3VudD47XG5cblxuXG5cbmNvbnN0IGdldEFjY291bnRNZXRhID0gZ2V0QWNjb3VudE1ldGFGYWN0b3J5KHByb2dyYW1BZGRyZXNzLCAncHJvZ3JhbUlkJyk7XG5yZXR1cm4gT2JqZWN0LmZyZWV6ZSh7IGFjY291bnRzOiBbZ2V0QWNjb3VudE1ldGEoXCJ0aWNrZXRcIiwgYWNjb3VudHMudGlja2V0KSwgZ2V0QWNjb3VudE1ldGEoXCJ0ZW5hbnRcIiwgYWNjb3VudHMudGVuYW50KSwgZ2V0QWNjb3VudE1ldGEoXCJwbGF5ZXJcIiwgYWNjb3VudHMucGxheWVyKV0sIGRhdGE6IGdldENhbmNlbFRpY2tldEluc3RydWN0aW9uRGF0YUVuY29kZXIoKS5lbmNvZGUoe30pLCBwcm9ncmFtQWRkcmVzcyB9IGFzIENhbmNlbFRpY2tldEluc3RydWN0aW9uPFRQcm9ncmFtQWRkcmVzcywgVEFjY291bnRUaWNrZXQsIFRBY2NvdW50VGVuYW50LCBUQWNjb3VudFBsYXllcj4pO1xufVxuXG5leHBvcnQgdHlwZSBQYXJzZWRDYW5jZWxUaWNrZXRJbnN0cnVjdGlvbjxUUHJvZ3JhbSBleHRlbmRzIHN0cmluZyA9IHR5cGVvZiBEVUVMX1BST0dSQU1fQUREUkVTUywgVEFjY291bnRNZXRhcyBleHRlbmRzIHJlYWRvbmx5IEFjY291bnRNZXRhW10gPSByZWFkb25seSBBY2NvdW50TWV0YVtdPiA9IHsgcHJvZ3JhbUFkZHJlc3M6IEFkZHJlc3M8VFByb2dyYW0+O1xuYWNjb3VudHM6IHtcbnRpY2tldDogVEFjY291bnRNZXRhc1swXTtcbnRlbmFudDogVEFjY291bnRNZXRhc1sxXTtcbnBsYXllcjogVEFjY291bnRNZXRhc1syXTtcbn07XG5kYXRhOiBDYW5jZWxUaWNrZXRJbnN0cnVjdGlvbkRhdGE7IH07XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNhbmNlbFRpY2tldEluc3RydWN0aW9uPFRQcm9ncmFtIGV4dGVuZHMgc3RyaW5nLCBUQWNjb3VudE1ldGFzIGV4dGVuZHMgcmVhZG9ubHkgQWNjb3VudE1ldGFbXT4oaW5zdHJ1Y3Rpb246IEluc3RydWN0aW9uPFRQcm9ncmFtPiAmIEluc3RydWN0aW9uV2l0aEFjY291bnRzPFRBY2NvdW50TWV0YXM+ICYgSW5zdHJ1Y3Rpb25XaXRoRGF0YTxSZWFkb25seVVpbnQ4QXJyYXk+KTogUGFyc2VkQ2FuY2VsVGlja2V0SW5zdHJ1Y3Rpb248VFByb2dyYW0sIFRBY2NvdW50TWV0YXM+IHtcbiAgaWYgKGluc3RydWN0aW9uLmFjY291bnRzLmxlbmd0aCA8IDMpIHtcbiAgdGhyb3cgbmV3IFNvbGFuYUVycm9yKFNPTEFOQV9FUlJPUl9fUFJPR1JBTV9DTElFTlRTX19JTlNVRkZJQ0lFTlRfQUNDT1VOVF9NRVRBUywgeyBhY3R1YWxBY2NvdW50TWV0YXM6IGluc3RydWN0aW9uLmFjY291bnRzLmxlbmd0aCwgZXhwZWN0ZWRBY2NvdW50TWV0YXM6IDMgfSk7XG59XG5sZXQgYWNjb3VudEluZGV4ID0gMDtcbmNvbnN0IGdldE5leHRBY2NvdW50ID0gKCkgPT4ge1xuICBjb25zdCBhY2NvdW50TWV0YSA9IChpbnN0cnVjdGlvbi5hY2NvdW50cyBhcyBUQWNjb3VudE1ldGFzKVthY2NvdW50SW5kZXhdITtcbiAgYWNjb3VudEluZGV4ICs9IDE7XG4gIHJldHVybiBhY2NvdW50TWV0YTtcbn1cbiAgcmV0dXJuIHsgcHJvZ3JhbUFkZHJlc3M6IGluc3RydWN0aW9uLnByb2dyYW1BZGRyZXNzLCBhY2NvdW50czogeyB0aWNrZXQ6IGdldE5leHRBY2NvdW50KCksIHRlbmFudDogZ2V0TmV4dEFjY291bnQoKSwgcGxheWVyOiBnZXROZXh0QWNjb3VudCgpIH0sIGRhdGE6IGdldENhbmNlbFRpY2tldEluc3RydWN0aW9uRGF0YURlY29kZXIoKS5kZWNvZGUoaW5zdHJ1Y3Rpb24uZGF0YSkgfTtcbn0iXX0=
@@ -0,0 +1,45 @@
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 AccountMeta, type AccountSignerMeta, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type Instruction, type InstructionWithAccounts, type InstructionWithData, type ReadonlyAccount, type ReadonlyUint8Array, type TransactionSigner, type WritableAccount, type WritableSignerAccount } from '@solana/kit';
9
+ import { DUEL_PROGRAM_ADDRESS } from '../programs';
10
+ export declare const CLOSE_TICKET_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
11
+ export declare function getCloseTicketDiscriminatorBytes(): ReadonlyUint8Array<ArrayBuffer>;
12
+ export type CloseTicketInstruction<TProgram extends string = typeof DUEL_PROGRAM_ADDRESS, TAccountTicket extends string | AccountMeta<string> = string, TAccountTenant extends string | AccountMeta<string> = string, TAccountPlayer extends string | AccountMeta<string> = string, TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[TAccountTicket extends string ? WritableAccount<TAccountTicket> : TAccountTicket, TAccountTenant extends string ? ReadonlyAccount<TAccountTenant> : TAccountTenant, TAccountPlayer extends string ? WritableSignerAccount<TAccountPlayer> & AccountSignerMeta<TAccountPlayer> : TAccountPlayer, ...TRemainingAccounts]>;
13
+ export type CloseTicketInstructionData = {
14
+ discriminator: ReadonlyUint8Array;
15
+ };
16
+ export type CloseTicketInstructionDataArgs = {};
17
+ export declare function getCloseTicketInstructionDataEncoder(): FixedSizeEncoder<CloseTicketInstructionDataArgs>;
18
+ export declare function getCloseTicketInstructionDataDecoder(): FixedSizeDecoder<CloseTicketInstructionData>;
19
+ export declare function getCloseTicketInstructionDataCodec(): FixedSizeCodec<CloseTicketInstructionDataArgs, CloseTicketInstructionData>;
20
+ export type CloseTicketAsyncInput<TAccountTicket extends string = string, TAccountTenant extends string = string, TAccountPlayer extends string = string> = {
21
+ ticket?: Address<TAccountTicket>;
22
+ tenant: Address<TAccountTenant>;
23
+ player: TransactionSigner<TAccountPlayer>;
24
+ };
25
+ export declare function getCloseTicketInstructionAsync<TAccountTicket extends string, TAccountTenant extends string, TAccountPlayer extends string, TProgramAddress extends Address = typeof DUEL_PROGRAM_ADDRESS>(input: CloseTicketAsyncInput<TAccountTicket, TAccountTenant, TAccountPlayer>, config?: {
26
+ programAddress?: TProgramAddress;
27
+ }): Promise<CloseTicketInstruction<TProgramAddress, TAccountTicket, TAccountTenant, TAccountPlayer>>;
28
+ export type CloseTicketInput<TAccountTicket extends string = string, TAccountTenant extends string = string, TAccountPlayer extends string = string> = {
29
+ ticket: Address<TAccountTicket>;
30
+ tenant: Address<TAccountTenant>;
31
+ player: TransactionSigner<TAccountPlayer>;
32
+ };
33
+ export declare function getCloseTicketInstruction<TAccountTicket extends string, TAccountTenant extends string, TAccountPlayer extends string, TProgramAddress extends Address = typeof DUEL_PROGRAM_ADDRESS>(input: CloseTicketInput<TAccountTicket, TAccountTenant, TAccountPlayer>, config?: {
34
+ programAddress?: TProgramAddress;
35
+ }): CloseTicketInstruction<TProgramAddress, TAccountTicket, TAccountTenant, TAccountPlayer>;
36
+ export type ParsedCloseTicketInstruction<TProgram extends string = typeof DUEL_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
37
+ programAddress: Address<TProgram>;
38
+ accounts: {
39
+ ticket: TAccountMetas[0];
40
+ tenant: TAccountMetas[1];
41
+ player: TAccountMetas[2];
42
+ };
43
+ data: CloseTicketInstructionData;
44
+ };
45
+ export declare function parseCloseTicketInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedCloseTicketInstruction<TProgram, TAccountMetas>;
@@ -0,0 +1,56 @@
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, fixDecoderSize, fixEncoderSize, getAddressEncoder, getBytesDecoder, getBytesEncoder, getProgramDerivedAddress, getStructDecoder, getStructEncoder, SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, SolanaError, transformEncoder } from '@solana/kit';
9
+ import { getAccountMetaFactory, getAddressFromResolvedInstructionAccount } from '@solana/program-client-core';
10
+ import { DUEL_PROGRAM_ADDRESS } from '../programs';
11
+ export const CLOSE_TICKET_DISCRIMINATOR = new Uint8Array([66, 209, 114, 197, 75, 27, 182, 117]);
12
+ export function getCloseTicketDiscriminatorBytes() { return fixEncoderSize(getBytesEncoder(), 8).encode(CLOSE_TICKET_DISCRIMINATOR); }
13
+ export function getCloseTicketInstructionDataEncoder() {
14
+ return transformEncoder(getStructEncoder([['discriminator', fixEncoderSize(getBytesEncoder(), 8)]]), (value) => ({ ...value, discriminator: CLOSE_TICKET_DISCRIMINATOR }));
15
+ }
16
+ export function getCloseTicketInstructionDataDecoder() {
17
+ return getStructDecoder([['discriminator', fixDecoderSize(getBytesDecoder(), 8)]]);
18
+ }
19
+ export function getCloseTicketInstructionDataCodec() {
20
+ return combineCodec(getCloseTicketInstructionDataEncoder(), getCloseTicketInstructionDataDecoder());
21
+ }
22
+ export async function getCloseTicketInstructionAsync(input, config) {
23
+ // Program address.
24
+ const programAddress = config?.programAddress ?? DUEL_PROGRAM_ADDRESS;
25
+ // Original accounts.
26
+ const originalAccounts = { ticket: { value: input.ticket ?? null, isWritable: true }, tenant: { value: input.tenant ?? null, isWritable: false }, player: { value: input.player ?? null, isWritable: true } };
27
+ const accounts = originalAccounts;
28
+ // Resolve default values.
29
+ if (!accounts.ticket.value) {
30
+ accounts.ticket.value = await getProgramDerivedAddress({ programAddress, seeds: [getBytesEncoder().encode(new Uint8Array([116, 105, 99, 107, 101, 116])), getAddressEncoder().encode(getAddressFromResolvedInstructionAccount("player", accounts.player.value)), getAddressEncoder().encode(getAddressFromResolvedInstructionAccount("tenant", accounts.tenant.value))] });
31
+ }
32
+ const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');
33
+ return Object.freeze({ accounts: [getAccountMeta("ticket", accounts.ticket), getAccountMeta("tenant", accounts.tenant), getAccountMeta("player", accounts.player)], data: getCloseTicketInstructionDataEncoder().encode({}), programAddress });
34
+ }
35
+ export function getCloseTicketInstruction(input, config) {
36
+ // Program address.
37
+ const programAddress = config?.programAddress ?? DUEL_PROGRAM_ADDRESS;
38
+ // Original accounts.
39
+ const originalAccounts = { ticket: { value: input.ticket ?? null, isWritable: true }, tenant: { value: input.tenant ?? null, isWritable: false }, player: { value: input.player ?? null, isWritable: true } };
40
+ const accounts = originalAccounts;
41
+ const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');
42
+ return Object.freeze({ accounts: [getAccountMeta("ticket", accounts.ticket), getAccountMeta("tenant", accounts.tenant), getAccountMeta("player", accounts.player)], data: getCloseTicketInstructionDataEncoder().encode({}), programAddress });
43
+ }
44
+ export function parseCloseTicketInstruction(instruction) {
45
+ if (instruction.accounts.length < 3) {
46
+ throw new SolanaError(SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, { actualAccountMetas: instruction.accounts.length, expectedAccountMetas: 3 });
47
+ }
48
+ let accountIndex = 0;
49
+ const getNextAccount = () => {
50
+ const accountMeta = instruction.accounts[accountIndex];
51
+ accountIndex += 1;
52
+ return accountMeta;
53
+ };
54
+ return { programAddress: instruction.programAddress, accounts: { ticket: getNextAccount(), tenant: getNextAccount(), player: getNextAccount() }, data: getCloseTicketInstructionDataDecoder().decode(instruction.data) };
55
+ }
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvc2VUaWNrZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL2R1ZWwvaW5zdHJ1Y3Rpb25zL2Nsb3NlVGlja2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLHdCQUF3QixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLHlEQUF5RCxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBZ1UsTUFBTSxhQUFhLENBQUM7QUFDdGxCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx3Q0FBd0MsRUFBbUMsTUFBTSw2QkFBNkIsQ0FBQztBQUMvSSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbkQsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxVQUFVLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUVoRyxNQUFNLFVBQVUsZ0NBQWdDLEtBQUssT0FBTyxjQUFjLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDO0FBU3RJLE1BQU0sVUFBVSxvQ0FBb0M7SUFDaEQsT0FBTyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLGNBQWMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLGFBQWEsRUFBRSwwQkFBMEIsRUFBRSxDQUFDLENBQUMsQ0FB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RSxNQUFNLEVBQUUsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxvQ0FBb0MsRUFBRSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztBQUMzTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIGNvZGUgd2FzIEFVVE9HRU5FUkFURUQgdXNpbmcgdGhlIENvZGFtYSBsaWJyYXJ5LlxuICogUGxlYXNlIERPIE5PVCBFRElUIFRISVMgRklMRSwgaW5zdGVhZCB1c2UgdmlzaXRvcnNcbiAqIHRvIGFkZCBmZWF0dXJlcywgdGhlbiByZXJ1biBDb2RhbWEgdG8gdXBkYXRlIGl0LlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2NvZGFtYS1pZGwvY29kYW1hXG4gKi9cblxuaW1wb3J0IHsgY29tYmluZUNvZGVjLCBmaXhEZWNvZGVyU2l6ZSwgZml4RW5jb2RlclNpemUsIGdldEFkZHJlc3NFbmNvZGVyLCBnZXRCeXRlc0RlY29kZXIsIGdldEJ5dGVzRW5jb2RlciwgZ2V0UHJvZ3JhbURlcml2ZWRBZGRyZXNzLCBnZXRTdHJ1Y3REZWNvZGVyLCBnZXRTdHJ1Y3RFbmNvZGVyLCBTT0xBTkFfRVJST1JfX1BST0dSQU1fQ0xJRU5UU19fSU5TVUZGSUNJRU5UX0FDQ09VTlRfTUVUQVMsIFNvbGFuYUVycm9yLCB0cmFuc2Zvcm1FbmNvZGVyLCB0eXBlIEFjY291bnRNZXRhLCB0eXBlIEFjY291bnRTaWduZXJNZXRhLCB0eXBlIEFkZHJlc3MsIHR5cGUgRml4ZWRTaXplQ29kZWMsIHR5cGUgRml4ZWRTaXplRGVjb2RlciwgdHlwZSBGaXhlZFNpemVFbmNvZGVyLCB0eXBlIEluc3RydWN0aW9uLCB0eXBlIEluc3RydWN0aW9uV2l0aEFjY291bnRzLCB0eXBlIEluc3RydWN0aW9uV2l0aERhdGEsIHR5cGUgUmVhZG9ubHlBY2NvdW50LCB0eXBlIFJlYWRvbmx5VWludDhBcnJheSwgdHlwZSBUcmFuc2FjdGlvblNpZ25lciwgdHlwZSBXcml0YWJsZUFjY291bnQsIHR5cGUgV3JpdGFibGVTaWduZXJBY2NvdW50IH0gZnJvbSAnQHNvbGFuYS9raXQnO1xuaW1wb3J0IHsgZ2V0QWNjb3VudE1ldGFGYWN0b3J5LCBnZXRBZGRyZXNzRnJvbVJlc29sdmVkSW5zdHJ1Y3Rpb25BY2NvdW50LCB0eXBlIFJlc29sdmVkSW5zdHJ1Y3Rpb25BY2NvdW50IH0gZnJvbSAnQHNvbGFuYS9wcm9ncmFtLWNsaWVudC1jb3JlJztcbmltcG9ydCB7IERVRUxfUFJPR1JBTV9BRERSRVNTIH0gZnJvbSAnLi4vcHJvZ3JhbXMnO1xuXG5leHBvcnQgY29uc3QgQ0xPU0VfVElDS0VUX0RJU0NSSU1JTkFUT1IgPSBuZXcgVWludDhBcnJheShbNjYsIDIwOSwgMTE0LCAxOTcsIDc1LCAyNywgMTgyLCAxMTddKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldENsb3NlVGlja2V0RGlzY3JpbWluYXRvckJ5dGVzKCkgeyByZXR1cm4gZml4RW5jb2RlclNpemUoZ2V0Qnl0ZXNFbmNvZGVyKCksIDgpLmVuY29kZShDTE9TRV9USUNLRVRfRElTQ1JJTUlOQVRPUik7IH1cblxuZXhwb3J0IHR5cGUgQ2xvc2VUaWNrZXRJbnN0cnVjdGlvbjxUUHJvZ3JhbSBleHRlbmRzIHN0cmluZyA9IHR5cGVvZiBEVUVMX1BST0dSQU1fQUREUkVTUywgVEFjY291bnRUaWNrZXQgZXh0ZW5kcyBzdHJpbmcgfCBBY2NvdW50TWV0YTxzdHJpbmc+ID0gc3RyaW5nLCBUQWNjb3VudFRlbmFudCBleHRlbmRzIHN0cmluZyB8IEFjY291bnRNZXRhPHN0cmluZz4gPSBzdHJpbmcsIFRBY2NvdW50UGxheWVyIGV4dGVuZHMgc3RyaW5nIHwgQWNjb3VudE1ldGE8c3RyaW5nPiA9IHN0cmluZywgVFJlbWFpbmluZ0FjY291bnRzIGV4dGVuZHMgcmVhZG9ubHkgQWNjb3VudE1ldGE8c3RyaW5nPltdID0gW10+ID1cbkluc3RydWN0aW9uPFRQcm9ncmFtPiAmIEluc3RydWN0aW9uV2l0aERhdGE8UmVhZG9ubHlVaW50OEFycmF5PiAmIEluc3RydWN0aW9uV2l0aEFjY291bnRzPFtUQWNjb3VudFRpY2tldCBleHRlbmRzIHN0cmluZyA/IFdyaXRhYmxlQWNjb3VudDxUQWNjb3VudFRpY2tldD4gOiBUQWNjb3VudFRpY2tldCwgVEFjY291bnRUZW5hbnQgZXh0ZW5kcyBzdHJpbmcgPyBSZWFkb25seUFjY291bnQ8VEFjY291bnRUZW5hbnQ+IDogVEFjY291bnRUZW5hbnQsIFRBY2NvdW50UGxheWVyIGV4dGVuZHMgc3RyaW5nID8gV3JpdGFibGVTaWduZXJBY2NvdW50PFRBY2NvdW50UGxheWVyPiAmIEFjY291bnRTaWduZXJNZXRhPFRBY2NvdW50UGxheWVyPiA6IFRBY2NvdW50UGxheWVyLCAuLi5UUmVtYWluaW5nQWNjb3VudHNdPjtcblxuZXhwb3J0IHR5cGUgQ2xvc2VUaWNrZXRJbnN0cnVjdGlvbkRhdGEgPSB7IGRpc2NyaW1pbmF0b3I6IFJlYWRvbmx5VWludDhBcnJheTsgIH07XG5cbmV4cG9ydCB0eXBlIENsb3NlVGlja2V0SW5zdHJ1Y3Rpb25EYXRhQXJncyA9IHsgIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDbG9zZVRpY2tldEluc3RydWN0aW9uRGF0YUVuY29kZXIoKTogRml4ZWRTaXplRW5jb2RlcjxDbG9zZVRpY2tldEluc3RydWN0aW9uRGF0YUFyZ3M+IHtcbiAgICByZXR1cm4gdHJhbnNmb3JtRW5jb2RlcihnZXRTdHJ1Y3RFbmNvZGVyKFtbJ2Rpc2NyaW1pbmF0b3InLCBmaXhFbmNvZGVyU2l6ZShnZXRCeXRlc0VuY29kZXIoKSwgOCldXSksICh2YWx1ZSkgPT4gKHsgLi4udmFsdWUsIGRpc2NyaW1pbmF0b3I6IENMT1NFX1RJQ0tFVF9ESVNDUklNSU5BVE9SIH0pKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENsb3NlVGlja2V0SW5zdHJ1Y3Rpb25EYXRhRGVjb2RlcigpOiBGaXhlZFNpemVEZWNvZGVyPENsb3NlVGlja2V0SW5zdHJ1Y3Rpb25EYXRhPiB7XG4gICAgcmV0dXJuIGdldFN0cnVjdERlY29kZXIoW1snZGlzY3JpbWluYXRvcicsIGZpeERlY29kZXJTaXplKGdldEJ5dGVzRGVjb2RlcigpLCA4KV1dKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENsb3NlVGlja2V0SW5zdHJ1Y3Rpb25EYXRhQ29kZWMoKTogRml4ZWRTaXplQ29kZWM8Q2xvc2VUaWNrZXRJbnN0cnVjdGlvbkRhdGFBcmdzLCBDbG9zZVRpY2tldEluc3RydWN0aW9uRGF0YT4ge1xuICAgIHJldHVybiBjb21iaW5lQ29kZWMoZ2V0Q2xvc2VUaWNrZXRJbnN0cnVjdGlvbkRhdGFFbmNvZGVyKCksIGdldENsb3NlVGlja2V0SW5zdHJ1Y3Rpb25EYXRhRGVjb2RlcigpKTtcbn1cblxuZXhwb3J0IHR5cGUgQ2xvc2VUaWNrZXRBc3luY0lucHV0PFRBY2NvdW50VGlja2V0IGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLCBUQWNjb3VudFRlbmFudCBleHRlbmRzIHN0cmluZyA9IHN0cmluZywgVEFjY291bnRQbGF5ZXIgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmc+ID0gIHtcbiAgdGlja2V0PzogQWRkcmVzczxUQWNjb3VudFRpY2tldD47XG50ZW5hbnQ6IEFkZHJlc3M8VEFjY291bnRUZW5hbnQ+O1xucGxheWVyOiBUcmFuc2FjdGlvblNpZ25lcjxUQWNjb3VudFBsYXllcj47XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRDbG9zZVRpY2tldEluc3RydWN0aW9uQXN5bmM8VEFjY291bnRUaWNrZXQgZXh0ZW5kcyBzdHJpbmcsIFRBY2NvdW50VGVuYW50IGV4dGVuZHMgc3RyaW5nLCBUQWNjb3VudFBsYXllciBleHRlbmRzIHN0cmluZywgVFByb2dyYW1BZGRyZXNzIGV4dGVuZHMgQWRkcmVzcyA9IHR5cGVvZiBEVUVMX1BST0dSQU1fQUREUkVTUz4oaW5wdXQ6IENsb3NlVGlja2V0QXN5bmNJbnB1dDxUQWNjb3VudFRpY2tldCwgVEFjY291bnRUZW5hbnQsIFRBY2NvdW50UGxheWVyPiwgY29uZmlnPzogeyBwcm9ncmFtQWRkcmVzcz86IFRQcm9ncmFtQWRkcmVzcyB9ICk6IFByb21pc2U8Q2xvc2VUaWNrZXRJbnN0cnVjdGlvbjxUUHJvZ3JhbUFkZHJlc3MsIFRBY2NvdW50VGlja2V0LCBUQWNjb3VudFRlbmFudCwgVEFjY291bnRQbGF5ZXI+PiB7XG4gIC8vIFByb2dyYW0gYWRkcmVzcy5cbmNvbnN0IHByb2dyYW1BZGRyZXNzID0gY29uZmlnPy5wcm9ncmFtQWRkcmVzcyA/PyBEVUVMX1BST0dSQU1fQUREUkVTUztcblxuIC8vIE9yaWdpbmFsIGFjY291bnRzLlxuY29uc3Qgb3JpZ2luYWxBY2NvdW50cyA9IHsgdGlja2V0OiB7IHZhbHVlOiBpbnB1dC50aWNrZXQgPz8gbnVsbCwgaXNXcml0YWJsZTogdHJ1ZSB9LCB0ZW5hbnQ6IHsgdmFsdWU6IGlucHV0LnRlbmFudCA/PyBudWxsLCBpc1dyaXRhYmxlOiBmYWxzZSB9LCBwbGF5ZXI6IHsgdmFsdWU6IGlucHV0LnBsYXllciA/PyBudWxsLCBpc1dyaXRhYmxlOiB0cnVlIH0gfVxuY29uc3QgYWNjb3VudHMgPSBvcmlnaW5hbEFjY291bnRzIGFzIFJlY29yZDxrZXlvZiB0eXBlb2Ygb3JpZ2luYWxBY2NvdW50cywgUmVzb2x2ZWRJbnN0cnVjdGlvbkFjY291bnQ+O1xuXG5cbi8vIFJlc29sdmUgZGVmYXVsdCB2YWx1ZXMuXG5pZiAoIWFjY291bnRzLnRpY2tldC52YWx1ZSkge1xuYWNjb3VudHMudGlja2V0LnZhbHVlID0gYXdhaXQgZ2V0UHJvZ3JhbURlcml2ZWRBZGRyZXNzKHsgcHJvZ3JhbUFkZHJlc3MsIHNlZWRzOiBbZ2V0Qnl0ZXNFbmNvZGVyKCkuZW5jb2RlKG5ldyBVaW50OEFycmF5KFsxMTYsIDEwNSwgOTksIDEwNywgMTAxLCAxMTZdKSksIGdldEFkZHJlc3NFbmNvZGVyKCkuZW5jb2RlKGdldEFkZHJlc3NGcm9tUmVzb2x2ZWRJbnN0cnVjdGlvbkFjY291bnQoXCJwbGF5ZXJcIiwgYWNjb3VudHMucGxheWVyLnZhbHVlKSksIGdldEFkZHJlc3NFbmNvZGVyKCkuZW5jb2RlKGdldEFkZHJlc3NGcm9tUmVzb2x2ZWRJbnN0cnVjdGlvbkFjY291bnQoXCJ0ZW5hbnRcIiwgYWNjb3VudHMudGVuYW50LnZhbHVlKSldIH0pO1xufVxuXG5jb25zdCBnZXRBY2NvdW50TWV0YSA9IGdldEFjY291bnRNZXRhRmFjdG9yeShwcm9ncmFtQWRkcmVzcywgJ3Byb2dyYW1JZCcpO1xucmV0dXJuIE9iamVjdC5mcmVlemUoeyBhY2NvdW50czogW2dldEFjY291bnRNZXRhKFwidGlja2V0XCIsIGFjY291bnRzLnRpY2tldCksIGdldEFjY291bnRNZXRhKFwidGVuYW50XCIsIGFjY291bnRzLnRlbmFudCksIGdldEFjY291bnRNZXRhKFwicGxheWVyXCIsIGFjY291bnRzLnBsYXllcildLCBkYXRhOiBnZXRDbG9zZVRpY2tldEluc3RydWN0aW9uRGF0YUVuY29kZXIoKS5lbmNvZGUoe30pLCBwcm9ncmFtQWRkcmVzcyB9IGFzIENsb3NlVGlja2V0SW5zdHJ1Y3Rpb248VFByb2dyYW1BZGRyZXNzLCBUQWNjb3VudFRpY2tldCwgVEFjY291bnRUZW5hbnQsIFRBY2NvdW50UGxheWVyPik7XG59XG5cbmV4cG9ydCB0eXBlIENsb3NlVGlja2V0SW5wdXQ8VEFjY291bnRUaWNrZXQgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsIFRBY2NvdW50VGVuYW50IGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLCBUQWNjb3VudFBsYXllciBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4gPSAge1xuICB0aWNrZXQ6IEFkZHJlc3M8VEFjY291bnRUaWNrZXQ+O1xudGVuYW50OiBBZGRyZXNzPFRBY2NvdW50VGVuYW50PjtcbnBsYXllcjogVHJhbnNhY3Rpb25TaWduZXI8VEFjY291bnRQbGF5ZXI+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2xvc2VUaWNrZXRJbnN0cnVjdGlvbjxUQWNjb3VudFRpY2tldCBleHRlbmRzIHN0cmluZywgVEFjY291bnRUZW5hbnQgZXh0ZW5kcyBzdHJpbmcsIFRBY2NvdW50UGxheWVyIGV4dGVuZHMgc3RyaW5nLCBUUHJvZ3JhbUFkZHJlc3MgZXh0ZW5kcyBBZGRyZXNzID0gdHlwZW9mIERVRUxfUFJPR1JBTV9BRERSRVNTPihpbnB1dDogQ2xvc2VUaWNrZXRJbnB1dDxUQWNjb3VudFRpY2tldCwgVEFjY291bnRUZW5hbnQsIFRBY2NvdW50UGxheWVyPiwgY29uZmlnPzogeyBwcm9ncmFtQWRkcmVzcz86IFRQcm9ncmFtQWRkcmVzcyB9ICk6IENsb3NlVGlja2V0SW5zdHJ1Y3Rpb248VFByb2dyYW1BZGRyZXNzLCBUQWNjb3VudFRpY2tldCwgVEFjY291bnRUZW5hbnQsIFRBY2NvdW50UGxheWVyPiB7XG4gIC8vIFByb2dyYW0gYWRkcmVzcy5cbmNvbnN0IHByb2dyYW1BZGRyZXNzID0gY29uZmlnPy5wcm9ncmFtQWRkcmVzcyA/PyBEVUVMX1BST0dSQU1fQUREUkVTUztcblxuIC8vIE9yaWdpbmFsIGFjY291bnRzLlxuY29uc3Qgb3JpZ2luYWxBY2NvdW50cyA9IHsgdGlja2V0OiB7IHZhbHVlOiBpbnB1dC50aWNrZXQgPz8gbnVsbCwgaXNXcml0YWJsZTogdHJ1ZSB9LCB0ZW5hbnQ6IHsgdmFsdWU6IGlucHV0LnRlbmFudCA/PyBudWxsLCBpc1dyaXRhYmxlOiBmYWxzZSB9LCBwbGF5ZXI6IHsgdmFsdWU6IGlucHV0LnBsYXllciA/PyBudWxsLCBpc1dyaXRhYmxlOiB0cnVlIH0gfVxuY29uc3QgYWNjb3VudHMgPSBvcmlnaW5hbEFjY291bnRzIGFzIFJlY29yZDxrZXlvZiB0eXBlb2Ygb3JpZ2luYWxBY2NvdW50cywgUmVzb2x2ZWRJbnN0cnVjdGlvbkFjY291bnQ+O1xuXG5cblxuXG5jb25zdCBnZXRBY2NvdW50TWV0YSA9IGdldEFjY291bnRNZXRhRmFjdG9yeShwcm9ncmFtQWRkcmVzcywgJ3Byb2dyYW1JZCcpO1xucmV0dXJuIE9iamVjdC5mcmVlemUoeyBhY2NvdW50czogW2dldEFjY291bnRNZXRhKFwidGlja2V0XCIsIGFjY291bnRzLnRpY2tldCksIGdldEFjY291bnRNZXRhKFwidGVuYW50XCIsIGFjY291bnRzLnRlbmFudCksIGdldEFjY291bnRNZXRhKFwicGxheWVyXCIsIGFjY291bnRzLnBsYXllcildLCBkYXRhOiBnZXRDbG9zZVRpY2tldEluc3RydWN0aW9uRGF0YUVuY29kZXIoKS5lbmNvZGUoe30pLCBwcm9ncmFtQWRkcmVzcyB9IGFzIENsb3NlVGlja2V0SW5zdHJ1Y3Rpb248VFByb2dyYW1BZGRyZXNzLCBUQWNjb3VudFRpY2tldCwgVEFjY291bnRUZW5hbnQsIFRBY2NvdW50UGxheWVyPik7XG59XG5cbmV4cG9ydCB0eXBlIFBhcnNlZENsb3NlVGlja2V0SW5zdHJ1Y3Rpb248VFByb2dyYW0gZXh0ZW5kcyBzdHJpbmcgPSB0eXBlb2YgRFVFTF9QUk9HUkFNX0FERFJFU1MsIFRBY2NvdW50TWV0YXMgZXh0ZW5kcyByZWFkb25seSBBY2NvdW50TWV0YVtdID0gcmVhZG9ubHkgQWNjb3VudE1ldGFbXT4gPSB7IHByb2dyYW1BZGRyZXNzOiBBZGRyZXNzPFRQcm9ncmFtPjtcbmFjY291bnRzOiB7XG50aWNrZXQ6IFRBY2NvdW50TWV0YXNbMF07XG50ZW5hbnQ6IFRBY2NvdW50TWV0YXNbMV07XG5wbGF5ZXI6IFRBY2NvdW50TWV0YXNbMl07XG59O1xuZGF0YTogQ2xvc2VUaWNrZXRJbnN0cnVjdGlvbkRhdGE7IH07XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNsb3NlVGlja2V0SW5zdHJ1Y3Rpb248VFByb2dyYW0gZXh0ZW5kcyBzdHJpbmcsIFRBY2NvdW50TWV0YXMgZXh0ZW5kcyByZWFkb25seSBBY2NvdW50TWV0YVtdPihpbnN0cnVjdGlvbjogSW5zdHJ1Y3Rpb248VFByb2dyYW0+ICYgSW5zdHJ1Y3Rpb25XaXRoQWNjb3VudHM8VEFjY291bnRNZXRhcz4gJiBJbnN0cnVjdGlvbldpdGhEYXRhPFJlYWRvbmx5VWludDhBcnJheT4pOiBQYXJzZWRDbG9zZVRpY2tldEluc3RydWN0aW9uPFRQcm9ncmFtLCBUQWNjb3VudE1ldGFzPiB7XG4gIGlmIChpbnN0cnVjdGlvbi5hY2NvdW50cy5sZW5ndGggPCAzKSB7XG4gIHRocm93IG5ldyBTb2xhbmFFcnJvcihTT0xBTkFfRVJST1JfX1BST0dSQU1fQ0xJRU5UU19fSU5TVUZGSUNJRU5UX0FDQ09VTlRfTUVUQVMsIHsgYWN0dWFsQWNjb3VudE1ldGFzOiBpbnN0cnVjdGlvbi5hY2NvdW50cy5sZW5ndGgsIGV4cGVjdGVkQWNjb3VudE1ldGFzOiAzIH0pO1xufVxubGV0IGFjY291bnRJbmRleCA9IDA7XG5jb25zdCBnZXROZXh0QWNjb3VudCA9ICgpID0+IHtcbiAgY29uc3QgYWNjb3VudE1ldGEgPSAoaW5zdHJ1Y3Rpb24uYWNjb3VudHMgYXMgVEFjY291bnRNZXRhcylbYWNjb3VudEluZGV4XSE7XG4gIGFjY291bnRJbmRleCArPSAxO1xuICByZXR1cm4gYWNjb3VudE1ldGE7XG59XG4gIHJldHVybiB7IHByb2dyYW1BZGRyZXNzOiBpbnN0cnVjdGlvbi5wcm9ncmFtQWRkcmVzcywgYWNjb3VudHM6IHsgdGlja2V0OiBnZXROZXh0QWNjb3VudCgpLCB0ZW5hbnQ6IGdldE5leHRBY2NvdW50KCksIHBsYXllcjogZ2V0TmV4dEFjY291bnQoKSB9LCBkYXRhOiBnZXRDbG9zZVRpY2tldEluc3RydWN0aW9uRGF0YURlY29kZXIoKS5kZWNvZGUoaW5zdHJ1Y3Rpb24uZGF0YSkgfTtcbn0iXX0=