@xoxno/sdk-js 0.0.1 → 0.0.2-alpha

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 (111) hide show
  1. package/.github/workflows/npm-publish.yml +33 -0
  2. package/README.md +22 -0
  3. package/dist/xoxno.min.js +1 -0
  4. package/package.json +1 -1
  5. package/src/launchpad/__tests__/market.test.ts +25 -0
  6. package/src/launchpad/index.ts +166 -0
  7. package/coverage/clover.xml +0 -280
  8. package/coverage/coverage-final.json +0 -12
  9. package/coverage/lcov-report/base.css +0 -224
  10. package/coverage/lcov-report/block-navigation.js +0 -87
  11. package/coverage/lcov-report/collection/index.html +0 -116
  12. package/coverage/lcov-report/collection/index.ts.html +0 -559
  13. package/coverage/lcov-report/favicon.png +0 -0
  14. package/coverage/lcov-report/index.html +0 -161
  15. package/coverage/lcov-report/interactions/index.html +0 -116
  16. package/coverage/lcov-report/interactions/index.ts.html +0 -775
  17. package/coverage/lcov-report/nft/index.html +0 -116
  18. package/coverage/lcov-report/nft/index.ts.html +0 -379
  19. package/coverage/lcov-report/prettify.css +0 -1
  20. package/coverage/lcov-report/prettify.js +0 -2
  21. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  22. package/coverage/lcov-report/sorter.js +0 -196
  23. package/coverage/lcov-report/utils/SmartContractAbis.ts.html +0 -331
  24. package/coverage/lcov-report/utils/SmartContractService.ts.html +0 -136
  25. package/coverage/lcov-report/utils/api.ts.html +0 -484
  26. package/coverage/lcov-report/utils/const.ts.html +0 -163
  27. package/coverage/lcov-report/utils/getActivity.ts.html +0 -250
  28. package/coverage/lcov-report/utils/helpers.ts.html +0 -127
  29. package/coverage/lcov-report/utils/index.html +0 -221
  30. package/coverage/lcov-report/utils/regex.ts.html +0 -106
  31. package/coverage/lcov-report/utils/scCalls.ts.html +0 -229
  32. package/coverage/lcov.info +0 -525
  33. package/docs/.nojekyll +0 -1
  34. package/docs/assets/highlight.css +0 -64
  35. package/docs/assets/main.js +0 -58
  36. package/docs/assets/search.js +0 -1
  37. package/docs/assets/style.css +0 -1279
  38. package/docs/classes/collection.CollectionModule.html +0 -232
  39. package/docs/classes/interactions.SCInteraction.html +0 -370
  40. package/docs/classes/nft.NFTModule.html +0 -208
  41. package/docs/classes/utils_SmartContractAbis.SmartContractAbis.html +0 -198
  42. package/docs/classes/utils_api.APIClient.html +0 -212
  43. package/docs/classes/utils_scCalls.ContractQueryRunner.html +0 -129
  44. package/docs/enums/types_collection.FieldsToSelect.html +0 -186
  45. package/docs/enums/types_collection.Marketplace.html +0 -102
  46. package/docs/enums/types_collection.SearchOrderBy.html +0 -130
  47. package/docs/enums/types_trading.OrderByTradingActivity.html +0 -102
  48. package/docs/enums/types_trading.SelectFieldsTradingActivity.html +0 -144
  49. package/docs/enums/utils_api.Chain.html +0 -88
  50. package/docs/functions/utils_SmartContractService.getSmartContract.html +0 -77
  51. package/docs/functions/utils_getActivity.getActivity.html +0 -89
  52. package/docs/functions/utils_helpers.getIdentifierFromColAndNonce.html +0 -76
  53. package/docs/functions/utils_helpers.nonceToHex.html +0 -74
  54. package/docs/functions/utils_regex.isValidCollectionTicker.html +0 -74
  55. package/docs/functions/utils_regex.isValidNftIdentifier.html +0 -74
  56. package/docs/index.html +0 -55
  57. package/docs/interfaces/types_collection.AttributeData.html +0 -99
  58. package/docs/interfaces/types_collection.Filter.html +0 -157
  59. package/docs/interfaces/types_collection.GlobalOffer.html +0 -176
  60. package/docs/interfaces/types_collection.ICollectionAttributes.html +0 -85
  61. package/docs/interfaces/types_collection.ICollectionProfile.html +0 -263
  62. package/docs/interfaces/types_collection.IMintInfo.html +0 -155
  63. package/docs/interfaces/types_collection.ISocials.html +0 -127
  64. package/docs/interfaces/types_collection.MetadataAttribute.html +0 -92
  65. package/docs/interfaces/types_collection.SearchNFTs.html +0 -127
  66. package/docs/interfaces/types_collection.SearchNFTsArgs.html +0 -225
  67. package/docs/interfaces/types_collection.SearchNFTsResponse.html +0 -132
  68. package/docs/interfaces/types_collection.TradingActivity.html +0 -232
  69. package/docs/interfaces/types_collection.TraitValues.html +0 -85
  70. package/docs/interfaces/types_nft.GameData.html +0 -92
  71. package/docs/interfaces/types_nft.NFTAttribute.html +0 -127
  72. package/docs/interfaces/types_nft.NFTMetadata.html +0 -104
  73. package/docs/interfaces/types_nft.NftData.html +0 -253
  74. package/docs/interfaces/types_nft.NftValue.html +0 -106
  75. package/docs/interfaces/types_nft.OffersInfo.html +0 -169
  76. package/docs/interfaces/types_nft.OriginalMedia.html +0 -92
  77. package/docs/interfaces/types_nft.SaleInfoNft.html +0 -211
  78. package/docs/interfaces/types_trading.TradincActivityArgs.html +0 -225
  79. package/docs/interfaces/types_trading.TradingActivityQueryFilter.html +0 -151
  80. package/docs/interfaces/types_trading.TradingActivityResponse.html +0 -106
  81. package/docs/modules/collection.html +0 -71
  82. package/docs/modules/interactions.html +0 -71
  83. package/docs/modules/nft.html +0 -71
  84. package/docs/modules/types.html +0 -189
  85. package/docs/modules/types_collection.html +0 -104
  86. package/docs/modules/types_interactions.html +0 -69
  87. package/docs/modules/types_nft.html +0 -85
  88. package/docs/modules/types_trading.html +0 -82
  89. package/docs/modules/utils_SmartContractAbis.html +0 -71
  90. package/docs/modules/utils_SmartContractService.html +0 -71
  91. package/docs/modules/utils_api.html +0 -76
  92. package/docs/modules/utils_const.html +0 -95
  93. package/docs/modules/utils_getActivity.html +0 -71
  94. package/docs/modules/utils_helpers.html +0 -73
  95. package/docs/modules/utils_regex.html +0 -73
  96. package/docs/modules/utils_scCalls.html +0 -71
  97. package/docs/modules.html +0 -76
  98. package/docs/types/types_interactions.Offer.html +0 -89
  99. package/docs/variables/utils_const.API_URL.html +0 -76
  100. package/docs/variables/utils_const.API_URL_DEV.html +0 -76
  101. package/docs/variables/utils_const.DR_SC.html +0 -76
  102. package/docs/variables/utils_const.FM_SC.html +0 -76
  103. package/docs/variables/utils_const.KG_SC.html +0 -76
  104. package/docs/variables/utils_const.Manager_SC.html +0 -76
  105. package/docs/variables/utils_const.Manager_SC_DEV.html +0 -76
  106. package/docs/variables/utils_const.P2P_SC.html +0 -76
  107. package/docs/variables/utils_const.P2P_SC_DEV.html +0 -76
  108. package/docs/variables/utils_const.Staking_SC.html +0 -76
  109. package/docs/variables/utils_const.Staking_SC_DEV.html +0 -76
  110. package/docs/variables/utils_const.XOXNO_SC.html +0 -76
  111. package/docs/variables/utils_const.XOXNO_SC_DEV.html +0 -76
@@ -1,775 +0,0 @@
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
-