yosoku 0.1.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.
Files changed (110) hide show
  1. package/dist/accounts/filllog.d.ts +5 -0
  2. package/dist/accounts/filllog.d.ts.map +1 -0
  3. package/dist/accounts/filllog.js +30 -0
  4. package/dist/accounts/filllog.js.map +1 -0
  5. package/dist/accounts/index.d.ts +42 -0
  6. package/dist/accounts/index.d.ts.map +1 -0
  7. package/dist/accounts/index.js +81 -0
  8. package/dist/accounts/index.js.map +1 -0
  9. package/dist/accounts/market.d.ts +14 -0
  10. package/dist/accounts/market.d.ts.map +1 -0
  11. package/dist/accounts/market.js +104 -0
  12. package/dist/accounts/market.js.map +1 -0
  13. package/dist/accounts/marketinfo.d.ts +9 -0
  14. package/dist/accounts/marketinfo.d.ts.map +1 -0
  15. package/dist/accounts/marketinfo.js +29 -0
  16. package/dist/accounts/marketinfo.js.map +1 -0
  17. package/dist/accounts/order.d.ts +11 -0
  18. package/dist/accounts/order.d.ts.map +1 -0
  19. package/dist/accounts/order.js +50 -0
  20. package/dist/accounts/order.js.map +1 -0
  21. package/dist/accounts/orderbook.d.ts +5 -0
  22. package/dist/accounts/orderbook.d.ts.map +1 -0
  23. package/dist/accounts/orderbook.js +80 -0
  24. package/dist/accounts/orderbook.js.map +1 -0
  25. package/dist/accounts/position.d.ts +11 -0
  26. package/dist/accounts/position.d.ts.map +1 -0
  27. package/dist/accounts/position.js +48 -0
  28. package/dist/accounts/position.js.map +1 -0
  29. package/dist/accounts/resolution.d.ts +13 -0
  30. package/dist/accounts/resolution.d.ts.map +1 -0
  31. package/dist/accounts/resolution.js +91 -0
  32. package/dist/accounts/resolution.js.map +1 -0
  33. package/dist/client.d.ts +50 -0
  34. package/dist/client.d.ts.map +1 -0
  35. package/dist/client.js +63 -0
  36. package/dist/client.js.map +1 -0
  37. package/dist/constants.d.ts +28 -0
  38. package/dist/constants.d.ts.map +1 -0
  39. package/dist/constants.js +32 -0
  40. package/dist/constants.js.map +1 -0
  41. package/dist/errors.d.ts +85 -0
  42. package/dist/errors.d.ts.map +1 -0
  43. package/dist/errors.js +186 -0
  44. package/dist/errors.js.map +1 -0
  45. package/dist/events/index.d.ts +22 -0
  46. package/dist/events/index.d.ts.map +1 -0
  47. package/dist/events/index.js +78 -0
  48. package/dist/events/index.js.map +1 -0
  49. package/dist/events/parser.d.ts +4 -0
  50. package/dist/events/parser.d.ts.map +1 -0
  51. package/dist/events/parser.js +111 -0
  52. package/dist/events/parser.js.map +1 -0
  53. package/dist/events/types.d.ts +85 -0
  54. package/dist/events/types.d.ts.map +1 -0
  55. package/dist/events/types.js +3 -0
  56. package/dist/events/types.js.map +1 -0
  57. package/dist/idl/pred_market.d.ts +4809 -0
  58. package/dist/idl/pred_market.d.ts.map +1 -0
  59. package/dist/idl/pred_market.js +3 -0
  60. package/dist/idl/pred_market.js.map +1 -0
  61. package/dist/idl/pred_market.json +4802 -0
  62. package/dist/index.d.ts +15 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +47 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/instructions/admin.d.ts +20 -0
  67. package/dist/instructions/admin.d.ts.map +1 -0
  68. package/dist/instructions/admin.js +89 -0
  69. package/dist/instructions/admin.js.map +1 -0
  70. package/dist/instructions/index.d.ts +14 -0
  71. package/dist/instructions/index.d.ts.map +1 -0
  72. package/dist/instructions/index.js +18 -0
  73. package/dist/instructions/index.js.map +1 -0
  74. package/dist/instructions/market-creation.d.ts +48 -0
  75. package/dist/instructions/market-creation.d.ts.map +1 -0
  76. package/dist/instructions/market-creation.js +270 -0
  77. package/dist/instructions/market-creation.js.map +1 -0
  78. package/dist/instructions/market-info.d.ts +48 -0
  79. package/dist/instructions/market-info.d.ts.map +1 -0
  80. package/dist/instructions/market-info.js +138 -0
  81. package/dist/instructions/market-info.js.map +1 -0
  82. package/dist/instructions/positions.d.ts +42 -0
  83. package/dist/instructions/positions.d.ts.map +1 -0
  84. package/dist/instructions/positions.js +122 -0
  85. package/dist/instructions/positions.js.map +1 -0
  86. package/dist/instructions/resolution.d.ts +32 -0
  87. package/dist/instructions/resolution.d.ts.map +1 -0
  88. package/dist/instructions/resolution.js +107 -0
  89. package/dist/instructions/resolution.js.map +1 -0
  90. package/dist/instructions/trading.d.ts +81 -0
  91. package/dist/instructions/trading.d.ts.map +1 -0
  92. package/dist/instructions/trading.js +195 -0
  93. package/dist/instructions/trading.js.map +1 -0
  94. package/dist/instructions/vote-resolution.d.ts +20 -0
  95. package/dist/instructions/vote-resolution.d.ts.map +1 -0
  96. package/dist/instructions/vote-resolution.js +58 -0
  97. package/dist/instructions/vote-resolution.js.map +1 -0
  98. package/dist/pda.d.ts +11 -0
  99. package/dist/pda.d.ts.map +1 -0
  100. package/dist/pda.js +68 -0
  101. package/dist/pda.js.map +1 -0
  102. package/dist/price.d.ts +48 -0
  103. package/dist/price.d.ts.map +1 -0
  104. package/dist/price.js +90 -0
  105. package/dist/price.js.map +1 -0
  106. package/dist/types.d.ts +198 -0
  107. package/dist/types.d.ts.map +1 -0
  108. package/dist/types.js +92 -0
  109. package/dist/types.js.map +1 -0
  110. package/package.json +40 -0
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MarketInfoModule = void 0;
4
+ const web3_js_1 = require("@solana/web3.js");
5
+ const types_1 = require("../types");
6
+ class MarketInfoModule {
7
+ /** @internal */
8
+ constructor(program) {
9
+ this.program = program;
10
+ }
11
+ /** Create a new MarketInfo account */
12
+ async createMarketInfo(params) {
13
+ const keypair = web3_js_1.Keypair.generate();
14
+ const sig = await this.program.methods
15
+ .createMarketInfo((0, types_1.toAnchorMarketInfoType)(params.marketType), (0, types_1.toAnchorResolverType)(params.resolverType))
16
+ .accounts({
17
+ marketInfo: keypair.publicKey,
18
+ creator: this.program.provider.publicKey,
19
+ systemProgram: web3_js_1.SystemProgram.programId,
20
+ })
21
+ .signers([keypair])
22
+ .rpc();
23
+ return {
24
+ marketInfoPda: keypair.publicKey,
25
+ keypair,
26
+ signature: sig,
27
+ };
28
+ }
29
+ /**
30
+ * Create a MarketInfo and populate it with text fields.
31
+ * Convenience method that combines createMarketInfo + set text fields.
32
+ */
33
+ async createPopulatedMarketInfo(params) {
34
+ const result = await this.createMarketInfo({
35
+ marketType: params.marketType,
36
+ resolverType: params.resolverType,
37
+ });
38
+ if (params.marketQuestion) {
39
+ await this.setMarketQuestion(result.marketInfoPda, params.marketQuestion);
40
+ }
41
+ if (params.description) {
42
+ await this.setDescription(result.marketInfoPda, params.description);
43
+ }
44
+ if (params.rules) {
45
+ await this.setRules(result.marketInfoPda, params.rules);
46
+ }
47
+ return result;
48
+ }
49
+ /** Set the market question (replaces existing) */
50
+ async setMarketQuestion(marketInfo, question) {
51
+ return this.program.methods
52
+ .setMarketQuestion(question)
53
+ .accounts({
54
+ marketInfo,
55
+ authority: this.program.provider.publicKey,
56
+ systemProgram: web3_js_1.SystemProgram.programId,
57
+ })
58
+ .rpc();
59
+ }
60
+ /** Append to the market question */
61
+ async appendMarketQuestion(marketInfo, chunk) {
62
+ return this.program.methods
63
+ .appendMarketQuestion(chunk)
64
+ .accounts({
65
+ marketInfo,
66
+ authority: this.program.provider.publicKey,
67
+ systemProgram: web3_js_1.SystemProgram.programId,
68
+ })
69
+ .rpc();
70
+ }
71
+ /** Set the description (replaces existing) */
72
+ async setDescription(marketInfo, description) {
73
+ return this.program.methods
74
+ .setDescription(description)
75
+ .accounts({
76
+ marketInfo,
77
+ authority: this.program.provider.publicKey,
78
+ systemProgram: web3_js_1.SystemProgram.programId,
79
+ })
80
+ .rpc();
81
+ }
82
+ /** Append to the description */
83
+ async appendDescription(marketInfo, chunk) {
84
+ return this.program.methods
85
+ .appendDescription(chunk)
86
+ .accounts({
87
+ marketInfo,
88
+ authority: this.program.provider.publicKey,
89
+ systemProgram: web3_js_1.SystemProgram.programId,
90
+ })
91
+ .rpc();
92
+ }
93
+ /** Set the rules (replaces existing) */
94
+ async setRules(marketInfo, rules) {
95
+ return this.program.methods
96
+ .setRules(rules)
97
+ .accounts({
98
+ marketInfo,
99
+ authority: this.program.provider.publicKey,
100
+ systemProgram: web3_js_1.SystemProgram.programId,
101
+ })
102
+ .rpc();
103
+ }
104
+ /** Append to the rules */
105
+ async appendRules(marketInfo, chunk) {
106
+ return this.program.methods
107
+ .appendRules(chunk)
108
+ .accounts({
109
+ marketInfo,
110
+ authority: this.program.provider.publicKey,
111
+ systemProgram: web3_js_1.SystemProgram.programId,
112
+ })
113
+ .rpc();
114
+ }
115
+ /** Set the market type */
116
+ async setMarketType(marketInfo, marketType) {
117
+ return this.program.methods
118
+ .setMarketType((0, types_1.toAnchorMarketInfoType)(marketType))
119
+ .accounts({
120
+ marketInfo,
121
+ authority: this.program.provider.publicKey,
122
+ })
123
+ .rpc();
124
+ }
125
+ /** Set the resolver type */
126
+ async setResolverType(marketInfo, resolverType) {
127
+ return this.program.methods
128
+ .setResolverType((0, types_1.toAnchorResolverType)(resolverType))
129
+ .accounts({
130
+ marketInfo,
131
+ authority: this.program.provider.publicKey,
132
+ systemProgram: web3_js_1.SystemProgram.programId,
133
+ })
134
+ .rpc();
135
+ }
136
+ }
137
+ exports.MarketInfoModule = MarketInfoModule;
138
+ //# sourceMappingURL=market-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"market-info.js","sourceRoot":"","sources":["../../src/instructions/market-info.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { Program, BN } from "@coral-xyz/anchor";
2
+ import { PublicKey } from "@solana/web3.js";
3
+ import { PredMarket } from "../idl/pred_market";
4
+ import { Side } from "../types";
5
+ export interface ClaimPositionParams {
6
+ market: PublicKey;
7
+ index?: number;
8
+ orderPda: PublicKey;
9
+ orderSide: Side;
10
+ }
11
+ export interface MergeSharesParams {
12
+ market: PublicKey;
13
+ index?: number;
14
+ /** Number of YES+NO pairs to merge (receives $1.00 per pair) */
15
+ amount: BN;
16
+ }
17
+ export interface CancelOrderParams {
18
+ market: PublicKey;
19
+ index?: number;
20
+ orderPda: PublicKey;
21
+ }
22
+ export interface RedeemPositionParams {
23
+ market: PublicKey;
24
+ index?: number;
25
+ side: Side;
26
+ }
27
+ export declare class PositionModule {
28
+ private readonly program;
29
+ /** @internal */
30
+ constructor(program: Program<PredMarket>);
31
+ /** @internal */
32
+ private getLeg;
33
+ /** Claim filled shares from a limit order */
34
+ claimPosition(params: ClaimPositionParams): Promise<string>;
35
+ /** Merge equal YES + NO shares back into USDC ($1.00 per pair) */
36
+ mergeShares(params: MergeSharesParams): Promise<string>;
37
+ /** Cancel an unfilled limit order */
38
+ cancelOrder(params: CancelOrderParams): Promise<string>;
39
+ /** Redeem a position after market resolution */
40
+ redeemPosition(params: RedeemPositionParams): Promise<string>;
41
+ }
42
+ //# sourceMappingURL=positions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"positions.d.ts","sourceRoot":"","sources":["../../src/instructions/positions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAiB,MAAM,iBAAiB,CAAC;AAK3D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAgB,MAAM,UAAU,CAAC;AAK9C,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,MAAM,EAAE,EAAE,CAAC;CACZ;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,qBAAa,cAAc;IAEb,OAAO,CAAC,QAAQ,CAAC,OAAO;IADpC,gBAAgB;gBACa,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC;IAEzD,gBAAgB;YACF,MAAM;IAMpB,6CAA6C;IACvC,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IA8BjE,kEAAkE;IAC5D,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAyB7D,qCAAqC;IAC/B,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IA6B7D,gDAAgD;IAC1C,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;CAyBpE"}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PositionModule = void 0;
4
+ const web3_js_1 = require("@solana/web3.js");
5
+ const spl_token_1 = require("@solana/spl-token");
6
+ const types_1 = require("../types");
7
+ const pda_1 = require("../pda");
8
+ const constants_1 = require("../constants");
9
+ const market_1 = require("../accounts/market");
10
+ class PositionModule {
11
+ /** @internal */
12
+ constructor(program) {
13
+ this.program = program;
14
+ }
15
+ /** @internal */
16
+ async getLeg(market, index) {
17
+ const m = await (0, market_1.fetchMarket)(this.program, market);
18
+ if (!m)
19
+ throw new Error(`Market not found: ${market.toBase58()}`);
20
+ return m.legs[index];
21
+ }
22
+ /** Claim filled shares from a limit order */
23
+ async claimPosition(params) {
24
+ const index = params.index ?? 0;
25
+ const user = this.program.provider.publicKey;
26
+ const leg = await this.getLeg(params.market, index);
27
+ const sideNum = (0, types_1.toSideNumber)(params.orderSide);
28
+ const [userPosition] = (0, pda_1.getPositionPda)(this.program.programId, params.market, index, user, sideNum);
29
+ const userAta = (0, spl_token_1.getAssociatedTokenAddressSync)(constants_1.USDC_MINT, user);
30
+ return this.program.methods
31
+ .claimPosition(index)
32
+ .accounts({
33
+ user,
34
+ market: params.market,
35
+ vault: leg.vault,
36
+ yesOrderBook: leg.yesOrderBook,
37
+ noOrderBook: leg.noOrderBook,
38
+ yesFillLog: leg.yesFillLog,
39
+ noFillLog: leg.noFillLog,
40
+ userAta,
41
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
42
+ systemProgram: web3_js_1.SystemProgram.programId,
43
+ order: params.orderPda,
44
+ userPosition,
45
+ })
46
+ .rpc();
47
+ }
48
+ /** Merge equal YES + NO shares back into USDC ($1.00 per pair) */
49
+ async mergeShares(params) {
50
+ const index = params.index ?? 0;
51
+ const user = this.program.provider.publicKey;
52
+ const leg = await this.getLeg(params.market, index);
53
+ const [yesPos] = (0, pda_1.getPositionPda)(this.program.programId, params.market, index, user, 0);
54
+ const [noPos] = (0, pda_1.getPositionPda)(this.program.programId, params.market, index, user, 1);
55
+ const userAta = (0, spl_token_1.getAssociatedTokenAddressSync)(constants_1.USDC_MINT, user);
56
+ return this.program.methods
57
+ .mergeShares(index, params.amount)
58
+ .accounts({
59
+ user,
60
+ market: params.market,
61
+ vault: leg.vault,
62
+ yesOrderBook: leg.yesOrderBook,
63
+ noOrderBook: leg.noOrderBook,
64
+ userAta,
65
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
66
+ yesPosition: yesPos,
67
+ noPosition: noPos,
68
+ })
69
+ .rpc();
70
+ }
71
+ /** Cancel an unfilled limit order */
72
+ async cancelOrder(params) {
73
+ const index = params.index ?? 0;
74
+ const user = this.program.provider.publicKey;
75
+ const leg = await this.getLeg(params.market, index);
76
+ const [yesPos] = (0, pda_1.getPositionPda)(this.program.programId, params.market, index, user, 0);
77
+ const [noPos] = (0, pda_1.getPositionPda)(this.program.programId, params.market, index, user, 1);
78
+ const userAta = (0, spl_token_1.getAssociatedTokenAddressSync)(constants_1.USDC_MINT, user);
79
+ return this.program.methods
80
+ .cancelOrder(index)
81
+ .accounts({
82
+ user,
83
+ market: params.market,
84
+ vault: leg.vault,
85
+ yesOrderBook: leg.yesOrderBook,
86
+ noOrderBook: leg.noOrderBook,
87
+ yesFillLog: leg.yesFillLog,
88
+ noFillLog: leg.noFillLog,
89
+ userAta,
90
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
91
+ systemProgram: web3_js_1.SystemProgram.programId,
92
+ order: params.orderPda,
93
+ yesPosition: yesPos,
94
+ noPosition: noPos,
95
+ })
96
+ .rpc();
97
+ }
98
+ /** Redeem a position after market resolution */
99
+ async redeemPosition(params) {
100
+ const index = params.index ?? 0;
101
+ const user = this.program.provider.publicKey;
102
+ const leg = await this.getLeg(params.market, index);
103
+ const sideNum = (0, types_1.toSideNumber)(params.side);
104
+ const [positionPda] = (0, pda_1.getPositionPda)(this.program.programId, params.market, index, user, sideNum);
105
+ const userAta = (0, spl_token_1.getAssociatedTokenAddressSync)(constants_1.USDC_MINT, user);
106
+ return this.program.methods
107
+ .redeemPosition(index)
108
+ .accounts({
109
+ user,
110
+ market: params.market,
111
+ vault: leg.vault,
112
+ yesOrderBook: leg.yesOrderBook,
113
+ noOrderBook: leg.noOrderBook,
114
+ userAta,
115
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
116
+ position: positionPda,
117
+ })
118
+ .rpc();
119
+ }
120
+ }
121
+ exports.PositionModule = PositionModule;
122
+ //# sourceMappingURL=positions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"positions.js","sourceRoot":"","sources":["../../src/instructions/positions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { Program } from "@coral-xyz/anchor";
2
+ import { PublicKey } from "@solana/web3.js";
3
+ import { PredMarket } from "../idl/pred_market";
4
+ export interface ProposeResolutionParams {
5
+ market: PublicKey;
6
+ index?: number;
7
+ proposedOutcome: "yes" | "no";
8
+ }
9
+ export interface FinalizeResolutionParams {
10
+ market: PublicKey;
11
+ index?: number;
12
+ }
13
+ export interface ClaimDisputeWinningsParams {
14
+ market: PublicKey;
15
+ index?: number;
16
+ }
17
+ export declare class ResolutionModule {
18
+ private readonly program;
19
+ /** @internal */
20
+ constructor(program: Program<PredMarket>);
21
+ /** @internal */
22
+ private getLeg;
23
+ /** Propose a resolution for a market (deposits bond) */
24
+ proposeResolution(params: ProposeResolutionParams): Promise<string>;
25
+ /** Finalize a resolution after the dispute window expires */
26
+ finalizeResolution(market: PublicKey, index?: number): Promise<string>;
27
+ /** Claim dispute winnings after resolution */
28
+ claimDisputeWinnings(market: PublicKey, index?: number): Promise<string>;
29
+ /** Resolve an expired market to a 50/50 split */
30
+ resolveExpiredMarket(market: PublicKey, index?: number): Promise<string>;
31
+ }
32
+ //# sourceMappingURL=resolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolution.d.ts","sourceRoot":"","sources":["../../src/instructions/resolution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAM,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAiB,MAAM,iBAAiB,CAAC;AAK3D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAQhD,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,KAAK,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,gBAAgB;IAEf,OAAO,CAAC,QAAQ,CAAC,OAAO;IADpC,gBAAgB;gBACa,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC;IAEzD,gBAAgB;YACF,MAAM;IAMpB,wDAAwD;IAClD,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IAiCzE,6DAA6D;IACvD,kBAAkB,CACtB,MAAM,EAAE,SAAS,EACjB,KAAK,GAAE,MAAU,GAChB,OAAO,CAAC,MAAM,CAAC;IAgClB,8CAA8C;IACxC,oBAAoB,CACxB,MAAM,EAAE,SAAS,EACjB,KAAK,GAAE,MAAU,GAChB,OAAO,CAAC,MAAM,CAAC;IA+BlB,iDAAiD;IAC3C,oBAAoB,CACxB,MAAM,EAAE,SAAS,EACjB,KAAK,GAAE,MAAU,GAChB,OAAO,CAAC,MAAM,CAAC;CAQnB"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ResolutionModule = void 0;
4
+ const web3_js_1 = require("@solana/web3.js");
5
+ const spl_token_1 = require("@solana/spl-token");
6
+ const pda_1 = require("../pda");
7
+ const constants_1 = require("../constants");
8
+ const market_1 = require("../accounts/market");
9
+ class ResolutionModule {
10
+ /** @internal */
11
+ constructor(program) {
12
+ this.program = program;
13
+ }
14
+ /** @internal */
15
+ async getLeg(market, index) {
16
+ const m = await (0, market_1.fetchMarket)(this.program, market);
17
+ if (!m)
18
+ throw new Error(`Market not found: ${market.toBase58()}`);
19
+ return { market: m, leg: m.legs[index] };
20
+ }
21
+ /** Propose a resolution for a market (deposits bond) */
22
+ async proposeResolution(params) {
23
+ const index = params.index ?? 0;
24
+ const user = this.program.provider.publicKey;
25
+ const { market, leg } = await this.getLeg(params.market, index);
26
+ const [proposalPda] = (0, pda_1.getResolutionProposalPda)(this.program.programId, params.market, index);
27
+ const [bondVault] = (0, pda_1.getBondVaultPda)(this.program.programId, params.market, index);
28
+ const userAta = (0, spl_token_1.getAssociatedTokenAddressSync)(constants_1.USDC_MINT, user);
29
+ const proposedOutcome = params.proposedOutcome === "yes" ? 1 : 2;
30
+ return this.program.methods
31
+ .proposeResolution(index, { proposedOutcome })
32
+ .accounts({
33
+ proposer: user,
34
+ market: params.market,
35
+ marketInfo: market.marketInfo,
36
+ yesOrderBook: leg.yesOrderBook,
37
+ noOrderBook: leg.noOrderBook,
38
+ proposerTokenAccount: userAta,
39
+ bondVault,
40
+ resolutionProposal: proposalPda,
41
+ usdcMint: constants_1.USDC_MINT,
42
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
43
+ systemProgram: web3_js_1.SystemProgram.programId,
44
+ })
45
+ .rpc();
46
+ }
47
+ /** Finalize a resolution after the dispute window expires */
48
+ async finalizeResolution(market, index = 0) {
49
+ const { market: mkt, leg } = await this.getLeg(market, index);
50
+ const [proposalPda] = (0, pda_1.getResolutionProposalPda)(this.program.programId, market, index);
51
+ const [bondVault] = (0, pda_1.getBondVaultPda)(this.program.programId, market, index);
52
+ // The proposer's ATA is needed to return the bond
53
+ const proposal = await this.program.account.resolutionProposal.fetch(proposalPda);
54
+ const proposerTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(constants_1.USDC_MINT, proposal.proposer);
55
+ return this.program.methods
56
+ .finalizeResolution(index)
57
+ .accounts({
58
+ payer: this.program.provider.publicKey,
59
+ market,
60
+ marketInfo: mkt.marketInfo,
61
+ yesOrderBook: leg.yesOrderBook,
62
+ noOrderBook: leg.noOrderBook,
63
+ resolutionProposal: proposalPda,
64
+ bondVault,
65
+ proposerTokenAccount,
66
+ usdcMint: constants_1.USDC_MINT,
67
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
68
+ })
69
+ .rpc();
70
+ }
71
+ /** Claim dispute winnings after resolution */
72
+ async claimDisputeWinnings(market, index = 0) {
73
+ const { leg } = await this.getLeg(market, index);
74
+ const [proposalPda] = (0, pda_1.getResolutionProposalPda)(this.program.programId, market, index);
75
+ const [bondVault] = (0, pda_1.getBondVaultPda)(this.program.programId, market, index);
76
+ // Fetch proposal to find the winner's token account
77
+ const proposal = await this.program.account.resolutionProposal.fetch(proposalPda);
78
+ const winner = proposal.proposer;
79
+ const winnerTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(constants_1.USDC_MINT, winner);
80
+ return this.program.methods
81
+ .claimDisputeWinnings(index)
82
+ .accounts({
83
+ payer: this.program.provider.publicKey,
84
+ market,
85
+ yesOrderBook: leg.yesOrderBook,
86
+ noOrderBook: leg.noOrderBook,
87
+ resolutionProposal: proposalPda,
88
+ bondVault,
89
+ winnerTokenAccount,
90
+ treasuryTokenAccount: constants_1.PROTOCOL_USDC_ACCOUNT,
91
+ usdcMint: constants_1.USDC_MINT,
92
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
93
+ })
94
+ .rpc();
95
+ }
96
+ /** Resolve an expired market to a 50/50 split */
97
+ async resolveExpiredMarket(market, index = 0) {
98
+ return this.program.methods
99
+ .resolveExpiredMarket(index)
100
+ .accounts({
101
+ market,
102
+ })
103
+ .rpc();
104
+ }
105
+ }
106
+ exports.ResolutionModule = ResolutionModule;
107
+ //# sourceMappingURL=resolution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolution.js","sourceRoot":"","sources":["../../src/instructions/resolution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ import { Program, BN } from "@coral-xyz/anchor";
2
+ import { PublicKey } from "@solana/web3.js";
3
+ import { PredMarket } from "../idl/pred_market";
4
+ import { Side, OrderResult, CoveredByType } from "../types";
5
+ export interface LimitBidParams {
6
+ market: PublicKey;
7
+ index?: number;
8
+ side: Side;
9
+ /** Price in ticks (1-999). E.g., 500 = $0.50 per share. */
10
+ price: number;
11
+ /** USDC amount to spend */
12
+ usdcAmount: BN;
13
+ seed?: number;
14
+ /** Whether to match against existing resting orders (default: true) */
15
+ matchExisting?: boolean;
16
+ referralAccount?: PublicKey;
17
+ }
18
+ export interface LimitAskParams {
19
+ market: PublicKey;
20
+ index?: number;
21
+ /** The side you are selling */
22
+ side: Side;
23
+ /** The price you want to receive per share (1-999) */
24
+ price: number;
25
+ /** Number of shares to sell */
26
+ shares: BN;
27
+ seed?: number;
28
+ /** Whether to match against existing resting orders (default: true) */
29
+ matchExisting?: boolean;
30
+ referralAccount?: PublicKey;
31
+ }
32
+ export interface CoveredBidParams {
33
+ market: PublicKey;
34
+ index?: number;
35
+ side: Side;
36
+ price: number;
37
+ shares: BN;
38
+ seed?: number;
39
+ coveredBy: CoveredByType;
40
+ /** Whether to match against existing resting orders (default: true) */
41
+ matchExisting?: boolean;
42
+ referralAccount?: PublicKey;
43
+ }
44
+ export interface MarketBuyParams {
45
+ market: PublicKey;
46
+ index?: number;
47
+ side: Side;
48
+ /** Maximum USDC to spend */
49
+ maxUsdc: BN;
50
+ /** Minimum shares to receive (slippage protection) */
51
+ minShares: BN;
52
+ referralAccount?: PublicKey;
53
+ }
54
+ export interface MarketSellParams {
55
+ market: PublicKey;
56
+ index?: number;
57
+ side: Side;
58
+ /** Number of shares to sell */
59
+ shares: BN;
60
+ /** Minimum USDC to receive (slippage protection) */
61
+ minUsdc: BN;
62
+ referralAccount?: PublicKey;
63
+ }
64
+ export declare class TradingModule {
65
+ private readonly program;
66
+ /** @internal */
67
+ constructor(program: Program<PredMarket>);
68
+ /** @internal */
69
+ private resolveMarket;
70
+ /** Place a limit bid (USDC-backed buy order) */
71
+ limitBid(params: LimitBidParams): Promise<OrderResult>;
72
+ /** Place a limit ask (sell shares at a specific price) */
73
+ limitAsk(params: LimitAskParams): Promise<OrderResult>;
74
+ /** Place a covered bid (backed by USDC or existing shares) */
75
+ coveredBid(params: CoveredBidParams): Promise<OrderResult>;
76
+ /** Execute a market buy (immediate execution) */
77
+ marketBuy(params: MarketBuyParams): Promise<string>;
78
+ /** Execute a market sell (immediate execution) */
79
+ marketSell(params: MarketSellParams): Promise<string>;
80
+ }
81
+ //# sourceMappingURL=trading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trading.d.ts","sourceRoot":"","sources":["../../src/instructions/trading.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAiB,MAAM,iBAAiB,CAAC;AAK3D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,IAAI,EACJ,WAAW,EAKX,aAAa,EACd,MAAM,UAAU,CAAC;AAKlB,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,CAAC;IACX,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,UAAU,EAAE,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,IAAI,EAAE,IAAI,CAAC;IACX,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,MAAM,EAAE,EAAE,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,EAAE,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,aAAa,CAAC;IACzB,uEAAuE;IACvE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,CAAC;IACX,4BAA4B;IAC5B,OAAO,EAAE,EAAE,CAAC;IACZ,sDAAsD;IACtD,SAAS,EAAE,EAAE,CAAC;IACd,eAAe,CAAC,EAAE,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,CAAC;IACX,+BAA+B;IAC/B,MAAM,EAAE,EAAE,CAAC;IACX,oDAAoD;IACpD,OAAO,EAAE,EAAE,CAAC;IACZ,eAAe,CAAC,EAAE,SAAS,CAAC;CAC7B;AAOD,qBAAa,aAAa;IAEZ,OAAO,CAAC,QAAQ,CAAC,OAAO;IADpC,gBAAgB;gBACa,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC;IAEzD,gBAAgB;YACF,aAAa;IAM3B,gDAAgD;IAC1C,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IA+C5D,0DAA0D;IACpD,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IAiD5D,8DAA8D;IACxD,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAgDhE,iDAAiD;IAC3C,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAkCzD,kDAAkD;IAC5C,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;CAiC5D"}