@triadxyz/triad-protocol 0.5.2-beta.devnet → 0.5.4-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/index.d.ts CHANGED
@@ -1,15 +1,13 @@
1
1
  import { AnchorProvider, Program, Wallet } from '@coral-xyz/anchor';
2
2
  import { Connection, PublicKey } from '@solana/web3.js';
3
3
  import { TriadProtocol } from './types/triad_protocol';
4
- import Ticker from './ticker';
5
- import Vault from './vault';
4
+ import Trade from './trade';
6
5
  import Stake from './stake';
7
6
  import { CreateUserArgs, RpcOptions } from './types';
8
7
  export default class TriadProtocolClient {
9
8
  program: Program<TriadProtocol>;
10
9
  provider: AnchorProvider;
11
- ticker: Ticker;
12
- vault: Vault;
10
+ trade: Trade;
13
11
  stake: Stake;
14
12
  constructor(connection: Connection, wallet: Wallet);
15
13
  /**
@@ -31,7 +29,7 @@ export default class TriadProtocolClient {
31
29
  * Get Refferal
32
30
  * @param name - User name
33
31
  */
34
- getRefferal: (name: string) => Promise<PublicKey | "">;
32
+ getReferral: (name: string) => Promise<string>;
35
33
  /**
36
34
  * Create User
37
35
  * @param wallet - User wallet
package/dist/index.js CHANGED
@@ -15,8 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const anchor_1 = require("@coral-xyz/anchor");
16
16
  const web3_js_1 = require("@solana/web3.js");
17
17
  const idl_triad_protocol_json_1 = __importDefault(require("./types/idl_triad_protocol.json"));
18
- const ticker_1 = __importDefault(require("./ticker"));
19
- const vault_1 = __importDefault(require("./vault"));
18
+ const trade_1 = __importDefault(require("./trade"));
20
19
  const helpers_1 = require("./utils/helpers");
21
20
  const stake_1 = __importDefault(require("./stake"));
22
21
  class TriadProtocolClient {
@@ -57,13 +56,23 @@ class TriadProtocolClient {
57
56
  * Get Refferal
58
57
  * @param name - User name
59
58
  */
60
- this.getRefferal = (name) => __awaiter(this, void 0, void 0, function* () {
59
+ this.getReferral = (name) => __awaiter(this, void 0, void 0, function* () {
61
60
  try {
62
- const response = yield this.program.account.user.all();
63
- const data = response.find((item) => item.account.name === name);
64
- return data.publicKey;
61
+ const users = yield this.program.account.user.all([
62
+ {
63
+ memcmp: {
64
+ offset: 8,
65
+ bytes: Buffer.from(name).toString('base64')
66
+ }
67
+ }
68
+ ]);
69
+ if (users.length > 0) {
70
+ return users[0].publicKey.toString();
71
+ }
72
+ return '';
65
73
  }
66
- catch (_b) {
74
+ catch (error) {
75
+ console.error('Error fetching referral:', error);
67
76
  return '';
68
77
  }
69
78
  });
@@ -95,8 +104,7 @@ class TriadProtocolClient {
95
104
  };
96
105
  this.provider = new anchor_1.AnchorProvider(connection, wallet, anchor_1.AnchorProvider.defaultOptions());
97
106
  this.program = new anchor_1.Program(idl_triad_protocol_json_1.default, this.provider);
98
- this.ticker = new ticker_1.default(this.program, this.provider);
99
- this.vault = new vault_1.default(this.program, this.provider);
107
+ this.trade = new trade_1.default(this.program, this.provider);
100
108
  this.stake = new stake_1.default(this.program, this.provider);
101
109
  }
102
110
  }
@@ -27,8 +27,8 @@ const triadProtocol = new index_1.default(connection, wallet);
27
27
  const depositStakeRewards = () => __awaiter(void 0, void 0, void 0, function* () {
28
28
  const response = yield triadProtocol.stake.depositStakeRewards({
29
29
  wallet: wallet.publicKey,
30
- mint: new web3_js_1.PublicKey(constants_1.TTRIAD_MINT),
31
- amount: new anchor_1.BN(192388 * Math.pow(10, 6))
30
+ mint: constants_1.TRD_MINT,
31
+ amount: new anchor_1.BN(0 * Math.pow(10, 6))
32
32
  });
33
33
  console.log(response);
34
34
  });
package/dist/stake.d.ts CHANGED
@@ -17,23 +17,25 @@ export default class Stake {
17
17
  * Get Stake Rewards
18
18
  */
19
19
  getStakeRewards({ wallet, nftName, collections, rank }: ClaimStakeRewardsArgs): Promise<number>;
20
+ /**
21
+ * Get all Stakes
22
+ */
20
23
  getStakes(): Promise<StakeResponse[]>;
21
24
  /**
22
- * Get Stake by wallet
25
+ * Get User Stakes
26
+ */
27
+ getUserStakes(wallet: PublicKey): Promise<StakeResponse[]>;
28
+ /**
29
+ * Get Stake By Wallet
23
30
  * @param wallet - User wallet
24
31
  * @param collections - NFT collections
25
- *
32
+ * @param tensor rank
26
33
  */
27
34
  getStakeByWallet(wallet: PublicKey, collections: number, ranks: {
28
35
  onchainId: string;
29
36
  name: string;
30
37
  rarityRankHrtt: number;
31
38
  }[]): Promise<StakeResponse[]>;
32
- /**
33
- * Get Stakes by day
34
- * @param day - Day timestamp
35
- */
36
- getStakesByDay(day: number): Promise<StakeResponse[]>;
37
39
  /**
38
40
  * Stake NFT
39
41
  * @param mint - NFT mint
@@ -42,11 +44,10 @@ export default class Stake {
42
44
  */
43
45
  stakeNft({ wallet, items }: StakeNftArgs, options?: RpcOptions): Promise<string>;
44
46
  /**
45
- * Stake NFT
47
+ * Stake Token
48
+ * @param name - Index
46
49
  * @param wallet - User wallet
47
- * @param mint - NFT mint
48
- * @param collections - NFT collections
49
- * @param rarity - NFT rarity
50
+ * @param amount - Amount to stake
50
51
  *
51
52
  */
52
53
  stakeToken({ name, wallet, amount }: StakeTokenArgs, options?: RpcOptions): Promise<string>;
@@ -82,9 +83,9 @@ export default class Stake {
82
83
  */
83
84
  claimStakeRewards({ wallet, nftName, collections, rank }: ClaimStakeRewardsArgs, options?: RpcOptions): Promise<import("@solana/web3.js").Transaction>;
84
85
  /**
85
- * Update Stake Boost
86
+ * Update Boost
86
87
  * @param wallet - User wallet
87
- * @param nftName - Name of the nft
88
+ * @param nfts - Name of the nfts
88
89
  *
89
90
  */
90
91
  updateBoost({ wallet, nfts }: UpdateBoostArgs, options?: RpcOptions): Promise<string>;
package/dist/stake.js CHANGED
@@ -35,11 +35,8 @@ class Stake {
35
35
  */
36
36
  getStakeRewards({ wallet, nftName, collections, rank }) {
37
37
  return __awaiter(this, void 0, void 0, function* () {
38
- const StakeVault = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, this.stakeVaultName);
39
- const mint = new web3_js_1.PublicKey(constants_1.TTRIAD_MINT);
40
- const Stake = (0, helpers_1.getStakeAddressSync)(this.program.programId, wallet, nftName);
41
- const FromAta = (0, helpers_1.getATASync)(StakeVault, mint);
42
- const ToAta = (0, helpers_1.getATASync)(wallet, mint);
38
+ const stakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, this.stakeVaultName);
39
+ const stakePDA = (0, helpers_1.getStakeAddressSync)(this.program.programId, wallet, nftName);
43
40
  const method = yield this.program.methods
44
41
  .claimStakeRewards({
45
42
  collections,
@@ -47,40 +44,55 @@ class Stake {
47
44
  })
48
45
  .accounts({
49
46
  signer: wallet,
50
- fromAta: FromAta,
51
- mint: mint,
52
- toAta: ToAta,
53
- stake: Stake,
54
- stakeVault: StakeVault,
55
- verifier: new web3_js_1.PublicKey(constants_1.VERIFIER)
47
+ mint: constants_1.TRD_MINT,
48
+ stake: stakePDA,
49
+ stakeVault: stakeVaultPDA,
50
+ verifier: constants_1.VERIFIER
56
51
  })
57
52
  .simulate();
58
53
  let value = method.raw[method.raw.length - 2].split(' ')[3];
59
- return new anchor_1.BN((0, base64_js_1.toByteArray)(value), 'le').toNumber() / Math.pow(10, constants_1.TTRIAD_DECIMALS);
54
+ return new anchor_1.BN((0, base64_js_1.toByteArray)(value), 'le').toNumber() / Math.pow(10, constants_1.TRD_DECIMALS);
60
55
  });
61
56
  }
57
+ /**
58
+ * Get all Stakes
59
+ */
62
60
  getStakes() {
63
61
  return __awaiter(this, void 0, void 0, function* () {
64
62
  const response = yield this.program.account.stakeV2.all();
65
- const StakeVault = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, this.stakeVaultName);
66
- return response
67
- .filter((item) => item.account.stakeVault.toBase58() === StakeVault.toBase58())
68
- .map((stake) => (0, helpers_1.formatStake)(stake.account));
63
+ return response.map((stake) => (0, helpers_1.formatStake)(stake.account));
69
64
  });
70
65
  }
71
66
  /**
72
- * Get Stake by wallet
67
+ * Get User Stakes
68
+ */
69
+ getUserStakes(wallet) {
70
+ return __awaiter(this, void 0, void 0, function* () {
71
+ const response = yield this.program.account.stakeV2.all([
72
+ {
73
+ memcmp: {
74
+ offset: 8 + 1,
75
+ bytes: wallet.toBase58()
76
+ }
77
+ }
78
+ ]);
79
+ return response.map((stake) => (0, helpers_1.formatStake)(stake.account));
80
+ });
81
+ }
82
+ /**
83
+ * Get Stake By Wallet
73
84
  * @param wallet - User wallet
74
85
  * @param collections - NFT collections
75
- *
86
+ * @param tensor rank
76
87
  */
77
88
  getStakeByWallet(wallet, collections, ranks) {
78
89
  return __awaiter(this, void 0, void 0, function* () {
79
- const response = (yield this.getStakes()).filter((item) => item.authority === wallet.toBase58());
90
+ const response = yield this.getUserStakes(wallet);
80
91
  const data = [];
81
92
  for (const stake of response) {
82
93
  const getRank = (0, getRarity_1.getRarityRank)(ranks, stake.mint, stake.name);
83
94
  let available = 0;
95
+ yield new Promise((resolve) => setTimeout(resolve, 1000));
84
96
  try {
85
97
  available = yield this.getStakeRewards({
86
98
  wallet,
@@ -90,31 +102,11 @@ class Stake {
90
102
  });
91
103
  }
92
104
  catch (_a) { }
93
- yield new Promise((resolve) => setTimeout(resolve, 500));
94
105
  data.push(Object.assign(Object.assign({}, stake), { available }));
95
106
  }
96
107
  return data;
97
108
  });
98
109
  }
99
- /**
100
- * Get Stakes by day
101
- * @param day - Day timestamp
102
- */
103
- getStakesByDay(day) {
104
- return __awaiter(this, void 0, void 0, function* () {
105
- const stakes = yield this.getStakes();
106
- const rewards = [];
107
- stakes.forEach((stake) => {
108
- const date = stake.initTs * 1000;
109
- const stakeDay = day * 1000;
110
- const currentDate = new Date().getTime();
111
- if (date <= stakeDay && stakeDay <= currentDate) {
112
- rewards.push(stake);
113
- }
114
- });
115
- return rewards;
116
- });
117
- }
118
110
  /**
119
111
  * Stake NFT
120
112
  * @param mint - NFT mint
@@ -124,11 +116,8 @@ class Stake {
124
116
  stakeNft({ wallet, items }, options) {
125
117
  return __awaiter(this, void 0, void 0, function* () {
126
118
  let ixs = [];
127
- const stakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, this.stakeVaultName);
128
119
  for (let i = 0; i < items.length; i++) {
129
120
  let item = items[i];
130
- const FromAta = (0, helpers_1.getATASync)(wallet, item.mint);
131
- const toAta = (0, helpers_1.getATASync)(stakeVaultPDA, item.mint);
132
121
  ixs.push(yield this.program.methods
133
122
  .stakeNft({
134
123
  name: item.name,
@@ -136,9 +125,7 @@ class Stake {
136
125
  })
137
126
  .accounts({
138
127
  signer: wallet,
139
- fromAta: FromAta,
140
- mint: item.mint,
141
- toAta: toAta
128
+ mint: item.mint
142
129
  })
143
130
  .instruction());
144
131
  }
@@ -161,20 +148,15 @@ class Stake {
161
148
  });
162
149
  }
163
150
  /**
164
- * Stake NFT
151
+ * Stake Token
152
+ * @param name - Index
165
153
  * @param wallet - User wallet
166
- * @param mint - NFT mint
167
- * @param collections - NFT collections
168
- * @param rarity - NFT rarity
154
+ * @param amount - Amount to stake
169
155
  *
170
156
  */
171
157
  stakeToken({ name, wallet, amount }, options) {
172
158
  return __awaiter(this, void 0, void 0, function* () {
173
- const stakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, this.stakeVaultName);
174
- const ttriad = new web3_js_1.PublicKey(constants_1.TTRIAD_MINT);
175
- const FromAta = (0, helpers_1.getATASync)(wallet, ttriad);
176
159
  const userPDA = (0, helpers_1.getUserAddressSync)(this.program.programId, wallet);
177
- const toAta = (0, helpers_1.getATASync)(stakeVaultPDA, ttriad);
178
160
  const method = this.program.methods
179
161
  .stakeToken({
180
162
  name,
@@ -183,10 +165,8 @@ class Stake {
183
165
  })
184
166
  .accounts({
185
167
  signer: wallet,
186
- fromAta: FromAta,
187
- mint: ttriad,
188
- user: userPDA,
189
- toAta: toAta
168
+ mint: constants_1.TRD_MINT,
169
+ user: userPDA
190
170
  });
191
171
  if (options === null || options === void 0 ? void 0 : options.microLamports) {
192
172
  method.postInstructions([
@@ -207,9 +187,6 @@ class Stake {
207
187
  */
208
188
  depositStakeRewards({ wallet, mint, amount }, options) {
209
189
  return __awaiter(this, void 0, void 0, function* () {
210
- const StakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, this.stakeVaultName);
211
- const FromAta = (0, helpers_1.getATASync)(wallet, mint);
212
- const ToAta = (0, helpers_1.getATASync)(StakeVaultPDA, mint);
213
190
  const method = this.program.methods
214
191
  .depositStakeRewards({
215
192
  amount,
@@ -217,9 +194,7 @@ class Stake {
217
194
  })
218
195
  .accounts({
219
196
  signer: wallet,
220
- fromAta: FromAta,
221
- mint: mint,
222
- toAta: ToAta
197
+ mint: mint
223
198
  });
224
199
  if (options === null || options === void 0 ? void 0 : options.microLamports) {
225
200
  method.postInstructions([
@@ -241,11 +216,11 @@ class Stake {
241
216
  return __awaiter(this, void 0, void 0, function* () {
242
217
  const stakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, this.stakeVaultName);
243
218
  const stakePDA = (0, helpers_1.getStakeAddressSync)(this.program.programId, wallet, name);
244
- const userPAD = (0, helpers_1.getUserAddressSync)(this.program.programId, wallet);
219
+ const userPDA = (0, helpers_1.getUserAddressSync)(this.program.programId, wallet);
245
220
  const method = this.program.methods.requestWithdrawStake().accounts({
246
221
  signer: wallet,
247
222
  mint: mint,
248
- user: userPAD,
223
+ user: userPDA,
249
224
  stake: stakePDA,
250
225
  stakeVault: stakeVaultPDA
251
226
  });
@@ -270,17 +245,13 @@ class Stake {
270
245
  return __awaiter(this, void 0, void 0, function* () {
271
246
  const stakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, this.stakeVaultName);
272
247
  const userPDA = (0, helpers_1.getUserAddressSync)(this.program.programId, wallet);
273
- const FromAta = (0, helpers_1.getATASync)(stakeVaultPDA, mint);
274
248
  const stakePDA = (0, helpers_1.getStakeAddressSync)(this.program.programId, wallet, name);
275
- const ToAta = (0, helpers_1.getATASync)(wallet, mint);
276
249
  const method = this.program.methods.withdrawStake().accounts({
277
250
  signer: wallet,
278
- fromAta: FromAta,
279
251
  stake: stakePDA,
280
252
  stakeVault: stakeVaultPDA,
281
- admin: new web3_js_1.PublicKey('82ppCojm3yrEKgdpH8B5AmBJTU1r1uAWXFWhxvPs9UCR'),
253
+ admin: constants_1.TRIAD_ADMIN,
282
254
  mint: mint,
283
- toAta: ToAta,
284
255
  user: userPDA
285
256
  });
286
257
  if (options === null || options === void 0 ? void 0 : options.microLamports) {
@@ -302,11 +273,8 @@ class Stake {
302
273
  */
303
274
  claimStakeRewards({ wallet, nftName, collections, rank }, options) {
304
275
  return __awaiter(this, void 0, void 0, function* () {
305
- const StakeVault = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, this.stakeVaultName);
306
- const mint = new web3_js_1.PublicKey(constants_1.TTRIAD_MINT);
307
- const Stake = (0, helpers_1.getStakeAddressSync)(this.program.programId, wallet, nftName);
308
- const FromAta = (0, helpers_1.getATASync)(StakeVault, mint);
309
- const ToAta = (0, helpers_1.getATASync)(wallet, mint);
276
+ const stakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, this.stakeVaultName);
277
+ const stakePDA = (0, helpers_1.getStakeAddressSync)(this.program.programId, wallet, nftName);
310
278
  const method = this.program.methods
311
279
  .claimStakeRewards({
312
280
  collections,
@@ -314,12 +282,10 @@ class Stake {
314
282
  })
315
283
  .accounts({
316
284
  signer: wallet,
317
- fromAta: FromAta,
318
- mint: mint,
319
- toAta: ToAta,
320
- stake: Stake,
321
- stakeVault: StakeVault,
322
- verifier: new web3_js_1.PublicKey(constants_1.VERIFIER)
285
+ mint: constants_1.TRD_MINT,
286
+ stake: stakePDA,
287
+ stakeVault: stakeVaultPDA,
288
+ verifier: constants_1.VERIFIER
323
289
  });
324
290
  if (options === null || options === void 0 ? void 0 : options.microLamports) {
325
291
  method.postInstructions([
@@ -332,9 +298,9 @@ class Stake {
332
298
  });
333
299
  }
334
300
  /**
335
- * Update Stake Boost
301
+ * Update Boost
336
302
  * @param wallet - User wallet
337
- * @param nftName - Name of the nft
303
+ * @param nfts - Name of the nfts
338
304
  *
339
305
  */
340
306
  updateBoost({ wallet, nfts }, options) {
@@ -356,13 +322,11 @@ class Stake {
356
322
  }));
357
323
  }
358
324
  const { blockhash } = yield this.provider.connection.getLatestBlockhash();
359
- const messageV0 = new web3_js_1.TransactionMessage({
325
+ return this.provider.sendAndConfirm(new web3_js_1.VersionedTransaction(new web3_js_1.TransactionMessage({
360
326
  instructions: ixs,
361
327
  recentBlockhash: blockhash,
362
328
  payerKey: wallet
363
- }).compileToV0Message();
364
- const tx = new web3_js_1.VersionedTransaction(messageV0);
365
- return this.provider.sendAndConfirm(tx, [], {
329
+ }).compileToV0Message()), [], {
366
330
  skipPreflight: options === null || options === void 0 ? void 0 : options.skipPreflight,
367
331
  commitment: 'confirmed'
368
332
  });
@@ -0,0 +1,17 @@
1
+ import { AnchorProvider, Program } from '@coral-xyz/anchor';
2
+ import { TriadProtocol } from './types/triad_protocol';
3
+ import { Market } from './types/trade';
4
+ import { PublicKey } from '@solana/web3.js';
5
+ export default class Trade {
6
+ program: Program<TriadProtocol>;
7
+ provider: AnchorProvider;
8
+ constructor(program: Program<TriadProtocol>, provider: AnchorProvider);
9
+ /**
10
+ * Get all Markets
11
+ */
12
+ getMarkets(): Promise<Market[]>;
13
+ /**
14
+ * Get Market By Address
15
+ */
16
+ getMarketByAddress(address: PublicKey): Promise<Market>;
17
+ }
package/dist/trade.js ADDED
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ class Trade {
13
+ constructor(program, provider) {
14
+ this.provider = provider;
15
+ this.program = program;
16
+ }
17
+ /**
18
+ * Get all Markets
19
+ */
20
+ getMarkets() {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ return this.program.account.market.all().then((markets) => markets.map(({ account }) => ({
23
+ bump: account.bump,
24
+ authority: account.authority.toString(),
25
+ marketId: account.marketId.toNumber(),
26
+ name: account.name,
27
+ hypePrice: account.hypePrice.toNumber(),
28
+ flopPrice: account.flopPrice.toNumber(),
29
+ hypeLiquidity: account.hypeLiquidity.toNumber(),
30
+ flopLiquidity: account.flopLiquidity.toNumber(),
31
+ totalHypeShares: account.totalHypeShares.toNumber(),
32
+ totalFlopShares: account.totalFlopShares.toNumber(),
33
+ totalVolume: account.totalVolume.toNumber(),
34
+ vaultTokenAccount: account.vaultTokenAccount.toString(),
35
+ mint: account.mint.toString(),
36
+ lastUpdateTs: account.lastUpdateTs.toNumber(),
37
+ openOrdersCount: account.openOrdersCount.toNumber(),
38
+ nextOrderId: account.nextOrderId.toNumber(),
39
+ feeBps: account.feeBps,
40
+ feeVault: account.feeVault.toBase58(),
41
+ isActive: account.isActive,
42
+ isOfficial: account.isOfficial
43
+ })));
44
+ });
45
+ }
46
+ /**
47
+ * Get Market By Address
48
+ */
49
+ getMarketByAddress(address) {
50
+ return __awaiter(this, void 0, void 0, function* () {
51
+ const account = yield this.program.account.market.fetch(address);
52
+ return {
53
+ bump: account.bump,
54
+ authority: account.authority.toString(),
55
+ marketId: account.marketId.toNumber(),
56
+ name: account.name,
57
+ hypePrice: account.hypePrice.toNumber(),
58
+ flopPrice: account.flopPrice.toNumber(),
59
+ hypeLiquidity: account.hypeLiquidity.toNumber(),
60
+ flopLiquidity: account.flopLiquidity.toNumber(),
61
+ totalHypeShares: account.totalHypeShares.toNumber(),
62
+ totalFlopShares: account.totalFlopShares.toNumber(),
63
+ totalVolume: account.totalVolume.toNumber(),
64
+ vaultTokenAccount: account.vaultTokenAccount.toString(),
65
+ mint: account.mint.toString(),
66
+ lastUpdateTs: account.lastUpdateTs.toNumber(),
67
+ openOrdersCount: account.openOrdersCount.toNumber(),
68
+ nextOrderId: account.nextOrderId.toNumber(),
69
+ feeBps: account.feeBps,
70
+ feeVault: account.feeVault.toBase58(),
71
+ isActive: account.isActive,
72
+ isOfficial: account.isOfficial
73
+ };
74
+ });
75
+ }
76
+ }
77
+ exports.default = Trade;