apenft-js-tron 1.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.
Files changed (55) hide show
  1. package/README.md +1141 -0
  2. package/babel.config.js +4 -0
  3. package/dist/bundle.js +2 -0
  4. package/dist/bundle.js.LICENSE.txt +28 -0
  5. package/dist/index.d.ts +9 -0
  6. package/dist/src/config.d.ts +57 -0
  7. package/dist/src/queryAPI/graphql/accountApi.d.ts +11 -0
  8. package/dist/src/queryAPI/graphql/assetApi.d.ts +13 -0
  9. package/dist/src/queryAPI/graphql/base.d.ts +37 -0
  10. package/dist/src/queryAPI/graphql/collectionApi.d.ts +10 -0
  11. package/dist/src/queryAPI/graphql/gql/account.d.ts +6 -0
  12. package/dist/src/queryAPI/graphql/gql/asset.d.ts +8 -0
  13. package/dist/src/queryAPI/graphql/gql/collection.d.ts +5 -0
  14. package/dist/src/queryAPI/graphql/gql/fragments.d.ts +8 -0
  15. package/dist/src/queryAPI/graphql/index.d.ts +9 -0
  16. package/dist/src/queryAPI/index.d.ts +45 -0
  17. package/dist/src/queryAPI/restful/base.d.ts +50 -0
  18. package/dist/src/queryAPI/restful/index.d.ts +1 -0
  19. package/dist/src/queryAPI/restful/queryAPI.d.ts +26 -0
  20. package/dist/src/schemas/common/ERC1155/index.d.ts +7 -0
  21. package/dist/src/schemas/common/ERC20/index.d.ts +6 -0
  22. package/dist/src/schemas/common/ERC721/index.d.ts +5 -0
  23. package/dist/src/schemas/common/Element/exchange.d.ts +9 -0
  24. package/dist/src/schemas/common/Element/registry.d.ts +4 -0
  25. package/dist/src/schemas/common/ens.d.ts +7 -0
  26. package/dist/src/schemas/index.d.ts +18 -0
  27. package/dist/src/schemas/schemasFunctions.d.ts +24 -0
  28. package/dist/src/schemas/shasta/index.d.ts +1 -0
  29. package/dist/src/schemas/tron/index.d.ts +1 -0
  30. package/dist/src/tokens/index.d.ts +4 -0
  31. package/dist/src/tokens/shasta/index.d.ts +1 -0
  32. package/dist/src/tokens/tron/index.d.ts +1 -0
  33. package/dist/src/tradeAPI/account.d.ts +33 -0
  34. package/dist/src/tradeAPI/approve.d.ts +3 -0
  35. package/dist/src/tradeAPI/base.d.ts +40 -0
  36. package/dist/src/tradeAPI/contractSchemas.d.ts +28 -0
  37. package/dist/src/tradeAPI/contracts.d.ts +29 -0
  38. package/dist/src/tradeAPI/index.d.ts +25 -0
  39. package/dist/src/tradeAPI/nft.d.ts +42 -0
  40. package/dist/src/tradeAPI/orders.d.ts +69 -0
  41. package/dist/src/tradeAPI/ordersApi.d.ts +54 -0
  42. package/dist/src/utils/Abi.d.ts +18 -0
  43. package/dist/src/utils/PromiEvent.d.ts +21 -0
  44. package/dist/src/utils/check.d.ts +25 -0
  45. package/dist/src/utils/constants.d.ts +22 -0
  46. package/dist/src/utils/error.d.ts +20 -0
  47. package/dist/src/utils/fees.d.ts +40 -0
  48. package/dist/src/utils/helper.d.ts +23 -0
  49. package/dist/src/utils/makeOrder.d.ts +80 -0
  50. package/dist/src/utils/types.d.ts +464 -0
  51. package/dist/src/utils/utils.d.ts +1 -0
  52. package/index.ts +15 -0
  53. package/package.json +58 -0
  54. package/tsconfig.json +18 -0
  55. package/webpack.config.js +33 -0
