@vultisig/rujira 12.1.0 → 13.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/CHANGELOG.md CHANGED
@@ -1,5 +1,35 @@
1
1
  # @vultisig/rujira
2
2
 
3
+ ## 13.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - [#299](https://github.com/vultisig/vultisig-sdk/pull/299) [`4af5bb8`](https://github.com/vultisig/vultisig-sdk/commit/4af5bb8043da7dab15b5e1a135e5195d2dd1d7cc) Thanks [@gomesalexandre](https://github.com/gomesalexandre)! - feat(rujira)!: drop RujiraPerps
8
+
9
+ **BREAKING CHANGE.** The `RujiraPerps` module is removed. Its only
10
+ consumer was vultisig-mcp-ts' `src/tools/rujira/perps.ts`, which
11
+ [mcp-ts#36](https://github.com/vultisig/mcp-ts/pull/36) deleted
12
+ (commit `e5ecb58`). No known external consumers.
13
+
14
+ Removed:
15
+ - `RujiraPerps` class export
16
+ - `PerpsMarket` type export
17
+ - `PerpsTransactionParams` type export
18
+ - `client.perps` field on `RujiraClient`
19
+ - `@vultisig/rujira/perps` subpath export
20
+
21
+ No replacement API. Consumers that still need perps-style interactions
22
+ should open an issue — the module was a thin wrapper around on-chain
23
+ calls that can be reconstructed if there's demand.
24
+
25
+ All other Rujira surfaces (swap, orderbook, staking, ghost, deposit,
26
+ withdraw, discovery) are unchanged.
27
+
28
+ ### Patch Changes
29
+
30
+ - Updated dependencies [[`2018787`](https://github.com/vultisig/vultisig-sdk/commit/2018787f8101ea9a98e975c0e7477245c3f86fad), [`f52057b`](https://github.com/vultisig/vultisig-sdk/commit/f52057b4af859018d1c180fa6db9ce15e153409f)]:
31
+ - @vultisig/sdk@0.18.0
32
+
3
33
  ## 12.1.0
4
34
 
5
35
  ### Minor Changes
package/dist/client.d.ts CHANGED
@@ -6,7 +6,6 @@ import { RujiraAssets } from './modules/assets.js';
6
6
  import { RujiraDeposit } from './modules/deposit.js';
7
7
  import { RujiraGhost } from './modules/ghost.js';
8
8
  import { RujiraOrderbook } from './modules/orderbook.js';
9
- import { RujiraPerps } from './modules/perps.js';
10
9
  import { RujiraRange } from './modules/range.js';
11
10
  import { RujiraStaking } from './modules/staking.js';
12
11
  import { RujiraSwap, type RujiraSwapOptions } from './modules/swap.js';
@@ -33,7 +32,6 @@ export declare class RujiraClient {
33
32
  readonly withdraw: RujiraWithdraw;
34
33
  readonly staking: RujiraStaking;
35
34
  readonly ghost: RujiraGhost;
36
- readonly perps: RujiraPerps;
37
35
  readonly range: RujiraRange;
38
36
  readonly discovery: RujiraDiscovery;
39
37
  private queryClient;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -8,7 +8,6 @@ import { RujiraAssets } from './modules/assets.js';
8
8
  import { RujiraDeposit } from './modules/deposit.js';
9
9
  import { RujiraGhost } from './modules/ghost.js';
10
10
  import { RujiraOrderbook } from './modules/orderbook.js';
11
- import { RujiraPerps } from './modules/perps.js';
12
11
  import { RujiraRange } from './modules/range.js';
13
12
  import { RujiraStaking } from './modules/staking.js';
14
13
  import { RujiraSwap } from './modules/swap.js';
@@ -43,7 +42,6 @@ export class RujiraClient {
43
42
  this.withdraw = new RujiraWithdraw(this);
44
43
  this.staking = new RujiraStaking(this);
45
44
  this.ghost = new RujiraGhost(this);
46
- this.perps = new RujiraPerps(this);
47
45
  this.range = new RujiraRange(this);
48
46
  this.discovery = new RujiraDiscovery({
49
47
  rpcEndpoint: this.config.rpcEndpoint,
package/dist/index.d.ts CHANGED
@@ -38,8 +38,6 @@ export { RujiraAssets } from './modules/assets.js';
38
38
  export type { GhostTransactionParams, GhostVaultInfo, GhostVaultStatus } from './modules/ghost.js';
39
39
  export { RujiraGhost } from './modules/ghost.js';
40
40
  export { RujiraOrderbook } from './modules/orderbook.js';
41
- export type { PerpsMarket, PerpsTransactionParams } from './modules/perps.js';
42
- export { RujiraPerps } from './modules/perps.js';
43
41
  export type { RangeAnalytics, ClaimParams as RangeClaimParams, RangeConfig, CreatePositionParams as RangeCreatePositionParams, DepositParams as RangeDepositParams, FinPair as RangeFinPair, RangeMultiTransactionParams, RangePosition, RangeTransactionParams, TransferParams as RangeTransferParams, WithdrawAllParams as RangeWithdrawAllParams, WithdrawParams as RangeWithdrawParams, } from './modules/range.js';
44
42
  export { RANGE_APR_SCALE, RANGE_CONFIG_DECIMALS, RANGE_MOIC_SCALE, RANGE_WITHDRAW_SHARE_DECIMALS, RujiraRange, } from './modules/range.js';
45
43
  export type { StakeParams, StakeTransactionParams, StakingPosition, UnstakeParams } from './modules/staking.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAIH,YAAY,EACV,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,aAAa,EACb,eAAe,GAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,MAAM,EACN,WAAW,EACX,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,UAAU,EACV,QAAQ,GACT,MAAM,kBAAkB,CAAA;AAGzB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAG1B,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG1C,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACtG,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAC5F,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,YAAY,EAAE,sBAAsB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,YAAY,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,YAAY,EACV,cAAc,EACd,WAAW,IAAI,gBAAgB,EAC/B,WAAW,EACX,oBAAoB,IAAI,yBAAyB,EACjD,aAAa,IAAI,kBAAkB,EACnC,OAAO,IAAI,YAAY,EACvB,2BAA2B,EAC3B,aAAa,EACb,sBAAsB,EACtB,cAAc,IAAI,mBAAmB,EACrC,iBAAiB,IAAI,sBAAsB,EAC3C,cAAc,IAAI,mBAAmB,GACtC,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,6BAA6B,EAC7B,WAAW,GACZ,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EAAE,WAAW,EAAE,sBAAsB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAC/G,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAG9C,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AAGtE,cAAc,mBAAmB,CAAA;AAGjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAG/B,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAIH,YAAY,EACV,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,aAAa,EACb,eAAe,GAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,MAAM,EACN,WAAW,EACX,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,UAAU,EACV,QAAQ,GACT,MAAM,kBAAkB,CAAA;AAGzB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAG1B,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG1C,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACtG,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAC5F,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,YAAY,EAAE,sBAAsB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,YAAY,EACV,cAAc,EACd,WAAW,IAAI,gBAAgB,EAC/B,WAAW,EACX,oBAAoB,IAAI,yBAAyB,EACjD,aAAa,IAAI,kBAAkB,EACnC,OAAO,IAAI,YAAY,EACvB,2BAA2B,EAC3B,aAAa,EACb,sBAAsB,EACtB,cAAc,IAAI,mBAAmB,EACrC,iBAAiB,IAAI,sBAAsB,EAC3C,cAAc,IAAI,mBAAmB,GACtC,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,6BAA6B,EAC7B,WAAW,GACZ,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EAAE,WAAW,EAAE,sBAAsB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAC/G,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAG9C,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AAGtE,cAAc,mBAAmB,CAAA;AAGjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAG/B,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA"}
package/dist/index.js CHANGED
@@ -35,7 +35,6 @@ export { CclLinear, CclQuadratic, createCcl, generateCclDistribution } from './c
35
35
  export { RujiraAssets } from './modules/assets.js';
36
36
  export { RujiraGhost } from './modules/ghost.js';
37
37
  export { RujiraOrderbook } from './modules/orderbook.js';
38
- export { RujiraPerps } from './modules/perps.js';
39
38
  export { RANGE_APR_SCALE, RANGE_CONFIG_DECIMALS, RANGE_MOIC_SCALE, RANGE_WITHDRAW_SHARE_DECIMALS, RujiraRange, } from './modules/range.js';
40
39
  export { RujiraStaking } from './modules/staking.js';
41
40
  export { RujiraSwap } from './modules/swap.js';
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@vultisig/rujira",
3
- "version": "12.1.0",
3
+ "version": "13.0.0",
4
4
  "type": "module",
5
- "description": "Rujira DEX integration for Vultisig SDK - Modular TypeScript SDK for swaps and limit orders on THORChain",
5
+ "description": "Rujira DEX SDK for Vultisig THORChain-native swaps, limit orders, staking. Built for MPC wallets and AI agents. TypeScript, modular, self-custody.",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
8
8
  "exports": {
@@ -26,10 +26,6 @@
26
26
  "import": "./dist/modules/ghost.js",
27
27
  "types": "./dist/modules/ghost.d.ts"
28
28
  },
29
- "./perps": {
30
- "import": "./dist/modules/perps.js",
31
- "types": "./dist/modules/perps.d.ts"
32
- },
33
29
  "./range": {
34
30
  "import": "./dist/modules/range.js",
35
31
  "types": "./dist/modules/range.d.ts"
@@ -75,12 +71,12 @@
75
71
  "devDependencies": {
76
72
  "@types/big.js": "^6.2.2",
77
73
  "@types/node": "^25.5.0",
78
- "@vultisig/sdk": "0.17.1",
74
+ "@vultisig/sdk": "0.18.0",
79
75
  "typescript": "^5.9.3",
80
76
  "vitest": "^3.0.9"
81
77
  },
82
78
  "peerDependencies": {
83
- "@vultisig/sdk": ">=0.17.1"
79
+ "@vultisig/sdk": ">=0.18.0"
84
80
  },
85
81
  "peerDependenciesMeta": {
86
82
  "@vultisig/sdk": {
@@ -91,10 +87,21 @@
91
87
  "vultisig",
92
88
  "rujira",
93
89
  "thorchain",
90
+ "thorchain-swap",
91
+ "thorchain-dex",
92
+ "limit-order",
93
+ "cross-chain-swap",
94
+ "rune",
95
+ "cosmwasm",
96
+ "cosmos-sdk",
97
+ "defi-sdk",
98
+ "dex-sdk",
99
+ "mpc-wallet-sdk",
100
+ "ai-agent-dex",
101
+ "typescript-dex",
102
+ "defi",
94
103
  "dex",
95
104
  "swap",
96
- "defi",
97
- "cosmwasm",
98
105
  "cosmos",
99
106
  "crypto",
100
107
  "wallet"
@@ -1,127 +0,0 @@
1
- /**
2
- * Perpetual futures module for Levana perps on Rujira
3
- * @module modules/perps
4
- */
5
- import type { Coin } from '@cosmjs/proto-signing';
6
- import type { RujiraClient } from '../client.js';
7
- export type PerpsMarket = {
8
- /** Market contract address */
9
- address: string;
10
- /** Market name (e.g. 'BTC_USDC') */
11
- name: string;
12
- /** Base asset (e.g. 'BTC.BTC') */
13
- baseAsset: string;
14
- /** Quote asset (e.g. 'ETH-USDC-...') */
15
- quoteAsset: string;
16
- };
17
- export type PerpsTransactionParams = {
18
- contractAddress: string;
19
- executeMsg: object;
20
- funds: Coin[];
21
- };
22
- /**
23
- * Levana perpetual futures module.
24
- *
25
- * @example
26
- * ```typescript
27
- * const client = new RujiraClient();
28
- * await client.connect();
29
- *
30
- * // List markets
31
- * const markets = await client.perps.getMarkets();
32
- *
33
- * // Build open position
34
- * const tx = client.perps.buildOpenPosition({
35
- * market: 'thor1cyd6...',
36
- * direction: 'long',
37
- * leverage: '10',
38
- * collateralDenom: 'eth-usdc-0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
39
- * collateralAmount: '100000000',
40
- * });
41
- * ```
42
- */
43
- export declare class RujiraPerps {
44
- private readonly client;
45
- constructor(client: RujiraClient);
46
- /**
47
- * Get available perps markets from GraphQL.
48
- */
49
- getMarkets(): Promise<PerpsMarket[]>;
50
- /**
51
- * Query market status from the Levana contract.
52
- */
53
- getMarketStatus(marketAddress: string): Promise<Record<string, unknown>>;
54
- /**
55
- * Query positions for an owner on a market.
56
- */
57
- getPositions(marketAddress: string, owner: string): Promise<Record<string, unknown>>;
58
- /**
59
- * Query limit orders for an owner on a market.
60
- */
61
- getLimitOrders(marketAddress: string, owner: string): Promise<Record<string, unknown>>;
62
- /**
63
- * Build open position transaction.
64
- */
65
- buildOpenPosition(params: {
66
- market: string;
67
- direction: 'long' | 'short';
68
- leverage: string;
69
- collateralDenom: string;
70
- collateralAmount: string;
71
- takeProfit?: string;
72
- stopLoss?: string;
73
- }): PerpsTransactionParams;
74
- /**
75
- * Build close position transaction.
76
- */
77
- buildClosePosition(params: {
78
- market: string;
79
- positionId: string;
80
- }): PerpsTransactionParams;
81
- /**
82
- * Build update take profit transaction.
83
- */
84
- buildUpdateTakeProfit(params: {
85
- market: string;
86
- positionId: string;
87
- price: string;
88
- }): PerpsTransactionParams;
89
- /**
90
- * Build update stop loss transaction.
91
- */
92
- buildUpdateStopLoss(params: {
93
- market: string;
94
- positionId: string;
95
- stopLoss: string | 'remove';
96
- }): PerpsTransactionParams;
97
- /**
98
- * Build add collateral transaction.
99
- */
100
- buildAddCollateral(params: {
101
- market: string;
102
- positionId: string;
103
- denom: string;
104
- amount: string;
105
- }): PerpsTransactionParams;
106
- /**
107
- * Build place limit order transaction.
108
- */
109
- buildPlaceLimitOrder(params: {
110
- market: string;
111
- direction: 'long' | 'short';
112
- leverage: string;
113
- triggerPrice: string;
114
- collateralDenom: string;
115
- collateralAmount: string;
116
- takeProfit?: string;
117
- stopLoss?: string;
118
- }): PerpsTransactionParams;
119
- /**
120
- * Build cancel limit order transaction.
121
- */
122
- buildCancelLimitOrder(params: {
123
- market: string;
124
- orderId: string;
125
- }): PerpsTransactionParams;
126
- }
127
- //# sourceMappingURL=perps.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"perps.d.ts","sourceRoot":"","sources":["../../src/modules/perps.ts"],"names":[],"mappings":"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"}
@@ -1,214 +0,0 @@
1
- /**
2
- * Perpetual futures module for Levana perps on Rujira
3
- * @module modules/perps
4
- */
5
- import { RujiraError, RujiraErrorCode, wrapError } from '../errors.js';
6
- import { isPositiveBigInt, isPositiveNumber } from '../utils/format.js';
7
- // GraphQL endpoint
8
- const RUJIRA_GRAPHQL_URL = 'https://api.rujira.network/api/graphql';
9
- const PERPS_MARKETS_QUERY = `
10
- {
11
- perps {
12
- id
13
- name
14
- address
15
- baseAsset { asset }
16
- quoteAsset { asset }
17
- }
18
- }
19
- `;
20
- /**
21
- * Levana perpetual futures module.
22
- *
23
- * @example
24
- * ```typescript
25
- * const client = new RujiraClient();
26
- * await client.connect();
27
- *
28
- * // List markets
29
- * const markets = await client.perps.getMarkets();
30
- *
31
- * // Build open position
32
- * const tx = client.perps.buildOpenPosition({
33
- * market: 'thor1cyd6...',
34
- * direction: 'long',
35
- * leverage: '10',
36
- * collateralDenom: 'eth-usdc-0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
37
- * collateralAmount: '100000000',
38
- * });
39
- * ```
40
- */
41
- export class RujiraPerps {
42
- constructor(client) {
43
- this.client = client;
44
- }
45
- // --- Market Discovery ---
46
- /**
47
- * Get available perps markets from GraphQL.
48
- */
49
- async getMarkets() {
50
- try {
51
- const response = await fetch(RUJIRA_GRAPHQL_URL, {
52
- method: 'POST',
53
- headers: { 'Content-Type': 'application/json' },
54
- body: JSON.stringify({ query: PERPS_MARKETS_QUERY }),
55
- });
56
- if (!response.ok) {
57
- throw new RujiraError(RujiraErrorCode.NETWORK_ERROR, `GraphQL request failed: ${response.status}`);
58
- }
59
- const json = (await response.json());
60
- if (json.errors?.length) {
61
- throw new RujiraError(RujiraErrorCode.NETWORK_ERROR, `GraphQL errors: ${json.errors[0].message}`);
62
- }
63
- return (json.data?.perps ?? []).map(m => ({
64
- address: m.address,
65
- name: m.name,
66
- baseAsset: m.baseAsset.asset,
67
- quoteAsset: m.quoteAsset.asset,
68
- }));
69
- }
70
- catch (error) {
71
- throw wrapError(error);
72
- }
73
- }
74
- // --- Market Queries ---
75
- /**
76
- * Query market status from the Levana contract.
77
- */
78
- async getMarketStatus(marketAddress) {
79
- try {
80
- return await this.client.queryContract(marketAddress, { status: { price: null } });
81
- }
82
- catch (error) {
83
- throw wrapError(error);
84
- }
85
- }
86
- /**
87
- * Query positions for an owner on a market.
88
- */
89
- async getPositions(marketAddress, owner) {
90
- try {
91
- return await this.client.queryContract(marketAddress, {
92
- positions: { owner, start_after: null, limit: 50 },
93
- });
94
- }
95
- catch (error) {
96
- throw wrapError(error);
97
- }
98
- }
99
- /**
100
- * Query limit orders for an owner on a market.
101
- */
102
- async getLimitOrders(marketAddress, owner) {
103
- try {
104
- return await this.client.queryContract(marketAddress, {
105
- limit_orders: { owner, start_after: null, limit: 50 },
106
- });
107
- }
108
- catch (error) {
109
- throw wrapError(error);
110
- }
111
- }
112
- // --- Position Management ---
113
- /**
114
- * Build open position transaction.
115
- */
116
- buildOpenPosition(params) {
117
- if (!params.leverage || !isPositiveNumber(params.leverage)) {
118
- throw new RujiraError(RujiraErrorCode.INVALID_AMOUNT, 'Leverage must be a positive number string (e.g. "2", "1.5")');
119
- }
120
- if (!params.collateralAmount || !isPositiveBigInt(params.collateralAmount)) {
121
- throw new RujiraError(RujiraErrorCode.INVALID_AMOUNT, 'Collateral amount must be a positive integer string');
122
- }
123
- return {
124
- contractAddress: params.market,
125
- executeMsg: {
126
- open_position: {
127
- slippage_assert: null,
128
- leverage: params.leverage,
129
- direction: params.direction,
130
- stop_loss_override: params.stopLoss ?? null,
131
- take_profit: params.takeProfit ?? '+Inf',
132
- },
133
- },
134
- funds: [{ denom: params.collateralDenom, amount: params.collateralAmount }],
135
- };
136
- }
137
- /**
138
- * Build close position transaction.
139
- */
140
- buildClosePosition(params) {
141
- return {
142
- contractAddress: params.market,
143
- executeMsg: { close_position: { id: params.positionId, slippage_assert: null } },
144
- funds: [],
145
- };
146
- }
147
- /**
148
- * Build update take profit transaction.
149
- */
150
- buildUpdateTakeProfit(params) {
151
- return {
152
- contractAddress: params.market,
153
- executeMsg: { update_position_take_profit_price: { id: params.positionId, price: params.price } },
154
- funds: [],
155
- };
156
- }
157
- /**
158
- * Build update stop loss transaction.
159
- */
160
- buildUpdateStopLoss(params) {
161
- return {
162
- contractAddress: params.market,
163
- executeMsg: { update_position_stop_loss_price: { id: params.positionId, stop_loss: params.stopLoss } },
164
- funds: [],
165
- };
166
- }
167
- /**
168
- * Build add collateral transaction.
169
- */
170
- buildAddCollateral(params) {
171
- if (!params.amount || !isPositiveBigInt(params.amount)) {
172
- throw new RujiraError(RujiraErrorCode.INVALID_AMOUNT, 'Collateral amount must be a positive integer string');
173
- }
174
- return {
175
- contractAddress: params.market,
176
- executeMsg: { update_position_add_collateral_impact_leverage: { id: params.positionId } },
177
- funds: [{ denom: params.denom, amount: params.amount }],
178
- };
179
- }
180
- /**
181
- * Build place limit order transaction.
182
- */
183
- buildPlaceLimitOrder(params) {
184
- if (!params.leverage || !isPositiveNumber(params.leverage)) {
185
- throw new RujiraError(RujiraErrorCode.INVALID_AMOUNT, 'Leverage must be a positive number string (e.g. "2", "1.5")');
186
- }
187
- if (!params.collateralAmount || !isPositiveBigInt(params.collateralAmount)) {
188
- throw new RujiraError(RujiraErrorCode.INVALID_AMOUNT, 'Collateral amount must be a positive integer string');
189
- }
190
- return {
191
- contractAddress: params.market,
192
- executeMsg: {
193
- place_limit_order: {
194
- trigger_price: params.triggerPrice,
195
- leverage: params.leverage,
196
- direction: params.direction,
197
- stop_loss_override: params.stopLoss ?? null,
198
- take_profit: params.takeProfit ?? '+Inf',
199
- },
200
- },
201
- funds: [{ denom: params.collateralDenom, amount: params.collateralAmount }],
202
- };
203
- }
204
- /**
205
- * Build cancel limit order transaction.
206
- */
207
- buildCancelLimitOrder(params) {
208
- return {
209
- contractAddress: params.market,
210
- executeMsg: { cancel_limit_order: { order_id: params.orderId } },
211
- funds: [],
212
- };
213
- }
214
- }