@triadxyz/triad-protocol 0.5.8-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],
@@ -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];
@@ -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.8-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",