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,15 @@
1
+ export { PredMarketClient } from "./client";
2
+ export type { PredMarketClientConfig } from "./client";
3
+ export { PROGRAM_ID, USDC_MINT, PROTOCOL_USDC_ACCOUNT, ADMIN_PUBKEY, USDC_DECIMALS, PROPOSER_BOND, DISPUTER_BOND, DISPUTE_WINDOW_SECONDS, MAX_VOTERS, } from "./constants";
4
+ export type { Side, MarketStatus, ResolvingState, WinningSide, CoveredByType, MarketTypeLabel, MarketInfoTypeLabel, ResolverTypeInput, ResolverTypeOutput, MarketAccount, MarketLeg, OrderAccount, PositionAccount, OrderBookLevel, OrderBookView, FillLogView, MarketInfoAccount, ResolutionProposalAccount, VoteRecord, VoteStateAccount, RegularMarketResult, MultiLegMarketResult, LegResult, OrderResult, } from "./types";
5
+ export { getMarketPda, getPositionPda, getOrderPda, getVaultPda, getCreatorVaultPda, getResolutionProposalPda, getBondVaultPda, getFillLogPda, getVoteStatePda, } from "./pda";
6
+ export { FULL_PRICE, HALF_PRICE, costPerShare, usdcToShares, sharesToUsdc, complementPrice, tickToPrice, priceToTick, isValidPrice, formatUsdc, parseUsdc, } from "./price";
7
+ export { PredMarketErrorCode, PredMarketError, parsePredMarketError, } from "./errors";
8
+ export type { CreateRegularMarketParams, CreateMultiLegMarketParams, AddLegParams, } from "./instructions/market-creation";
9
+ export type { CreateMarketInfoParams, CreateMarketInfoResult, } from "./instructions/market-info";
10
+ export type { LimitBidParams, LimitAskParams, CoveredBidParams, MarketBuyParams, MarketSellParams, } from "./instructions/trading";
11
+ export type { ClaimPositionParams, MergeSharesParams, CancelOrderParams, RedeemPositionParams, } from "./instructions/positions";
12
+ export type { ProposeResolutionParams, FinalizeResolutionParams, ClaimDisputeWinningsParams, } from "./instructions/resolution";
13
+ export type { VoteResolutionParams } from "./instructions/vote-resolution";
14
+ export type { TradeEvent, OrderPlacedEvent, OrderCancelledEvent, PositionClaimedEvent, PositionUpdatedEvent, SharesMergedEvent, PredMarketEvent, } from "./events";
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGvD,OAAO,EACL,UAAU,EACV,SAAS,EACT,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,UAAU,GACX,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,IAAI,EACJ,YAAY,EACZ,cAAc,EACd,WAAW,EACX,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,YAAY,EACZ,eAAe,EACf,cAAc,EACd,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,yBAAyB,EACzB,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,EACT,WAAW,GACZ,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,wBAAwB,EACxB,eAAe,EACf,aAAa,EACb,eAAe,GAChB,MAAM,OAAO,CAAC;AAGf,OAAO,EACL,UAAU,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,WAAW,EACX,WAAW,EACX,YAAY,EACZ,UAAU,EACV,SAAS,GACV,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,oBAAoB,GACrB,MAAM,UAAU,CAAC;AAGlB,YAAY,EACV,yBAAyB,EACzB,0BAA0B,EAC1B,YAAY,GACb,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAG3E,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,GAChB,MAAM,UAAU,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parsePredMarketError = exports.PredMarketError = exports.PredMarketErrorCode = exports.parseUsdc = exports.formatUsdc = exports.isValidPrice = exports.priceToTick = exports.tickToPrice = exports.complementPrice = exports.sharesToUsdc = exports.usdcToShares = exports.costPerShare = exports.HALF_PRICE = exports.FULL_PRICE = exports.getVoteStatePda = exports.getFillLogPda = exports.getBondVaultPda = exports.getResolutionProposalPda = exports.getCreatorVaultPda = exports.getVaultPda = exports.getOrderPda = exports.getPositionPda = exports.getMarketPda = exports.MAX_VOTERS = exports.DISPUTE_WINDOW_SECONDS = exports.DISPUTER_BOND = exports.PROPOSER_BOND = exports.USDC_DECIMALS = exports.ADMIN_PUBKEY = exports.PROTOCOL_USDC_ACCOUNT = exports.USDC_MINT = exports.PROGRAM_ID = exports.PredMarketClient = void 0;
4
+ // Main client
5
+ var client_1 = require("./client");
6
+ Object.defineProperty(exports, "PredMarketClient", { enumerable: true, get: function () { return client_1.PredMarketClient; } });
7
+ // Constants
8
+ var constants_1 = require("./constants");
9
+ Object.defineProperty(exports, "PROGRAM_ID", { enumerable: true, get: function () { return constants_1.PROGRAM_ID; } });
10
+ Object.defineProperty(exports, "USDC_MINT", { enumerable: true, get: function () { return constants_1.USDC_MINT; } });
11
+ Object.defineProperty(exports, "PROTOCOL_USDC_ACCOUNT", { enumerable: true, get: function () { return constants_1.PROTOCOL_USDC_ACCOUNT; } });
12
+ Object.defineProperty(exports, "ADMIN_PUBKEY", { enumerable: true, get: function () { return constants_1.ADMIN_PUBKEY; } });
13
+ Object.defineProperty(exports, "USDC_DECIMALS", { enumerable: true, get: function () { return constants_1.USDC_DECIMALS; } });
14
+ Object.defineProperty(exports, "PROPOSER_BOND", { enumerable: true, get: function () { return constants_1.PROPOSER_BOND; } });
15
+ Object.defineProperty(exports, "DISPUTER_BOND", { enumerable: true, get: function () { return constants_1.DISPUTER_BOND; } });
16
+ Object.defineProperty(exports, "DISPUTE_WINDOW_SECONDS", { enumerable: true, get: function () { return constants_1.DISPUTE_WINDOW_SECONDS; } });
17
+ Object.defineProperty(exports, "MAX_VOTERS", { enumerable: true, get: function () { return constants_1.MAX_VOTERS; } });
18
+ // PDA derivation
19
+ var pda_1 = require("./pda");
20
+ Object.defineProperty(exports, "getMarketPda", { enumerable: true, get: function () { return pda_1.getMarketPda; } });
21
+ Object.defineProperty(exports, "getPositionPda", { enumerable: true, get: function () { return pda_1.getPositionPda; } });
22
+ Object.defineProperty(exports, "getOrderPda", { enumerable: true, get: function () { return pda_1.getOrderPda; } });
23
+ Object.defineProperty(exports, "getVaultPda", { enumerable: true, get: function () { return pda_1.getVaultPda; } });
24
+ Object.defineProperty(exports, "getCreatorVaultPda", { enumerable: true, get: function () { return pda_1.getCreatorVaultPda; } });
25
+ Object.defineProperty(exports, "getResolutionProposalPda", { enumerable: true, get: function () { return pda_1.getResolutionProposalPda; } });
26
+ Object.defineProperty(exports, "getBondVaultPda", { enumerable: true, get: function () { return pda_1.getBondVaultPda; } });
27
+ Object.defineProperty(exports, "getFillLogPda", { enumerable: true, get: function () { return pda_1.getFillLogPda; } });
28
+ Object.defineProperty(exports, "getVoteStatePda", { enumerable: true, get: function () { return pda_1.getVoteStatePda; } });
29
+ // Price utilities
30
+ var price_1 = require("./price");
31
+ Object.defineProperty(exports, "FULL_PRICE", { enumerable: true, get: function () { return price_1.FULL_PRICE; } });
32
+ Object.defineProperty(exports, "HALF_PRICE", { enumerable: true, get: function () { return price_1.HALF_PRICE; } });
33
+ Object.defineProperty(exports, "costPerShare", { enumerable: true, get: function () { return price_1.costPerShare; } });
34
+ Object.defineProperty(exports, "usdcToShares", { enumerable: true, get: function () { return price_1.usdcToShares; } });
35
+ Object.defineProperty(exports, "sharesToUsdc", { enumerable: true, get: function () { return price_1.sharesToUsdc; } });
36
+ Object.defineProperty(exports, "complementPrice", { enumerable: true, get: function () { return price_1.complementPrice; } });
37
+ Object.defineProperty(exports, "tickToPrice", { enumerable: true, get: function () { return price_1.tickToPrice; } });
38
+ Object.defineProperty(exports, "priceToTick", { enumerable: true, get: function () { return price_1.priceToTick; } });
39
+ Object.defineProperty(exports, "isValidPrice", { enumerable: true, get: function () { return price_1.isValidPrice; } });
40
+ Object.defineProperty(exports, "formatUsdc", { enumerable: true, get: function () { return price_1.formatUsdc; } });
41
+ Object.defineProperty(exports, "parseUsdc", { enumerable: true, get: function () { return price_1.parseUsdc; } });
42
+ // Errors
43
+ var errors_1 = require("./errors");
44
+ Object.defineProperty(exports, "PredMarketErrorCode", { enumerable: true, get: function () { return errors_1.PredMarketErrorCode; } });
45
+ Object.defineProperty(exports, "PredMarketError", { enumerable: true, get: function () { return errors_1.PredMarketError; } });
46
+ Object.defineProperty(exports, "parsePredMarketError", { enumerable: true, get: function () { return errors_1.parsePredMarketError; } });
47
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,cAAc;AACd,mCAA4C;AAAnC,0GAAA,gBAAgB,OAAA;AAGzB,YAAY;AACZ,yCAUqB;AATnB,uGAAA,UAAU,OAAA;AACV,sGAAA,SAAS,OAAA;AACT,kHAAA,qBAAqB,OAAA;AACrB,yGAAA,YAAY,OAAA;AACZ,0GAAA,aAAa,OAAA;AACb,0GAAA,aAAa,OAAA;AACb,0GAAA,aAAa,OAAA;AACb,mHAAA,sBAAsB,OAAA;AACtB,uGAAA,UAAU,OAAA;AA+BZ,iBAAiB;AACjB,6BAUe;AATb,mGAAA,YAAY,OAAA;AACZ,qGAAA,cAAc,OAAA;AACd,kGAAA,WAAW,OAAA;AACX,kGAAA,WAAW,OAAA;AACX,yGAAA,kBAAkB,OAAA;AAClB,+GAAA,wBAAwB,OAAA;AACxB,sGAAA,eAAe,OAAA;AACf,oGAAA,aAAa,OAAA;AACb,sGAAA,eAAe,OAAA;AAGjB,kBAAkB;AAClB,iCAYiB;AAXf,mGAAA,UAAU,OAAA;AACV,mGAAA,UAAU,OAAA;AACV,qGAAA,YAAY,OAAA;AACZ,qGAAA,YAAY,OAAA;AACZ,qGAAA,YAAY,OAAA;AACZ,wGAAA,eAAe,OAAA;AACf,oGAAA,WAAW,OAAA;AACX,oGAAA,WAAW,OAAA;AACX,qGAAA,YAAY,OAAA;AACZ,mGAAA,UAAU,OAAA;AACV,kGAAA,SAAS,OAAA;AAGX,SAAS;AACT,mCAIkB;AAHhB,6GAAA,mBAAmB,OAAA;AACnB,yGAAA,eAAe,OAAA;AACf,8GAAA,oBAAoB,OAAA"}
@@ -0,0 +1,20 @@
1
+ import { Program } 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 declare class AdminModule {
6
+ private readonly program;
7
+ /** @internal */
8
+ constructor(program: Program<PredMarket>);
9
+ /** Toggle verification status of a market (verifier only) */
10
+ verifyMarket(market: PublicKey): Promise<string>;
11
+ /** Close an order book after market resolution */
12
+ closeOrderbook(market: PublicKey, index: number, side: Side): Promise<string>;
13
+ /** Close a market's vault and account */
14
+ closeMarket(market: PublicKey, index?: number): Promise<string>;
15
+ /** Close any program-owned account (admin only) */
16
+ adminCloseAccount(account: PublicKey): Promise<string>;
17
+ /** Claim accumulated creator fees from the creator vault */
18
+ claimCreatorFees(market: PublicKey): Promise<string>;
19
+ }
20
+ //# sourceMappingURL=admin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/instructions/admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAiB,MAAM,iBAAiB,CAAC;AAK3D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAgB,MAAM,UAAU,CAAC;AAK9C,qBAAa,WAAW;IAEV,OAAO,CAAC,QAAQ,CAAC,OAAO;IADpC,gBAAgB;gBACa,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC;IAEzD,6DAA6D;IACvD,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAUtD,kDAAkD;IAC5C,cAAc,CAClB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,MAAM,CAAC;IAiBlB,yCAAyC;IACnC,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBxE,mDAAmD;IAC7C,iBAAiB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAW5D,4DAA4D;IACtD,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;CAiB3D"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AdminModule = 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 AdminModule {
11
+ /** @internal */
12
+ constructor(program) {
13
+ this.program = program;
14
+ }
15
+ /** Toggle verification status of a market (verifier only) */
16
+ async verifyMarket(market) {
17
+ return this.program.methods
18
+ .verifyMarket()
19
+ .accounts({
20
+ verifier: this.program.provider.publicKey,
21
+ market,
22
+ })
23
+ .rpc();
24
+ }
25
+ /** Close an order book after market resolution */
26
+ async closeOrderbook(market, index, side) {
27
+ const m = await (0, market_1.fetchMarket)(this.program, market);
28
+ if (!m)
29
+ throw new Error(`Market not found: ${market.toBase58()}`);
30
+ const leg = m.legs[index];
31
+ const obKey = side === "yes" ? leg.yesOrderBook : leg.noOrderBook;
32
+ return this.program.methods
33
+ .closeOrderbook(index, (0, types_1.toAnchorSide)(side))
34
+ .accounts({
35
+ caller: this.program.provider.publicKey,
36
+ market,
37
+ orderBook: obKey,
38
+ systemProgram: web3_js_1.SystemProgram.programId,
39
+ })
40
+ .rpc();
41
+ }
42
+ /** Close a market's vault and account */
43
+ async closeMarket(market, index = 0) {
44
+ const m = await (0, market_1.fetchMarket)(this.program, market);
45
+ if (!m)
46
+ throw new Error(`Market not found: ${market.toBase58()}`);
47
+ const leg = m.legs[index];
48
+ const callerAta = (0, spl_token_1.getAssociatedTokenAddressSync)(constants_1.USDC_MINT, this.program.provider.publicKey);
49
+ return this.program.methods
50
+ .closeMarket(index)
51
+ .accounts({
52
+ caller: this.program.provider.publicKey,
53
+ market,
54
+ vault: leg.vault,
55
+ callerAta,
56
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
57
+ systemProgram: web3_js_1.SystemProgram.programId,
58
+ })
59
+ .rpc();
60
+ }
61
+ /** Close any program-owned account (admin only) */
62
+ async adminCloseAccount(account) {
63
+ return this.program.methods
64
+ .adminCloseAccount()
65
+ .accounts({
66
+ admin: this.program.provider.publicKey,
67
+ accountToClose: account,
68
+ systemProgram: web3_js_1.SystemProgram.programId,
69
+ })
70
+ .rpc();
71
+ }
72
+ /** Claim accumulated creator fees from the creator vault */
73
+ async claimCreatorFees(market) {
74
+ const [creatorVault] = (0, pda_1.getCreatorVaultPda)(this.program.programId, market);
75
+ const creatorAta = (0, spl_token_1.getAssociatedTokenAddressSync)(constants_1.USDC_MINT, this.program.provider.publicKey);
76
+ return this.program.methods
77
+ .claimCreatorFees()
78
+ .accounts({
79
+ creator: this.program.provider.publicKey,
80
+ market,
81
+ creatorVault,
82
+ creatorAta,
83
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
84
+ })
85
+ .rpc();
86
+ }
87
+ }
88
+ exports.AdminModule = AdminModule;
89
+ //# sourceMappingURL=admin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/instructions/admin.ts"],"names":[],"mappings":";;;AACA,6CAA2D;AAC3D,iDAG2B;AAE3B,oCAA8C;AAC9C,gCAA4C;AAC5C,4CAAyC;AACzC,+CAAiD;AAEjD,MAAa,WAAW;IACtB,gBAAgB;IAChB,YAA6B,OAA4B;QAA5B,YAAO,GAAP,OAAO,CAAqB;IAAG,CAAC;IAE7D,6DAA6D;IAC7D,KAAK,CAAC,YAAY,CAAC,MAAiB;QAClC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO;aACxB,YAAY,EAAE;aACd,QAAQ,CAAC;YACR,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAU;YAC1C,MAAM;SACP,CAAC;aACD,GAAG,EAAE,CAAC;IACX,CAAC;IAED,kDAAkD;IAClD,KAAK,CAAC,cAAc,CAClB,MAAiB,EACjB,KAAa,EACb,IAAU;QAEV,MAAM,CAAC,GAAG,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClE,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;QAElE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO;aACxB,cAAc,CAAC,KAAK,EAAE,IAAA,oBAAY,EAAC,IAAI,CAAC,CAAC;aACzC,QAAQ,CAAC;YACR,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAU;YACxC,MAAM;YACN,SAAS,EAAE,KAAK;YAChB,aAAa,EAAE,uBAAa,CAAC,SAAS;SACvC,CAAC;aACD,GAAG,EAAE,CAAC;IACX,CAAC;IAED,yCAAyC;IACzC,KAAK,CAAC,WAAW,CAAC,MAAiB,EAAE,QAAgB,CAAC;QACpD,MAAM,CAAC,GAAG,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClE,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,SAAS,GAAG,IAAA,yCAA6B,EAC7C,qBAAS,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAU,CAC5C,CAAC;QAEF,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO;aACxB,WAAW,CAAC,KAAK,CAAC;aAClB,QAAQ,CAAC;YACR,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAU;YACxC,MAAM;YACN,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,SAAS;YACT,YAAY,EAAE,4BAAgB;YAC9B,aAAa,EAAE,uBAAa,CAAC,SAAS;SACvC,CAAC;aACD,GAAG,EAAE,CAAC;IACX,CAAC;IAED,mDAAmD;IACnD,KAAK,CAAC,iBAAiB,CAAC,OAAkB;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO;aACxB,iBAAiB,EAAE;aACnB,QAAQ,CAAC;YACR,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAU;YACvC,cAAc,EAAE,OAAO;YACvB,aAAa,EAAE,uBAAa,CAAC,SAAS;SACvC,CAAC;aACD,GAAG,EAAE,CAAC;IACX,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,gBAAgB,CAAC,MAAiB;QACtC,MAAM,CAAC,YAAY,CAAC,GAAG,IAAA,wBAAkB,EAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,IAAA,yCAA6B,EAC9C,qBAAS,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAU,CAC5C,CAAC;QAEF,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO;aACxB,gBAAgB,EAAE;aAClB,QAAQ,CAAC;YACR,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAU;YACzC,MAAM;YACN,YAAY;YACZ,UAAU;YACV,YAAY,EAAE,4BAAgB;SAC/B,CAAC;aACD,GAAG,EAAE,CAAC;IACX,CAAC;CACF;AAzFD,kCAyFC"}
@@ -0,0 +1,14 @@
1
+ export { MarketModule } from "./market-creation";
2
+ export type { CreateRegularMarketParams, CreateMultiLegMarketParams, AddLegParams, } from "./market-creation";
3
+ export { MarketInfoModule } from "./market-info";
4
+ export type { CreateMarketInfoParams, CreateMarketInfoResult } from "./market-info";
5
+ export { TradingModule } from "./trading";
6
+ export type { LimitBidParams, LimitAskParams, CoveredBidParams, MarketBuyParams, MarketSellParams, } from "./trading";
7
+ export { PositionModule } from "./positions";
8
+ export type { ClaimPositionParams, MergeSharesParams, CancelOrderParams, RedeemPositionParams, } from "./positions";
9
+ export { ResolutionModule } from "./resolution";
10
+ export type { ProposeResolutionParams, FinalizeResolutionParams, ClaimDisputeWinningsParams, } from "./resolution";
11
+ export { VoteResolutionModule } from "./vote-resolution";
12
+ export type { VoteResolutionParams } from "./vote-resolution";
13
+ export { AdminModule } from "./admin";
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/instructions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EACV,yBAAyB,EACzB,0BAA0B,EAC1B,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEpF,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,YAAY,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GACjB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,YAAY,EACV,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AdminModule = exports.VoteResolutionModule = exports.ResolutionModule = exports.PositionModule = exports.TradingModule = exports.MarketInfoModule = exports.MarketModule = void 0;
4
+ var market_creation_1 = require("./market-creation");
5
+ Object.defineProperty(exports, "MarketModule", { enumerable: true, get: function () { return market_creation_1.MarketModule; } });
6
+ var market_info_1 = require("./market-info");
7
+ Object.defineProperty(exports, "MarketInfoModule", { enumerable: true, get: function () { return market_info_1.MarketInfoModule; } });
8
+ var trading_1 = require("./trading");
9
+ Object.defineProperty(exports, "TradingModule", { enumerable: true, get: function () { return trading_1.TradingModule; } });
10
+ var positions_1 = require("./positions");
11
+ Object.defineProperty(exports, "PositionModule", { enumerable: true, get: function () { return positions_1.PositionModule; } });
12
+ var resolution_1 = require("./resolution");
13
+ Object.defineProperty(exports, "ResolutionModule", { enumerable: true, get: function () { return resolution_1.ResolutionModule; } });
14
+ var vote_resolution_1 = require("./vote-resolution");
15
+ Object.defineProperty(exports, "VoteResolutionModule", { enumerable: true, get: function () { return vote_resolution_1.VoteResolutionModule; } });
16
+ var admin_1 = require("./admin");
17
+ Object.defineProperty(exports, "AdminModule", { enumerable: true, get: function () { return admin_1.AdminModule; } });
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/instructions/index.ts"],"names":[],"mappings":";;;AAAA,qDAAiD;AAAxC,+GAAA,YAAY,OAAA;AAOrB,6CAAiD;AAAxC,+GAAA,gBAAgB,OAAA;AAGzB,qCAA0C;AAAjC,wGAAA,aAAa,OAAA;AAStB,yCAA6C;AAApC,2GAAA,cAAc,OAAA;AAQvB,2CAAgD;AAAvC,8GAAA,gBAAgB,OAAA;AAOzB,qDAAyD;AAAhD,uHAAA,oBAAoB,OAAA;AAG7B,iCAAsC;AAA7B,oGAAA,WAAW,OAAA"}
@@ -0,0 +1,48 @@
1
+ import { Program, BN } from "@coral-xyz/anchor";
2
+ import { PublicKey } from "@solana/web3.js";
3
+ import { PredMarket } from "../idl/pred_market";
4
+ import { RegularMarketResult, MultiLegMarketResult, LegResult, ResolverTypeInput } from "../types";
5
+ export interface CreateRegularMarketParams {
6
+ marketId?: bigint;
7
+ name: string;
8
+ category: string;
9
+ imageUri?: string;
10
+ minOrderSize?: BN;
11
+ eventDeadline: Date | number;
12
+ marketQuestion: string;
13
+ description?: string;
14
+ rules?: string;
15
+ resolverType?: ResolverTypeInput;
16
+ /** Pre-created MarketInfo. If omitted, one will be created automatically. */
17
+ marketInfo?: PublicKey;
18
+ }
19
+ export interface CreateMultiLegMarketParams {
20
+ marketId?: bigint;
21
+ category: string;
22
+ imageUri?: string;
23
+ minOrderSize?: BN;
24
+ eventDeadline: Date | number;
25
+ /** Must contain exactly one "___" placeholder */
26
+ marketQuestion: string;
27
+ description?: string;
28
+ rules?: string;
29
+ resolverType?: ResolverTypeInput;
30
+ marketInfo?: PublicKey;
31
+ }
32
+ export interface AddLegParams {
33
+ marketPda: PublicKey;
34
+ legName: string;
35
+ }
36
+ export declare class MarketModule {
37
+ private readonly program;
38
+ private readonly marketInfoModule;
39
+ /** @internal */
40
+ constructor(program: Program<PredMarket>);
41
+ /** Create a regular (single-leg) market with full automation */
42
+ createRegularMarket(params: CreateRegularMarketParams): Promise<RegularMarketResult>;
43
+ /** Create a multi-leg market (starts with zero legs) */
44
+ createMultiLegMarket(params: CreateMultiLegMarketParams): Promise<MultiLegMarketResult>;
45
+ /** Add a leg to an existing multi-leg market */
46
+ addLeg(params: AddLegParams): Promise<LegResult>;
47
+ }
48
+ //# sourceMappingURL=market-creation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"market-creation.d.ts","sourceRoot":"","sources":["../../src/instructions/market-creation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,SAAS,EAIV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,EACT,iBAAiB,EAElB,MAAM,UAAU,CAAC;AAKlB,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,EAAE,CAAC;IAClB,aAAa,EAAE,IAAI,GAAG,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,6EAA6E;IAC7E,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,EAAE,CAAC;IAClB,aAAa,EAAE,IAAI,GAAG,MAAM,CAAC;IAC7B,iDAAiD;IACjD,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAWD,qBAAa,YAAY;IAIX,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IAEpD,gBAAgB;gBACa,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC;IAIzD,gEAAgE;IAC1D,mBAAmB,CACvB,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,mBAAmB,CAAC;IAyI/B,wDAAwD;IAClD,oBAAoB,CACxB,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,oBAAoB,CAAC;IAuDhC,gDAAgD;IAC1C,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC;CA4GvD"}
@@ -0,0 +1,270 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MarketModule = void 0;
4
+ const anchor_1 = require("@coral-xyz/anchor");
5
+ const web3_js_1 = require("@solana/web3.js");
6
+ const spl_token_1 = require("@solana/spl-token");
7
+ const pda_1 = require("../pda");
8
+ const constants_1 = require("../constants");
9
+ const market_info_1 = require("./market-info");
10
+ /** @internal */
11
+ function toUnixTimestamp(deadline) {
12
+ const ts = typeof deadline === "number"
13
+ ? deadline
14
+ : Math.floor(deadline.getTime() / 1000);
15
+ return new anchor_1.BN(ts);
16
+ }
17
+ class MarketModule {
18
+ /** @internal */
19
+ constructor(program) {
20
+ this.program = program;
21
+ this.marketInfoModule = new market_info_1.MarketInfoModule(program);
22
+ }
23
+ /** Create a regular (single-leg) market with full automation */
24
+ async createRegularMarket(params) {
25
+ const provider = this.program
26
+ .provider;
27
+ const marketId = params.marketId ?? BigInt(Math.floor(Math.random() * 1000000000));
28
+ const [marketPda] = (0, pda_1.getMarketPda)(this.program.programId, marketId);
29
+ const yesOrderBook = web3_js_1.Keypair.generate();
30
+ const noOrderBook = web3_js_1.Keypair.generate();
31
+ const yesFillLog = web3_js_1.Keypair.generate();
32
+ const noFillLog = web3_js_1.Keypair.generate();
33
+ const [vault] = (0, pda_1.getVaultPda)(this.program.programId, marketPda, 0);
34
+ const [creatorVault] = (0, pda_1.getCreatorVaultPda)(this.program.programId, marketPda);
35
+ // Create or use provided MarketInfo
36
+ let marketInfoPk = params.marketInfo;
37
+ const signatures = [];
38
+ if (!marketInfoPk) {
39
+ const miResult = await this.marketInfoModule.createPopulatedMarketInfo({
40
+ marketType: "regular",
41
+ resolverType: params.resolverType ?? { type: "uma" },
42
+ marketQuestion: params.marketQuestion,
43
+ description: params.description,
44
+ rules: params.rules,
45
+ });
46
+ marketInfoPk = miResult.marketInfoPda;
47
+ signatures.push(miResult.signature);
48
+ }
49
+ // Pre-create large accounts
50
+ const obRent = await provider.connection.getMinimumBalanceForRentExemption(constants_1.ORDER_BOOK_SIZE);
51
+ const flRent = await provider.connection.getMinimumBalanceForRentExemption(constants_1.FILL_LOG_SIZE);
52
+ const tx1 = new web3_js_1.Transaction().add(web3_js_1.SystemProgram.createAccount({
53
+ fromPubkey: provider.wallet.publicKey,
54
+ newAccountPubkey: yesOrderBook.publicKey,
55
+ lamports: obRent,
56
+ space: constants_1.ORDER_BOOK_SIZE,
57
+ programId: this.program.programId,
58
+ }), web3_js_1.SystemProgram.createAccount({
59
+ fromPubkey: provider.wallet.publicKey,
60
+ newAccountPubkey: noOrderBook.publicKey,
61
+ lamports: obRent,
62
+ space: constants_1.ORDER_BOOK_SIZE,
63
+ programId: this.program.programId,
64
+ }));
65
+ signatures.push(await provider.sendAndConfirm(tx1, [yesOrderBook, noOrderBook]));
66
+ const tx2 = new web3_js_1.Transaction().add(web3_js_1.SystemProgram.createAccount({
67
+ fromPubkey: provider.wallet.publicKey,
68
+ newAccountPubkey: yesFillLog.publicKey,
69
+ lamports: flRent,
70
+ space: constants_1.FILL_LOG_SIZE,
71
+ programId: this.program.programId,
72
+ }), web3_js_1.SystemProgram.createAccount({
73
+ fromPubkey: provider.wallet.publicKey,
74
+ newAccountPubkey: noFillLog.publicKey,
75
+ lamports: flRent,
76
+ space: constants_1.FILL_LOG_SIZE,
77
+ programId: this.program.programId,
78
+ }));
79
+ signatures.push(await provider.sendAndConfirm(tx2, [yesFillLog, noFillLog]));
80
+ const marketData = {
81
+ name: params.name,
82
+ yesOrderBook: yesOrderBook.publicKey,
83
+ noOrderBook: noOrderBook.publicKey,
84
+ yesFillLog: yesFillLog.publicKey,
85
+ noFillLog: noFillLog.publicKey,
86
+ vault,
87
+ status: { active: {} },
88
+ winningSide: { none: {} },
89
+ resolvingState: { notStarted: {} },
90
+ sharesOutstanding: new anchor_1.BN(0),
91
+ totalVolume: new anchor_1.BN(0),
92
+ };
93
+ const createParams = {
94
+ marketId: new anchor_1.BN(marketId.toString()),
95
+ category: params.category,
96
+ imageUri: params.imageUri ?? "",
97
+ minOrderSize: params.minOrderSize ?? new anchor_1.BN(1000000),
98
+ eventDeadline: toUnixTimestamp(params.eventDeadline),
99
+ marketType: { regular: [marketData] },
100
+ };
101
+ const sig = await this.program.methods
102
+ .createRegularMarket(createParams)
103
+ .accounts({
104
+ creator: provider.wallet.publicKey,
105
+ market: marketPda,
106
+ marketInfo: marketInfoPk,
107
+ yesOrderBook: yesOrderBook.publicKey,
108
+ noOrderBook: noOrderBook.publicKey,
109
+ yesFillLog: yesFillLog.publicKey,
110
+ noFillLog: noFillLog.publicKey,
111
+ vault,
112
+ creatorVault,
113
+ usdcMint: constants_1.USDC_MINT,
114
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
115
+ systemProgram: web3_js_1.SystemProgram.programId,
116
+ })
117
+ .rpc();
118
+ signatures.push(sig);
119
+ return {
120
+ marketId,
121
+ marketPda,
122
+ vault,
123
+ creatorVault,
124
+ yesOrderBook: yesOrderBook.publicKey,
125
+ noOrderBook: noOrderBook.publicKey,
126
+ yesFillLog: yesFillLog.publicKey,
127
+ noFillLog: noFillLog.publicKey,
128
+ marketInfo: marketInfoPk,
129
+ signatures,
130
+ };
131
+ }
132
+ /** Create a multi-leg market (starts with zero legs) */
133
+ async createMultiLegMarket(params) {
134
+ const provider = this.program
135
+ .provider;
136
+ const marketId = params.marketId ?? BigInt(Math.floor(Math.random() * 1000000000));
137
+ const [marketPda] = (0, pda_1.getMarketPda)(this.program.programId, marketId);
138
+ const [creatorVault] = (0, pda_1.getCreatorVaultPda)(this.program.programId, marketPda);
139
+ const signatures = [];
140
+ let marketInfoPk = params.marketInfo;
141
+ if (!marketInfoPk) {
142
+ const miResult = await this.marketInfoModule.createPopulatedMarketInfo({
143
+ marketType: "multiLeg",
144
+ resolverType: params.resolverType ?? { type: "uma" },
145
+ marketQuestion: params.marketQuestion,
146
+ description: params.description,
147
+ rules: params.rules,
148
+ });
149
+ marketInfoPk = miResult.marketInfoPda;
150
+ signatures.push(miResult.signature);
151
+ }
152
+ const createParams = {
153
+ marketId: new anchor_1.BN(marketId.toString()),
154
+ category: params.category,
155
+ imageUri: params.imageUri ?? "",
156
+ minOrderSize: params.minOrderSize ?? new anchor_1.BN(1000000),
157
+ eventDeadline: toUnixTimestamp(params.eventDeadline),
158
+ marketType: { multiLeg: [[]] },
159
+ };
160
+ const sig = await this.program.methods
161
+ .createMultilegMarket(createParams)
162
+ .accounts({
163
+ creator: provider.wallet.publicKey,
164
+ market: marketPda,
165
+ marketInfo: marketInfoPk,
166
+ creatorVault,
167
+ usdcMint: constants_1.USDC_MINT,
168
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
169
+ systemProgram: web3_js_1.SystemProgram.programId,
170
+ })
171
+ .rpc();
172
+ signatures.push(sig);
173
+ return {
174
+ marketId,
175
+ marketPda,
176
+ creatorVault,
177
+ marketInfo: marketInfoPk,
178
+ signatures,
179
+ };
180
+ }
181
+ /** Add a leg to an existing multi-leg market */
182
+ async addLeg(params) {
183
+ const provider = this.program
184
+ .provider;
185
+ // Fetch the market to determine next leg index
186
+ const marketAccount = await this.program.account.market.fetch(params.marketPda);
187
+ const mt = marketAccount.marketType;
188
+ const existingLegs = mt.multiLeg
189
+ ? Array.isArray(mt.multiLeg)
190
+ ? mt.multiLeg
191
+ : mt.multiLeg["0"] ?? []
192
+ : [];
193
+ const index = existingLegs.length;
194
+ const yesOrderBook = web3_js_1.Keypair.generate();
195
+ const noOrderBook = web3_js_1.Keypair.generate();
196
+ const yesFillLog = web3_js_1.Keypair.generate();
197
+ const noFillLog = web3_js_1.Keypair.generate();
198
+ const [vault] = (0, pda_1.getVaultPda)(this.program.programId, params.marketPda, index);
199
+ const obRent = await provider.connection.getMinimumBalanceForRentExemption(constants_1.ORDER_BOOK_SIZE);
200
+ const flRent = await provider.connection.getMinimumBalanceForRentExemption(constants_1.FILL_LOG_SIZE);
201
+ const tx1 = new web3_js_1.Transaction().add(web3_js_1.SystemProgram.createAccount({
202
+ fromPubkey: provider.wallet.publicKey,
203
+ newAccountPubkey: yesOrderBook.publicKey,
204
+ lamports: obRent,
205
+ space: constants_1.ORDER_BOOK_SIZE,
206
+ programId: this.program.programId,
207
+ }), web3_js_1.SystemProgram.createAccount({
208
+ fromPubkey: provider.wallet.publicKey,
209
+ newAccountPubkey: noOrderBook.publicKey,
210
+ lamports: obRent,
211
+ space: constants_1.ORDER_BOOK_SIZE,
212
+ programId: this.program.programId,
213
+ }));
214
+ await provider.sendAndConfirm(tx1, [yesOrderBook, noOrderBook]);
215
+ const tx2 = new web3_js_1.Transaction().add(web3_js_1.SystemProgram.createAccount({
216
+ fromPubkey: provider.wallet.publicKey,
217
+ newAccountPubkey: yesFillLog.publicKey,
218
+ lamports: flRent,
219
+ space: constants_1.FILL_LOG_SIZE,
220
+ programId: this.program.programId,
221
+ }), web3_js_1.SystemProgram.createAccount({
222
+ fromPubkey: provider.wallet.publicKey,
223
+ newAccountPubkey: noFillLog.publicKey,
224
+ lamports: flRent,
225
+ space: constants_1.FILL_LOG_SIZE,
226
+ programId: this.program.programId,
227
+ }));
228
+ await provider.sendAndConfirm(tx2, [yesFillLog, noFillLog]);
229
+ const marketData = {
230
+ name: params.legName,
231
+ yesOrderBook: yesOrderBook.publicKey,
232
+ noOrderBook: noOrderBook.publicKey,
233
+ yesFillLog: yesFillLog.publicKey,
234
+ noFillLog: noFillLog.publicKey,
235
+ vault,
236
+ status: { active: {} },
237
+ winningSide: { none: {} },
238
+ resolvingState: { notStarted: {} },
239
+ sharesOutstanding: new anchor_1.BN(0),
240
+ totalVolume: new anchor_1.BN(0),
241
+ };
242
+ const sig = await this.program.methods
243
+ .addOrderbookSetToMarket({ index, marketData })
244
+ .accounts({
245
+ payer: provider.wallet.publicKey,
246
+ market: params.marketPda,
247
+ yesOrderBook: yesOrderBook.publicKey,
248
+ noOrderBook: noOrderBook.publicKey,
249
+ yesFillLog: yesFillLog.publicKey,
250
+ noFillLog: noFillLog.publicKey,
251
+ vault,
252
+ usdcMint: constants_1.USDC_MINT,
253
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
254
+ systemProgram: web3_js_1.SystemProgram.programId,
255
+ })
256
+ .rpc();
257
+ return {
258
+ index,
259
+ name: params.legName,
260
+ vault,
261
+ yesOrderBook: yesOrderBook.publicKey,
262
+ noOrderBook: noOrderBook.publicKey,
263
+ yesFillLog: yesFillLog.publicKey,
264
+ noFillLog: noFillLog.publicKey,
265
+ signature: sig,
266
+ };
267
+ }
268
+ }
269
+ exports.MarketModule = MarketModule;
270
+ //# sourceMappingURL=market-creation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"market-creation.js","sourceRoot":"","sources":["../../src/instructions/market-creation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import { Program } from "@coral-xyz/anchor";
2
+ import { PublicKey, Keypair } from "@solana/web3.js";
3
+ import { PredMarket } from "../idl/pred_market";
4
+ import { MarketInfoTypeLabel, ResolverTypeInput } from "../types";
5
+ export interface CreateMarketInfoParams {
6
+ marketType: MarketInfoTypeLabel;
7
+ resolverType: ResolverTypeInput;
8
+ }
9
+ export interface CreateMarketInfoResult {
10
+ marketInfoPda: PublicKey;
11
+ keypair: Keypair;
12
+ signature: string;
13
+ }
14
+ export declare class MarketInfoModule {
15
+ private readonly program;
16
+ /** @internal */
17
+ constructor(program: Program<PredMarket>);
18
+ /** Create a new MarketInfo account */
19
+ createMarketInfo(params: CreateMarketInfoParams): Promise<CreateMarketInfoResult>;
20
+ /**
21
+ * Create a MarketInfo and populate it with text fields.
22
+ * Convenience method that combines createMarketInfo + set text fields.
23
+ */
24
+ createPopulatedMarketInfo(params: {
25
+ marketType: MarketInfoTypeLabel;
26
+ resolverType: ResolverTypeInput;
27
+ marketQuestion?: string;
28
+ description?: string;
29
+ rules?: string;
30
+ }): Promise<CreateMarketInfoResult>;
31
+ /** Set the market question (replaces existing) */
32
+ setMarketQuestion(marketInfo: PublicKey, question: string): Promise<string>;
33
+ /** Append to the market question */
34
+ appendMarketQuestion(marketInfo: PublicKey, chunk: string): Promise<string>;
35
+ /** Set the description (replaces existing) */
36
+ setDescription(marketInfo: PublicKey, description: string): Promise<string>;
37
+ /** Append to the description */
38
+ appendDescription(marketInfo: PublicKey, chunk: string): Promise<string>;
39
+ /** Set the rules (replaces existing) */
40
+ setRules(marketInfo: PublicKey, rules: string): Promise<string>;
41
+ /** Append to the rules */
42
+ appendRules(marketInfo: PublicKey, chunk: string): Promise<string>;
43
+ /** Set the market type */
44
+ setMarketType(marketInfo: PublicKey, marketType: MarketInfoTypeLabel): Promise<string>;
45
+ /** Set the resolver type */
46
+ setResolverType(marketInfo: PublicKey, resolverType: ResolverTypeInput): Promise<string>;
47
+ }
48
+ //# sourceMappingURL=market-info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"market-info.d.ts","sourceRoot":"","sources":["../../src/instructions/market-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAM,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAiB,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EAGlB,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,mBAAmB,CAAC;IAChC,YAAY,EAAE,iBAAiB,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,SAAS,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,gBAAgB;IAEf,OAAO,CAAC,QAAQ,CAAC,OAAO;IADpC,gBAAgB;gBACa,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC;IAEzD,sCAAsC;IAChC,gBAAgB,CACpB,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,sBAAsB,CAAC;IAuBlC;;;OAGG;IACG,yBAAyB,CAAC,MAAM,EAAE;QACtC,UAAU,EAAE,mBAAmB,CAAC;QAChC,YAAY,EAAE,iBAAiB,CAAC;QAChC,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAmBnC,kDAAkD;IAC5C,iBAAiB,CACrB,UAAU,EAAE,SAAS,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;IAWlB,oCAAoC;IAC9B,oBAAoB,CACxB,UAAU,EAAE,SAAS,EACrB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC;IAWlB,8CAA8C;IACxC,cAAc,CAClB,UAAU,EAAE,SAAS,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC;IAWlB,gCAAgC;IAC1B,iBAAiB,CACrB,UAAU,EAAE,SAAS,EACrB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC;IAWlB,wCAAwC;IAClC,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWrE,0BAA0B;IACpB,WAAW,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWxE,0BAA0B;IACpB,aAAa,CACjB,UAAU,EAAE,SAAS,EACrB,UAAU,EAAE,mBAAmB,GAC9B,OAAO,CAAC,MAAM,CAAC;IAUlB,4BAA4B;IACtB,eAAe,CACnB,UAAU,EAAE,SAAS,EACrB,YAAY,EAAE,iBAAiB,GAC9B,OAAO,CAAC,MAAM,CAAC;CAWnB"}