@xoxno/sdk-js 0.0.1

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 (137) hide show
  1. package/.editorconfig +9 -0
  2. package/.eslintrc.json +19 -0
  3. package/.github/workflows/npm-publish-github-packages.yml +36 -0
  4. package/.prettierrc +8 -0
  5. package/.releaserc +10 -0
  6. package/.vscode/settings.json +3 -0
  7. package/LICENSE +674 -0
  8. package/commitlint.config.js +3 -0
  9. package/coverage/clover.xml +280 -0
  10. package/coverage/coverage-final.json +12 -0
  11. package/coverage/lcov-report/base.css +224 -0
  12. package/coverage/lcov-report/block-navigation.js +87 -0
  13. package/coverage/lcov-report/collection/index.html +116 -0
  14. package/coverage/lcov-report/collection/index.ts.html +559 -0
  15. package/coverage/lcov-report/favicon.png +0 -0
  16. package/coverage/lcov-report/index.html +161 -0
  17. package/coverage/lcov-report/interactions/index.html +116 -0
  18. package/coverage/lcov-report/interactions/index.ts.html +775 -0
  19. package/coverage/lcov-report/nft/index.html +116 -0
  20. package/coverage/lcov-report/nft/index.ts.html +379 -0
  21. package/coverage/lcov-report/prettify.css +1 -0
  22. package/coverage/lcov-report/prettify.js +2 -0
  23. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  24. package/coverage/lcov-report/sorter.js +196 -0
  25. package/coverage/lcov-report/utils/SmartContractAbis.ts.html +331 -0
  26. package/coverage/lcov-report/utils/SmartContractService.ts.html +136 -0
  27. package/coverage/lcov-report/utils/api.ts.html +484 -0
  28. package/coverage/lcov-report/utils/const.ts.html +163 -0
  29. package/coverage/lcov-report/utils/getActivity.ts.html +250 -0
  30. package/coverage/lcov-report/utils/helpers.ts.html +127 -0
  31. package/coverage/lcov-report/utils/index.html +221 -0
  32. package/coverage/lcov-report/utils/regex.ts.html +106 -0
  33. package/coverage/lcov-report/utils/scCalls.ts.html +229 -0
  34. package/coverage/lcov.info +525 -0
  35. package/docs/.nojekyll +1 -0
  36. package/docs/assets/highlight.css +64 -0
  37. package/docs/assets/main.js +58 -0
  38. package/docs/assets/search.js +1 -0
  39. package/docs/assets/style.css +1279 -0
  40. package/docs/classes/collection.CollectionModule.html +232 -0
  41. package/docs/classes/interactions.SCInteraction.html +370 -0
  42. package/docs/classes/nft.NFTModule.html +208 -0
  43. package/docs/classes/utils_SmartContractAbis.SmartContractAbis.html +198 -0
  44. package/docs/classes/utils_api.APIClient.html +212 -0
  45. package/docs/classes/utils_scCalls.ContractQueryRunner.html +129 -0
  46. package/docs/enums/types_collection.FieldsToSelect.html +186 -0
  47. package/docs/enums/types_collection.Marketplace.html +102 -0
  48. package/docs/enums/types_collection.SearchOrderBy.html +130 -0
  49. package/docs/enums/types_trading.OrderByTradingActivity.html +102 -0
  50. package/docs/enums/types_trading.SelectFieldsTradingActivity.html +144 -0
  51. package/docs/enums/utils_api.Chain.html +88 -0
  52. package/docs/functions/utils_SmartContractService.getSmartContract.html +77 -0
  53. package/docs/functions/utils_getActivity.getActivity.html +89 -0
  54. package/docs/functions/utils_helpers.getIdentifierFromColAndNonce.html +76 -0
  55. package/docs/functions/utils_helpers.nonceToHex.html +74 -0
  56. package/docs/functions/utils_regex.isValidCollectionTicker.html +74 -0
  57. package/docs/functions/utils_regex.isValidNftIdentifier.html +74 -0
  58. package/docs/index.html +55 -0
  59. package/docs/interfaces/types_collection.AttributeData.html +99 -0
  60. package/docs/interfaces/types_collection.Filter.html +157 -0
  61. package/docs/interfaces/types_collection.GlobalOffer.html +176 -0
  62. package/docs/interfaces/types_collection.ICollectionAttributes.html +85 -0
  63. package/docs/interfaces/types_collection.ICollectionProfile.html +263 -0
  64. package/docs/interfaces/types_collection.IMintInfo.html +155 -0
  65. package/docs/interfaces/types_collection.ISocials.html +127 -0
  66. package/docs/interfaces/types_collection.MetadataAttribute.html +92 -0
  67. package/docs/interfaces/types_collection.SearchNFTs.html +127 -0
  68. package/docs/interfaces/types_collection.SearchNFTsArgs.html +225 -0
  69. package/docs/interfaces/types_collection.SearchNFTsResponse.html +132 -0
  70. package/docs/interfaces/types_collection.TradingActivity.html +232 -0
  71. package/docs/interfaces/types_collection.TraitValues.html +85 -0
  72. package/docs/interfaces/types_nft.GameData.html +92 -0
  73. package/docs/interfaces/types_nft.NFTAttribute.html +127 -0
  74. package/docs/interfaces/types_nft.NFTMetadata.html +104 -0
  75. package/docs/interfaces/types_nft.NftData.html +253 -0
  76. package/docs/interfaces/types_nft.NftValue.html +106 -0
  77. package/docs/interfaces/types_nft.OffersInfo.html +169 -0
  78. package/docs/interfaces/types_nft.OriginalMedia.html +92 -0
  79. package/docs/interfaces/types_nft.SaleInfoNft.html +211 -0
  80. package/docs/interfaces/types_trading.TradincActivityArgs.html +225 -0
  81. package/docs/interfaces/types_trading.TradingActivityQueryFilter.html +151 -0
  82. package/docs/interfaces/types_trading.TradingActivityResponse.html +106 -0
  83. package/docs/modules/collection.html +71 -0
  84. package/docs/modules/interactions.html +71 -0
  85. package/docs/modules/nft.html +71 -0
  86. package/docs/modules/types.html +189 -0
  87. package/docs/modules/types_collection.html +104 -0
  88. package/docs/modules/types_interactions.html +69 -0
  89. package/docs/modules/types_nft.html +85 -0
  90. package/docs/modules/types_trading.html +82 -0
  91. package/docs/modules/utils_SmartContractAbis.html +71 -0
  92. package/docs/modules/utils_SmartContractService.html +71 -0
  93. package/docs/modules/utils_api.html +76 -0
  94. package/docs/modules/utils_const.html +95 -0
  95. package/docs/modules/utils_getActivity.html +71 -0
  96. package/docs/modules/utils_helpers.html +73 -0
  97. package/docs/modules/utils_regex.html +73 -0
  98. package/docs/modules/utils_scCalls.html +71 -0
  99. package/docs/modules.html +76 -0
  100. package/docs/types/types_interactions.Offer.html +89 -0
  101. package/docs/variables/utils_const.API_URL.html +76 -0
  102. package/docs/variables/utils_const.API_URL_DEV.html +76 -0
  103. package/docs/variables/utils_const.DR_SC.html +76 -0
  104. package/docs/variables/utils_const.FM_SC.html +76 -0
  105. package/docs/variables/utils_const.KG_SC.html +76 -0
  106. package/docs/variables/utils_const.Manager_SC.html +76 -0
  107. package/docs/variables/utils_const.Manager_SC_DEV.html +76 -0
  108. package/docs/variables/utils_const.P2P_SC.html +76 -0
  109. package/docs/variables/utils_const.P2P_SC_DEV.html +76 -0
  110. package/docs/variables/utils_const.Staking_SC.html +76 -0
  111. package/docs/variables/utils_const.Staking_SC_DEV.html +76 -0
  112. package/docs/variables/utils_const.XOXNO_SC.html +76 -0
  113. package/docs/variables/utils_const.XOXNO_SC_DEV.html +76 -0
  114. package/jest.config.js +7 -0
  115. package/package.json +74 -0
  116. package/src/collection/__tests__/collection.test.ts +100 -0
  117. package/src/collection/index.ts +158 -0
  118. package/src/index.ts +20 -0
  119. package/src/interactions/__tests__/market.test.ts +92 -0
  120. package/src/interactions/index.ts +228 -0
  121. package/src/nft/__tests__/nft.test.ts +84 -0
  122. package/src/nft/index.ts +98 -0
  123. package/src/types/collection.d.ts +267 -0
  124. package/src/types/index.ts +3 -0
  125. package/src/types/interactions.d.ts +16 -0
  126. package/src/types/nft.d.ts +100 -0
  127. package/src/types/trading.d.ts +95 -0
  128. package/src/utils/SmartContractAbis.ts +82 -0
  129. package/src/utils/SmartContractService.ts +17 -0
  130. package/src/utils/api.ts +133 -0
  131. package/src/utils/const.ts +26 -0
  132. package/src/utils/getActivity.ts +55 -0
  133. package/src/utils/helpers.ts +14 -0
  134. package/src/utils/regex.ts +7 -0
  135. package/src/utils/scCalls.ts +48 -0
  136. package/tsconfig.json +13 -0
  137. package/webpack.config.js +28 -0