package/README.md ADDED
@@ -0,0 +1,1141 @@
1
+ # APENFT SDK
2
+
3
+ ## What is apenft-js-tron?
4
+ "apenft-js-tron" is a SDK for APENFT marketplace base on TRON blockchain and TronLink wallet.
5
+
6
+ ## Table of Contents
7
+
8
+ - [APENFT SDK](#apenft-sdk)
9
+ - [What is apenft-js-tron?](#what-is-apenft-js-tron)
10
+ - [Table of Contents](#table-of-contents)
11
+ - [Installation](#installation)
12
+ - [Testnet](#testnet)
13
+ - [Set Up](#set-up)
14
+ - [Initialize SDK](#initialize-sdk)
15
+ - [Asset](#asset)
16
+ - [Create a Smart Contract](#create-a-smart-contract)
17
+ - [Mint an NFT](#mint-an-nft)
18
+ - [Query Assets](#query-assets)
19
+ - [Query Assets Under an Account](#query-assets-under-an-account)
20
+ - [Query Collections Under an Account](#query-collections-under-an-account)
21
+ - [Query NFT details](#query-nft-details)
22
+ - [Order](#order)
23
+ - [Create an Order](#create-an-order)
24
+ - [Fixed Price](#fixed-price)
25
+ - [Highest Bid](#highest-bid)
26
+ - [Buy Order](#buy-order)
27
+ - [Auction Order](#auction-order)
28
+ - [Lower Price](#lower-price)
29
+ - [Accept an Order](#accept-an-order)
30
+ - [Accept and Buy](#accept-and-buy)
31
+ - [Accept an Offer](#accept-an-offer)
32
+ - [Cancel an Order](#cancel-an-order)
33
+ - [Cancel a Listing](#cancel-a-listing)
34
+ - [Cancel an Offer](#cancel-an-offer)
35
+ - [Transfer Assets](#transfer-assets)
36
+ - [Query Orders](#query-orders)
37
+ - [Query the Listed Prices of an NFT](#query-the-listed-prices-of-an-nft)
38
+ - [Query the Offer List of an NFT](#query-the-offer-list-of-an-nft)
39
+ - [Query the Trading History of an NFT](#query-the-trading-history-of-an-nft)
40
+ - [Query Offers Received](#query-offers-received)
41
+ - [Query Offers Sent](#query-offers-sent)
42
+ - [Collection](#collection)
43
+ - [Query Collections](#query-collections)
44
+ - [Query the NFT List Under a Collection](#query-the-nft-list-under-a-collection)
45
+ - [Query a Single Collection](#query-a-single-collection)
46
+ - [License](#license)
47
+
48
+ ## Installation
49
+ ```
50
+ npm install apenft-js-tron
51
+ ```
52
+ SDK relies on TronLink wallet for on-chain operations. You also need to install tronweb to run SDK on node.js.
53
+ We recommend switching to Node.js version 16 and above.
54
+ ```
55
+ npm install tronweb
56
+ ```
57
+ [TronWeb](https://github.com/tronprotocol/tronweb) is a library that allows you to interact with TronNetwork.
58
+
59
+ ## Testnet
60
+
61
+ Shasta is the official Tron testnet. To use it use the following endpoint:
62
+ ```
63
+ https://api.shasta.trongrid.io
64
+ ```
65
+ Get some Shasta TRX at https://www.trongrid.io/shasta and play with it. Anything you do should be explorable on https://shasta.tronscan.org
66
+
67
+ ## Set Up
68
+
69
+ ### Initialize SDK
70
+
71
+ ```js
72
+ import sdk from "apenft-js-tron";
73
+ const { APENFTOrders, APENFTQuery, Network, AssetFactory } = sdk;
74
+
75
+ /* Initialize tronWeb */
76
+ /* For browser */
77
+ const { tronWeb } = window;
78
+
79
+ /* For node */
80
+ const tronWeb = new TronWeb({
81
+ fullHost: "https://api.shasta.trongrid.io",
82
+ privateKey: "xxxxx-xxxx-xxxxx-xxxxx-xxxxx",
83
+ });
84
+
85
+ /* Initialize SDK */
86
+ const networkName = Network.Shasta;
87
+ const sdk_orders = new APENFTOrders(tronWeb, { networkName });
88
+
89
+ const sdk_query = new APENFTQuery(tronWeb, { networkName });
90
+ ```
91
+
92
+ ## Asset
93
+ ```js
94
+ /* Get asset factory from sdk_orders */
95
+ const sdk_fab = sdk_orders.assetFactory
96
+
97
+ /* or
98
+ new AssetFactory
99
+ */
100
+ const sdk_fab = new AssetFactory(tronWeb, { networkName })
101
+
102
+ sdk_fab.createAsset721(...); // create smart contract
103
+ sdk_fab.mint721(...); // mint NFT
104
+ ```
105
+
106
+ ### Create a Smart Contract
107
+ ```
108
+ sdk_fab.createAsset721(name,symbol,baseUrl,options)
109
+ ```
110
+
111
+ Instructions:
112
+ ```js
113
+ /**
114
+ * @param {string} name
115
+ * @param {string} symbol
116
+ * @param {string} baseUrl
117
+ * @param {object} [options] - optional,ref https://developers.tron.network/reference/tronweb-createsmartcontract
118
+ * @returns {Promise<{txHash,txSend}>}
119
+ */
120
+ async createAsset721(name: string, symbol: string, baseUrl: string, options?: any)
121
+ ```
122
+ Example:
123
+ ```js
124
+ const sdk_fab = ...
125
+ const createRes = await sdk_fab.createAsset721(
126
+ 'MyNFTSymbol',
127
+ 'MyNFTName',
128
+ '' // metadata json
129
+ )
130
+ const output = await createRes.txSend.catch((err) => console.log(err))
131
+
132
+ const nftContract = output.contract_address
133
+ ```
134
+
135
+ ### Mint an NFT
136
+ ```
137
+ sdk_fab.mint721(nftContract, toAddress,url)
138
+ ```
139
+
140
+ Instructions:
141
+ ```js
142
+ /**
143
+ *
144
+ * @param {string} assetAddr
145
+ * @param {string} to
146
+ * @param {string} [url]
147
+ * @returns Promise
148
+ */
149
+ async mint721(assetAddr, to, url)
150
+ ```
151
+ Example:
152
+ ```js
153
+ const nftContract = ...
154
+ const to = ...
155
+ const url = 'https://gateway.btfs.io/btfs/QmVs42A8YqLffAC75kjQEMxRbzZDdQFKhRiM4agnwNX7u6/BTFS-GenesisNFT-Level-P'
156
+ const defer = await sdk_fab.mint721(nftContract, to, url)
157
+ defer.txSend
158
+ .on('confirmation', (r) => console.log('confirmation', r))
159
+ .on('error', (r) => console.log('error', r))
160
+ await defer.txSend
161
+ ```
162
+
163
+ ### Query Assets
164
+ #### Query Assets Under an Account
165
+ ```
166
+ APENFTQuery.getAssetsList(account,pagination)
167
+ ```
168
+
169
+ Instructions:
170
+ ```js
171
+ /**
172
+ *
173
+ * @param {string} account
174
+ * * @param {object} pagination
175
+ * @returns Promise
176
+ */
177
+ async APENFTQuery.getAssetsList(account,pagination);
178
+ ```
179
+
180
+ Example:
181
+ ```js
182
+ const assetsList = await sdk_query.getAssetsList(
183
+ "TFrBnJPgZEfXtvauVG9XVLaDEDDo5jtMWV",
184
+ {
185
+ first: 100, // min:1 max:100
186
+ cursor: "",
187
+ }
188
+ );
189
+ console.log("assetsList", assetsList);
190
+ ```
191
+
192
+ #### Query Collections Under an Account
193
+ ```
194
+ APENFTQuery.getCollections(account,pagination)
195
+ ```
196
+
197
+ Instructions:
198
+ ```js
199
+ /**
200
+ *
201
+ * @param {string} account
202
+ * @returns Promise
203
+ */
204
+ async APENFTQuery.getCollections(account,pagination);
205
+ ```
206
+
207
+ Example:
208
+ ```js
209
+ const collectionsList = await sdk_query.getCollections(
210
+ "TFrBnJPgZEfXtvauVG9XVLaDEDDo5jtMWV",
211
+ {
212
+ first: 100, // min:1 max:100
213
+ cursor: "",
214
+ }
215
+ );
216
+ console.log("collectionsList", collectionsList);
217
+ ```
218
+
219
+ #### Query NFT details
220
+ ```
221
+ APENFTQuery.getAssetDetail(collection,id)
222
+ ```
223
+
224
+ Instructions:
225
+ ```js
226
+ /**
227
+ *
228
+ * @param {string} collection
229
+ * @param {string} id
230
+ * @returns Promise
231
+ */
232
+ async APENFTQuery.getAssetDetail(collection,id);
233
+ ```
234
+
235
+ Example:
236
+ ```js
237
+ const assetDetail = await sdk_query.getAssetDetail(
238
+ "TQfujfp9LNU4yRYcAiXcLRmjDuVKQ8U3AJ",
239
+ "1327"
240
+ );
241
+ console.log("assetDetail", assetDetail);
242
+ ```
243
+
244
+
245
+ ## Order
246
+ ### Create an Order
247
+ Initialization:
248
+ ```js
249
+ import { APENFTOrders, APENFTQuery, initApprove } from "apenft-js-tron";
250
+
251
+ let sdk_orders = new APENFTOrders(window.tronWeb, { networkName });
252
+ const sdk_query = new APENFTQuery(window.tronWeb, { networkName });
253
+ ```
254
+ - Permission Approval
255
+ NFTs can be traded with the following methods: Fixed Price, Highest Bid, Buy Order, and Auction Order. The wallet address needs to call the approve function when being used for NFT trading for the first time. Every collection needs to be approved only once.
256
+
257
+ Instructions:
258
+ ```js
259
+ /**
260
+ *
261
+ * @param {object} APENFTOrders
262
+ * @param {string} orderType
263
+ * @param {object} orderParams
264
+ * @returns Promise
265
+ */
266
+ async initApprove({ APENFTOrders, orderType, orderParams})
267
+ ```
268
+
269
+ Example:
270
+ ```js
271
+ let orderType = "FixPriceOrder";
272
+ let orderParams = {
273
+ asset: {
274
+ tokenId: "6",
275
+ tokenAddress: "TDJLEEDZ5Zr81NQv9jQjWSNtdS9nJyrLD3",
276
+ schemaName: "ERC721",
277
+ data: "https://gateway.btfs.io/btfs/QmPXgdwcMFdo2URjHHxvqps8Uz3h8Jvc6zMz1hJFFMwxNX",
278
+ collection: {
279
+ transferFeeAddress: "",
280
+ APENFTSellerFeeBasisPoints: 0,
281
+ },
282
+ },
283
+ quantity: 1,
284
+ paymentToken: {
285
+ __typename: "Currency",
286
+ address: "T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb",
287
+ symbol: "TRX",
288
+ decimal: 6,
289
+ icon: "https://images-testnet.apenft.io/icon/currency/icon-trx.svg",
290
+ decimals: 6,
291
+ },
292
+ listingTime: 1669272864,
293
+ expirationTime: 1671864854,
294
+ startAmount: 77,
295
+ buyerAddress: "",
296
+ };
297
+ await initApprove({ APENFTOrders: sdk_orders, orderType, orderParams });
298
+ ```
299
+
300
+ #### Fixed Price
301
+ Obtain input parameters:
302
+ ```
303
+ APENFTQuery.getFixPriceOrderParams(params)
304
+ ```
305
+ Instructions:
306
+ ```js
307
+ /**
308
+ *
309
+ * @param {object} params -
310
+ * {
311
+ * collection: string
312
+ * id: string
313
+ * price: number
314
+ * currency: string
315
+ * expirationTime: number // timestamp, milliseconds
316
+ * buyerAddress?: string // buyer address, optional
317
+ * }
318
+ * @returns Promise
319
+ */
320
+ async APENFTQuery.getFixPriceOrderParams(params);
321
+ ```
322
+
323
+ Example:
324
+ ```js
325
+ const params = {
326
+ collection: "TQXKjXfTiy9j2qfRXNroZdrrAawu65b72Z",
327
+ id: "5",
328
+ price: 20,
329
+ currency: "USDT",
330
+ expirationTime: new Date().getTime() + 7 * 24 * 60 * 60 * 1000,
331
+ buyerAddress: "",
332
+ };
333
+ let orderParams = await sdk_query.getFixPriceOrderParams(params);
334
+ ```
335
+
336
+ ```
337
+ APENFTOrders.createSellOrder(orderParams);
338
+ ```
339
+
340
+ Instructions:
341
+ ```js
342
+ /**
343
+ *
344
+ * @param {object} orderParams
345
+ * @returns Promise
346
+ */
347
+ async APENFTOrders.createSellOrder(orderParams);
348
+ ```
349
+
350
+ Example:
351
+ ```js
352
+ const params = {
353
+ collection: "TQXKjXfTiy9j2qfRXNroZdrrAawu65b72Z",
354
+ id: "5",
355
+ price: 20,
356
+ currency: "USDT",
357
+ expirationTime: new Date().getTime() + 7 * 24 * 60 * 60 * 1000,
358
+ buyerAddress: "",
359
+ };
360
+ let orderParams = await sdk_query.getFixPriceOrderParams(params);
361
+
362
+ await sdk_orders.createSellOrder(orderParams);
363
+ ```
364
+
365
+
366
+ #### Highest Bid
367
+ Obtain input parameters:
368
+ ```
369
+ APENFTQuery.getEnglishAuctionOrderParams(params)
370
+ ```
371
+
372
+ Instructions:
373
+ ```js
374
+ /**
375
+ *
376
+ * @param {object} params -
377
+ * {
378
+ * collection: string
379
+ * id: string
380
+ * bidPrice: number
381
+ * reservePrice: number
382
+ * currency: string
383
+ * expirationTime: number // timestamp, milliseconds
384
+ * }
385
+ * @returns Promise
386
+ */
387
+ async APENFTQuery.getEnglishAuctionOrderParams(params);
388
+ ```
389
+
390
+ Example:
391
+ ```js
392
+ const params = {
393
+ collection: "TQXKjXfTiy9j2qfRXNroZdrrAawu65b72Z",
394
+ id: "5",
395
+ bidPrice: 20,
396
+ reservePrice: 100,
397
+ currency: "USDT",
398
+ expirationTime: new Date().getTime() + 7 * 24 * 60 * 60 * 1000,
399
+ };
400
+ let orderParams = await sdk_query.getEnglishAuctionOrderParams(params);
401
+ ```
402
+
403
+ ```
404
+ APENFTOrders.createAuctionOrder(orderParams);
405
+ ```
406
+ Instructions:
407
+ ```js
408
+ /**
409
+ *
410
+ * @param {object} orderParams
411
+ * @returns Promise
412
+ */
413
+ async APENFTOrders.createAuctionOrder(orderParams);
414
+ ```
415
+
416
+ Example:
417
+ ```js
418
+ const params = {
419
+ collection: "TQXKjXfTiy9j2qfRXNroZdrrAawu65b72Z",
420
+ id: "5",
421
+ bidPrice: 20,
422
+ reservePrice: 100,
423
+ currency: "USDT",
424
+ expirationTime: new Date().getTime() + 7 * 24 * 60 * 60 * 1000,
425
+ };
426
+ let orderParams = await sdk_query.getEnglishAuctionOrderParams(params);
427
+
428
+ await sdk_orders.createAuctionOrder(orderParams);
429
+ ```
430
+
431
+
432
+ #### Buy Order
433
+ Obtain input parameters:
434
+ ```
435
+ APENFTQuery.getMakeOfferOrderOrderParams(params)
436
+ ```
437
+ Instructions:
438
+ ```js
439
+ /**
440
+ *
441
+ * @param {object} params -
442
+ * {
443
+ * collection: string
444
+ * id: string
445
+ * price: number
446
+ * currency: string
447
+ * expirationTime: number // timestamp, milliseconds
448
+ * }
449
+ * @returns Promise
450
+ */
451
+ async APENFTQuery.getMakeOfferOrderOrderParams(params);
452
+ ```
453
+ Example:
454
+ ```js
455
+ const params = {
456
+ collection: "TQFhpAACCPomuW4daSiGTh4SMCvUKtZyNs",
457
+ id: "105",
458
+ price: 110,
459
+ currency: "WTRX",
460
+ expirationTime: new Date().getTime() + 7 * 24 * 60 * 60 * 1000,
461
+ };
462
+ let orderParams = await sdk_query.getMakeOfferOrderOrderParams(params);
463
+ ```
464
+
465
+ ```
466
+ APENFTOrders.createBuyOrder(orderParams)
467
+ ```
468
+ Instructions:
469
+ ```js
470
+ /**
471
+ *
472
+ * @param {object} orderParams
473
+ * @returns Promise
474
+ */
475
+ async APENFTOrders.createBuyOrder(orderParams);
476
+ ```
477
+
478
+ Example:
479
+ ```js
480
+ const params = {
481
+ collection: "TQFhpAACCPomuW4daSiGTh4SMCvUKtZyNs",
482
+ id: "105",
483
+ price: 110,
484
+ currency: "WTRX",
485
+ expirationTime: new Date().getTime() + 7 * 24 * 60 * 60 * 1000,
486
+ };
487
+ let orderParams = await sdk_query.getMakeOfferOrderOrderParams(params);
488
+
489
+ await sdk_orders.createBuyOrder(orderParams);
490
+ ```
491
+
492
+
493
+ #### Auction Order
494
+ Obtain input parameters:
495
+ ```
496
+ APENFTQuery.getEnglishAuctionBiddingOrderParams(params)
497
+ ```
498
+
499
+ Instructions:
500
+ ```js
501
+ /**
502
+ *
503
+ * @param {object} params -
504
+ * {
505
+ * collection: string
506
+ * id: string
507
+ * price: number
508
+ * currency: string
509
+ * }
510
+ * @returns Promise
511
+ */
512
+ async APENFTQuery.getEnglishAuctionBiddingOrderParams(params);
513
+ ```
514
+
515
+ Example:
516
+ ```js
517
+ const params = {
518
+ collection: "TGvAiyw7uT27xVpqHaQ1NM6ZDquEEHQgso",
519
+ id: "9927",
520
+ price: 125,
521
+ currency: "WTRX",
522
+ };
523
+ let orderParams = await sdk_query.getEnglishAuctionBiddingOrderParams(params);
524
+ ```
525
+
526
+ ```
527
+ APENFTOrders.createBiddingOrder(orderParams);
528
+ ```
529
+ Instructions:
530
+ ```js
531
+ /**
532
+ *
533
+ * @param {object} orderParams
534
+ * @returns Promise
535
+ */
536
+ async APENFTOrders.createBiddingOrder(orderParams);
537
+ ```
538
+ Example:
539
+ ```js
540
+ const params = {
541
+ collection: "TGvAiyw7uT27xVpqHaQ1NM6ZDquEEHQgso",
542
+ id: "9927",
543
+ price: 125,
544
+ currency: "WTRX",
545
+ };
546
+ let orderParams = await sdk_query.getEnglishAuctionBiddingOrderParams(params);
547
+
548
+ await sdk_orders.createBiddingOrder(orderParams);
549
+ ```
550
+
551
+
552
+ #### Lower Price
553
+ Obtain input parameters:
554
+ ```
555
+ APENFTQuery.getLowerPriceOrderParams(params)
556
+ ```
557
+ Instructions:
558
+ ```js
559
+ /**
560
+ *
561
+ * @param {object} params -
562
+ * {
563
+ * collection: string
564
+ * id: string
565
+ * price: number
566
+ * }
567
+ * @returns Promise
568
+ */
569
+ async APENFTQuery.getLowerPriceOrderParams(params);
570
+ ```
571
+ Example:
572
+ ```js
573
+ const params = {
574
+ collection: "TL39x7unoU1ivqxac43umyUaFoGzEE2Ens",
575
+ id: "2",
576
+ price: 80,
577
+ };
578
+ let orderParams = await sdk_query.getLowerPriceOrderParams(params);
579
+ ```
580
+
581
+ ```
582
+ APENFTOrders.createLowerPriceOrder(orderParams)
583
+ ```
584
+ Instructions:
585
+ ```js
586
+ /**
587
+ *
588
+ * @param {object} orderParams
589
+ * @returns Promise
590
+ */
591
+ async APENFTOrders.createLowerPriceOrder(orderParams);
592
+ ```
593
+
594
+ Example:
595
+ ```js
596
+ const params = {
597
+ collection: "TL39x7unoU1ivqxac43umyUaFoGzEE2Ens",
598
+ id: "2",
599
+ price: 80,
600
+ };
601
+ let orderParams = await sdk_query.getLowerPriceOrderParams(params);
602
+
603
+ await sdk_orders.createLowerPriceOrder(orderParams);
604
+ ```
605
+
606
+
607
+
608
+ ### Accept an Order
609
+ #### Accept and Buy
610
+ Obtain the input parameters of the best ask order:
611
+ ```
612
+ APENFTQuery.getAssetBestAskOrderInfo(params)
613
+ ```
614
+ Instructions:
615
+ ```js
616
+ /**
617
+ *
618
+ * @param {string} collection
619
+ * @param {string} id
620
+ * @returns Promise
621
+ */
622
+ async APENFTQuery.getAssetBestAskOrderInfo(collection,id);
623
+ ```
624
+
625
+ Example:
626
+ ```js
627
+ let bestAskOrder = await sdk_query.getAssetBestAskOrderInfo(
628
+ "TDczyk1W3jNf62cfeZ5d7CasiVXfwy4xiY",
629
+ "252"
630
+ );
631
+ ```
632
+
633
+ ```
634
+ APENFTOrders.account.orderMatch({ buy, sell })
635
+ ```
636
+ Instructions:
637
+ ```js
638
+ /**
639
+ *
640
+ * @param {object} buyOrder
641
+ * @param {object} sellOrder
642
+ * @returns Promise
643
+ */
644
+ async APENFTOrders.account.orderMatch({ buyOrder, sellOrder });
645
+ ```
646
+
647
+ Example:
648
+ ```js
649
+ let OrderSide = {
650
+ 0: "Buy",
651
+ 1: "Sell",
652
+ Buy: 0,
653
+ Sell: 1,
654
+ };
655
+ let bestAskOrder = await sdk_query.getAssetBestAskOrderInfo(
656
+ "TDczyk1W3jNf62cfeZ5d7CasiVXfwy4xiY",
657
+ "252"
658
+ );
659
+
660
+ const accountAddress = "XXXXXX";
661
+ const signedOrder = sdk_orders.orders.orderFromJSON(bestAskOrder);
662
+
663
+ let recipientAddress = "";
664
+ if (bestAskOrder.side === OrderSide.Sell) {
665
+ recipientAddress = accountAddress;
666
+ }
667
+ if (bestAskOrder.side === OrderSide.Buy) {
668
+ recipientAddress = bestAskOrder.maker;
669
+ }
670
+
671
+ const { buy, sell } = sdk_orders.orders.makeMatchingOrder({
672
+ signedOrder,
673
+ accountAddress: accountAddress,
674
+ recipientAddress,
675
+ });
676
+
677
+ await sdk_orders.account.orderMatch({ buy, sell });
678
+ ```
679
+
680
+
681
+
682
+ #### Accept an Offer
683
+ Query Offers Received
684
+ ```
685
+ APENFTQuery.getReceivedOffers(account,pagination)
686
+ ```
687
+
688
+ Instructions:
689
+ ```js
690
+ /**
691
+ *
692
+ * @param {string} account
693
+ * @param {object} pagination
694
+ * @returns Promise
695
+ */
696
+ async APENFTQuery.getReceivedOffers(account,pagination);
697
+ ```
698
+
699
+ Example:
700
+ ```js
701
+ let receivedOffers = await sdk_query.getReceivedOffers(
702
+ "TFrBnJPgZEfXtvauVG9XVLaDEDDo5jtMWV",
703
+ {
704
+ first: 100, // min:1 max:100
705
+ cursor: "",
706
+ }
707
+ );
708
+ console.log("receivedOffers", receivedOffers);
709
+ ```
710
+
711
+ ```
712
+ APENFTOrders.account.orderMatch({ buy, sell })
713
+ ```
714
+
715
+ Instructions:
716
+ ```js
717
+ /**
718
+ *
719
+ * @param {object} buyOrder
720
+ * @param {object} sellOrder
721
+ * @returns Promise
722
+ */
723
+ async APENFTOrders.account.orderMatch({ buyOrder, sellOrder });
724
+ ```
725
+
726
+ Example:
727
+ ```js
728
+ let OrderSide = {
729
+ 0: "Buy",
730
+ 1: "Sell",
731
+ Buy: 0,
732
+ Sell: 1,
733
+ };
734
+ // Gets a list of bids received
735
+ const receivedOffers = await sdk_query.getReceivedOffers(
736
+ "TFrBnJPgZEfXtvauVG9XVLaDEDDo5jtMWV",
737
+ {
738
+ first: 100, // min:1 max:100
739
+ cursor: "",
740
+ }
741
+ );
742
+ // Choose to accept the NTH bid (a price for an NFT)
743
+ // You can filter an NFT yourself based on the returned data
744
+ const n = 0;
745
+ let bestBidOrder = receivedOffers?.items?.[n]?.bestBidOrder;
746
+ // Current wallet address
747
+ const accountAddress = "XXXXXX";
748
+ const signedOrder = sdk_orders.orders.orderFromJSON(bestBidOrder);
749
+
750
+ let recipientAddress = "";
751
+ if (bestBidOrder.side === OrderSide.Sell) {
752
+ recipientAddress = accountAddress;
753
+ }
754
+ if (bestBidOrder.side === OrderSide.Buy) {
755
+ recipientAddress = bestBidOrder.maker;
756
+ }
757
+
758
+ const { buy, sell } = sdk_orders.orders.makeMatchingOrder({
759
+ signedOrder,
760
+ accountAddress: accountAddress,
761
+ recipientAddress,
762
+ });
763
+
764
+ await sdk_orders.account.orderMatch({ buy, sell });
765
+ ```
766
+
767
+
768
+ ### Cancel an Order
769
+ #### Cancel a Listing
770
+ Obtain the input parameters of the best ask order:
771
+ ```
772
+ APENFTQuery.getAssetBestAskOrderInfo(collection,id)
773
+ ```
774
+
775
+ Instructions:
776
+ ```js
777
+ /**
778
+ *
779
+ * @param {string} collection
780
+ * @param {string} id
781
+ * @returns Promise
782
+ */
783
+ async APENFTQuery.getAssetBestAskOrderInfo(collection,id);
784
+ ```
785
+
786
+ Example:
787
+ ```js
788
+ const order = await sdk_query.getAssetBestAskOrderInfo(
789
+ "TL39x7unoU1ivqxac43umyUaFoGzEE2Ens",
790
+ "2"
791
+ );
792
+ ```
793
+
794
+ ```
795
+ APENFTOrders.account.orderCancel(order)
796
+ ```
797
+ Instructions:
798
+ ```js
799
+ /**
800
+ *
801
+ * @param {object} order
802
+ * @returns Promise
803
+ */
804
+ async APENFTOrders.account.orderCancel(order);
805
+ ```
806
+
807
+ Example:
808
+ ```js
809
+ const order = await sdk_query.getAssetListingInfo(
810
+ "TL39x7unoU1ivqxac43umyUaFoGzEE2Ens",
811
+ "2"
812
+ );
813
+ const _order = sdk_orders.orders.orderFromJSON(order);
814
+ await sdk_orders.account.orderCancel(_order);
815
+ ```
816
+
817
+
818
+ #### Cancel an Offer
819
+ Query offers sent:
820
+ ```
821
+ APENFTQuery.getSentOffers(account,pagination)
822
+ ```
823
+
824
+ Instructions:
825
+ ```js
826
+ /**
827
+ *
828
+ * @param {string} account
829
+ * @param {object} pagination
830
+ * @returns Promise
831
+ */
832
+ async APENFTQuery.getSentOffers(account,pagination);
833
+ ```
834
+
835
+ Example:
836
+ ```js
837
+ const sentOffers = await sdk_query.getSentOffers(
838
+ "TFrBnJPgZEfXtvauVG9XVLaDEDDo5jtMWV",
839
+ {
840
+ first: 100, // min:1 max:100
841
+ cursor: "",
842
+ }
843
+ );
844
+ console.log("sentOffers", sentOffers);
845
+ ```
846
+
847
+ ```
848
+ APENFTOrders.account.orderCancel(order)
849
+ ```
850
+ Instructions:
851
+ ```js
852
+ /**
853
+ *
854
+ * @param {object} order
855
+ * @returns Promise
856
+ */
857
+ async APENFTOrders.account.orderCancel(order);
858
+ ```
859
+
860
+ Example:
861
+ ```js
862
+ // Get sent offers
863
+ const sentOffers = await sdk_query.getSentOffers(
864
+ "TFrBnJPgZEfXtvauVG9XVLaDEDDo5jtMWV",
865
+ {
866
+ first: 100, // min:1 max:100
867
+ cursor: "",
868
+ }
869
+ );
870
+ console.log("sentOffers", sentOffers);
871
+
872
+ // Cancel the Nth NFT offer
873
+ const n = 0;
874
+ let order = sentOffers?.items?.[n];
875
+ const _order = sdk_orders.orders.orderFromJSON(order);
876
+ await sdk_orders.account.orderCancel(_order);
877
+ ```
878
+
879
+
880
+ ### Transfer Assets
881
+ Obtain input parameters:
882
+ ```
883
+ APENFTQuery.getTransferParams(collection,id)
884
+ ```
885
+
886
+ Instructions:
887
+ ```js
888
+ /**
889
+ *
890
+ * @param {string} collection
891
+ * @param {string} id
892
+ * @returns Promise
893
+ */
894
+ async APENFTQuery.getTransferParams(collection,id);
895
+ ```
896
+
897
+ Example:
898
+ ```js
899
+ const { metadata, assetData } = await sdk_query.getTransferParams(
900
+ "TQfujfp9LNU4yRYcAiXcLRmjDuVKQ8U3AJ",
901
+ "1327"
902
+ );
903
+ ```
904
+
905
+ ```
906
+ APENFTOrders.account.assetTransfer(metadata, to)
907
+ ```
908
+
909
+ Instructions:
910
+ ```js
911
+ /**
912
+ *
913
+ * @param {object} metadata
914
+ * @param {string} to
915
+ * @returns Promise
916
+ */
917
+ async APENFTOrders.account.assetTransfer(metadata, to)
918
+ ```
919
+
920
+ Example:
921
+ ```js
922
+ const { metadata, assetData } = await sdk_query.getTransferParams(
923
+ "TQfujfp9LNU4yRYcAiXcLRmjDuVKQ8U3AJ",
924
+ "1327"
925
+ );
926
+ const { newAsset } = await sdk_orders.getAssetOrderVersion(assetData);
927
+ if (metadata?.asset) {
928
+ metadata.asset.data = newAsset || "";
929
+ }
930
+
931
+ let to = "TQzRKbEgp7iSj9fpXX5ghdBHHoh3tEtgwU";
932
+
933
+ await sdk_orders.account.assetTransfer(metadata, to);
934
+ ```
935
+
936
+
937
+
938
+ ### Query Orders
939
+ #### Query the Listed Prices of an NFT
940
+ Query the Listed Prices of an NFT:
941
+ ```
942
+ APENFTQuery.getAssetListingOrders(collection,id,pagination)
943
+ ```
944
+ Instructions:
945
+ ```js
946
+ /**
947
+ *
948
+ * @param {string} collection
949
+ * @param {string} id - id
950
+ * @param {object} pagination
951
+ * @returns Promise
952
+ */
953
+ async APENFTQuery.getAssetListingOrders(collection,id,pagination);
954
+ ```
955
+
956
+ Example:
957
+ ```js
958
+ const listingData = await sdk_query.getAssetListingOrders(
959
+ "TQfujfp9LNU4yRYcAiXcLRmjDuVKQ8U3AJ",
960
+ "1327",
961
+ {
962
+ first: 100, // min:1 max:100
963
+ cursor: "",
964
+ }
965
+ );
966
+ console.log("listingData", listingData);
967
+ ```
968
+
969
+
970
+ #### Query the Offer List of an NFT
971
+ ```
972
+ APENFTQuery.getAssetOffers(collection,id,pagination)
973
+ ```
974
+ Instructions:
975
+ ```js
976
+ /**
977
+ *
978
+ * @param {string} collection
979
+ * @param {string} id - id
980
+ * @param {object} pagination
981
+ * @returns Promise
982
+ */
983
+ async APENFTQuery.getAssetOffers(collection,id,pagination);
984
+ ```
985
+
986
+ Example:
987
+ ```js
988
+ const offersData = await sdk_query.getAssetOffers(
989
+ "TQfujfp9LNU4yRYcAiXcLRmjDuVKQ8U3AJ",
990
+ "1327",
991
+ {
992
+ first: 100, // min:1 max:100
993
+ cursor: "",
994
+ }
995
+ );
996
+ console.log("offersData", offerData);
997
+ ```
998
+
999
+
1000
+ #### Query the Trading History of an NFT
1001
+ ```
1002
+ APENFTQuery.getAssetTradingHistory(collection,id,pagination)
1003
+ ```
1004
+
1005
+ Instructions:
1006
+ ```js
1007
+ /**
1008
+ *
1009
+ * @param {string} collection
1010
+ * @param {string} id - id
1011
+ * @param {object} pagination
1012
+ * @returns Promise
1013
+ */
1014
+ async APENFTQuery.getAssetTradingHistory(collection,id,pagination);
1015
+ ```
1016
+
1017
+ Example:
1018
+ ```js
1019
+ const assetTradingHistory = await sdk_query.getAssetTradingHistory(
1020
+ "TQfujfp9LNU4yRYcAiXcLRmjDuVKQ8U3AJ",
1021
+ "1327",
1022
+ {
1023
+ first: 100, // min:1 max:100
1024
+ cursor: "",
1025
+ }
1026
+ );
1027
+ console.log("assetTradingHistory", assetTradingHistory);
1028
+ ```
1029
+
1030
+ #### Query Offers Received
1031
+ ```
1032
+ APENFTQuery.getReceivedOffers(account,pagination)
1033
+ ```
1034
+ Instructions:
1035
+ ```js
1036
+ /**
1037
+ *
1038
+ * @param {string} account
1039
+ * @param {object} pagination
1040
+ * @returns Promise
1041
+ */
1042
+ async APENFTQuery.getReceivedOffers(account,pagination);
1043
+ ```
1044
+
1045
+ Example:
1046
+ ```js
1047
+ const receivedOffers = await sdk_query.getReceivedOffers(
1048
+ "TFrBnJPgZEfXtvauVG9XVLaDEDDo5jtMWV",
1049
+ {
1050
+ first: 100, // min:1 max:100
1051
+ cursor: "",
1052
+ }
1053
+ );
1054
+ console.log("receivedOffers", receivedOffers);
1055
+ ```
1056
+
1057
+
1058
+ #### Query Offers Sent
1059
+ ```
1060
+ APENFTQuery.getSentOffers(account,pagination)
1061
+ ```
1062
+ Instructions:
1063
+ ```js
1064
+ /**
1065
+ *
1066
+ * @param {string} account
1067
+ * * @param {object} pagination
1068
+ * @returns Promise
1069
+ */
1070
+ async APENFTQuery.getSentOffers(account,pagination);
1071
+ ```
1072
+ Example:
1073
+ ```js
1074
+ const sentOffers = await sdk_query.getSentOffers(
1075
+ "TFrBnJPgZEfXtvauVG9XVLaDEDDo5jtMWV",
1076
+ {
1077
+ first: 100, // min:1 max:100
1078
+ cursor: "",
1079
+ }
1080
+ );
1081
+ console.log("sentOffers", sentOffers);
1082
+ ```
1083
+
1084
+
1085
+ ## Collection
1086
+ ### Query Collections
1087
+ #### Query the NFT List Under a Collection
1088
+ ```
1089
+ APENFTQuery.getCollectionAssetsList(collection,pagination)
1090
+ ```
1091
+
1092
+ Instructions:
1093
+ ```js
1094
+ /**
1095
+ *
1096
+ * @param {string} collection
1097
+ * @param {object} pagination
1098
+ * @returns Promise
1099
+ */
1100
+ async APENFTQuery.getCollectionAssetsList(collection,pagination);
1101
+ ```
1102
+
1103
+ Example:
1104
+ ```js
1105
+ const collectionAssetsList = await sdk_query.getCollectionAssetsList(
1106
+ "TQfujfp9LNU4yRYcAiXcLRmjDuVKQ8U3AJ",
1107
+ {
1108
+ first: 100, // min:1 max:100
1109
+ cursor: "",
1110
+ }
1111
+ );
1112
+ console.log("collectionAssetsList", collectionAssetsList);
1113
+ ```
1114
+
1115
+ #### Query a Single Collection
1116
+ ```
1117
+ APENFTQuery.getSingleCollectionInfo(collection)
1118
+ ```
1119
+ Instructions:
1120
+ ```js
1121
+ /**
1122
+ *
1123
+ * @param {string} collection
1124
+ * @returns Promise
1125
+ */
1126
+ async APENFTQuery.getSingleCollectionInfo(collection);
1127
+ ```
1128
+ Example:
1129
+ ```js
1130
+ const singleCollectionInfo = await sdk_query.getSingleCollectionInfo(
1131
+ "TQfujfp9LNU4yRYcAiXcLRmjDuVKQ8U3AJ"
1132
+ );
1133
+ console.log("singleCollectionInfo", singleCollectionInfo);
1134
+ ```
1135
+
1136
+
1137
+
1138
+
1139
+
1140
+ ## License
1141
+ [MIT]()