@triadxyz/triad-protocol 0.5.7-beta.devnet → 0.5.9-beta.devnet

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/trade.js CHANGED
@@ -111,7 +111,20 @@ class Trade {
111
111
  openOrder(marketId, args, options) {
112
112
  return __awaiter(this, void 0, void 0, function* () {
113
113
  const marketPDA = (0, helpers_1.getMarketAddressSync)(this.program.programId, marketId);
114
- const method = this.program.methods
114
+ const ixs = [];
115
+ try {
116
+ const userTradePDA = (0, helpers_1.getUserTradeAddressSync)(this.program.programId, this.provider.publicKey);
117
+ this.program.account.userTrade.fetch(userTradePDA);
118
+ }
119
+ catch (_a) {
120
+ ixs.push(yield this.program.methods
121
+ .createUserTrade()
122
+ .accounts({
123
+ signer: this.provider.publicKey
124
+ })
125
+ .instruction());
126
+ }
127
+ ixs.push(yield this.program.methods
115
128
  .openOrder({
116
129
  amount: new bn_js_1.default(args.amount / Math.pow(10, constants_1.TRD_DECIMALS)),
117
130
  direction: args.direction,
@@ -119,21 +132,28 @@ class Trade {
119
132
  limitPrice: args.limitPrice
120
133
  ? new bn_js_1.default(args.limitPrice / Math.pow(10, constants_1.TRD_DECIMALS))
121
134
  : undefined,
122
- comment: (0, helpers_1.encodeString)(args.comment, 64)
135
+ comment: args.comment ? (0, helpers_1.encodeString)(args.comment, 64) : undefined
123
136
  })
124
137
  .accounts({
125
138
  signer: this.provider.publicKey,
126
139
  market: marketPDA,
127
- mint: constants_1.TRD_MINT
128
- });
140
+ mint: constants_1.TRD_MINT_DEVNET
141
+ })
142
+ .instruction());
129
143
  if (options === null || options === void 0 ? void 0 : options.microLamports) {
130
- method.postInstructions([
131
- web3_js_1.ComputeBudgetProgram.setComputeUnitPrice({
132
- microLamports: options.microLamports
133
- })
134
- ]);
144
+ ixs.push(web3_js_1.ComputeBudgetProgram.setComputeUnitPrice({
145
+ microLamports: options.microLamports
146
+ }));
135
147
  }
136
- return method.rpc({ skipPreflight: options === null || options === void 0 ? void 0 : options.skipPreflight });
148
+ const { blockhash } = yield this.provider.connection.getLatestBlockhash();
149
+ return this.provider.sendAndConfirm(new web3_js_1.VersionedTransaction(new web3_js_1.TransactionMessage({
150
+ instructions: ixs,
151
+ recentBlockhash: blockhash,
152
+ payerKey: this.provider.publicKey
153
+ }).compileToV0Message()), [], {
154
+ skipPreflight: options === null || options === void 0 ? void 0 : options.skipPreflight,
155
+ commitment: 'confirmed'
156
+ });
137
157
  });
138
158
  }
139
159
  }
@@ -164,6 +164,38 @@
164
164
  }
165
165
  ]
166
166
  },
167
+ {
168
+ "name": "create_user_trade",
169
+ "discriminator": [232, 235, 58, 194, 135, 248, 153, 1],
170
+ "accounts": [
171
+ {
172
+ "name": "signer",
173
+ "writable": true,
174
+ "signer": true
175
+ },
176
+ {
177
+ "name": "user_trade",
178
+ "writable": true,
179
+ "pda": {
180
+ "seeds": [
181
+ {
182
+ "kind": "const",
183
+ "value": [117, 115, 101, 114, 95, 116, 114, 97, 100, 101]
184
+ },
185
+ {
186
+ "kind": "account",
187
+ "path": "signer"
188
+ }
189
+ ]
190
+ }
191
+ },
192
+ {
193
+ "name": "system_program",
194
+ "address": "11111111111111111111111111111111"
195
+ }
196
+ ],
197
+ "args": []
198
+ },
167
199
  {
168
200
  "name": "initialize_market",
169
201
  "discriminator": [35, 35, 189, 193, 155, 48, 170, 203],
@@ -1681,10 +1713,10 @@
1681
1713
  "type": "u64"
1682
1714
  },
1683
1715
  {
1684
- "name": "order_type",
1716
+ "name": "direction",
1685
1717
  "type": {
1686
1718
  "defined": {
1687
- "name": "OrderType"
1719
+ "name": "OrderDirection"
1688
1720
  }
1689
1721
  }
1690
1722
  },
