@baozi.bet/mcp-server 4.0.0
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/README.md +294 -0
- package/dist/__tests__/full-test.d.ts +1 -0
- package/dist/__tests__/full-test.js +291 -0
- package/dist/builders/affiliate-transaction.d.ts +41 -0
- package/dist/builders/affiliate-transaction.js +123 -0
- package/dist/builders/bet-transaction.d.ts +70 -0
- package/dist/builders/bet-transaction.js +323 -0
- package/dist/builders/claim-transaction.d.ts +57 -0
- package/dist/builders/claim-transaction.js +196 -0
- package/dist/builders/creator-transaction.d.ts +49 -0
- package/dist/builders/creator-transaction.js +177 -0
- package/dist/builders/dispute-transaction.d.ts +81 -0
- package/dist/builders/dispute-transaction.js +215 -0
- package/dist/builders/index.d.ts +14 -0
- package/dist/builders/index.js +15 -0
- package/dist/builders/market-creation-tx.d.ts +65 -0
- package/dist/builders/market-creation-tx.js +362 -0
- package/dist/builders/market-management-transaction.d.ts +85 -0
- package/dist/builders/market-management-transaction.js +239 -0
- package/dist/builders/race-transaction.d.ts +67 -0
- package/dist/builders/race-transaction.js +242 -0
- package/dist/builders/resolution-transaction.d.ts +108 -0
- package/dist/builders/resolution-transaction.js +250 -0
- package/dist/builders/whitelist-transaction.d.ts +72 -0
- package/dist/builders/whitelist-transaction.js +179 -0
- package/dist/config.d.ts +138 -0
- package/dist/config.js +307 -0
- package/dist/handlers/agent-network.d.ts +81 -0
- package/dist/handlers/agent-network.js +332 -0
- package/dist/handlers/claims.d.ts +47 -0
- package/dist/handlers/claims.js +218 -0
- package/dist/handlers/market-creation.d.ts +154 -0
- package/dist/handlers/market-creation.js +290 -0
- package/dist/handlers/markets.d.ts +41 -0
- package/dist/handlers/markets.js +319 -0
- package/dist/handlers/positions.d.ts +40 -0
- package/dist/handlers/positions.js +244 -0
- package/dist/handlers/quote.d.ts +33 -0
- package/dist/handlers/quote.js +144 -0
- package/dist/handlers/race-markets.d.ts +54 -0
- package/dist/handlers/race-markets.js +308 -0
- package/dist/handlers/resolution.d.ts +43 -0
- package/dist/handlers/resolution.js +194 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +109 -0
- package/dist/resources.d.ts +13 -0
- package/dist/resources.js +336 -0
- package/dist/tools.d.ts +3109 -0
- package/dist/tools.js +1956 -0
- package/dist/validation/bet-rules.d.ts +82 -0
- package/dist/validation/bet-rules.js +276 -0
- package/dist/validation/creation-rules.d.ts +69 -0
- package/dist/validation/creation-rules.js +302 -0
- package/dist/validation/index.d.ts +6 -0
- package/dist/validation/index.js +7 -0
- package/dist/validation/market-rules.d.ts +60 -0
- package/dist/validation/market-rules.js +237 -0
- package/dist/validation/parimutuel-rules.d.ts +117 -0
- package/dist/validation/parimutuel-rules.js +270 -0
- package/package.json +52 -0
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whitelist Transaction Builders
|
|
3
|
+
*
|
|
4
|
+
* IMPORTANT: Account structures verified against IDL v4.7.6
|
|
5
|
+
*/
|
|
6
|
+
import { Connection, PublicKey, Transaction, TransactionInstruction, SystemProgram, } from '@solana/web3.js';
|
|
7
|
+
import { PROGRAM_ID, RPC_ENDPOINT, SEEDS, } from '../config.js';
|
|
8
|
+
// =============================================================================
|
|
9
|
+
// DISCRIMINATORS (from IDL)
|
|
10
|
+
// =============================================================================
|
|
11
|
+
const DISCRIMINATORS = {
|
|
12
|
+
add_to_whitelist: Buffer.from([157, 211, 52, 54, 144, 81, 5, 55]),
|
|
13
|
+
remove_from_whitelist: Buffer.from([7, 144, 216, 239, 243, 236, 193, 235]),
|
|
14
|
+
create_race_whitelist: Buffer.from([236, 103, 41, 9, 152, 23, 229, 58]),
|
|
15
|
+
add_to_race_whitelist: Buffer.from([144, 229, 112, 184, 199, 39, 27, 156]),
|
|
16
|
+
remove_from_race_whitelist: Buffer.from([150, 136, 17, 158, 48, 19, 39, 232]),
|
|
17
|
+
};
|
|
18
|
+
// =============================================================================
|
|
19
|
+
// PDA DERIVATION
|
|
20
|
+
// =============================================================================
|
|
21
|
+
function deriveWhitelistPda(marketPda) {
|
|
22
|
+
const [pda] = PublicKey.findProgramAddressSync([SEEDS.WHITELIST, marketPda.toBuffer()], PROGRAM_ID);
|
|
23
|
+
return pda;
|
|
24
|
+
}
|
|
25
|
+
function deriveRaceWhitelistPda(raceMarketPda) {
|
|
26
|
+
const [pda] = PublicKey.findProgramAddressSync([SEEDS.RACE_WHITELIST, raceMarketPda.toBuffer()], PROGRAM_ID);
|
|
27
|
+
return pda;
|
|
28
|
+
}
|
|
29
|
+
// =============================================================================
|
|
30
|
+
// BOOLEAN MARKET WHITELIST
|
|
31
|
+
// =============================================================================
|
|
32
|
+
/**
|
|
33
|
+
* Build add_to_whitelist transaction
|
|
34
|
+
* IDL Accounts: market, whitelist, creator
|
|
35
|
+
*/
|
|
36
|
+
export async function buildAddToWhitelistTransaction(params) {
|
|
37
|
+
const conn = params.connection || new Connection(RPC_ENDPOINT, 'confirmed');
|
|
38
|
+
const marketPubkey = new PublicKey(params.marketPda);
|
|
39
|
+
const userPubkey = new PublicKey(params.userToAdd);
|
|
40
|
+
const creatorPubkey = new PublicKey(params.creatorWallet);
|
|
41
|
+
const whitelistPda = deriveWhitelistPda(marketPubkey);
|
|
42
|
+
// Instruction data: discriminator + address (pubkey)
|
|
43
|
+
const data = Buffer.alloc(8 + 32);
|
|
44
|
+
DISCRIMINATORS.add_to_whitelist.copy(data, 0);
|
|
45
|
+
userPubkey.toBuffer().copy(data, 8);
|
|
46
|
+
const keys = [
|
|
47
|
+
{ pubkey: marketPubkey, isSigner: false, isWritable: false },
|
|
48
|
+
{ pubkey: whitelistPda, isSigner: false, isWritable: true },
|
|
49
|
+
{ pubkey: creatorPubkey, isSigner: true, isWritable: false },
|
|
50
|
+
];
|
|
51
|
+
const instruction = new TransactionInstruction({ programId: PROGRAM_ID, keys, data });
|
|
52
|
+
const transaction = new Transaction().add(instruction);
|
|
53
|
+
const { blockhash } = await conn.getLatestBlockhash('finalized');
|
|
54
|
+
transaction.recentBlockhash = blockhash;
|
|
55
|
+
transaction.feePayer = creatorPubkey;
|
|
56
|
+
return {
|
|
57
|
+
transaction,
|
|
58
|
+
serializedTx: transaction.serialize({ requireAllSignatures: false, verifySignatures: false }).toString('base64'),
|
|
59
|
+
whitelistPda: whitelistPda.toBase58(),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Build remove_from_whitelist transaction
|
|
64
|
+
* IDL Accounts: market, whitelist, creator
|
|
65
|
+
*/
|
|
66
|
+
export async function buildRemoveFromWhitelistTransaction(params) {
|
|
67
|
+
const conn = params.connection || new Connection(RPC_ENDPOINT, 'confirmed');
|
|
68
|
+
const marketPubkey = new PublicKey(params.marketPda);
|
|
69
|
+
const userPubkey = new PublicKey(params.userToRemove);
|
|
70
|
+
const creatorPubkey = new PublicKey(params.creatorWallet);
|
|
71
|
+
const whitelistPda = deriveWhitelistPda(marketPubkey);
|
|
72
|
+
// Instruction data: discriminator + address (pubkey)
|
|
73
|
+
const data = Buffer.alloc(8 + 32);
|
|
74
|
+
DISCRIMINATORS.remove_from_whitelist.copy(data, 0);
|
|
75
|
+
userPubkey.toBuffer().copy(data, 8);
|
|
76
|
+
const keys = [
|
|
77
|
+
{ pubkey: marketPubkey, isSigner: false, isWritable: false },
|
|
78
|
+
{ pubkey: whitelistPda, isSigner: false, isWritable: true },
|
|
79
|
+
{ pubkey: creatorPubkey, isSigner: true, isWritable: false },
|
|
80
|
+
];
|
|
81
|
+
const instruction = new TransactionInstruction({ programId: PROGRAM_ID, keys, data });
|
|
82
|
+
const transaction = new Transaction().add(instruction);
|
|
83
|
+
const { blockhash } = await conn.getLatestBlockhash('finalized');
|
|
84
|
+
transaction.recentBlockhash = blockhash;
|
|
85
|
+
transaction.feePayer = creatorPubkey;
|
|
86
|
+
return {
|
|
87
|
+
transaction,
|
|
88
|
+
serializedTx: transaction.serialize({ requireAllSignatures: false, verifySignatures: false }).toString('base64'),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
// =============================================================================
|
|
92
|
+
// RACE MARKET WHITELIST
|
|
93
|
+
// =============================================================================
|
|
94
|
+
/**
|
|
95
|
+
* Build create_race_whitelist transaction
|
|
96
|
+
* IDL Accounts: race_market, whitelist, creator, system_program
|
|
97
|
+
*/
|
|
98
|
+
export async function buildCreateRaceWhitelistTransaction(params) {
|
|
99
|
+
const conn = params.connection || new Connection(RPC_ENDPOINT, 'confirmed');
|
|
100
|
+
const raceMarketPubkey = new PublicKey(params.raceMarketPda);
|
|
101
|
+
const creatorPubkey = new PublicKey(params.creatorWallet);
|
|
102
|
+
const whitelistPda = deriveRaceWhitelistPda(raceMarketPubkey);
|
|
103
|
+
const data = DISCRIMINATORS.create_race_whitelist;
|
|
104
|
+
const keys = [
|
|
105
|
+
{ pubkey: raceMarketPubkey, isSigner: false, isWritable: false },
|
|
106
|
+
{ pubkey: whitelistPda, isSigner: false, isWritable: true },
|
|
107
|
+
{ pubkey: creatorPubkey, isSigner: true, isWritable: true },
|
|
108
|
+
{ pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
|
|
109
|
+
];
|
|
110
|
+
const instruction = new TransactionInstruction({ programId: PROGRAM_ID, keys, data });
|
|
111
|
+
const transaction = new Transaction().add(instruction);
|
|
112
|
+
const { blockhash } = await conn.getLatestBlockhash('finalized');
|
|
113
|
+
transaction.recentBlockhash = blockhash;
|
|
114
|
+
transaction.feePayer = creatorPubkey;
|
|
115
|
+
return {
|
|
116
|
+
transaction,
|
|
117
|
+
serializedTx: transaction.serialize({ requireAllSignatures: false, verifySignatures: false }).toString('base64'),
|
|
118
|
+
whitelistPda: whitelistPda.toBase58(),
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Build add_to_race_whitelist transaction
|
|
123
|
+
* IDL Accounts: race_market, whitelist, creator
|
|
124
|
+
*/
|
|
125
|
+
export async function buildAddToRaceWhitelistTransaction(params) {
|
|
126
|
+
const conn = params.connection || new Connection(RPC_ENDPOINT, 'confirmed');
|
|
127
|
+
const raceMarketPubkey = new PublicKey(params.raceMarketPda);
|
|
128
|
+
const userPubkey = new PublicKey(params.userToAdd);
|
|
129
|
+
const creatorPubkey = new PublicKey(params.creatorWallet);
|
|
130
|
+
const whitelistPda = deriveRaceWhitelistPda(raceMarketPubkey);
|
|
131
|
+
// Instruction data: discriminator + address (pubkey)
|
|
132
|
+
const data = Buffer.alloc(8 + 32);
|
|
133
|
+
DISCRIMINATORS.add_to_race_whitelist.copy(data, 0);
|
|
134
|
+
userPubkey.toBuffer().copy(data, 8);
|
|
135
|
+
const keys = [
|
|
136
|
+
{ pubkey: raceMarketPubkey, isSigner: false, isWritable: false },
|
|
137
|
+
{ pubkey: whitelistPda, isSigner: false, isWritable: true },
|
|
138
|
+
{ pubkey: creatorPubkey, isSigner: true, isWritable: false },
|
|
139
|
+
];
|
|
140
|
+
const instruction = new TransactionInstruction({ programId: PROGRAM_ID, keys, data });
|
|
141
|
+
const transaction = new Transaction().add(instruction);
|
|
142
|
+
const { blockhash } = await conn.getLatestBlockhash('finalized');
|
|
143
|
+
transaction.recentBlockhash = blockhash;
|
|
144
|
+
transaction.feePayer = creatorPubkey;
|
|
145
|
+
return {
|
|
146
|
+
transaction,
|
|
147
|
+
serializedTx: transaction.serialize({ requireAllSignatures: false, verifySignatures: false }).toString('base64'),
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Build remove_from_race_whitelist transaction
|
|
152
|
+
* IDL Accounts: race_market, whitelist, creator
|
|
153
|
+
*/
|
|
154
|
+
export async function buildRemoveFromRaceWhitelistTransaction(params) {
|
|
155
|
+
const conn = params.connection || new Connection(RPC_ENDPOINT, 'confirmed');
|
|
156
|
+
const raceMarketPubkey = new PublicKey(params.raceMarketPda);
|
|
157
|
+
const userPubkey = new PublicKey(params.userToRemove);
|
|
158
|
+
const creatorPubkey = new PublicKey(params.creatorWallet);
|
|
159
|
+
const whitelistPda = deriveRaceWhitelistPda(raceMarketPubkey);
|
|
160
|
+
// Instruction data: discriminator + address (pubkey)
|
|
161
|
+
const data = Buffer.alloc(8 + 32);
|
|
162
|
+
DISCRIMINATORS.remove_from_race_whitelist.copy(data, 0);
|
|
163
|
+
userPubkey.toBuffer().copy(data, 8);
|
|
164
|
+
const keys = [
|
|
165
|
+
{ pubkey: raceMarketPubkey, isSigner: false, isWritable: false },
|
|
166
|
+
{ pubkey: whitelistPda, isSigner: false, isWritable: true },
|
|
167
|
+
{ pubkey: creatorPubkey, isSigner: true, isWritable: false },
|
|
168
|
+
];
|
|
169
|
+
const instruction = new TransactionInstruction({ programId: PROGRAM_ID, keys, data });
|
|
170
|
+
const transaction = new Transaction().add(instruction);
|
|
171
|
+
const { blockhash } = await conn.getLatestBlockhash('finalized');
|
|
172
|
+
transaction.recentBlockhash = blockhash;
|
|
173
|
+
transaction.feePayer = creatorPubkey;
|
|
174
|
+
return {
|
|
175
|
+
transaction,
|
|
176
|
+
serializedTx: transaction.serialize({ requireAllSignatures: false, verifySignatures: false }).toString('base64'),
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2hpdGVsaXN0LXRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1aWxkZXJzL3doaXRlbGlzdC10cmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsT0FBTyxFQUNMLFVBQVUsRUFDVixTQUFTLEVBQ1QsV0FBVyxFQUNYLHNCQUFzQixFQUN0QixhQUFhLEdBQ2QsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ0wsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEdBQ04sTUFBTSxjQUFjLENBQUM7QUFFdEIsZ0ZBQWdGO0FBQ2hGLDRCQUE0QjtBQUM1QixnRkFBZ0Y7QUFFaEYsTUFBTSxjQUFjLEdBQUc7SUFDckIsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRSxxQkFBcUIsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzFFLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdkUscUJBQXFCLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMxRSwwQkFBMEIsRUFBRSxNQUFNLENB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RUFBRSxLQUFLLEVBQUU7UUFDaEUsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTtRQUMzRCxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFO0tBQzdELENBQUM7SUFFRixNQUFNLFdBQVcsR0FBRyxJQUFJLHNCQUFzQixDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN0RixNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2RCxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakUsV0FBVyxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUM7SUFDeEMsV0FBVyxDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUM7SUFFckMsT0FBTztRQUNMLFdBQVc7UUFDWCxZQUFZLEVBQUUsV0FBVyxDQUFDLFNBQVMsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7S0FDakgsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFdoaXRlbGlzdCBUcmFuc2FjdGlvbiBCdWlsZGVyc1xuICpcbiAqIElNUE9SVEFOVDogQWNjb3VudCBzdHJ1Y3R1cmVzIHZlcmlmaWVkIGFnYWluc3QgSURMIHY0LjcuNlxuICovXG5pbXBvcnQge1xuICBDb25uZWN0aW9uLFxuICBQdWJsaWNLZXksXG4gIFRyYW5zYWN0aW9uLFxuICBUcmFuc2FjdGlvbkluc3RydWN0aW9uLFxuICBTeXN0ZW1Qcm9ncmFtLFxufSBmcm9tICdAc29sYW5hL3dlYjMuanMnO1xuaW1wb3J0IHtcbiAgUFJPR1JBTV9JRCxcbiAgUlBDX0VORFBPSU5ULFxuICBTRUVEUyxcbn0gZnJvbSAnLi4vY29uZmlnLmpzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERJU0NSSU1JTkFUT1JTIChmcm9tIElETClcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmNvbnN0IERJU0NSSU1JTkFUT1JTID0ge1xuICBhZGRfdG9fd2hpdGVsaXN0OiBCdWZmZXIuZnJvbShbMTU3LCAyMTEsIDUyLCA1NCwgMTQ0LCA4MSwgNSwgNTVdKSxcbiAgcmVtb3ZlX2Zyb21fd2hpdGVsaXN0OiBCdWZmZXIuZnJvbShbNywgMTQ0LCAyMTYsIDIzOSwgMjQzLCAyMzYsIDE5MywgMjM1XSksXG4gIGNyZWF0ZV9yYWNlX3doaXRlbGlzdDogQnVmZmVyLmZyb20oWzIzNiwgMTAzLCA0MSwgOSwgMTUyLCAyMywgMjI5LCA1OF0pLFxuICBhZGRfdG9fcmFjZV93aGl0ZWxpc3Q6IEJ1ZmZlci5mcm9tKFsxNDQsIDIyOSwgMTEyLCAxODQsIDE5OSwgMzksIDI3LCAxNTZdKSxcbiAgcmVtb3ZlX2Zyb21fcmFjZV93aGl0ZWxpc3Q6IEJ1ZmZlci5mcm9tKFsxNTAsIDEzNiwgMTcsIDE1OCwgNDgsIDE5LCAzOSwgMjMyXSksXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUERBIERFUklWQVRJT05cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmZ1bmN0aW9uIGRlcml2ZVdoaXRlbGlzdFBkYShtYXJrZXRQZGE6IFB1YmxpY0tleSk6IFB1YmxpY0tleSB7XG4gIGNvbnN0IFtwZGFdID0gUHVibGljS2V5LmZpbmRQcm9ncmFtQWRkcmVzc1N5bmMoXG4gICAgW1NFRURTLldISVRFTElTVCwgbWFya2V0UGRhLnRvQnVmZmVyKCldLFxuICAgIFBST0dSQU1fSURcbiAgKTtcbiAgcmV0dXJuIHBkYTtcbn1cblxuZnVuY3Rpb24gZGVyaXZlUmFjZVdoaXRlbGlzdFBkYShyYWNlTWFya2V0UGRhOiBQdWJsaWNLZXkpOiBQdWJsaWNLZXkge1xuICBjb25zdCBbcGRhXSA9IFB1YmxpY0tleS5maW5kUHJvZ3JhbUFkZHJlc3NTeW5jKFxuICAgIFtTRUVEUy5SQUNFX1dISVRFTElTVCwgcmFjZU1hcmtldFBkYS50b0J1ZmZlcigpXSxcbiAgICBQUk9HUkFNX0lEXG4gICk7XG4gIHJldHVybiBwZGE7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCT09MRUFOIE1BUktFVCBXSElURUxJU1Rcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQnVpbGQgYWRkX3RvX3doaXRlbGlzdCB0cmFuc2FjdGlvblxuICogSURMIEFjY291bnRzOiBtYXJrZXQsIHdoaXRlbGlzdCwgY3JlYXRvclxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRBZGRUb1doaXRlbGlzdFRyYW5zYWN0aW9uKHBhcmFtczoge1xuICBtYXJrZXRQZGE6IHN0cmluZztcbiAgdXNlclRvQWRkOiBzdHJpbmc7XG4gIGNyZWF0b3JXYWxsZXQ6IHN0cmluZztcbiAgY29ubmVjdGlvbj86IENvbm5lY3Rpb247XG59KTogUHJvbWlzZTx7IHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbjsgc2VyaWFsaXplZFR4OiBzdHJpbmc7IHdoaXRlbGlzdFBkYTogc3RyaW5nIH0+IHtcbiAgY29uc3QgY29ubiA9IHBhcmFtcy5jb25uZWN0aW9uIHx8IG5ldyBDb25uZWN0aW9uKFJQQ19FTkRQT0lOVCwgJ2NvbmZpcm1lZCcpO1xuICBjb25zdCBtYXJrZXRQdWJrZXkgPSBuZXcgUHVibGljS2V5KHBhcmFtcy5tYXJrZXRQZGEpO1xuICBjb25zdCB1c2VyUHVia2V5ID0gbmV3IFB1YmxpY0tleShwYXJhbXMudXNlclRvQWRkKTtcbiAgY29uc3QgY3JlYXRvclB1YmtleSA9IG5ldyBQdWJsaWNLZXkocGFyYW1zLmNyZWF0b3JXYWxsZXQpO1xuICBjb25zdCB3aGl0ZWxpc3RQZGEgPSBkZXJpdmVXaGl0ZWxpc3RQZGEobWFya2V0UHVia2V5KTtcblxuICAvLyBJbnN0cnVjdGlvbiBkYXRhOiBkaXNjcmltaW5hdG9yICsgYWRkcmVzcyAocHVia2V5KVxuICBjb25zdCBkYXRhID0gQnVmZmVyLmFsbG9jKDggKyAzMik7XG4gIERJU0NSSU1JTkFUT1JTLmFkZF90b193aGl0ZWxpc3QuY29weShkYXRhLCAwKTtcbiAgdXNlclB1YmtleS50b0J1ZmZlcigpLmNvcHkoZGF0YSwgOCk7XG5cbiAgY29uc3Qga2V5cyA9IFtcbiAgICB7IHB1YmtleTogbWFya2V0UHVia2V5LCBpc1NpZ25lcjogZmFsc2UsIGlzV3JpdGFibGU6IGZhbHNlIH0sXG4gICAgeyBwdWJrZXk6IHdoaXRlbGlzdFBkYSwgaXNTaWduZXI6IGZhbHNlLCBpc1dyaXRhYmxlOiB0cnVlIH0sXG4gICAgeyBwdWJrZXk6IGNyZWF0b3JQdWJrZXksIGlzU2lnbmVyOiB0cnVlLCBpc1dyaXRhYmxlOiBmYWxzZSB9LFxuICBdO1xuXG4gIGNvbnN0IGluc3RydWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb24oeyBwcm9ncmFtSWQ6IFBST0dSQU1fSUQsIGtleXMsIGRhdGEgfSk7XG4gIGNvbnN0IHRyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKCkuYWRkKGluc3RydWN0aW9uKTtcbiAgY29uc3QgeyBibG9ja2hhc2ggfSA9IGF3YWl0IGNvbm4uZ2V0TGF0ZXN0QmxvY2toYXNoKCdmaW5hbGl6ZWQnKTtcbiAgdHJhbnNhY3Rpb24ucmVjZW50QmxvY2toYXNoID0gYmxvY2toYXNoO1xuICB0cmFuc2FjdGlvbi5mZWVQYXllciA9IGNyZWF0b3JQdWJrZXk7XG5cbiAgcmV0dXJuIHtcbiAgICB0cmFuc2FjdGlvbixcbiAgICBzZXJpYWxpemVkVHg6IHRyYW5zYWN0aW9uLnNlcmlhbGl6ZSh7IHJlcXVpcmVBbGxTaWduYXR1cmVzOiBmYWxzZSwgdmVyaWZ5U2lnbmF0dXJlczogZmFsc2UgfSkudG9TdHJpbmcoJ2Jhc2U2NCcpLFxuICAgIHdoaXRlbGlzdFBkYTogd2hpdGVsaXN0UGRhLnRvQmFzZTU4KCksXG4gIH07XG59XG5cbi8qKlxuICogQnVpbGQgcmVtb3ZlX2Zyb21fd2hpdGVsaXN0IHRyYW5zYWN0aW9uXG4gKiBJREwgQWNjb3VudHM6IG1hcmtldCwgd2hpdGVsaXN0LCBjcmVhdG9yXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZFJlbW92ZUZyb21XaGl0ZWxpc3RUcmFuc2FjdGlvbihwYXJhbXM6IHtcbiAgbWFya2V0UGRhOiBzdHJpbmc7XG4gIHVzZXJUb1JlbW92ZTogc3RyaW5nO1xuICBjcmVhdG9yV2FsbGV0OiBzdHJpbmc7XG4gIGNvbm5lY3Rpb24/OiBDb25uZWN0aW9uO1xufSk6IFByb21pc2U8eyB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb247IHNlcmlhbGl6ZWRUeDogc3RyaW5nIH0+IHtcbiAgY29uc3QgY29ubiA9IHBhcmFtcy5jb25uZWN0aW9uIHx8IG5ldyBDb25uZWN0aW9uKFJQQ19FTkRQT0lOVCwgJ2NvbmZpcm1lZCcpO1xuICBjb25zdCBtYXJrZXRQdWJrZXkgPSBuZXcgUHVibGljS2V5KHBhcmFtcy5tYXJrZXRQZGEpO1xuICBjb25zdCB1c2VyUHVia2V5ID0gbmV3IFB1YmxpY0tleShwYXJhbXMudXNlclRvUmVtb3ZlKTtcbiAgY29uc3QgY3JlYXRvclB1YmtleSA9IG5ldyBQdWJsaWNLZXkocGFyYW1zLmNyZWF0b3JXYWxsZXQpO1xuICBjb25zdCB3aGl0ZWxpc3RQZGEgPSBkZXJpdmVXaGl0ZWxpc3RQZGEobWFya2V0UHVia2V5KTtcblxuICAvLyBJbnN0cnVjdGlvbiBkYXRhOiBkaXNjcmltaW5hdG9yICsgYWRkcmVzcyAocHVia2V5KVxuICBjb25zdCBkYXRhID0gQnVmZmVyLmFsbG9jKDggKyAzMik7XG4gIERJU0NSSU1JTkFUT1JTLnJlbW92ZV9mcm9tX3doaXRlbGlzdC5jb3B5KGRhdGEsIDApO1xuICB1c2VyUHVia2V5LnRvQnVmZmVyKCkuY29weShkYXRhLCA4KTtcblxuICBjb25zdCBrZXlzID0gW1xuICAgIHsgcHVia2V5OiBtYXJrZXRQdWJrZXksIGlzU2lnbmVyOiBmYWxzZSwgaXNXcml0YWJsZTogZmFsc2UgfSxcbiAgICB7IHB1YmtleTogd2hpdGVsaXN0UGRhLCBpc1NpZ25lcjogZmFsc2UsIGlzV3JpdGFibGU6IHRydWUgfSxcbiAgICB7IHB1YmtleTogY3JlYXRvclB1YmtleSwgaXNTaWduZXI6IHRydWUsIGlzV3JpdGFibGU6IGZhbHNlIH0sXG4gIF07XG5cbiAgY29uc3QgaW5zdHJ1Y3Rpb24gPSBuZXcgVHJhbnNhY3Rpb25JbnN0cnVjdGlvbih7IHByb2dyYW1JZDogUFJPR1JBTV9JRCwga2V5cywgZGF0YSB9KTtcbiAgY29uc3QgdHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb24oKS5hZGQoaW5zdHJ1Y3Rpb24pO1xuICBjb25zdCB7IGJsb2NraGFzaCB9ID0gYXdhaXQgY29ubi5nZXRMYXRlc3RCbG9ja2hhc2goJ2ZpbmFsaXplZCcpO1xuICB0cmFuc2FjdGlvbi5yZWNlbnRCbG9ja2hhc2ggPSBibG9ja2hhc2g7XG4gIHRyYW5zYWN0aW9uLmZlZVBheWVyID0gY3JlYXRvclB1YmtleTtcblxuICByZXR1cm4ge1xuICAgIHRyYW5zYWN0aW9uLFxuICAgIHNlcmlhbGl6ZWRUeDogdHJhbnNhY3Rpb24uc2VyaWFsaXplKHsgcmVxdWlyZUFsbFNpZ25hdHVyZXM6IGZhbHNlLCB2ZXJpZnlTaWduYXR1cmVzOiBmYWxzZSB9KS50b1N0cmluZygnYmFzZTY0JyksXG4gIH07XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSQUNFIE1BUktFVCBXSElURUxJU1Rcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQnVpbGQgY3JlYXRlX3JhY2Vfd2hpdGVsaXN0IHRyYW5zYWN0aW9uXG4gKiBJREwgQWNjb3VudHM6IHJhY2VfbWFya2V0LCB3aGl0ZWxpc3QsIGNyZWF0b3IsIHN5c3RlbV9wcm9ncmFtXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZENyZWF0ZVJhY2VXaGl0ZWxpc3RUcmFuc2FjdGlvbihwYXJhbXM6IHtcbiAgcmFjZU1hcmtldFBkYTogc3RyaW5nO1xuICBjcmVhdG9yV2FsbGV0OiBzdHJpbmc7XG4gIGNvbm5lY3Rpb24/OiBDb25uZWN0aW9uO1xufSk6IFByb21pc2U8eyB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb247IHNlcmlhbGl6ZWRUeDogc3RyaW5nOyB3aGl0ZWxpc3RQZGE6IHN0cmluZyB9PiB7XG4gIGNvbnN0IGNvbm4gPSBwYXJhbXMuY29ubmVjdGlvbiB8fCBuZXcgQ29ubmVjdGlvbihSUENfRU5EUE9JTlQsICdjb25maXJtZWQnKTtcbiAgY29uc3QgcmFjZU1hcmtldFB1YmtleSA9IG5ldyBQdWJsaWNLZXkocGFyYW1zLnJhY2VNYXJrZXRQZGEpO1xuICBjb25zdCBjcmVhdG9yUHVia2V5ID0gbmV3IFB1YmxpY0tleShwYXJhbXMuY3JlYXRvcldhbGxldCk7XG4gIGNvbnN0IHdoaXRlbGlzdFBkYSA9IGRlcml2ZVJhY2VXaGl0ZWxpc3RQZGEocmFjZU1hcmtldFB1YmtleSk7XG5cbiAgY29uc3QgZGF0YSA9IERJU0NSSU1JTkFUT1JTLmNyZWF0ZV9yYWNlX3doaXRlbGlzdDtcblxuICBjb25zdCBrZXlzID0gW1xuICAgIHsgcHVia2V5OiByYWNlTWFya2V0UHVia2V5LCBpc1NpZ25lcjogZmFsc2UsIGlzV3JpdGFibGU6IGZhbHNlIH0sXG4gICAgeyBwdWJrZXk6IHdoaXRlbGlzdFBkYSwgaXNTaWduZXI6IGZhbHNlLCBpc1dyaXRhYmxlOiB0cnVlIH0sXG4gICAgeyBwdWJrZXk6IGNyZWF0b3JQdWJrZXksIGlzU2lnbmVyOiB0cnVlLCBpc1dyaXRhYmxlOiB0cnVlIH0sXG4gICAgeyBwdWJrZXk6IFN5c3RlbVByb2dyYW0ucHJvZ3JhbUlkLCBpc1NpZ25lcjogZmFsc2UsIGlzV3JpdGFibGU6IGZhbHNlIH0sXG4gIF07XG5cbiAgY29uc3QgaW5zdHJ1Y3Rpb24gPSBuZXcgVHJhbnNhY3Rpb25JbnN0cnVjdGlvbih7IHByb2dyYW1JZDogUFJPR1JBTV9JRCwga2V5cywgZGF0YSB9KTtcbiAgY29uc3QgdHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb24oKS5hZGQoaW5zdHJ1Y3Rpb24pO1xuICBjb25zdCB7IGJsb2NraGFzaCB9ID0gYXdhaXQgY29ubi5nZXRMYXRlc3RCbG9ja2hhc2goJ2ZpbmFsaXplZCcpO1xuICB0cmFuc2FjdGlvbi5yZWNlbnRCbG9ja2hhc2ggPSBibG9ja2hhc2g7XG4gIHRyYW5zYWN0aW9uLmZlZVBheWVyID0gY3JlYXRvclB1YmtleTtcblxuICByZXR1cm4ge1xuICAgIHRyYW5zYWN0aW9uLFxuICAgIHNlcmlhbGl6ZWRUeDogdHJhbnNhY3Rpb24uc2VyaWFsaXplKHsgcmVxdWlyZUFsbFNpZ25hdHVyZXM6IGZhbHNlLCB2ZXJpZnlTaWduYXR1cmVzOiBmYWxzZSB9KS50b1N0cmluZygnYmFzZTY0JyksXG4gICAgd2hpdGVsaXN0UGRhOiB3aGl0ZWxpc3RQZGEudG9CYXNlNTgoKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBCdWlsZCBhZGRfdG9fcmFjZV93aGl0ZWxpc3QgdHJhbnNhY3Rpb25cbiAqIElETCBBY2NvdW50czogcmFjZV9tYXJrZXQsIHdoaXRlbGlzdCwgY3JlYXRvclxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRBZGRUb1JhY2VXaGl0ZWxpc3RUcmFuc2FjdGlvbihwYXJhbXM6IHtcbiAgcmFjZU1hcmtldFBkYTogc3RyaW5nO1xuICB1c2VyVG9BZGQ6IHN0cmluZztcbiAgY3JlYXRvcldhbGxldDogc3RyaW5nO1xuICBjb25uZWN0aW9uPzogQ29ubmVjdGlvbjtcbn0pOiBQcm9taXNlPHsgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uOyBzZXJpYWxpemVkVHg6IHN0cmluZyB9PiB7XG4gIGNvbnN0IGNvbm4gPSBwYXJhbXMuY29ubmVjdGlvbiB8fCBuZXcgQ29ubmVjdGlvbihSUENfRU5EUE9JTlQsICdjb25maXJtZWQnKTtcbiAgY29uc3QgcmFjZU1hcmtldFB1YmtleSA9IG5ldyBQdWJsaWNLZXkocGFyYW1zLnJhY2VNYXJrZXRQZGEpO1xuICBjb25zdCB1c2VyUHVia2V5ID0gbmV3IFB1YmxpY0tleShwYXJhbXMudXNlclRvQWRkKTtcbiAgY29uc3QgY3JlYXRvclB1YmtleSA9IG5ldyBQdWJsaWNLZXkocGFyYW1zLmNyZWF0b3JXYWxsZXQpO1xuICBjb25zdCB3aGl0ZWxpc3RQZGEgPSBkZXJpdmVSYWNlV2hpdGVsaXN0UGRhKHJhY2VNYXJrZXRQdWJrZXkpO1xuXG4gIC8vIEluc3RydWN0aW9uIGRhdGE6IGRpc2NyaW1pbmF0b3IgKyBhZGRyZXNzIChwdWJrZXkpXG4gIGNvbnN0IGRhdGEgPSBCdWZmZXIuYWxsb2MoOCArIDMyKTtcbiAgRElTQ1JJTUlOQVRPUlMuYWRkX3RvX3JhY2Vfd2hpdGVsaXN0LmNvcHkoZGF0YSwgMCk7XG4gIHVzZXJQdWJrZXkudG9CdWZmZXIoKS5jb3B5KGRhdGEsIDgpO1xuXG4gIGNvbnN0IGtleXMgPSBbXG4gICAgeyBwdWJrZXk6IHJhY2VNYXJrZXRQdWJrZXksIGlzU2lnbmVyOiBmYWxzZSwgaXNXcml0YWJsZTogZmFsc2UgfSxcbiAgICB7IHB1YmtleTogd2hpdGVsaXN0UGRhLCBpc1NpZ25lcjogZmFsc2UsIGlzV3JpdGFibGU6IHRydWUgfSxcbiAgICB7IHB1YmtleTogY3JlYXRvclB1YmtleSwgaXNTaWduZXI6IHRydWUsIGlzV3JpdGFibGU6IGZhbHNlIH0sXG4gIF07XG5cbiAgY29uc3QgaW5zdHJ1Y3Rpb24gPSBuZXcgVHJhbnNhY3Rpb25JbnN0cnVjdGlvbih7IHByb2dyYW1JZDogUFJPR1JBTV9JRCwga2V5cywgZGF0YSB9KTtcbiAgY29uc3QgdHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb24oKS5hZGQoaW5zdHJ1Y3Rpb24pO1xuICBjb25zdCB7IGJsb2NraGFzaCB9ID0gYXdhaXQgY29ubi5nZXRMYXRlc3RCbG9ja2hhc2goJ2ZpbmFsaXplZCcpO1xuICB0cmFuc2FjdGlvbi5yZWNlbnRCbG9ja2hhc2ggPSBibG9ja2hhc2g7XG4gIHRyYW5zYWN0aW9uLmZlZVBheWVyID0gY3JlYXRvclB1YmtleTtcblxuICByZXR1cm4ge1xuICAgIHRyYW5zYWN0aW9uLFxuICAgIHNlcmlhbGl6ZWRUeDogdHJhbnNhY3Rpb24uc2VyaWFsaXplKHsgcmVxdWlyZUFsbFNpZ25hdHVyZXM6IGZhbHNlLCB2ZXJpZnlTaWduYXR1cmVzOiBmYWxzZSB9KS50b1N0cmluZygnYmFzZTY0JyksXG4gIH07XG59XG5cbi8qKlxuICogQnVpbGQgcmVtb3ZlX2Zyb21fcmFjZV93aGl0ZWxpc3QgdHJhbnNhY3Rpb25cbiAqIElETCBBY2NvdW50czogcmFjZV9tYXJrZXQsIHdoaXRlbGlzdCwgY3JlYXRvclxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRSZW1vdmVGcm9tUmFjZVdoaXRlbGlzdFRyYW5zYWN0aW9uKHBhcmFtczoge1xuICByYWNlTWFya2V0UGRhOiBzdHJpbmc7XG4gIHVzZXJUb1JlbW92ZTogc3RyaW5nO1xuICBjcmVhdG9yV2FsbGV0OiBzdHJpbmc7XG4gIGNvbm5lY3Rpb24/OiBDb25uZWN0aW9uO1xufSk6IFByb21pc2U8eyB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb247IHNlcmlhbGl6ZWRUeDogc3RyaW5nIH0+IHtcbiAgY29uc3QgY29ubiA9IHBhcmFtcy5jb25uZWN0aW9uIHx8IG5ldyBDb25uZWN0aW9uKFJQQ19FTkRQT0lOVCwgJ2NvbmZpcm1lZCcpO1xuICBjb25zdCByYWNlTWFya2V0UHVia2V5ID0gbmV3IFB1YmxpY0tleShwYXJhbXMucmFjZU1hcmtldFBkYSk7XG4gIGNvbnN0IHVzZXJQdWJrZXkgPSBuZXcgUHVibGljS2V5KHBhcmFtcy51c2VyVG9SZW1vdmUpO1xuICBjb25zdCBjcmVhdG9yUHVia2V5ID0gbmV3IFB1YmxpY0tleShwYXJhbXMuY3JlYXRvcldhbGxldCk7XG4gIGNvbnN0IHdoaXRlbGlzdFBkYSA9IGRlcml2ZVJhY2VXaGl0ZWxpc3RQZGEocmFjZU1hcmtldFB1YmtleSk7XG5cbiAgLy8gSW5zdHJ1Y3Rpb24gZGF0YTogZGlzY3JpbWluYXRvciArIGFkZHJlc3MgKHB1YmtleSlcbiAgY29uc3QgZGF0YSA9IEJ1ZmZlci5hbGxvYyg4ICsgMzIpO1xuICBESVNDUklNSU5BVE9SUy5yZW1vdmVfZnJvbV9yYWNlX3doaXRlbGlzdC5jb3B5KGRhdGEsIDApO1xuICB1c2VyUHVia2V5LnRvQnVmZmVyKCkuY29weShkYXRhLCA4KTtcblxuICBjb25zdCBrZXlzID0gW1xuICAgIHsgcHVia2V5OiByYWNlTWFya2V0UHVia2V5LCBpc1NpZ25lcjogZmFsc2UsIGlzV3JpdGFibGU6IGZhbHNlIH0sXG4gICAgeyBwdWJrZXk6IHdoaXRlbGlzdFBkYSwgaXNTaWduZXI6IGZhbHNlLCBpc1dyaXRhYmxlOiB0cnVlIH0sXG4gICAgeyBwdWJrZXk6IGNyZWF0b3JQdWJrZXksIGlzU2lnbmVyOiB0cnVlLCBpc1dyaXRhYmxlOiBmYWxzZSB9LFxuICBdO1xuXG4gIGNvbnN0IGluc3RydWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb24oeyBwcm9ncmFtSWQ6IFBST0dSQU1fSUQsIGtleXMsIGRhdGEgfSk7XG4gIGNvbnN0IHRyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKCkuYWRkKGluc3RydWN0aW9uKTtcbiAgY29uc3QgeyBibG9ja2hhc2ggfSA9IGF3YWl0IGNvbm4uZ2V0TGF0ZXN0QmxvY2toYXNoKCdmaW5hbGl6ZWQnKTtcbiAgdHJhbnNhY3Rpb24ucmVjZW50QmxvY2toYXNoID0gYmxvY2toYXNoO1xuICB0cmFuc2FjdGlvbi5mZWVQYXllciA9IGNyZWF0b3JQdWJrZXk7XG5cbiAgcmV0dXJuIHtcbiAgICB0cmFuc2FjdGlvbixcbiAgICBzZXJpYWxpemVkVHg6IHRyYW5zYWN0aW9uLnNlcmlhbGl6ZSh7IHJlcXVpcmVBbGxTaWduYXR1cmVzOiBmYWxzZSwgdmVyaWZ5U2lnbmF0dXJlczogZmFsc2UgfSkudG9TdHJpbmcoJ2Jhc2U2NCcpLFxuICB9O1xufVxuIl19
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Baozi MCP Server Configuration
|
|
3
|
+
* Mainnet-ready configuration for V4.7.6
|
|
4
|
+
*/
|
|
5
|
+
import { PublicKey } from '@solana/web3.js';
|
|
6
|
+
export declare const NETWORK: "mainnet-beta" | "devnet";
|
|
7
|
+
export declare const IS_MAINNET: boolean;
|
|
8
|
+
export declare const PROGRAM_ID: PublicKey;
|
|
9
|
+
export declare const RPC_ENDPOINT: string;
|
|
10
|
+
export declare const SEEDS: {
|
|
11
|
+
readonly CONFIG: Buffer<ArrayBuffer>;
|
|
12
|
+
readonly MARKET: Buffer<ArrayBuffer>;
|
|
13
|
+
readonly POSITION: Buffer<ArrayBuffer>;
|
|
14
|
+
readonly RACE: Buffer<ArrayBuffer>;
|
|
15
|
+
readonly RACE_POSITION: Buffer<ArrayBuffer>;
|
|
16
|
+
readonly WHITELIST: Buffer<ArrayBuffer>;
|
|
17
|
+
readonly RACE_WHITELIST: Buffer<ArrayBuffer>;
|
|
18
|
+
readonly AFFILIATE: Buffer<ArrayBuffer>;
|
|
19
|
+
readonly CREATOR_PROFILE: Buffer<ArrayBuffer>;
|
|
20
|
+
readonly SOL_TREASURY: Buffer<ArrayBuffer>;
|
|
21
|
+
readonly REVENUE_CONFIG: Buffer<ArrayBuffer>;
|
|
22
|
+
readonly DISPUTE_META: Buffer<ArrayBuffer>;
|
|
23
|
+
};
|
|
24
|
+
export declare const CONFIG_PDA: PublicKey;
|
|
25
|
+
export declare const SOL_TREASURY_PDA: PublicKey;
|
|
26
|
+
export declare const DISCRIMINATORS: {
|
|
27
|
+
readonly MARKET: Buffer<ArrayBuffer>;
|
|
28
|
+
readonly MARKET_BASE58: "FcJn7zePJQ1";
|
|
29
|
+
readonly USER_POSITION: Buffer<ArrayBuffer>;
|
|
30
|
+
readonly USER_POSITION_BASE58: "j9SjDYAWesU";
|
|
31
|
+
readonly RACE_MARKET: Buffer<ArrayBuffer>;
|
|
32
|
+
readonly RACE_POSITION: Buffer<ArrayBuffer>;
|
|
33
|
+
readonly RACE_POSITION_BASE58: "8Ukm3FYuL6H";
|
|
34
|
+
readonly GLOBAL_CONFIG: Buffer<ArrayBuffer>;
|
|
35
|
+
readonly CREATOR_PROFILE: Buffer<ArrayBuffer>;
|
|
36
|
+
readonly AFFILIATE: Buffer<ArrayBuffer>;
|
|
37
|
+
readonly REFERRED_USER: Buffer<ArrayBuffer>;
|
|
38
|
+
readonly DISPUTE_META: Buffer<ArrayBuffer>;
|
|
39
|
+
};
|
|
40
|
+
export declare const FEES: {
|
|
41
|
+
readonly OFFICIAL_PLATFORM_FEE_BPS: 250;
|
|
42
|
+
readonly LAB_PLATFORM_FEE_BPS: 300;
|
|
43
|
+
readonly PRIVATE_PLATFORM_FEE_BPS: 200;
|
|
44
|
+
readonly OFFICIAL_CREATION_FEE: 100000000;
|
|
45
|
+
readonly LAB_CREATION_FEE: 40000000;
|
|
46
|
+
readonly PRIVATE_CREATION_FEE: 40000000;
|
|
47
|
+
readonly AFFILIATE_FEE_BPS: 100;
|
|
48
|
+
readonly CREATOR_FEE_BPS: 50;
|
|
49
|
+
readonly BPS_DENOMINATOR: 10000;
|
|
50
|
+
};
|
|
51
|
+
export declare const BET_LIMITS: {
|
|
52
|
+
readonly MIN_BET_SOL: 0.01;
|
|
53
|
+
readonly MAX_BET_SOL: 100;
|
|
54
|
+
readonly MIN_BET_LAMPORTS: 10000000;
|
|
55
|
+
readonly MAX_BET_LAMPORTS: 100000000000;
|
|
56
|
+
};
|
|
57
|
+
export declare const TIMING: {
|
|
58
|
+
readonly BETTING_FREEZE_SECONDS: 300;
|
|
59
|
+
readonly MIN_EVENT_BUFFER_HOURS: 12;
|
|
60
|
+
readonly RECOMMENDED_EVENT_BUFFER_HOURS: 24;
|
|
61
|
+
readonly MAX_MARKET_DURATION_DAYS: 365;
|
|
62
|
+
readonly MIN_RESOLUTION_BUFFER_SECONDS: 600;
|
|
63
|
+
readonly MAX_RESOLUTION_BUFFER_SECONDS: 604800;
|
|
64
|
+
readonly DISPUTE_WINDOW_SECONDS: 86400;
|
|
65
|
+
};
|
|
66
|
+
export declare const MARKET_STATUS: {
|
|
67
|
+
readonly ACTIVE: 0;
|
|
68
|
+
readonly CLOSED: 1;
|
|
69
|
+
readonly RESOLVED: 2;
|
|
70
|
+
readonly CANCELLED: 3;
|
|
71
|
+
readonly PAUSED: 4;
|
|
72
|
+
readonly RESOLVED_PENDING: 5;
|
|
73
|
+
readonly DISPUTED: 6;
|
|
74
|
+
};
|
|
75
|
+
export declare const MARKET_STATUS_NAMES: Record<number, string>;
|
|
76
|
+
export declare const MARKET_OUTCOME: {
|
|
77
|
+
readonly UNDECIDED: 0;
|
|
78
|
+
readonly INVALID: 1;
|
|
79
|
+
readonly YES: 2;
|
|
80
|
+
readonly NO: 3;
|
|
81
|
+
};
|
|
82
|
+
export declare const MARKET_OUTCOME_NAMES: Record<number, string>;
|
|
83
|
+
export declare const MARKET_LAYER: {
|
|
84
|
+
readonly OFFICIAL: 0;
|
|
85
|
+
readonly LAB: 1;
|
|
86
|
+
readonly PRIVATE: 2;
|
|
87
|
+
};
|
|
88
|
+
export declare const MARKET_LAYER_NAMES: Record<number, string>;
|
|
89
|
+
export declare const MARKET_TYPE: {
|
|
90
|
+
readonly EVENT: 0;
|
|
91
|
+
readonly MEASUREMENT: 1;
|
|
92
|
+
};
|
|
93
|
+
export declare const MARKET_TYPE_NAMES: Record<number, string>;
|
|
94
|
+
export declare const ACCESS_GATE: {
|
|
95
|
+
readonly PUBLIC: 0;
|
|
96
|
+
readonly WHITELIST: 1;
|
|
97
|
+
};
|
|
98
|
+
export declare const CURRENCY_TYPE: {
|
|
99
|
+
readonly SOL: 0;
|
|
100
|
+
readonly USDC: 1;
|
|
101
|
+
};
|
|
102
|
+
export declare const CURRENCY_TYPE_NAMES: Record<number, string>;
|
|
103
|
+
export declare const ERROR_CODES: Record<number, string>;
|
|
104
|
+
export declare const SYSTEM_PROGRAM_ID: PublicKey;
|
|
105
|
+
export declare const TOKEN_PROGRAM_ID: PublicKey;
|
|
106
|
+
export declare const ASSOCIATED_TOKEN_PROGRAM_ID: PublicKey;
|
|
107
|
+
/**
|
|
108
|
+
* Get lamports from SOL
|
|
109
|
+
*/
|
|
110
|
+
export declare function solToLamports(sol: number): bigint;
|
|
111
|
+
/**
|
|
112
|
+
* Get SOL from lamports
|
|
113
|
+
*/
|
|
114
|
+
export declare function lamportsToSol(lamports: bigint | number): number;
|
|
115
|
+
/**
|
|
116
|
+
* Derive market PDA from market ID
|
|
117
|
+
*/
|
|
118
|
+
export declare function deriveMarketPda(marketId: number | bigint): [PublicKey, number];
|
|
119
|
+
/**
|
|
120
|
+
* Derive position PDA from market ID and user wallet
|
|
121
|
+
*/
|
|
122
|
+
export declare function derivePositionPda(marketId: number | bigint, user: PublicKey): [PublicKey, number];
|
|
123
|
+
/**
|
|
124
|
+
* Derive race position PDA from market ID and user wallet
|
|
125
|
+
*/
|
|
126
|
+
export declare function deriveRacePositionPda(marketId: number | bigint, user: PublicKey): [PublicKey, number];
|
|
127
|
+
/**
|
|
128
|
+
* Derive affiliate PDA from referral code
|
|
129
|
+
*/
|
|
130
|
+
export declare function deriveAffiliatePda(referralCode: string): [PublicKey, number];
|
|
131
|
+
/**
|
|
132
|
+
* Get platform fee for a layer
|
|
133
|
+
*/
|
|
134
|
+
export declare function getPlatformFeeForLayer(layer: number): number;
|
|
135
|
+
/**
|
|
136
|
+
* Get creation fee for a layer (in lamports)
|
|
137
|
+
*/
|
|
138
|
+
export declare function getCreationFeeForLayer(layer: number): number;
|