@@ -0,0 +1,775 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for interactions/index.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../prettify.css" />
9
+ <link rel="stylesheet" href="../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../index.html">All files</a> / <a href="index.html">interactions</a> index.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">94.52% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>69/73</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">25% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>1/4</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">94.44% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>17/18</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">94.36% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>67/71</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a>
212
+ <a name='L147'></a><a href='#L147'>147</a>
213
+ <a name='L148'></a><a href='#L148'>148</a>
214
+ <a name='L149'></a><a href='#L149'>149</a>
215
+ <a name='L150'></a><a href='#L150'>150</a>
216
+ <a name='L151'></a><a href='#L151'>151</a>
217
+ <a name='L152'></a><a href='#L152'>152</a>
218
+ <a name='L153'></a><a href='#L153'>153</a>
219
+ <a name='L154'></a><a href='#L154'>154</a>
220
+ <a name='L155'></a><a href='#L155'>155</a>
221
+ <a name='L156'></a><a href='#L156'>156</a>
222
+ <a name='L157'></a><a href='#L157'>157</a>
223
+ <a name='L158'></a><a href='#L158'>158</a>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a>
231
+ <a name='L166'></a><a href='#L166'>166</a>
232
+ <a name='L167'></a><a href='#L167'>167</a>
233
+ <a name='L168'></a><a href='#L168'>168</a>
234
+ <a name='L169'></a><a href='#L169'>169</a>
235
+ <a name='L170'></a><a href='#L170'>170</a>
236
+ <a name='L171'></a><a href='#L171'>171</a>
237
+ <a name='L172'></a><a href='#L172'>172</a>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a>
245
+ <a name='L180'></a><a href='#L180'>180</a>
246
+ <a name='L181'></a><a href='#L181'>181</a>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a>
249
+ <a name='L184'></a><a href='#L184'>184</a>
250
+ <a name='L185'></a><a href='#L185'>185</a>
251
+ <a name='L186'></a><a href='#L186'>186</a>
252
+ <a name='L187'></a><a href='#L187'>187</a>
253
+ <a name='L188'></a><a href='#L188'>188</a>
254
+ <a name='L189'></a><a href='#L189'>189</a>
255
+ <a name='L190'></a><a href='#L190'>190</a>
256
+ <a name='L191'></a><a href='#L191'>191</a>
257
+ <a name='L192'></a><a href='#L192'>192</a>
258
+ <a name='L193'></a><a href='#L193'>193</a>
259
+ <a name='L194'></a><a href='#L194'>194</a>
260
+ <a name='L195'></a><a href='#L195'>195</a>
261
+ <a name='L196'></a><a href='#L196'>196</a>
262
+ <a name='L197'></a><a href='#L197'>197</a>
263
+ <a name='L198'></a><a href='#L198'>198</a>
264
+ <a name='L199'></a><a href='#L199'>199</a>
265
+ <a name='L200'></a><a href='#L200'>200</a>
266
+ <a name='L201'></a><a href='#L201'>201</a>
267
+ <a name='L202'></a><a href='#L202'>202</a>
268
+ <a name='L203'></a><a href='#L203'>203</a>
269
+ <a name='L204'></a><a href='#L204'>204</a>
270
+ <a name='L205'></a><a href='#L205'>205</a>
271
+ <a name='L206'></a><a href='#L206'>206</a>
272
+ <a name='L207'></a><a href='#L207'>207</a>
273
+ <a name='L208'></a><a href='#L208'>208</a>
274
+ <a name='L209'></a><a href='#L209'>209</a>
275
+ <a name='L210'></a><a href='#L210'>210</a>
276
+ <a name='L211'></a><a href='#L211'>211</a>
277
+ <a name='L212'></a><a href='#L212'>212</a>
278
+ <a name='L213'></a><a href='#L213'>213</a>
279
+ <a name='L214'></a><a href='#L214'>214</a>
280
+ <a name='L215'></a><a href='#L215'>215</a>
281
+ <a name='L216'></a><a href='#L216'>216</a>
282
+ <a name='L217'></a><a href='#L217'>217</a>
283
+ <a name='L218'></a><a href='#L218'>218</a>
284
+ <a name='L219'></a><a href='#L219'>219</a>
285
+ <a name='L220'></a><a href='#L220'>220</a>
286
+ <a name='L221'></a><a href='#L221'>221</a>
287
+ <a name='L222'></a><a href='#L222'>222</a>
288
+ <a name='L223'></a><a href='#L223'>223</a>
289
+ <a name='L224'></a><a href='#L224'>224</a>
290
+ <a name='L225'></a><a href='#L225'>225</a>
291
+ <a name='L226'></a><a href='#L226'>226</a>
292
+ <a name='L227'></a><a href='#L227'>227</a>
293
+ <a name='L228'></a><a href='#L228'>228</a>
294
+ <a name='L229'></a><a href='#L229'>229</a>
295
+ <a name='L230'></a><a href='#L230'>230</a>
296
+ <a name='L231'></a><a href='#L231'>231</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
297
+ <span class="cline-any cline-neutral">&nbsp;</span>
298
+ <span class="cline-any cline-neutral">&nbsp;</span>
299
+ <span class="cline-any cline-neutral">&nbsp;</span>
300
+ <span class="cline-any cline-neutral">&nbsp;</span>
301
+ <span class="cline-any cline-yes">1x</span>
302
+ <span class="cline-any cline-neutral">&nbsp;</span>
303
+ <span class="cline-any cline-yes">1x</span>
304
+ <span class="cline-any cline-yes">1x</span>
305
+ <span class="cline-any cline-yes">1x</span>
306
+ <span class="cline-any cline-yes">1x</span>
307
+ <span class="cline-any cline-neutral">&nbsp;</span>
308
+ <span class="cline-any cline-yes">1x</span>
309
+ <span class="cline-any cline-neutral">&nbsp;</span>
310
+ <span class="cline-any cline-neutral">&nbsp;</span>
311
+ <span class="cline-any cline-neutral">&nbsp;</span>
312
+ <span class="cline-any cline-yes">1x</span>
313
+ <span class="cline-any cline-yes">1x</span>
314
+ <span class="cline-any cline-neutral">&nbsp;</span>
315
+ <span class="cline-any cline-neutral">&nbsp;</span>
316
+ <span class="cline-any cline-neutral">&nbsp;</span>
317
+ <span class="cline-any cline-yes">1x</span>
318
+ <span class="cline-any cline-yes">1x</span>
319
+ <span class="cline-any cline-yes">1x</span>
320
+ <span class="cline-any cline-neutral">&nbsp;</span>
321
+ <span class="cline-any cline-neutral">&nbsp;</span>
322
+ <span class="cline-any cline-neutral">&nbsp;</span>
323
+ <span class="cline-any cline-neutral">&nbsp;</span>
324
+ <span class="cline-any cline-neutral">&nbsp;</span>
325
+ <span class="cline-any cline-yes">1x</span>
326
+ <span class="cline-any cline-neutral">&nbsp;</span>
327
+ <span class="cline-any cline-neutral">&nbsp;</span>
328
+ <span class="cline-any cline-neutral">&nbsp;</span>
329
+ <span class="cline-any cline-yes">14x</span>
330
+ <span class="cline-any cline-neutral">&nbsp;</span>
331
+ <span class="cline-any cline-neutral">&nbsp;</span>
332
+ <span class="cline-any cline-neutral">&nbsp;</span>
333
+ <span class="cline-any cline-neutral">&nbsp;</span>
334
+ <span class="cline-any cline-neutral">&nbsp;</span>
335
+ <span class="cline-any cline-neutral">&nbsp;</span>
336
+ <span class="cline-any cline-neutral">&nbsp;</span>
337
+ <span class="cline-any cline-yes">1x</span>
338
+ <span class="cline-any cline-yes">1x</span>
339
+ <span class="cline-any cline-yes">1x</span>
340
+ <span class="cline-any cline-yes">1x</span>
341
+ <span class="cline-any cline-neutral">&nbsp;</span>
342
+ <span class="cline-any cline-neutral">&nbsp;</span>
343
+ <span class="cline-any cline-neutral">&nbsp;</span>
344
+ <span class="cline-any cline-neutral">&nbsp;</span>
345
+ <span class="cline-any cline-neutral">&nbsp;</span>
346
+ <span class="cline-any cline-neutral">&nbsp;</span>
347
+ <span class="cline-any cline-yes">1x</span>
348
+ <span class="cline-any cline-yes">1x</span>
349
+ <span class="cline-any cline-yes">1x</span>
350
+ <span class="cline-any cline-yes">1x</span>
351
+ <span class="cline-any cline-neutral">&nbsp;</span>
352
+ <span class="cline-any cline-neutral">&nbsp;</span>
353
+ <span class="cline-any cline-neutral">&nbsp;</span>
354
+ <span class="cline-any cline-neutral">&nbsp;</span>
355
+ <span class="cline-any cline-neutral">&nbsp;</span>
356
+ <span class="cline-any cline-neutral">&nbsp;</span>
357
+ <span class="cline-any cline-neutral">&nbsp;</span>
358
+ <span class="cline-any cline-yes">1x</span>
359
+ <span class="cline-any cline-yes">2x</span>
360
+ <span class="cline-any cline-yes">2x</span>
361
+ <span class="cline-any cline-yes">5072x</span>
362
+ <span class="cline-any cline-neutral">&nbsp;</span>
363
+ <span class="cline-any cline-neutral">&nbsp;</span>
364
+ <span class="cline-any cline-neutral">&nbsp;</span>
365
+ <span class="cline-any cline-neutral">&nbsp;</span>
366
+ <span class="cline-any cline-neutral">&nbsp;</span>
367
+ <span class="cline-any cline-neutral">&nbsp;</span>
368
+ <span class="cline-any cline-neutral">&nbsp;</span>
369
+ <span class="cline-any cline-neutral">&nbsp;</span>
370
+ <span class="cline-any cline-neutral">&nbsp;</span>
371
+ <span class="cline-any cline-neutral">&nbsp;</span>
372
+ <span class="cline-any cline-neutral">&nbsp;</span>
373
+ <span class="cline-any cline-neutral">&nbsp;</span>
374
+ <span class="cline-any cline-neutral">&nbsp;</span>
375
+ <span class="cline-any cline-neutral">&nbsp;</span>
376
+ <span class="cline-any cline-yes">1x</span>
377
+ <span class="cline-any cline-neutral">&nbsp;</span>
378
+ <span class="cline-any cline-neutral">&nbsp;</span>
379
+ <span class="cline-any cline-neutral">&nbsp;</span>
380
+ <span class="cline-any cline-yes">1x</span>
381
+ <span class="cline-any cline-no">&nbsp;</span>
382
+ <span class="cline-any cline-neutral">&nbsp;</span>
383
+ <span class="cline-any cline-yes">1x</span>
384
+ <span class="cline-any cline-neutral">&nbsp;</span>
385
+ <span class="cline-any cline-neutral">&nbsp;</span>
386
+ <span class="cline-any cline-neutral">&nbsp;</span>
387
+ <span class="cline-any cline-neutral">&nbsp;</span>
388
+ <span class="cline-any cline-neutral">&nbsp;</span>
389
+ <span class="cline-any cline-neutral">&nbsp;</span>
390
+ <span class="cline-any cline-neutral">&nbsp;</span>
391
+ <span class="cline-any cline-neutral">&nbsp;</span>
392
+ <span class="cline-any cline-no">&nbsp;</span>
393
+ <span class="cline-any cline-neutral">&nbsp;</span>
394
+ <span class="cline-any cline-neutral">&nbsp;</span>
395
+ <span class="cline-any cline-neutral">&nbsp;</span>
396
+ <span class="cline-any cline-neutral">&nbsp;</span>
397
+ <span class="cline-any cline-neutral">&nbsp;</span>
398
+ <span class="cline-any cline-neutral">&nbsp;</span>
399
+ <span class="cline-any cline-neutral">&nbsp;</span>
400
+ <span class="cline-any cline-neutral">&nbsp;</span>
401
+ <span class="cline-any cline-neutral">&nbsp;</span>
402
+ <span class="cline-any cline-neutral">&nbsp;</span>
403
+ <span class="cline-any cline-yes">1x</span>
404
+ <span class="cline-any cline-neutral">&nbsp;</span>
405
+ <span class="cline-any cline-neutral">&nbsp;</span>
406
+ <span class="cline-any cline-yes">2x</span>
407
+ <span class="cline-any cline-yes">2x</span>
408
+ <span class="cline-any cline-yes">2x</span>
409
+ <span class="cline-any cline-yes">2x</span>
410
+ <span class="cline-any cline-yes">2x</span>
411
+ <span class="cline-any cline-yes">2x</span>
412
+ <span class="cline-any cline-neutral">&nbsp;</span>
413
+ <span class="cline-any cline-neutral">&nbsp;</span>
414
+ <span class="cline-any cline-yes">2x</span>
415
+ <span class="cline-any cline-yes">2x</span>
416
+ <span class="cline-any cline-yes">2x</span>
417
+ <span class="cline-any cline-yes">2x</span>
418
+ <span class="cline-any cline-no">&nbsp;</span>
419
+ <span class="cline-any cline-neutral">&nbsp;</span>
420
+ <span class="cline-any cline-neutral">&nbsp;</span>
421
+ <span class="cline-any cline-neutral">&nbsp;</span>
422
+ <span class="cline-any cline-neutral">&nbsp;</span>
423
+ <span class="cline-any cline-neutral">&nbsp;</span>
424
+ <span class="cline-any cline-neutral">&nbsp;</span>
425
+ <span class="cline-any cline-neutral">&nbsp;</span>
426
+ <span class="cline-any cline-neutral">&nbsp;</span>
427
+ <span class="cline-any cline-yes">2x</span>
428
+ <span class="cline-any cline-neutral">&nbsp;</span>
429
+ <span class="cline-any cline-yes">2x</span>
430
+ <span class="cline-any cline-yes">2x</span>
431
+ <span class="cline-any cline-yes">2x</span>
432
+ <span class="cline-any cline-neutral">&nbsp;</span>
433
+ <span class="cline-any cline-yes">2x</span>
434
+ <span class="cline-any cline-yes">2x</span>
435
+ <span class="cline-any cline-yes">2x</span>
436
+ <span class="cline-any cline-no">&nbsp;</span>
437
+ <span class="cline-any cline-neutral">&nbsp;</span>
438
+ <span class="cline-any cline-neutral">&nbsp;</span>
439
+ <span class="cline-any cline-neutral">&nbsp;</span>
440
+ <span class="cline-any cline-neutral">&nbsp;</span>
441
+ <span class="cline-any cline-neutral">&nbsp;</span>
442
+ <span class="cline-any cline-yes">2x</span>
443
+ <span class="cline-any cline-neutral">&nbsp;</span>
444
+ <span class="cline-any cline-neutral">&nbsp;</span>
445
+ <span class="cline-any cline-neutral">&nbsp;</span>
446
+ <span class="cline-any cline-neutral">&nbsp;</span>
447
+ <span class="cline-any cline-neutral">&nbsp;</span>
448
+ <span class="cline-any cline-neutral">&nbsp;</span>
449
+ <span class="cline-any cline-yes">1x</span>
450
+ <span class="cline-any cline-yes">1x</span>
451
+ <span class="cline-any cline-yes">1x</span>
452
+ <span class="cline-any cline-neutral">&nbsp;</span>
453
+ <span class="cline-any cline-neutral">&nbsp;</span>
454
+ <span class="cline-any cline-neutral">&nbsp;</span>
455
+ <span class="cline-any cline-neutral">&nbsp;</span>
456
+ <span class="cline-any cline-neutral">&nbsp;</span>
457
+ <span class="cline-any cline-neutral">&nbsp;</span>
458
+ <span class="cline-any cline-yes">1x</span>
459
+ <span class="cline-any cline-yes">1x</span>
460
+ <span class="cline-any cline-yes">1x</span>
461
+ <span class="cline-any cline-neutral">&nbsp;</span>
462
+ <span class="cline-any cline-neutral">&nbsp;</span>
463
+ <span class="cline-any cline-neutral">&nbsp;</span>
464
+ <span class="cline-any cline-neutral">&nbsp;</span>
465
+ <span class="cline-any cline-neutral">&nbsp;</span>
466
+ <span class="cline-any cline-neutral">&nbsp;</span>
467
+ <span class="cline-any cline-yes">1x</span>
468
+ <span class="cline-any cline-yes">1x</span>
469
+ <span class="cline-any cline-yes">1x</span>
470
+ <span class="cline-any cline-neutral">&nbsp;</span>
471
+ <span class="cline-any cline-neutral">&nbsp;</span>
472
+ <span class="cline-any cline-neutral">&nbsp;</span>
473
+ <span class="cline-any cline-neutral">&nbsp;</span>
474
+ <span class="cline-any cline-neutral">&nbsp;</span>
475
+ <span class="cline-any cline-neutral">&nbsp;</span>
476
+ <span class="cline-any cline-yes">1x</span>
477
+ <span class="cline-any cline-yes">1x</span>
478
+ <span class="cline-any cline-yes">1x</span>
479
+ <span class="cline-any cline-neutral">&nbsp;</span>
480
+ <span class="cline-any cline-neutral">&nbsp;</span>
481
+ <span class="cline-any cline-neutral">&nbsp;</span>
482
+ <span class="cline-any cline-neutral">&nbsp;</span>
483
+ <span class="cline-any cline-neutral">&nbsp;</span>
484
+ <span class="cline-any cline-neutral">&nbsp;</span>
485
+ <span class="cline-any cline-neutral">&nbsp;</span>
486
+ <span class="cline-any cline-neutral">&nbsp;</span>
487
+ <span class="cline-any cline-neutral">&nbsp;</span>
488
+ <span class="cline-any cline-yes">1x</span>
489
+ <span class="cline-any cline-neutral">&nbsp;</span>
490
+ <span class="cline-any cline-neutral">&nbsp;</span>
491
+ <span class="cline-any cline-yes">1x</span>
492
+ <span class="cline-any cline-neutral">&nbsp;</span>
493
+ <span class="cline-any cline-neutral">&nbsp;</span>
494
+ <span class="cline-any cline-neutral">&nbsp;</span>
495
+ <span class="cline-any cline-neutral">&nbsp;</span>
496
+ <span class="cline-any cline-neutral">&nbsp;</span>
497
+ <span class="cline-any cline-neutral">&nbsp;</span>
498
+ <span class="cline-any cline-neutral">&nbsp;</span>
499
+ <span class="cline-any cline-neutral">&nbsp;</span>
500
+ <span class="cline-any cline-neutral">&nbsp;</span>
501
+ <span class="cline-any cline-neutral">&nbsp;</span>
502
+ <span class="cline-any cline-neutral">&nbsp;</span>
503
+ <span class="cline-any cline-yes">1x</span>
504
+ <span class="cline-any cline-neutral">&nbsp;</span>
505
+ <span class="cline-any cline-neutral">&nbsp;</span>
506
+ <span class="cline-any cline-yes">1x</span>
507
+ <span class="cline-any cline-neutral">&nbsp;</span>
508
+ <span class="cline-any cline-neutral">&nbsp;</span>
509
+ <span class="cline-any cline-neutral">&nbsp;</span>
510
+ <span class="cline-any cline-neutral">&nbsp;</span>
511
+ <span class="cline-any cline-neutral">&nbsp;</span>
512
+ <span class="cline-any cline-neutral">&nbsp;</span>
513
+ <span class="cline-any cline-neutral">&nbsp;</span>
514
+ <span class="cline-any cline-neutral">&nbsp;</span>
515
+ <span class="cline-any cline-neutral">&nbsp;</span>
516
+ <span class="cline-any cline-neutral">&nbsp;</span>
517
+ <span class="cline-any cline-neutral">&nbsp;</span>
518
+ <span class="cline-any cline-neutral">&nbsp;</span>
519
+ <span class="cline-any cline-yes">1x</span>
520
+ <span class="cline-any cline-neutral">&nbsp;</span>
521
+ <span class="cline-any cline-neutral">&nbsp;</span>
522
+ <span class="cline-any cline-yes">755x</span>
523
+ <span class="cline-any cline-yes">1x</span>
524
+ <span class="cline-any cline-neutral">&nbsp;</span>
525
+ <span class="cline-any cline-neutral">&nbsp;</span>
526
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import {
527
+ BigUIntValue,
528
+ Interaction,
529
+ SmartContract,
530
+ } from '@multiversx/sdk-core/out';
531
+ import { Address } from '@multiversx/sdk-core/out/address';
532
+ import { GlobalOffer } from '../types/collection';
533
+ import { APIClient } from '../utils/api';
534
+ import { ContractQueryRunner } from '../utils/scCalls';
535
+ import { SmartContractAbis } from '../utils/SmartContractAbis';
536
+ import { getSmartContract } from '../utils/SmartContractService';
537
+ &nbsp;
538
+ export class SCInteraction {
539
+ private xo: SmartContract;
540
+ private call: ContractQueryRunner;
541
+ constructor(marketAbiXOXNO: SmartContract) {
542
+ this.xo = marketAbiXOXNO;
543
+ this.call = new ContractQueryRunner();
544
+ }
545
+ &nbsp;
546
+ static async create() {
547
+ const config = APIClient.getClient().config;
548
+ const marketAbiXOXNO = await SmartContractAbis.getMarket();
549
+ const xo_abi = getSmartContract(
550
+ marketAbiXOXNO,
551
+ new Address(config.XO_SC),
552
+ 'XOXNOProtocol'
553
+ );
554
+ &nbsp;
555
+ return new SCInteraction(xo_abi);
556
+ }
557
+ &nbsp;
558
+ private async getResult(interaction: Interaction) {
559
+ return await this.call.runQuery(this.xo, interaction);
560
+ }
561
+ &nbsp;
562
+ /**
563
+ * Gets the percentage of each transaction that will be paid to the marketplace.
564
+ *
565
+ * @returns The percentage of each transaction that will be paid to the marketplace.
566
+ */
567
+ public getMarketplaceFees = async (): Promise&lt;number&gt; =&gt; {
568
+ const interaction = this.xo.methods.getMarketplaceCutPercentage();
569
+ const result = await this.getResult(interaction);
570
+ return parseInt(result.firstValue?.valueOf());
571
+ };
572
+ &nbsp;
573
+ /**
574
+ * Retrieves the list of accepted payment tokens.
575
+ * @returns {string[]} A list of accepted payment tokens.
576
+ */
577
+ public getAcceptedPaymentTokens = async (): Promise&lt;string[]&gt; =&gt; {
578
+ const interaction = this.xo.methods.getAcceptedTokens();
579
+ const result = await this.getResult(interaction);
580
+ return result.firstValue?.valueOf();
581
+ };
582
+ &nbsp;
583
+ /**
584
+ * This function returns a list of IDs of global offers.
585
+ * @returns {number[]} a list of IDs of global offers.
586
+ */
587
+ &nbsp;
588
+ public getGlobalOfferIDs = async (): Promise&lt;number[]&gt; =&gt; {
589
+ const interaction = this.xo.methods.getGlobalOffers();
590
+ const result = await this.getResult(interaction);
591
+ return result.firstValue?.valueOf().map((id: string) =&gt; parseInt(id));
592
+ };
593
+ &nbsp;
594
+ /**
595
+ * Gets the balance of a user in a token of a specific pool.
596
+ * @param address The address of the user.
597
+ * @param token The token address.
598
+ * @param nonce The nonce of the pool.
599
+ * @returns {number} The balance of the user in the token of the pool.
600
+ */
601
+ async getUserPoolBalance(
602
+ address: string,
603
+ token: string,
604
+ nonce: number
605
+ ): Promise&lt;number&gt; {
606
+ const result = await this.getResult(
607
+ this.xo.methods.userDeposit([address, token, nonce])
608
+ );
609
+ &nbsp;
610
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!result?.firstValue) {
611
+ <span class="cstat-no" title="statement not covered" > return 0;</span>
612
+ }
613
+ return new BigUIntValue(result.firstValue.valueOf().amount)
614
+ .valueOf()
615
+ .shiftedBy(-18)
616
+ .toNumber();
617
+ }
618
+ &nbsp;
619
+ // function to determine if the offer is active
620
+ // based on the offer price and user balance
621
+ private <span class="fstat-no" title="function not covered" >isOfferActive(</span>offer_price: number, user_balance: number): boolean {
622
+ <span class="cstat-no" title="statement not covered" > return offer_price &lt;= user_balance;</span>
623
+ }
624
+ &nbsp;
625
+ /**
626
+ * Returns the global offer data for the offer with the given id.
627
+ *
628
+ * @param global_offer_id The id of the global offer for which to return the data.
629
+ *
630
+ * @returns An object containing the global offer data for the offer with the given id. If the global offer id is invalid, the return value will be null.
631
+ */
632
+ &nbsp;
633
+ public getGlobalOfferData = async (
634
+ global_offer_id: number
635
+ ): Promise&lt;GlobalOffer&gt; =&gt; {
636
+ const interaction = this.xo.methods.getGlobalOffer([global_offer_id]);
637
+ const result = await this.getResult(interaction);
638
+ const body = result.firstValue?.valueOf();
639
+ body.offer_id = parseInt(body.offer_id.valueOf());
640
+ body.marketplace = 'XO';
641
+ body.short_price = parseFloat(
642
+ new BigUIntValue(body.price).valueOf().shiftedBy(-18).toString()
643
+ );
644
+ console.log(body.new_version);
645
+ body.new_version = Boolean(body.new_version);
646
+ console.log(body.new_version);
647
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!body.new_version) {
648
+ <span class="cstat-no" title="statement not covered" > body.isActive = this.isOfferActive(</span>
649
+ body.short_price,
650
+ await this.getUserPoolBalance(
651
+ body.owner,
652
+ body.payment_token,
653
+ body.payment_nonce
654
+ )
655
+ );
656
+ } else {
657
+ body.isActive = true;
658
+ }
659
+ body.quantity = parseInt(body.quantity.valueOf());
660
+ body.payment_nonce = parseInt(body.payment_nonce.valueOf());
661
+ body.price = body.price.valueOf();
662
+ &nbsp;
663
+ body.timestamp = parseInt(body.timestamp.valueOf());
664
+ body.owner = body.owner.valueOf().toString();
665
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (body.attributes) {
666
+ <span class="cstat-no" title="statement not covered" > body.attributes = JSON.parse(</span>
667
+ Buffer.from(body.attributes.valueOf().toString(), 'base64').toString(
668
+ 'ascii'
669
+ )
670
+ );
671
+ }
672
+ return body as GlobalOffer;
673
+ };
674
+ &nbsp;
675
+ /** Gets the number of listings.
676
+ * @returns {number} The number of listings.
677
+ * */
678
+ public async getListingsCount(): Promise&lt;number&gt; {
679
+ const result = await this.getResult(this.xo.methods.getListingsCount());
680
+ const count = parseInt(result.firstValue?.valueOf());
681
+ return count;
682
+ }
683
+ &nbsp;
684
+ /** Gets the number of custom offers.
685
+ * @returns {number} The number of custom offers.
686
+ * */
687
+ public async getOffersCount(): Promise&lt;number&gt; {
688
+ const result = await this.getResult(this.xo.methods.getOffersCount());
689
+ const count = parseInt(result.firstValue?.valueOf());
690
+ return count;
691
+ }
692
+ &nbsp;
693
+ /** Gets the number of global offers.
694
+ * @returns {number} The number of global offers.
695
+ * */
696
+ public async getGlobalOffersCount(): Promise&lt;number&gt; {
697
+ const result = await this.getResult(this.xo.methods.getGlobalOffersCount());
698
+ const count = parseInt(result.firstValue?.valueOf());
699
+ return count;
700
+ }
701
+ &nbsp;
702
+ /** Gets the number of collections listed.
703
+ * @returns {number} The number of collections listed.
704
+ * */
705
+ public async getCollectionsCount(): Promise&lt;number&gt; {
706
+ const result = await this.getResult(this.xo.methods.getCollectionsCount());
707
+ const count = parseInt(result.firstValue?.valueOf());
708
+ return count;
709
+ }
710
+ &nbsp;
711
+ /**
712
+ * Checks whether a collection is listed with at least 1 NFT.
713
+ *
714
+ * @param collection name of the collection
715
+ * @return true if the collection is listed, false otherwise
716
+ */
717
+ public async isCollectionListed(collection: string): Promise&lt;boolean&gt; {
718
+ const result = await this.getResult(
719
+ this.xo.methods.isCollectionListed([collection])
720
+ );
721
+ return Boolean(result.firstValue?.valueOf());
722
+ }
723
+ &nbsp;
724
+ /** Gets the on sale NFT count of the collection.
725
+ *
726
+ * @param collection The collection identifier for which one wants to get the on sale NFT count.
727
+ *
728
+ * @returns {number} The on sale NFT count of the collection.
729
+ * */
730
+ public async getCollectionNFTsOnSaleCount(
731
+ collection: string
732
+ ): Promise&lt;number&gt; {
733
+ const result = await this.getResult(
734
+ this.xo.methods.getTokenItemsForSaleCount([collection])
735
+ );
736
+ return parseInt(result.firstValue?.valueOf());
737
+ }
738
+ &nbsp;
739
+ /** Gets the active unique auction IDs of collection.
740
+ *
741
+ * @param collection The collection identifier for which one wants to get the active unique auction IDs.
742
+ *
743
+ * @returns {number[]} The active unique auction IDs of collection.
744
+ * */
745
+ &nbsp;
746
+ public async getAuctionIDsForCollection(
747
+ collection: string
748
+ ): Promise&lt;number[]&gt; {
749
+ const result = await this.getResult(
750
+ this.xo.methods.getAuctionsForTicker([collection])
751
+ );
752
+ const ids = result.firstValue?.valueOf().map((id: string) =&gt; parseInt(id));
753
+ return ids;
754
+ }
755
+ }
756
+ &nbsp;</pre></td></tr></table></pre>
757
+
758
+ <div class='push'></div><!-- for sticky footer -->
759
+ </div><!-- /wrapper -->
760
+ <div class='footer quiet pad2 space-top1 center small'>
761
+ Code coverage generated by
762
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
763
+ at 2023-04-01T00:54:20.155Z
764
+ </div>
765
+ <script src="../prettify.js"></script>
766
+ <script>
767
+ window.onload = function () {
768
+ prettyPrint();
769
+ };
770
+ </script>
771
+ <script src="../sorter.js"></script>
772
+ <script src="../block-navigation.js"></script>
773
+ </body>
774
+ </html>
775
+