@oddmaki-protocol/sdk 1.2.0 → 1.4.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/dist/index.mjs CHANGED
@@ -17,14 +17,6 @@ var CONTRACT_ADDRESSES = {
17
17
  subgraph: "https://api.studio.thegraph.com/query/1716020/oddmaki-base/version/latest"
18
18
  }
19
19
  };
20
- var SUBGRAPH_IDS = {
21
- [base.id]: "CxoYVjELrNCMLopAmVshnfVAie7yH6QZyCSKD3r41XSQ",
22
- [baseSepolia.id]: "DCnd3ozSyvYxRg7kmZYiDWGBiJCe6QHwu8M93jMN1Q3b"
23
- };
24
- function buildSubgraphGatewayUrl(chainId, apiKey) {
25
- const id = SUBGRAPH_IDS[chainId];
26
- return id ? `https://gateway.thegraph.com/api/${apiKey}/subgraphs/id/${id}` : void 0;
27
- }
28
20
  var DEFAULT_CHAIN = base;
29
21
  var SubgraphClient = class {
30
22
  constructor(endpoint) {
@@ -401,6 +393,24 @@ var VenueFacet_default = [
401
393
  outputs: [],
402
394
  stateMutability: "nonpayable"
403
395
  },
396
+ {
397
+ type: "function",
398
+ name: "updateVenueMarketCreationFee",
399
+ inputs: [
400
+ {
401
+ name: "venueId",
402
+ type: "uint256",
403
+ internalType: "uint256"
404
+ },
405
+ {
406
+ name: "newFee",
407
+ type: "uint256",
408
+ internalType: "uint256"
409
+ }
410
+ ],
411
+ outputs: [],
412
+ stateMutability: "nonpayable"
413
+ },
404
414
  {
405
415
  type: "function",
406
416
  name: "updateVenueOracleParams",
@@ -505,6 +515,25 @@ var VenueFacet_default = [
505
515
  ],
506
516
  anonymous: false
507
517
  },
518
+ {
519
+ type: "event",
520
+ name: "VenueMarketCreationFeeUpdated",
521
+ inputs: [
522
+ {
523
+ name: "venueId",
524
+ type: "uint256",
525
+ indexed: true,
526
+ internalType: "uint256"
527
+ },
528
+ {
529
+ name: "newFee",
530
+ type: "uint256",
531
+ indexed: false,
532
+ internalType: "uint256"
533
+ }
534
+ ],
535
+ anonymous: false
536
+ },
508
537
  {
509
538
  type: "event",
510
539
  name: "VenueOracleParamsUpdated",
@@ -609,11 +638,6 @@ var VenueFacet_default = [
609
638
  name: "InvalidFeeRecipient",
610
639
  inputs: []
611
640
  },
612
- {
613
- type: "error",
614
- name: "InvalidMarketCreationFee",
615
- inputs: []
616
- },
617
641
  {
618
642
  type: "error",
619
643
  name: "InvalidTickSize",
@@ -7093,21 +7117,24 @@ var UmaOracle_default = [
7093
7117
  // src/modules/venue.ts
7094
7118
  var VenueModule = class extends BaseModule {
7095
7119
  /**
7096
- * Create a new venue
7120
+ * Create a new venue.
7097
7121
  *
7098
- * IMPORTANT: Fee and bond amounts must match your intended collateral token decimals!
7099
- * Most venues use USDC (6 decimals), so amounts should use parseUnits("amount", 6).
7122
+ * IMPORTANT: Fee and bond amounts must match your intended collateral token decimals.
7123
+ * Most venues use USDC (6 decimals), so amounts should use `parseUnits("amount", 6)`.
7100
7124
  *
7101
- * Example for USDC-based venue:
7102
- * - marketCreationFee: parseUnits("10", 6) // 10 USDC
7103
- * - umaRewardAmount: parseUnits("5", 6) // 5 USDC
7104
- * - umaMinBond: parseUnits("1", 6) // 1 USDC
7105
- * - defaultTickSize: parseEther("0.01") // 0.01 per tick (always 18 decimals)
7125
+ * Example for a USDC-based venue:
7126
+ * - marketCreationFee: 0n // free creation, or parseUnits("10", 6) for 10 USDC
7127
+ * - umaRewardAmount: parseUnits("5", 6) // 5 USDC
7128
+ * - umaMinBond: parseUnits("1", 6) // 1 USDC
7129
+ * - defaultTickSize: parseEther("0.01") // 0.01 per tick (always 18 decimals)
7106
7130
  *
7107
- * @param params.marketCreationFee - Upfront fee (min 5e6 for USDC, split 50/50 protocol/venue)
7108
- * @param params.umaRewardAmount - Default reward for UMA asserters (in collateral token units)
7109
- * @param params.umaMinBond - Minimum bond for UMA assertions (in collateral token units)
7110
- * @param params.defaultTickSize - Price increment per tick (always 1e18 scale, e.g., 0.01e18)
7131
+ * @param params.marketCreationFee - Upfront fee in collateral units charged on `createMarket`.
7132
+ * Can be zero. When non-zero, split 50/50 between protocol and venue.
7133
+ * When zero, gate market creation via `creationAccessControl` to deter spam.
7134
+ * Mutable post-creation via `updateMarketCreationFee`.
7135
+ * @param params.umaRewardAmount - Default reward for UMA asserters (in collateral token units).
7136
+ * @param params.umaMinBond - Minimum bond for UMA assertions (in collateral token units).
7137
+ * @param params.defaultTickSize - Price increment per tick (always 1e18 scale, e.g. 0.01e18).
7111
7138
  */
7112
7139
  async createVenue(params) {
7113
7140
  const wallet = this.walletClient;
@@ -7197,6 +7224,27 @@ var VenueModule = class extends BaseModule {
7197
7224
  });
7198
7225
  return wallet.writeContract(request);
7199
7226
  }
7227
+ /**
7228
+ * Update the upfront market creation fee for a venue. Operator-only.
7229
+ *
7230
+ * Affects only markets created after this call — existing markets keep their snapshot.
7231
+ * Pass `0n` for free creation; if you do, gate `createMarket` via `creationAccessControl`
7232
+ * to deter spam.
7233
+ *
7234
+ * @param params.newFee - New fee in collateral token units (e.g. `parseUnits("10", 6)` for 10 USDC).
7235
+ */
7236
+ async updateMarketCreationFee(params) {
7237
+ const wallet = this.walletClient;
7238
+ const account = await this.getSignerAccount();
7239
+ const { request } = await this.publicClient.simulateContract({
7240
+ address: this.config.diamondAddress,
7241
+ abi: VenueFacet_default,
7242
+ functionName: "updateVenueMarketCreationFee",
7243
+ args: [params.venueId, params.newFee],
7244
+ account
7245
+ });
7246
+ return wallet.writeContract(request);
7247
+ }
7200
7248
  /**
7201
7249
  * Update venue oracle parameters (UMA reward and min bond)
7202
7250
  */
@@ -8770,11 +8818,16 @@ var GET_MARKETS = gql`
8770
8818
  query GetMarkets(
8771
8819
  $venueId: BigInt
8772
8820
  $search: String = ""
8821
+ $statuses: [MarketStatus!] = [Draft, Active, Resolved, Invalid]
8773
8822
  $first: Int = 100
8774
8823
  $skip: Int = 0
8775
8824
  ) {
8776
8825
  markets(
8777
- where: { venue_: { venueId: $venueId }, question_contains_nocase: $search }
8826
+ where: {
8827
+ venue_: { venueId: $venueId }
8828
+ question_contains_nocase: $search
8829
+ status_in: $statuses
8830
+ }
8778
8831
  first: $first
8779
8832
  skip: $skip
8780
8833
  orderBy: createdAt
@@ -8807,11 +8860,16 @@ var GET_MARKETS_WITH_PRICING = gql`
8807
8860
  query GetMarketsWithPricing(
8808
8861
  $venueId: BigInt
8809
8862
  $search: String = ""
8863
+ $statuses: [MarketStatus!] = [Draft, Active, Resolved, Invalid]
8810
8864
  $first: Int = 100
8811
8865
  $skip: Int = 0
8812
8866
  ) {
8813
8867
  markets(
8814
- where: { venue_: { venueId: $venueId }, question_contains_nocase: $search }
8868
+ where: {
8869
+ venue_: { venueId: $venueId }
8870
+ question_contains_nocase: $search
8871
+ status_in: $statuses
8872
+ }
8815
8873
  first: $first
8816
8874
  skip: $skip
8817
8875
  orderBy: createdAt
@@ -9859,6 +9917,7 @@ var GET_MARKET_TOP_HOLDERS = gql`
9859
9917
  `;
9860
9918
 
9861
9919
  // src/modules/public.ts
9920
+ var ALL_MARKET_STATUSES = ["Draft", "Active", "Resolved", "Invalid"];
9862
9921
  var PublicModule = class extends BaseModule {
9863
9922
  /**
9864
9923
  * Get all venues
@@ -9878,6 +9937,7 @@ var PublicModule = class extends BaseModule {
9878
9937
  return this.subgraph.request(GET_MARKETS, {
9879
9938
  venueId: params.venueId?.toString(),
9880
9939
  search: params.search ?? "",
9940
+ statuses: params.statuses ?? ALL_MARKET_STATUSES,
9881
9941
  first: params.first || 100,
9882
9942
  skip: params.skip || 0
9883
9943
  });
@@ -9887,11 +9947,14 @@ var PublicModule = class extends BaseModule {
9887
9947
  *
9888
9948
  * @param params.search Optional case-insensitive substring match against the
9889
9949
  * market `question` field. Empty string matches all markets.
9950
+ * @param params.statuses Optional list of market statuses to include. Omit
9951
+ * to include all statuses (Draft, Active, Resolved, Invalid).
9890
9952
  */
9891
9953
  async getMarketsWithPricing(params) {
9892
9954
  return this.subgraph.request(GET_MARKETS_WITH_PRICING, {
9893
9955
  venueId: params.venueId?.toString(),
9894
9956
  search: params.search ?? "",
9957
+ statuses: params.statuses ?? ALL_MARKET_STATUSES,
9895
9958
  first: params.first || 100,
9896
9959
  skip: params.skip || 0
9897
9960
  });
@@ -11339,6 +11402,6 @@ function parseMetadata(json) {
11339
11402
  // src/index.ts
11340
11403
  var version = "0.1.0";
11341
11404
 
11342
- export { AccessControlFacet_default as AccessControlFacetABI, AccessControlModule, BatchOrdersFacet_default as BatchOrdersFacetABI, CONTRACT_ADDRESSES, ConditionalTokens_default as ConditionalTokensABI, DEFAULT_CHAIN, ERC20_default as ERC20ABI, FeedProvider, GET_ALL_MARKETS_FEED, GET_ALL_MARKETS_FEED_BY_VOLUME, GET_CHART_TRADES, GET_CHART_TRADES_ALL, GET_GROUP_MARKETS, GET_LEADERBOARD, GET_MARKET, GET_MARKETS, GET_MARKETS_WITH_PRICING, GET_MARKET_GROUP, GET_MARKET_GROUPS, GET_MARKET_GROUP_ITEM, GET_MARKET_TOP_HOLDERS, GET_ORDERS, GET_PROTOCOL_STATS, GET_QUESTION, GET_QUESTIONS, GET_RECENT_MARKETS, GET_RECENT_TRADES, GET_TOP_OF_BOOK, GET_TRADER_CLOSED_POSITIONS, GET_TRADER_FILLS, GET_TRADER_POSITIONS, GET_TRADER_PROFILE, GET_TRADES, GET_UNIFIED_MARKET_FEED, GET_UNIFIED_MARKET_FEED_BY_VOLUME, GET_USER, GET_VENUES, LimitOrdersFacet_default as LimitOrdersFacetABI, MarketGroupFacet_default as MarketGroupFacetABI, MarketModule, MarketOrdersFacet_default as MarketOrdersFacetABI, MarketsFacet_default as MarketsFacetABI, MatchingFacet_default as MatchingFacetABI, MetadataFacet_default as MetadataFacetABI, NegRiskFacet_default as NegRiskFacetABI, OddMakiClient, OrderBookFacet_default as OrderBookFacetABI, PROTOCOL_FEES, PriceMarketFacet_default as PriceMarketFacetABI, PriceMarketModule, ProtocolFacet_default as ProtocolFacetABI, PublicModule, PythResolutionFacet_default as PythResolutionFacetABI, ResolutionFacet_default as ResolutionFacetABI, SUBGRAPH_IDS, SubgraphClient, TICK_SIZE_FINE, TICK_SIZE_STANDARD, TagsFacet_default as TagsFacetABI, TokenModule, TradeModule, UMA_DEFAULTS, UmaModule, UmaOracle_default as UmaOracleABI, VALID_TICK_SIZES, VaultFacet_default as VaultFacetABI, VenueFacet_default as VenueFacetABI, VenueModule, WhitelistAccessControl_default as WhitelistAccessControlABI, buildSubgraphGatewayUrl, calculateChancePercent, clearDecimalsCache, createExpiry, createOddMakiClient, formatAmount, formatAncillaryData, formatTimestamp, getCachedTokenDecimals, getOutcomePrice, getTokenDecimals, isValidTickSize, parseAmount, parseAncillaryData, parseMetadata, parseTokenAmount, priceToTick, resolveIPFSUri, tickToPercentage, tickToPrice, version };
11405
+ export { AccessControlFacet_default as AccessControlFacetABI, AccessControlModule, BatchOrdersFacet_default as BatchOrdersFacetABI, CONTRACT_ADDRESSES, ConditionalTokens_default as ConditionalTokensABI, DEFAULT_CHAIN, ERC20_default as ERC20ABI, FeedProvider, GET_ALL_MARKETS_FEED, GET_ALL_MARKETS_FEED_BY_VOLUME, GET_CHART_TRADES, GET_CHART_TRADES_ALL, GET_GROUP_MARKETS, GET_LEADERBOARD, GET_MARKET, GET_MARKETS, GET_MARKETS_WITH_PRICING, GET_MARKET_GROUP, GET_MARKET_GROUPS, GET_MARKET_GROUP_ITEM, GET_MARKET_TOP_HOLDERS, GET_ORDERS, GET_PROTOCOL_STATS, GET_QUESTION, GET_QUESTIONS, GET_RECENT_MARKETS, GET_RECENT_TRADES, GET_TOP_OF_BOOK, GET_TRADER_CLOSED_POSITIONS, GET_TRADER_FILLS, GET_TRADER_POSITIONS, GET_TRADER_PROFILE, GET_TRADES, GET_UNIFIED_MARKET_FEED, GET_UNIFIED_MARKET_FEED_BY_VOLUME, GET_USER, GET_VENUES, LimitOrdersFacet_default as LimitOrdersFacetABI, MarketGroupFacet_default as MarketGroupFacetABI, MarketModule, MarketOrdersFacet_default as MarketOrdersFacetABI, MarketsFacet_default as MarketsFacetABI, MatchingFacet_default as MatchingFacetABI, MetadataFacet_default as MetadataFacetABI, NegRiskFacet_default as NegRiskFacetABI, OddMakiClient, OrderBookFacet_default as OrderBookFacetABI, PROTOCOL_FEES, PriceMarketFacet_default as PriceMarketFacetABI, PriceMarketModule, ProtocolFacet_default as ProtocolFacetABI, PublicModule, PythResolutionFacet_default as PythResolutionFacetABI, ResolutionFacet_default as ResolutionFacetABI, SubgraphClient, TICK_SIZE_FINE, TICK_SIZE_STANDARD, TagsFacet_default as TagsFacetABI, TokenModule, TradeModule, UMA_DEFAULTS, UmaModule, UmaOracle_default as UmaOracleABI, VALID_TICK_SIZES, VaultFacet_default as VaultFacetABI, VenueFacet_default as VenueFacetABI, VenueModule, WhitelistAccessControl_default as WhitelistAccessControlABI, calculateChancePercent, clearDecimalsCache, createExpiry, createOddMakiClient, formatAmount, formatAncillaryData, formatTimestamp, getCachedTokenDecimals, getOutcomePrice, getTokenDecimals, isValidTickSize, parseAmount, parseAncillaryData, parseMetadata, parseTokenAmount, priceToTick, resolveIPFSUri, tickToPercentage, tickToPrice, version };
11343
11406
  //# sourceMappingURL=index.mjs.map
11344
11407
  //# sourceMappingURL=index.mjs.map