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