@@ -228,6 +228,38 @@ export type TriadProtocol = {
228
228
  }
229
229
  ];
230
230
  },
231
+ {
232
+ name: 'createUserTrade';
233
+ discriminator: [232, 235, 58, 194, 135, 248, 153, 1];
234
+ accounts: [
235
+ {
236
+ name: 'signer';
237
+ writable: true;
238
+ signer: true;
239
+ },
240
+ {
241
+ name: 'userTrade';
242
+ writable: true;
243
+ pda: {
244
+ seeds: [
245
+ {
246
+ kind: 'const';
247
+ value: [117, 115, 101, 114, 95, 116, 114, 97, 100, 101];
248
+ },
249
+ {
250
+ kind: 'account';
251
+ path: 'signer';
252
+ }
253
+ ];
254
+ };
255
+ },
256
+ {
257
+ name: 'systemProgram';
258
+ address: '11111111111111111111111111111111';
259
+ }
260
+ ];
261
+ args: [];
262
+ },
231
263
  {
232
264
  name: 'initializeMarket';
233
265
  discriminator: [35, 35, 189, 193, 155, 48, 170, 203];
@@ -2122,10 +2154,10 @@ export type TriadProtocol = {
2122
2154
  type: 'u64';
2123
2155
  },
2124
2156
  {
2125
- name: 'orderType';
2157
+ name: 'direction';
2126
2158
  type: {
2127
2159
  defined: {
2128
- name: 'orderType';
2160
+ name: 'orderDirection';
2129
2161
  };
2130
2162
  };
2131
2163
  },
@@ -6,6 +6,7 @@ export declare const encodeString: (value: string, alloc?: number) => number[];
6
6
  export declare const decodeString: (bytes: number[]) => string;
7
7
  export declare const getMarketAddressSync: (programId: PublicKey, marketId: number) => PublicKey;
8
8
  export declare const getFeeVaultAddressSync: (programId: PublicKey, market: PublicKey) => PublicKey;
9
+ export declare const getUserTradeAddressSync: (programId: PublicKey, wallet: PublicKey) => PublicKey;
9
10
  export declare const getStakeVaultAddressSync: (programId: PublicKey, vaultName: string) => PublicKey;
10
11
  export declare const getStakeAddressSync: (programId: PublicKey, wallet: PublicKey, name: string) => PublicKey;
11
12
  export declare const getNFTRewardsAddressSync: (programId: PublicKey, stake: PublicKey) => PublicKey;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.calculateAPR = exports.calculateTotalMultiplier = exports.formatUser = exports.formatStake = exports.formatStakeVault = exports.formatNumber = exports.getUserAddressSync = exports.getATASync = exports.getNFTRewardsAddressSync = exports.getStakeAddressSync = exports.getStakeVaultAddressSync = exports.getFeeVaultAddressSync = exports.getMarketAddressSync = exports.decodeString = exports.encodeString = exports.getTickerAddressSync = void 0;
6
+ exports.calculateAPR = exports.calculateTotalMultiplier = exports.formatUser = exports.formatStake = exports.formatStakeVault = exports.formatNumber = exports.getUserAddressSync = exports.getATASync = exports.getNFTRewardsAddressSync = exports.getStakeAddressSync = exports.getStakeVaultAddressSync = exports.getUserTradeAddressSync = exports.getFeeVaultAddressSync = exports.getMarketAddressSync = exports.decodeString = exports.encodeString = exports.getTickerAddressSync = void 0;
7
7
  const stake_1 = require("./../types/stake");
8
8
  const web3_js_1 = require("@solana/web3.js");
9
9
  const bn_js_1 = __importDefault(require("bn.js"));
@@ -35,6 +35,11 @@ const getFeeVaultAddressSync = (programId, market) => {
35
35
  return FeeVaultPDA;
36
36
  };
37
37
  exports.getFeeVaultAddressSync = getFeeVaultAddressSync;
38
+ const getUserTradeAddressSync = (programId, wallet) => {
39
+ const [UserTradePDA] = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('user_trade'), wallet.toBuffer()], programId);
40
+ return UserTradePDA;
41
+ };
42
+ exports.getUserTradeAddressSync = getUserTradeAddressSync;
38
43
  const getStakeVaultAddressSync = (programId, vaultName) => {
39
44
  const [StakeVaultPDA] = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('stake_vault'), Buffer.from(vaultName)], programId);
40
45
  return StakeVaultPDA;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@triadxyz/triad-protocol",
3
- "version": "0.5.7-beta.devnet",
3
+ "version": "0.5.9-beta.devnet",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",