@witnet/solidity 3.0.4 → 3.0.5

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 (222) hide show
  1. package/LICENSE +2 -2
  2. package/build/contracts/Bech32.json +1 -1
  3. package/build/contracts/Clonable.json +1 -1
  4. package/build/contracts/Context.json +1 -1
  5. package/build/contracts/Create3.json +1 -1
  6. package/build/contracts/ERC165.json +1 -1
  7. package/build/contracts/Escrowable.json +1 -1
  8. package/build/contracts/IChainlinkAggregatorV3.json +1 -1
  9. package/build/contracts/IERC165.json +1 -1
  10. package/build/contracts/IERC20.json +1 -1
  11. package/build/contracts/IERC2362.json +1 -1
  12. package/build/contracts/IPythChainlinkAggregatorV3.json +1 -1
  13. package/build/contracts/IWitAppliance.json +1 -1
  14. package/build/contracts/IWitOracle.json +1 -1
  15. package/build/contracts/IWitOracleAppliance.json +1 -1
  16. package/build/contracts/IWitOracleConsumer.json +1 -1
  17. package/build/contracts/IWitOracleConsumerLegacy.json +1 -1
  18. package/build/contracts/IWitOracleLegacy.json +1 -1
  19. package/build/contracts/IWitOracleQueriable.json +1 -1
  20. package/build/contracts/IWitOracleQueriableConsumer.json +1 -1
  21. package/build/contracts/IWitOracleQueriableEvents.json +1 -1
  22. package/build/contracts/IWitOracleQueriableExperimental.json +1 -1
  23. package/build/contracts/IWitOracleQueriableTrustableReporter.json +1 -1
  24. package/build/contracts/IWitOracleQueriableTrustlessReporter.json +1 -1
  25. package/build/contracts/IWitOracleRadonRegistry.json +1 -1
  26. package/build/contracts/IWitOracleRadonRegistryEvents.json +1 -1
  27. package/build/contracts/IWitOracleRadonRegistryLegacy.json +1 -1
  28. package/build/contracts/IWitOracleRadonRequestFactory.json +1 -1
  29. package/build/contracts/IWitOracleRadonRequestModal.json +1 -1
  30. package/build/contracts/IWitOracleRadonRequestTemplate.json +1 -1
  31. package/build/contracts/IWitOracleRequest.json +1 -1
  32. package/build/contracts/IWitOracleRequestFactory.json +1 -1
  33. package/build/contracts/IWitOracleRequestFactoryEvents.json +1 -1
  34. package/build/contracts/IWitOracleRequestTemplate.json +1 -1
  35. package/build/contracts/IWitOracleTrustableAdmin.json +1 -1
  36. package/build/contracts/IWitOracleTrustless.json +1 -1
  37. package/build/contracts/IWitPriceFeeds.json +1 -1
  38. package/build/contracts/IWitPriceFeedsAdmin.json +1 -1
  39. package/build/contracts/IWitPriceFeedsConsumer.json +1 -1
  40. package/build/contracts/IWitPriceFeedsEvents.json +1 -1
  41. package/build/contracts/IWitPriceFeedsLegacy.json +1 -1
  42. package/build/contracts/IWitPriceFeedsLegacyAdmin.json +1 -1
  43. package/build/contracts/IWitPriceFeedsLegacySolver.json +1 -1
  44. package/build/contracts/IWitPriceFeedsLegacySolverFactory.json +1 -1
  45. package/build/contracts/IWitPriceFeedsTypes.json +1 -1
  46. package/build/contracts/IWitPyth.json +1 -1
  47. package/build/contracts/IWitPythChainlinkAggregator.json +1 -1
  48. package/build/contracts/IWitPythErrors.json +1 -1
  49. package/build/contracts/IWitPythEvents.json +1 -1
  50. package/build/contracts/IWitPythReporter.json +1 -1
  51. package/build/contracts/IWitRandomness.json +1 -1
  52. package/build/contracts/IWitRandomnessAdmin.json +1 -1
  53. package/build/contracts/IWitRandomnessAdminV2.json +1 -1
  54. package/build/contracts/IWitRandomnessConsumer.json +1 -1
  55. package/build/contracts/IWitRandomnessEvents.json +1 -1
  56. package/build/contracts/IWitRandomnessLegacy.json +1 -1
  57. package/build/contracts/IWitRandomnessTypes.json +1 -1
  58. package/build/contracts/Initializable.json +1 -1
  59. package/build/contracts/OVM_GasPriceOracle.json +1 -1
  60. package/build/contracts/Ownable.json +1 -1
  61. package/build/contracts/Ownable2Step.json +1 -1
  62. package/build/contracts/Payable.json +1 -1
  63. package/build/contracts/Proxiable.json +1 -1
  64. package/build/contracts/ReentrancyGuard.json +1 -1
  65. package/build/contracts/Secp256k1.json +1 -1
  66. package/build/contracts/Slices.json +1 -1
  67. package/build/contracts/TestBech32.json +1 -1
  68. package/build/contracts/TestSecp256k1.json +1 -1
  69. package/build/contracts/Upgradeable.json +1 -1
  70. package/build/contracts/UsingWitOracle.json +1 -1
  71. package/build/contracts/UsingWitPriceFeeds.json +1 -1
  72. package/build/contracts/UsingWitRandomness.json +1 -1
  73. package/build/contracts/WitOracle.json +2 -13
  74. package/build/contracts/WitOracleBasePushOnly.json +1 -1
  75. package/build/contracts/WitOracleBasePushOnlyTrustable.json +1 -1
  76. package/build/contracts/WitOracleBasePushOnlyTrustless.json +1 -1
  77. package/build/contracts/WitOracleBasePushOnlyUpgradable.json +1 -1
  78. package/build/contracts/WitOracleBaseQueriable.json +1 -1
  79. package/build/contracts/WitOracleBaseQueriableTrustable.json +1 -1
  80. package/build/contracts/WitOracleBaseQueriableTrustless.json +1 -1
  81. package/build/contracts/WitOracleBaseQueriableUpgradable.json +1 -1
  82. package/build/contracts/WitOracleDataLib.json +2 -254
  83. package/build/contracts/WitOraclePushOnly.json +1 -1
  84. package/build/contracts/WitOracleRadonEncodingLib.json +2 -13
  85. package/build/contracts/WitOracleRadonRegistry.json +2 -13
  86. package/build/contracts/WitOracleRadonRegistryBase.json +1 -1
  87. package/build/contracts/WitOracleRadonRegistryBaseUpgradable.json +1 -1
  88. package/build/contracts/WitOracleRadonRegistryData.json +1 -1
  89. package/build/contracts/WitOracleRadonRegistryDefaultV21.json +1 -1
  90. package/build/contracts/WitOracleRadonRegistryUpgradableDefault.json +2 -17
  91. package/build/contracts/WitOracleRadonRegistryUpgradableNoSha256.json +1 -1
  92. package/build/contracts/WitOracleRadonRegistryUpgradableZkSync.json +1 -1
  93. package/build/contracts/WitOracleRadonRequestFactory.json +2 -13
  94. package/build/contracts/WitOracleRadonRequestFactoryBase.json +1 -1
  95. package/build/contracts/WitOracleRadonRequestFactoryBaseUpgradable.json +1 -1
  96. package/build/contracts/WitOracleRadonRequestFactoryModals.json +2 -13
  97. package/build/contracts/WitOracleRadonRequestFactoryModalsDefault.json +2 -13
  98. package/build/contracts/WitOracleRadonRequestFactoryTemplates.json +2 -13
  99. package/build/contracts/WitOracleRadonRequestFactoryTemplatesDefault.json +2 -13
  100. package/build/contracts/WitOracleRadonRequestFactoryUpgradableConfluxCore.json +1 -1
  101. package/build/contracts/WitOracleRadonRequestFactoryUpgradableDefault.json +2 -13
  102. package/build/contracts/WitOracleResultStatusLib.json +2 -14
  103. package/build/contracts/WitOracleTrustableDefault.json +2 -259
  104. package/build/contracts/WitOracleTrustableExperimental.json +1 -1
  105. package/build/contracts/WitOracleTrustableObscuro.json +1 -1
  106. package/build/contracts/WitOracleTrustableOvm2.json +1 -1
  107. package/build/contracts/WitOracleTrustablePushOnly.json +1 -1
  108. package/build/contracts/WitOracleTrustableReef.json +1 -1
  109. package/build/contracts/WitOracleTrustableZkSync.json +1 -1
  110. package/build/contracts/WitOracleTrustlessDataLib.json +1 -1
  111. package/build/contracts/WitOracleTrustlessDefaultV22.json +1 -1
  112. package/build/contracts/WitOracleTrustlessUpgradableDefault.json +1 -1
  113. package/build/contracts/WitPriceFeeds.json +2 -13
  114. package/build/contracts/WitPriceFeedsDataLib.json +2 -14
  115. package/build/contracts/WitPriceFeedsLegacy.json +2 -8
  116. package/build/contracts/WitPriceFeedsLegacyDataLib.json +2 -84
  117. package/build/contracts/WitPriceFeedsLegacyUpgradable.json +1 -1
  118. package/build/contracts/WitPriceFeedsLegacyUpgradableBypass.json +2 -80
  119. package/build/contracts/WitPriceFeedsSolverBase.json +1 -1
  120. package/build/contracts/WitPriceFeedsV3.json +1 -1
  121. package/build/contracts/WitPriceFeedsV3Upgradable.json +2 -17
  122. package/build/contracts/WitPythChainlinkAggregator.json +1 -1
  123. package/build/contracts/WitRandomness.json +2 -13
  124. package/build/contracts/WitRandomnessLegacy.json +1 -1
  125. package/build/contracts/WitRandomnessV3.json +2 -13
  126. package/build/contracts/WitRngConsumer.json +1 -1
  127. package/build/contracts/Witnet.json +1 -1
  128. package/build/contracts/WitnetBuffer.json +1 -1
  129. package/build/contracts/WitnetCBOR.json +1 -1
  130. package/build/contracts/WitnetDeployer.json +2 -13
  131. package/build/contracts/WitnetDeployerConfluxCore.json +1 -1
  132. package/build/contracts/WitnetDeployerDeferred.json +1 -1
  133. package/build/contracts/WitnetDeployerMeter.json +1 -1
  134. package/build/contracts/WitnetProxy.json +2 -9
  135. package/build/contracts/WitnetUpgradableBase.json +1 -1
  136. package/{migrations → dist/migrations}/addresses.json +1 -25
  137. package/{migrations → dist/migrations}/constructorArgs.json +1 -6
  138. package/dist/migrations/settings/artifacts.d.ts +95 -0
  139. package/dist/migrations/settings/artifacts.d.ts.map +1 -0
  140. package/dist/migrations/settings/artifacts.js +80 -0
  141. package/dist/migrations/settings/networks.d.ts +593 -0
  142. package/dist/migrations/settings/networks.d.ts.map +1 -0
  143. package/dist/migrations/settings/networks.js +593 -0
  144. package/dist/src/bin/helpers.cjs +350 -0
  145. package/dist/src/bin/helpers.d.cts +76 -0
  146. package/dist/src/bin/helpers.d.cts.map +1 -0
  147. package/dist/src/index.d.ts +6 -0
  148. package/dist/src/index.d.ts.map +1 -0
  149. package/dist/src/index.js +33 -0
  150. package/dist/src/lib/types.d.ts +99 -0
  151. package/dist/src/lib/types.d.ts.map +1 -0
  152. package/dist/src/lib/types.js +18 -0
  153. package/dist/src/lib/utils.d.ts +22 -0
  154. package/dist/src/lib/utils.d.ts.map +1 -0
  155. package/dist/src/lib/utils.js +267 -0
  156. package/dist/src/lib/wrappers/ContractWrapper.d.ts +47 -0
  157. package/dist/src/lib/wrappers/ContractWrapper.d.ts.map +1 -0
  158. package/dist/src/lib/wrappers/ContractWrapper.js +81 -0
  159. package/dist/src/lib/wrappers/WitAppliance.d.ts +7 -0
  160. package/dist/src/lib/wrappers/WitAppliance.d.ts.map +1 -0
  161. package/dist/src/lib/wrappers/WitAppliance.js +17 -0
  162. package/dist/src/lib/wrappers/WitArtifact.d.ts +6 -0
  163. package/dist/src/lib/wrappers/WitArtifact.d.ts.map +1 -0
  164. package/dist/src/lib/wrappers/WitArtifact.js +16 -0
  165. package/dist/src/lib/wrappers/WitOracle.d.ts +105 -0
  166. package/dist/src/lib/wrappers/WitOracle.d.ts.map +1 -0
  167. package/dist/src/lib/wrappers/WitOracle.js +217 -0
  168. package/dist/src/lib/wrappers/WitOracleConsumer.d.ts +16 -0
  169. package/dist/src/lib/wrappers/WitOracleConsumer.d.ts.map +1 -0
  170. package/dist/src/lib/wrappers/WitOracleConsumer.js +30 -0
  171. package/dist/src/lib/wrappers/WitOracleRadonRegistry.d.ts +102 -0
  172. package/dist/src/lib/wrappers/WitOracleRadonRegistry.d.ts.map +1 -0
  173. package/dist/src/lib/wrappers/WitOracleRadonRegistry.js +140 -0
  174. package/dist/src/lib/wrappers/WitOracleRadonRequestFactory.d.ts +81 -0
  175. package/dist/src/lib/wrappers/WitOracleRadonRequestFactory.d.ts.map +1 -0
  176. package/dist/src/lib/wrappers/WitOracleRadonRequestFactory.js +257 -0
  177. package/dist/src/lib/wrappers/WitPriceFeeds.d.ts +91 -0
  178. package/dist/src/lib/wrappers/WitPriceFeeds.d.ts.map +1 -0
  179. package/dist/src/lib/wrappers/WitPriceFeeds.js +356 -0
  180. package/dist/src/lib/wrappers/WitPriceFeedsLegacy.d.ts +14 -0
  181. package/dist/src/lib/wrappers/WitPriceFeedsLegacy.d.ts.map +1 -0
  182. package/dist/src/lib/wrappers/WitPriceFeedsLegacy.js +64 -0
  183. package/dist/src/lib/wrappers/WitRandomness.d.ts +55 -0
  184. package/dist/src/lib/wrappers/WitRandomness.d.ts.map +1 -0
  185. package/dist/src/lib/wrappers/WitRandomness.js +165 -0
  186. package/dist/src/lib/wrappers.d.ts +8 -0
  187. package/dist/src/lib/wrappers.d.ts.map +1 -0
  188. package/dist/src/lib/wrappers.js +8 -0
  189. package/package.json +78 -54
  190. package/scripts/clean.cjs +21 -0
  191. package/scripts/eth-create2.cjs +38 -0
  192. package/scripts/eth-create3.cjs +45 -0
  193. package/scripts/postinstall.cjs +9 -0
  194. package/scripts/prepare.cjs +27 -0
  195. package/scripts/vanity2gen.cjs +121 -0
  196. package/scripts/vanity3gen.cjs +84 -0
  197. package/scripts/verify-proxies.cjs +50 -0
  198. package/scripts/verify-truffle.cjs +69 -0
  199. package/scripts/verify.js +95 -0
  200. package/scripts/wof-acls.js +17 -0
  201. package/src/bin/bots/bridge.cjs +0 -0
  202. package/src/bin/bots/randomizer.cjs +290 -0
  203. package/src/bin/bots/reporter.cjs +0 -0
  204. package/src/bin/cli/accounts.cjs +47 -0
  205. package/src/bin/cli/assets.cjs +466 -0
  206. package/src/bin/cli/framework.cjs +100 -0
  207. package/src/bin/cli/gateway.cjs +26 -0
  208. package/src/bin/cli/networks.cjs +63 -0
  209. package/src/bin/cli/priceFeeds.cjs +170 -0
  210. package/src/bin/cli/queries.cjs +217 -0
  211. package/src/bin/cli/randomness.cjs +367 -0
  212. package/src/bin/cli/reports.cjs +272 -0
  213. package/src/bin/cli/wizard.cjs +352 -0
  214. package/src/bin/helpers.cjs +388 -0
  215. package/src/bin/index.cjs +407 -0
  216. package/settings/artifacts.js +0 -71
  217. package/settings/index.js +0 -49
  218. package/settings/networks.js +0 -593
  219. package/settings/solidity.js +0 -11
  220. package/settings/specs.js +0 -102
  221. package/src/index.js +0 -96
  222. package/src/utils.js +0 -305
@@ -0,0 +1,350 @@
1
+ "use strict";
2
+ const fs = require("node:fs");
3
+ const merge = require("lodash.merge");
4
+ const addresses = require("../../migrations/addresses.json");
5
+ const artifacts = require("../../migrations/settings/artifacts.js").default;
6
+ const constructorArgs = require("../../migrations/constructorArgs.json");
7
+ const DEFAULT_BATCH_SIZE = 64;
8
+ const DEFAULT_LIMIT = 64;
9
+ const DEFAULT_SINCE = -5000;
10
+ const WITNET_SDK_RADON_ASSETS_PATH = process.env.WITNET_SDK_RADON_ASSETS_PATH || "../../../../witnet/assets";
11
+ const isModuleInitialized = fs.existsSync("./witnet/assets/index.cjs");
12
+ function* chunks(arr, n) {
13
+ for (let i = 0; i < arr.length; i += n) {
14
+ yield arr.slice(i, i + n);
15
+ }
16
+ }
17
+ const colors = {
18
+ blue: (str) => `\x1b[34m${str}\x1b[0m`,
19
+ cyan: (str) => `\x1b[36m${str}\x1b[0m`,
20
+ gray: (str) => `\x1b[90m${str}\x1b[0m`,
21
+ green: (str) => `\x1b[32m${str}\x1b[0m`,
22
+ magenta: (str) => `\x1b[0;35m${str}\x1b[0m`,
23
+ red: (str) => `\x1b[31m${str}\x1b[0m`,
24
+ yellow: (str) => `\x1b[33m${str}\x1b[0m`,
25
+ white: (str) => `\x1b[0;38m${str}\x1b[0m`,
26
+ lblue: (str) => `\x1b[1;94m${str}\x1b[0m`,
27
+ lcyan: (str) => `\x1b[1;96m${str}\x1b[0m`,
28
+ lgreen: (str) => `\x1b[1;92m${str}\x1b[0m`,
29
+ lmagenta: (str) => `\x1b[1;95m${str}\x1b[0m`,
30
+ lwhite: (str) => `\x1b[0;1;98m${str}\x1b[0m`,
31
+ lyellow: (str) => `\x1b[1;93m${str}\x1b[0m`,
32
+ mblue: (str) => `\x1b[94m${str}\x1b[0m`,
33
+ mcyan: (str) => `\x1b[96m${str}\x1b[0m`,
34
+ mgreen: (str) => `\x1b[92m${str}\x1b[0m`,
35
+ mmagenta: (str) => `\x1b[0;95m${str}\x1b[0m`,
36
+ mred: (str) => `\x1b[91m${str}\x1b[0m`,
37
+ myellow: (str) => `\x1b[93m${str}\x1b[0m`,
38
+ };
39
+ const colorstrip = (str) => str.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, "");
40
+ const commas = (number) => {
41
+ const parts = number?.toString().split(".") || [""];
42
+ const result = parts.length <= 1
43
+ ? `${parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",")}`
44
+ : `${parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",")}.${parts[1]}`;
45
+ return result;
46
+ };
47
+ function deleteExtraFlags(args) {
48
+ const deleted = [];
49
+ return [
50
+ args?.filter((arg) => {
51
+ if (arg.startsWith("--")) {
52
+ deleted.push(arg.slice(2));
53
+ return false;
54
+ }
55
+ else {
56
+ return true;
57
+ }
58
+ }),
59
+ deleted,
60
+ ];
61
+ }
62
+ function extractFlagsFromArgs(args, flags) {
63
+ const curated = {};
64
+ if (args && Array.isArray(args) && flags) {
65
+ flags.forEach((flag) => {
66
+ const index = args.indexOf(`--${flag}`);
67
+ if (index >= 0) {
68
+ curated[flag] = true;
69
+ args.splice(index, 1);
70
+ }
71
+ });
72
+ }
73
+ return [args || [], curated];
74
+ }
75
+ function extractOptionsFromArgs(args, options) {
76
+ const curated = {};
77
+ if (args && Array.isArray(args) && options) {
78
+ options.forEach((option) => {
79
+ const index = args.indexOf(`--${option}`);
80
+ if (index >= 0) {
81
+ curated[option] = args[index];
82
+ if (!args[index + 1] || args[index + 1].startsWith("--")) {
83
+ args.splice(index, 1);
84
+ curated[option] = undefined;
85
+ }
86
+ else {
87
+ curated[option] = args[index + 1];
88
+ args.splice(index, 2);
89
+ }
90
+ }
91
+ });
92
+ }
93
+ return [args || [], curated];
94
+ }
95
+ function flattenObject(ob) {
96
+ const toReturn = {};
97
+ for (const i in ob) {
98
+ if (!Object.hasOwn(ob, i))
99
+ continue;
100
+ if (typeof ob[i] === "object" && ob[i] !== null) {
101
+ const flatObject = flattenObject(ob[i]);
102
+ for (const x in flatObject) {
103
+ if (!Object.hasOwn(flatObject, x))
104
+ continue;
105
+ toReturn[`${i}.${x}`] = flatObject[x];
106
+ }
107
+ }
108
+ else {
109
+ toReturn[i] = ob[i];
110
+ }
111
+ }
112
+ return toReturn;
113
+ }
114
+ function getNetworkAddresses(network) {
115
+ let res = addresses?.default;
116
+ getNetworkTagsFromString(network).forEach((net) => {
117
+ res = merge(res, addresses[net]);
118
+ });
119
+ return merge(res, fs.existsSync(`${WITNET_SDK_RADON_ASSETS_PATH}/../addresses.json`)
120
+ ? require(`${WITNET_SDK_RADON_ASSETS_PATH}/../addresses.json`)[network.toLowerCase()]
121
+ : {});
122
+ }
123
+ function getNetworkArtifacts(network) {
124
+ let res = artifacts?.default;
125
+ getNetworkTagsFromString(network).forEach((net) => {
126
+ res = merge(res, artifacts[net]);
127
+ });
128
+ return res;
129
+ }
130
+ function getNetworkConstructorArgs(network) {
131
+ let res = {};
132
+ getNetworkTagsFromString(network).forEach((net) => {
133
+ res = merge(res, constructorArgs[net]);
134
+ });
135
+ return res;
136
+ }
137
+ function getNetworkTagsFromString(network) {
138
+ network = network ? network.toLowerCase() : "development";
139
+ const tags = [];
140
+ const parts = network.split(":");
141
+ for (let ix = 0; ix < parts.length; ix++) {
142
+ tags.push(parts.slice(0, ix + 1).join(":"));
143
+ }
144
+ return tags;
145
+ }
146
+ function importRadonAssets(options) {
147
+ const assets = options?.legacy ? {} : require("@witnet/sdk/assets");
148
+ return isModuleInitialized &&
149
+ fs.existsSync(`${WITNET_SDK_RADON_ASSETS_PATH}/index.cjs`)
150
+ ? merge(assets, require(`${WITNET_SDK_RADON_ASSETS_PATH}/index.cjs`))
151
+ : assets;
152
+ }
153
+ function orderKeys(obj) {
154
+ const keys = Object.keys(obj).sort(function keyOrder(k1, k2) {
155
+ if (k1 < k2)
156
+ return -1;
157
+ else if (k1 > k2)
158
+ return +1;
159
+ else
160
+ return 0;
161
+ });
162
+ let i;
163
+ const after = {};
164
+ for (i = 0; i < keys.length; i++) {
165
+ after[keys[i]] = obj[keys[i]];
166
+ delete obj[keys[i]];
167
+ }
168
+ for (i = 0; i < keys.length; i++) {
169
+ obj[keys[i]] = after[keys[i]];
170
+ }
171
+ return obj;
172
+ }
173
+ function prompter(promise) {
174
+ const loading = (() => {
175
+ const h = ["|", "/", "-", "\\"];
176
+ let i = 0;
177
+ return setInterval(() => {
178
+ i = i > 3 ? 0 : i;
179
+ process.stdout.write(`\b\b${h[i]} `);
180
+ i++;
181
+ }, 50);
182
+ })();
183
+ return promise.then((result) => {
184
+ clearInterval(loading);
185
+ process.stdout.write("\b\b");
186
+ return result;
187
+ });
188
+ }
189
+ function readWitnetJsonFiles(...filenames) {
190
+ return Object.fromEntries(filenames.map((key) => {
191
+ const filepath = `./witnet/${key}.json`;
192
+ return [
193
+ key,
194
+ fs.existsSync(filepath) ? JSON.parse(fs.readFileSync(filepath)) : {},
195
+ ];
196
+ }));
197
+ }
198
+ function saveWitnetJsonFiles(data) {
199
+ Object.entries(data).forEach(([key, obj]) => {
200
+ const filepath = `./witnet/${key}.json`;
201
+ if (!fs.existsSync(filepath))
202
+ fs.writeFileSync(filepath, "{}");
203
+ const json = merge(JSON.parse(fs.readFileSync(filepath)), obj);
204
+ fs.writeFileSync(filepath, JSON.stringify(json, null, 4), { flag: "w+" });
205
+ });
206
+ }
207
+ function supportedNetworks(ecosystem) {
208
+ const networks = require("../../migrations/settings/networks.js").default;
209
+ return Object.fromEntries(Object.keys(constructorArgs)
210
+ .sort()
211
+ .filter((network) => network.indexOf(":") >= 0 &&
212
+ (!ecosystem || network.startsWith(ecosystem.toLowerCase())))
213
+ .map((network) => {
214
+ return [
215
+ network,
216
+ {
217
+ mainnet: networks[network]?.mainnet || false,
218
+ network_id: networks[network].network_id,
219
+ port: networks[network].port,
220
+ symbol: networks[network]?.symbol || "ETH",
221
+ verified: networks[network]?.verify?.explorerUrl,
222
+ },
223
+ ];
224
+ }));
225
+ }
226
+ function supportsNetwork(network) {
227
+ return network && Object.keys(constructorArgs).includes(network.toLowerCase());
228
+ }
229
+ function traceHeader(header, color = colors.white, indent = "") {
230
+ console.info(`${indent}┌─${"─".repeat(header.length)}─┐`);
231
+ console.info(`${indent}│ ${color(header)} │`);
232
+ console.info(`${indent}└─${"─".repeat(header.length)}─┘`);
233
+ }
234
+ function traceTable(records, options) {
235
+ const stringify = (data, humanizers, index) => humanizers?.[index]
236
+ ? humanizers[index](data).toString()
237
+ : (data?.toString() ?? "");
238
+ const reduceMax = (numbers) => numbers.reduce((curr, prev) => Math.max(curr, prev), 0);
239
+ if (!options)
240
+ options = {};
241
+ const indent = options?.indent || "";
242
+ const numColumns = reduceMax(records.map((record) => record?.length || 1));
243
+ const maxColumnWidth = options?.maxColumnWidth || 80;
244
+ const table = transpose(records, numColumns);
245
+ options.widths =
246
+ options?.widths ||
247
+ table.map((column, index) => {
248
+ let maxWidth = reduceMax(column.map((field) => colorstrip(stringify(field, options?.humanizers, index)).length));
249
+ if (options?.headlines?.[index]) {
250
+ maxWidth = Math.max(maxWidth, colorstrip(options.headlines[index].replaceAll(":", "")).length);
251
+ }
252
+ return Math.min(maxWidth, maxColumnWidth);
253
+ });
254
+ let headline = options.widths.map((maxWidth) => "─".repeat(maxWidth));
255
+ console.info(`${indent}┌─${headline.join("─┬─")}─┐`);
256
+ if (options?.headlines) {
257
+ headline = options.widths.map((maxWidth, index) => {
258
+ const caption = options.headlines[index].replaceAll(":", "");
259
+ const captionLength = colorstrip(caption).length;
260
+ return `${colors.white(caption)}${" ".repeat(maxWidth - captionLength)}`;
261
+ });
262
+ console.info(`${indent}│ ${headline.join(" │ ")} │`);
263
+ headline = options.widths.map((maxWidth) => "─".repeat(maxWidth));
264
+ console.info(`${indent}├─${headline.join("─┼─")}─┤`);
265
+ }
266
+ for (let i = 0; i < records.length; i++) {
267
+ let line = "";
268
+ for (let j = 0; j < numColumns; j++) {
269
+ let data = table[j][i];
270
+ let color;
271
+ if (options?.colors?.[j]) {
272
+ color = options.colors[j];
273
+ }
274
+ else {
275
+ color =
276
+ typeof data === "string"
277
+ ? colors.green
278
+ : Number(data) === data && data % 1 !== 0 // is float number?
279
+ ? colors.yellow
280
+ : (x) => x;
281
+ }
282
+ data = stringify(data, options?.humanizers, j);
283
+ if (colorstrip(data).length > maxColumnWidth) {
284
+ while (colorstrip(data).length > maxColumnWidth - 3) {
285
+ data = data.slice(0, -1);
286
+ }
287
+ data += "...";
288
+ }
289
+ const dataLength = colorstrip(data).length;
290
+ if (options?.headlines && options.headlines[j][0] === ":") {
291
+ data = `${color(data)}${" ".repeat(options.widths[j] - dataLength)}`;
292
+ }
293
+ else {
294
+ data = `${" ".repeat(options.widths[j] - dataLength)}${color(data)}`;
295
+ }
296
+ line += `│ ${data} `;
297
+ }
298
+ console.info(`${indent}${line}│`);
299
+ }
300
+ headline = options.widths.map((maxWidth) => "─".repeat(maxWidth));
301
+ console.info(`${indent}└─${headline.join("─┴─")}─┘`);
302
+ }
303
+ function transpose(records, numColumns) {
304
+ const columns = [];
305
+ for (let index = 0; index < numColumns; index++) {
306
+ columns.push(records.map((row) => row[index]));
307
+ }
308
+ return columns;
309
+ }
310
+ function traceData(header, data, width, color) {
311
+ process.stdout.write(header);
312
+ if (color)
313
+ process.stdout.write(color);
314
+ for (let ix = 0; ix < data.length / width; ix++) {
315
+ if (ix > 0)
316
+ process.stdout.write(" ".repeat(header.length));
317
+ process.stdout.write(data.slice(width * ix, width * (ix + 1)));
318
+ process.stdout.write("\n");
319
+ }
320
+ if (color)
321
+ process.stdout.write("\x1b[0m");
322
+ }
323
+ module.exports = {
324
+ DEFAULT_BATCH_SIZE,
325
+ DEFAULT_LIMIT,
326
+ DEFAULT_SINCE,
327
+ colors,
328
+ chunks,
329
+ deleteExtraFlags,
330
+ extractFlagsFromArgs,
331
+ extractOptionsFromArgs,
332
+ flattenObject,
333
+ orderKeys,
334
+ traceData,
335
+ traceHeader,
336
+ getNetworkAddresses,
337
+ getNetworkArtifacts,
338
+ getNetworkConstructorArgs,
339
+ getNetworkTagsFromString,
340
+ supportedNetworks,
341
+ supportsNetwork,
342
+ importRadonAssets,
343
+ readWitnetJsonFiles,
344
+ saveWitnetJsonFiles,
345
+ traceTable,
346
+ commas,
347
+ colorstrip,
348
+ prompter,
349
+ };
350
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5janMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmluL2hlbHBlcnMuY2pzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7QUFDN0IsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0FBRXJDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFBO0FBQzVELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDLE9BQU8sQ0FBQTtBQUMzRSxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsdUNBQXVDLENBQUMsQ0FBQTtBQUV4RSxNQUFNLGtCQUFrQixHQUFHLEVBQUUsQ0FBQTtBQUM3QixNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUE7QUFDeEIsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFJLENBQUE7QUFDM0IsTUFBTSw0QkFBNEIsR0FDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsSUFBSSwyQkFBMkIsQ0FBQTtBQUV4RSxNQUFNLG1CQUFtQixHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtBQUV0RSxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQzFCLENBQUM7QUFDRixDQUFDO0FBRUQsTUFBTSxNQUFNLEdBQUc7SUFDZCxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTO0lBQ3RDLElBQUks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Q0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO0lBQ2pFLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDckQsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLE9BQU8sRUFBRSxVQUFVO0lBQ3JDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQTtJQUNsQixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDakQsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQy9DLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQTtBQUNmLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLO0lBQzVDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzVCLElBQUksS0FBSztRQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3RDLEtBQUssSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ2pELElBQUksRUFBRSxHQUFHLENBQUM7WUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO1FBQzNELE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzlELE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzNCLENBQUM7SUFDRCxJQUFJLEtBQUs7UUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUMzQyxDQUFDO0FBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRztJQUNoQixrQkFBa0I7SUFDbEIsYUFBYTtJQUNiLGFBQWE7SUFDYixNQUFNO0lBQ04sTUFBTTtJQUNOLGdCQUFnQjtJQUNoQixvQkFBb0I7SUFDcEIsc0JBQXNCO0lBQ3RCLGFBQWE7SUFDYixTQUFTO0lBQ1QsU0FBUztJQUNULFdBQVc7SUFDWCxtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLHlCQUF5QjtJQUN6Qix3QkFBd0I7SUFDeEIsaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixVQUFVO0lBQ1YsTUFBTTtJQUNOLFVBQVU7SUFDVixRQUFRO0NBQ1IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGZzID0gcmVxdWlyZShcIm5vZGU6ZnNcIilcbmNvbnN0IG1lcmdlID0gcmVxdWlyZShcImxvZGFzaC5tZXJnZVwiKVxuXG5jb25zdCBhZGRyZXNzZXMgPSByZXF1aXJlKFwiLi4vLi4vbWlncmF0aW9ucy9hZGRyZXNzZXMuanNvblwiKVxuY29uc3QgYXJ0aWZhY3RzID0gcmVxdWlyZShcIi4uLy4uL21pZ3JhdGlvbnMvc2V0dGluZ3MvYXJ0aWZhY3RzLmpzXCIpLmRlZmF1bHRcbmNvbnN0IGNvbnN0cnVjdG9yQXJncyA9IHJlcXVpcmUoXCIuLi8uLi9taWdyYXRpb25zL2NvbnN0cnVjdG9yQXJncy5qc29uXCIpXG5cbmNvbnN0IERFRkFVTFRfQkFUQ0hfU0laRSA9IDY0XG5jb25zdCBERUZBVUxUX0xJTUlUID0gNjRcbmNvbnN0IERFRkFVTFRfU0lOQ0UgPSAtNTAwMFxuY29uc3QgV0lUTkVUX1NES19SQURPTl9BU1NFVFNfUEFUSCA9XG5cdHByb2Nlc3MuZW52LldJVE5FVF9TREtfUkFET05fQVNTRVRTX1BBVEggfHwgXCIuLi8uLi8uLi8uLi93aXRuZXQvYXNzZXRzXCJcblxuY29uc3QgaXNNb2R1bGVJbml0aWFsaXplZCA9IGZzLmV4aXN0c1N5bmMoXCIuL3dpdG5ldC9hc3NldHMvaW5kZXguY2pzXCIpXG5cbmZ1bmN0aW9uKiBjaHVua3MoYXJyLCBuKSB7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSArPSBuKSB7XG5cdFx0eWllbGQgYXJyLnNsaWNlKGksIGkgKyBuKVxuXHR9XG59XG5cbmNvbnN0IGNvbG9ycyA9IHtcblx0Ymx1ZTogKHN0cikgPT4gYFxceDFiWzM0bSR7c3RyfVxceDFiWzBtYCxcblx0Y3lhbjogKHN0cikgPT4gYFxceDFiWzM2bSR7c3RyfVxceDFiWzBtYCxcblx0Z3JheTogKHN0cikgPT4gYFxceDFiWzkwbSR7c3RyfVxceDFiWzBtYCxcblx0Z3JlZW46IChzdHIpID0+IGBcXHgxYlszMm0ke3N0cn1cXHgxYlswbWAsXG5cdG1hZ2VudGE6IChzdHIpID0+IGBcXHgxYlswOzM1bSR7c3RyfVxceDFiWzBtYCxcblx0cmVkOiAoc3RyKSA9PiBgXFx4MWJbMzFtJHtzdHJ9XFx4MWJbMG1gLFxuXHR5ZWxsb3c6IChzdHIpID0+IGBcXHgxYlszM20ke3N0cn1cXHgxYlswbWAsXG5cdHdoaXRlOiAoc3RyKSA9PiBgXFx4MWJbMDszOG0ke3N0cn1cXHgxYlswbWAsXG5cdGxibHVlOiAoc3RyKSA9PiBgXFx4MWJbMTs5NG0ke3N0cn1cXHgxYlswbWAsXG5cdGxjeWFuOiAoc3RyKSA9PiBgXFx4MWJbMTs5Nm0ke3N0cn1cXHgxYlswbWAsXG5cdGxncmVlbjogKHN0cikgPT4gYFxceDFiWzE7OTJtJHtzdHJ9XFx4MWJbMG1gLFxuXHRsbWFnZW50YTogKHN0cikgPT4gYFxceDFiWzE7OTVtJHtzdHJ9XFx4MWJbMG1gLFxuXHRsd2hpdGU6IChzdHIpID0+IGBcXHgxYlswOzE7OThtJHtzdHJ9XFx4MWJbMG1gLFxuXHRseWVsbG93OiAoc3RyKSA9PiBgXFx4MWJbMTs5M20ke3N0cn1cXHgxYlswbWAsXG5cdG1ibHVlOiAoc3RyKSA9PiBgXFx4MWJbOTRtJHtzdHJ9XFx4MWJbMG1gLFxuXHRtY3lhbjogKHN0cikgPT4gYFxceDFiWzk2bSR7c3RyfVxceDFiWzBtYCxcblx0bWdyZWVuOiAoc3RyKSA9PiBgXFx4MWJbOTJtJHtzdHJ9XFx4MWJbMG1gLFxuXHRtbWFnZW50YTogKHN0cikgPT4gYFxceDFiWzA7OTVtJHtzdHJ9XFx4MWJbMG1gLFxuXHRtcmVkOiAoc3RyKSA9PiBgXFx4MWJbOTFtJHtzdHJ9XFx4MWJbMG1gLFxuXHRteWVsbG93OiAoc3RyKSA9PiBgXFx4MWJbOTNtJHtzdHJ9XFx4MWJbMG1gLFxufVxuXG5jb25zdCBjb2xvcnN0cmlwID0gKHN0cikgPT5cblx0c3RyLnJlcGxhY2UoXG5cdFx0L1tcXHUwMDFiXFx1MDA5Yl1bWygpIzs/XSooPzpbMC05XXsxLDR9KD86O1swLTldezAsNH0pKik/WzAtOUEtT1JaY2YtbnFyeT0+PF0vZyxcblx0XHRcIlwiLFxuXHQpXG5cbmNvbnN0IGNvbW1hcyA9IChudW1iZXIpID0+IHtcblx0Y29uc3QgcGFydHMgPSBudW1iZXI/LnRvU3RyaW5nKCkuc3BsaXQoXCIuXCIpIHx8IFtcIlwiXVxuXHRjb25zdCByZXN1bHQgPVxuXHRcdHBhcnRzLmxlbmd0aCA8PSAxXG5cdFx0XHQ/IGAke3BhcnRzWzBdLnJlcGxhY2UoL1xcQig/PShcXGR7M30pKyg/IVxcZCkpL2csIFwiLFwiKX1gXG5cdFx0XHQ6IGAke3BhcnRzWzBdLnJlcGxhY2UoL1xcQig/PShcXGR7M30pKyg/IVxcZCkpL2csIFwiLFwiKX0uJHtwYXJ0c1sxXX1gXG5cdHJldHVybiByZXN1bHRcbn1cblxuZnVuY3Rpb24gZGVsZXRlRXh0cmFGbGFncyhhcmdzKSB7XG5cdGNvbnN0IGRlbGV0ZWQgPSBbXVxuXHRyZXR1cm4gW1xuXHRcdGFyZ3M/LmZpbHRlcigoYXJnKSA9PiB7XG5cdFx0XHRpZiAoYXJnLnN0YXJ0c1dpdGgoXCItLVwiKSkge1xuXHRcdFx0XHRkZWxldGVkLnB1c2goYXJnLnNsaWNlKDIpKVxuXHRcdFx0XHRyZXR1cm4gZmFsc2Vcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiB0cnVlXG5cdFx0XHR9XG5cdFx0fSksXG5cdFx0ZGVsZXRlZCxcblx0XVxufVxuXG5mdW5jdGlvbiBleHRyYWN0RmxhZ3NGcm9tQXJncyhhcmdzLCBmbGFncykge1xuXHRjb25zdCBjdXJhdGVkID0ge31cblx0aWYgKGFyZ3MgJiYgQXJyYXkuaXNBcnJheShhcmdzKSAmJiBmbGFncykge1xuXHRcdGZsYWdzLmZvckVhY2goKGZsYWcpID0+IHtcblx0XHRcdGNvbnN0IGluZGV4ID0gYXJncy5pbmRleE9mKGAtLSR7ZmxhZ31gKVxuXHRcdFx0aWYgKGluZGV4ID49IDApIHtcblx0XHRcdFx0Y3VyYXRlZFtmbGFnXSA9IHRydWVcblx0XHRcdFx0YXJncy5zcGxpY2UoaW5kZXgsIDEpXG5cdFx0XHR9XG5cdFx0fSlcblx0fVxuXHRyZXR1cm4gW2FyZ3MgfHwgW10sIGN1cmF0ZWRdXG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RPcHRpb25zRnJvbUFyZ3MoYXJncywgb3B0aW9ucykge1xuXHRjb25zdCBjdXJhdGVkID0ge31cblx0aWYgKGFyZ3MgJiYgQXJyYXkuaXNBcnJheShhcmdzKSAmJiBvcHRpb25zKSB7XG5cdFx0b3B0aW9ucy5mb3JFYWNoKChvcHRpb24pID0+IHtcblx0XHRcdGNvbnN0IGluZGV4ID0gYXJncy5pbmRleE9mKGAtLSR7b3B0aW9ufWApXG5cdFx0XHRpZiAoaW5kZXggPj0gMCkge1xuXHRcdFx0XHRjdXJhdGVkW29wdGlvbl0gPSBhcmdzW2luZGV4XVxuXHRcdFx0XHRpZiAoIWFyZ3NbaW5kZXggKyAxXSB8fCBhcmdzW2luZGV4ICsgMV0uc3RhcnRzV2l0aChcIi0tXCIpKSB7XG5cdFx0XHRcdFx0YXJncy5zcGxpY2UoaW5kZXgsIDEpXG5cdFx0XHRcdFx0Y3VyYXRlZFtvcHRpb25dID0gdW5kZWZpbmVkXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Y3VyYXRlZFtvcHRpb25dID0gYXJnc1tpbmRleCArIDFdXG5cdFx0XHRcdFx0YXJncy5zcGxpY2UoaW5kZXgsIDIpXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KVxuXHR9XG5cdHJldHVybiBbYXJncyB8fCBbXSwgY3VyYXRlZF1cbn1cblxuZnVuY3Rpb24gZmxhdHRlbk9iamVjdChvYikge1xuXHRjb25zdCB0b1JldHVybiA9IHt9XG5cdGZvciAoY29uc3QgaSBpbiBvYikge1xuXHRcdGlmICghT2JqZWN0Lmhhc093bihvYiwgaSkpIGNvbnRpbnVlXG5cdFx0aWYgKHR5cGVvZiBvYltpXSA9PT0gXCJvYmplY3RcIiAmJiBvYltpXSAhPT0gbnVsbCkge1xuXHRcdFx0Y29uc3QgZmxhdE9iamVjdCA9IGZsYXR0ZW5PYmplY3Qob2JbaV0pXG5cdFx0XHRmb3IgKGNvbnN0IHggaW4gZmxhdE9iamVjdCkge1xuXHRcdFx0XHRpZiAoIU9iamVjdC5oYXNPd24oZmxhdE9iamVjdCwgeCkpIGNvbnRpbnVlXG5cdFx0XHRcdHRvUmV0dXJuW2Ake2l9LiR7eH1gXSA9IGZsYXRPYmplY3RbeF1cblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0dG9SZXR1cm5baV0gPSBvYltpXVxuXHRcdH1cblx0fVxuXHRyZXR1cm4gdG9SZXR1cm5cbn1cblxuZnVuY3Rpb24gZ2V0TmV0d29ya0FkZHJlc3NlcyhuZXR3b3JrKSB7XG5cdGxldCByZXMgPSBhZGRyZXNzZXM/LmRlZmF1bHRcblx0Z2V0TmV0d29ya1RhZ3NGcm9tU3RyaW5nKG5ldHdvcmspLmZvckVhY2goKG5ldCkgPT4ge1xuXHRcdHJlcyA9IG1lcmdlKHJlcywgYWRkcmVzc2VzW25ldF0pXG5cdH0pXG5cdHJldHVybiBtZXJnZShcblx0XHRyZXMsXG5cdFx0ZnMuZXhpc3RzU3luYyhgJHtXSVRORVRfU0RLX1JBRE9OX0FTU0VUU19QQVRIfS8uLi9hZGRyZXNzZXMuanNvbmApXG5cdFx0XHQ/IHJlcXVpcmUoYCR7V0lUTkVUX1NES19SQURPTl9BU1NFVFNfUEFUSH0vLi4vYWRkcmVzc2VzLmpzb25gKVtcblx0XHRcdFx0XHRuZXR3b3JrLnRvTG93ZXJDYXNlKClcblx0XHRcdFx0XVxuXHRcdFx0OiB7fSxcblx0KVxufVxuXG5mdW5jdGlvbiBnZXROZXR3b3JrQXJ0aWZhY3RzKG5ldHdvcmspIHtcblx0bGV0IHJlcyA9IGFydGlmYWN0cz8uZGVmYXVsdFxuXHRnZXROZXR3b3JrVGFnc0Zyb21TdHJpbmcobmV0d29yaykuZm9yRWFjaCgobmV0KSA9PiB7XG5cdFx0cmVzID0gbWVyZ2UocmVzLCBhcnRpZmFjdHNbbmV0XSlcblx0fSlcblx0cmV0dXJuIHJlc1xufVxuXG5mdW5jdGlvbiBnZXROZXR3b3JrQ29uc3RydWN0b3JBcmdzKG5ldHdvcmspIHtcblx0bGV0IHJlcyA9IHt9XG5cdGdldE5ldHdvcmtUYWdzRnJvbVN0cmluZyhuZXR3b3JrKS5mb3JFYWNoKChuZXQpID0+IHtcblx0XHRyZXMgPSBtZXJnZShyZXMsIGNvbnN0cnVjdG9yQXJnc1tuZXRdKVxuXHR9KVxuXHRyZXR1cm4gcmVzXG59XG5cbmZ1bmN0aW9uIGdldE5ldHdvcmtUYWdzRnJvbVN0cmluZyhuZXR3b3JrKSB7XG5cdG5ldHdvcmsgPSBuZXR3b3JrID8gbmV0d29yay50b0xvd2VyQ2FzZSgpIDogXCJkZXZlbG9wbWVudFwiXG5cdGNvbnN0IHRhZ3MgPSBbXVxuXHRjb25zdCBwYXJ0cyA9IG5ldHdvcmsuc3BsaXQoXCI6XCIpXG5cdGZvciAobGV0IGl4ID0gMDsgaXggPCBwYXJ0cy5sZW5ndGg7IGl4KyspIHtcblx0XHR0YWdzLnB1c2gocGFydHMuc2xpY2UoMCwgaXggKyAxKS5qb2luKFwiOlwiKSlcblx0fVxuXHRyZXR1cm4gdGFnc1xufVxuXG5mdW5jdGlvbiBpbXBvcnRSYWRvbkFzc2V0cyhvcHRpb25zKSB7XG5cdGNvbnN0IGFzc2V0cyA9IG9wdGlvbnM/LmxlZ2FjeSA/IHt9IDogcmVxdWlyZShcIkB3aXRuZXQvc2RrL2Fzc2V0c1wiKVxuXHRyZXR1cm4gaXNNb2R1bGVJbml0aWFsaXplZCAmJlxuXHRcdGZzLmV4aXN0c1N5bmMoYCR7V0lUTkVUX1NES19SQURPTl9BU1NFVFNfUEFUSH0vaW5kZXguY2pzYClcblx0XHQ/IG1lcmdlKGFzc2V0cywgcmVxdWlyZShgJHtXSVRORVRfU0RLX1JBRE9OX0FTU0VUU19QQVRIfS9pbmRleC5janNgKSlcblx0XHQ6IGFzc2V0c1xufVxuXG5mdW5jdGlvbiBvcmRlcktleXMob2JqKSB7XG5cdGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmopLnNvcnQoZnVuY3Rpb24ga2V5T3JkZXIoazEsIGsyKSB7XG5cdFx0aWYgKGsxIDwgazIpIHJldHVybiAtMVxuXHRcdGVsc2UgaWYgKGsxID4gazIpIHJldHVybiArMVxuXHRcdGVsc2UgcmV0dXJuIDBcblx0fSlcblx0bGV0IGlcblx0Y29uc3QgYWZ0ZXIgPSB7fVxuXHRmb3IgKGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuXHRcdGFmdGVyW2tleXNbaV1dID0gb2JqW2tleXNbaV1dXG5cdFx0ZGVsZXRlIG9ialtrZXlzW2ldXVxuXHR9XG5cdGZvciAoaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG5cdFx0b2JqW2tleXNbaV1dID0gYWZ0ZXJba2V5c1tpXV1cblx0fVxuXHRyZXR1cm4gb2JqXG59XG5cbmZ1bmN0aW9uIHByb21wdGVyKHByb21pc2UpIHtcblx0Y29uc3QgbG9hZGluZyA9ICgoKSA9PiB7XG5cdFx0Y29uc3QgaCA9IFtcInxcIiwgXCIvXCIsIFwiLVwiLCBcIlxcXFxcIl1cblx0XHRsZXQgaSA9IDBcblx0XHRyZXR1cm4gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0aSA9IGkgPiAzID8gMCA6IGlcblx0XHRcdHByb2Nlc3Muc3Rkb3V0LndyaXRlKGBcXGJcXGIke2hbaV19IGApXG5cdFx0XHRpKytcblx0XHR9LCA1MClcblx0fSkoKVxuXHRyZXR1cm4gcHJvbWlzZS50aGVuKChyZXN1bHQpID0+IHtcblx0XHRjbGVhckludGVydmFsKGxvYWRpbmcpXG5cdFx0cHJvY2Vzcy5zdGRvdXQud3JpdGUoXCJcXGJcXGJcIilcblx0XHRyZXR1cm4gcmVzdWx0XG5cdH0pXG59XG5cbmZ1bmN0aW9uIHJlYWRXaXRuZXRKc29uRmlsZXMoLi4uZmlsZW5hbWVzKSB7XG5cdHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG5cdFx0ZmlsZW5hbWVzLm1hcCgoa2V5KSA9PiB7XG5cdFx0XHRjb25zdCBmaWxlcGF0aCA9IGAuL3dpdG5ldC8ke2tleX0uanNvbmBcblx0XHRcdHJldHVybiBbXG5cdFx0XHRcdGtleSxcblx0XHRcdFx0ZnMuZXhpc3RzU3luYyhmaWxlcGF0aCkgPyBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhmaWxlcGF0aCkpIDoge30sXG5cdFx0XHRdXG5cdFx0fSksXG5cdClcbn1cblxuZnVuY3Rpb24gc2F2ZVdpdG5ldEpzb25GaWxlcyhkYXRhKSB7XG5cdE9iamVjdC5lbnRyaWVzKGRhdGEpLmZvckVhY2goKFtrZXksIG9ial0pID0+IHtcblx0XHRjb25zdCBmaWxlcGF0aCA9IGAuL3dpdG5ldC8ke2tleX0uanNvbmBcblx0XHRpZiAoIWZzLmV4aXN0c1N5bmMoZmlsZXBhdGgpKSBmcy53cml0ZUZpbGVTeW5jKGZpbGVwYXRoLCBcInt9XCIpXG5cdFx0Y29uc3QganNvbiA9IG1lcmdlKEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGZpbGVwYXRoKSksIG9iailcblx0XHRmcy53cml0ZUZpbGVTeW5jKGZpbGVwYXRoLCBKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCA0KSwgeyBmbGFnOiBcIncrXCIgfSlcblx0fSlcbn1cblxuZnVuY3Rpb24gc3VwcG9ydGVkTmV0d29ya3MoZWNvc3lzdGVtKSB7XG5cdGNvbnN0IG5ldHdvcmtzID0gcmVxdWlyZShcIi4uLy4uL21pZ3JhdGlvbnMvc2V0dGluZ3MvbmV0d29ya3MuanNcIikuZGVmYXVsdFxuXHRyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdE9iamVjdC5rZXlzKGNvbnN0cnVjdG9yQXJncylcblx0XHRcdC5zb3J0KClcblx0XHRcdC5maWx0ZXIoXG5cdFx0XHRcdChuZXR3b3JrKSA9PlxuXHRcdFx0XHRcdG5ldHdvcmsuaW5kZXhPZihcIjpcIikgPj0gMCAmJlxuXHRcdFx0XHRcdCghZWNvc3lzdGVtIHx8IG5ldHdvcmsuc3RhcnRzV2l0aChlY29zeXN0ZW0udG9Mb3dlckNhc2UoKSkpLFxuXHRcdFx0KVxuXHRcdFx0Lm1hcCgobmV0d29yaykgPT4ge1xuXHRcdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHRcdG5ldHdvcmssXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0bWFpbm5ldDogbmV0d29ya3NbbmV0d29ya10/Lm1haW5uZXQgfHwgZmFsc2UsXG5cdFx0XHRcdFx0XHRuZXR3b3JrX2lkOiBuZXR3b3Jrc1tuZXR3b3JrXS5uZXR3b3JrX2lkLFxuXHRcdFx0XHRcdFx0cG9ydDogbmV0d29ya3NbbmV0d29ya10ucG9ydCxcblx0XHRcdFx0XHRcdHN5bWJvbDogbmV0d29ya3NbbmV0d29ya10/LnN5bWJvbCB8fCBcIkVUSFwiLFxuXHRcdFx0XHRcdFx0dmVyaWZpZWQ6IG5ldHdvcmtzW25ldHdvcmtdPy52ZXJpZnk/LmV4cGxvcmVyVXJsLFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdF1cblx0XHRcdH0pLFxuXHQpXG59XG5cbmZ1bmN0aW9uIHN1cHBvcnRzTmV0d29yayhuZXR3b3JrKSB7XG5cdHJldHVybiBuZXR3b3JrICYmIE9iamVjdC5rZXlzKGNvbnN0cnVjdG9yQXJncykuaW5jbHVkZXMobmV0d29yay50b0xvd2VyQ2FzZSgpKVxufVxuXG5mdW5jdGlvbiB0cmFjZUhlYWRlcihoZWFkZXIsIGNvbG9yID0gY29sb3JzLndoaXRlLCBpbmRlbnQgPSBcIlwiKSB7XG5cdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSM4pSAJHtcIuKUgFwiLnJlcGVhdChoZWFkZXIubGVuZ3RoKX3ilIDilJBgKVxuXHRjb25zb2xlLmluZm8oYCR7aW5kZW50feKUgiAke2NvbG9yKGhlYWRlcil9IOKUgmApXG5cdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSU4pSAJHtcIuKUgFwiLnJlcGVhdChoZWFkZXIubGVuZ3RoKX3ilIDilJhgKVxufVxuXG5mdW5jdGlvbiB0cmFjZVRhYmxlKHJlY29yZHMsIG9wdGlvbnMpIHtcblx0Y29uc3Qgc3RyaW5naWZ5ID0gKGRhdGEsIGh1bWFuaXplcnMsIGluZGV4KSA9PlxuXHRcdGh1bWFuaXplcnM/LltpbmRleF1cblx0XHRcdD8gaHVtYW5pemVyc1tpbmRleF0oZGF0YSkudG9TdHJpbmcoKVxuXHRcdFx0OiAoZGF0YT8udG9TdHJpbmcoKSA/PyBcIlwiKVxuXHRjb25zdCByZWR1Y2VNYXggPSAobnVtYmVycykgPT5cblx0XHRudW1iZXJzLnJlZHVjZSgoY3VyciwgcHJldikgPT4gTWF0aC5tYXgoY3VyciwgcHJldiksIDApXG5cdGlmICghb3B0aW9ucykgb3B0aW9ucyA9IHt9XG5cdGNvbnN0IGluZGVudCA9IG9wdGlvbnM/LmluZGVudCB8fCBcIlwiXG5cdGNvbnN0IG51bUNvbHVtbnMgPSByZWR1Y2VNYXgocmVjb3Jkcy5tYXAoKHJlY29yZCkgPT4gcmVjb3JkPy5sZW5ndGggfHwgMSkpXG5cdGNvbnN0IG1heENvbHVtbldpZHRoID0gb3B0aW9ucz8ubWF4Q29sdW1uV2lkdGggfHwgODBcblx0Y29uc3QgdGFibGUgPSB0cmFuc3Bvc2UocmVjb3JkcywgbnVtQ29sdW1ucylcblx0b3B0aW9ucy53aWR0aHMgPVxuXHRcdG9wdGlvbnM/LndpZHRocyB8fFxuXHRcdHRhYmxlLm1hcCgoY29sdW1uLCBpbmRleCkgPT4ge1xuXHRcdFx0bGV0IG1heFdpZHRoID0gcmVkdWNlTWF4KFxuXHRcdFx0XHRjb2x1bW4ubWFwKFxuXHRcdFx0XHRcdChmaWVsZCkgPT5cblx0XHRcdFx0XHRcdGNvbG9yc3RyaXAoc3RyaW5naWZ5KGZpZWxkLCBvcHRpb25zPy5odW1hbml6ZXJzLCBpbmRleCkpLmxlbmd0aCxcblx0XHRcdFx0KSxcblx0XHRcdClcblx0XHRcdGlmIChvcHRpb25zPy5oZWFkbGluZXM/LltpbmRleF0pIHtcblx0XHRcdFx0bWF4V2lkdGggPSBNYXRoLm1heChcblx0XHRcdFx0XHRtYXhXaWR0aCxcblx0XHRcdFx0XHRjb2xvcnN0cmlwKG9wdGlvbnMuaGVhZGxpbmVzW2luZGV4XS5yZXBsYWNlQWxsKFwiOlwiLCBcIlwiKSkubGVuZ3RoLFxuXHRcdFx0XHQpXG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gTWF0aC5taW4obWF4V2lkdGgsIG1heENvbHVtbldpZHRoKVxuXHRcdH0pXG5cdGxldCBoZWFkbGluZSA9IG9wdGlvbnMud2lkdGhzLm1hcCgobWF4V2lkdGgpID0+IFwi4pSAXCIucmVwZWF0KG1heFdpZHRoKSlcblx0Y29uc29sZS5pbmZvKGAke2luZGVudH3ilIzilIAke2hlYWRsaW5lLmpvaW4oXCLilIDilKzilIBcIil94pSA4pSQYClcblx0aWYgKG9wdGlvbnM/LmhlYWRsaW5lcykge1xuXHRcdGhlYWRsaW5lID0gb3B0aW9ucy53aWR0aHMubWFwKChtYXhXaWR0aCwgaW5kZXgpID0+IHtcblx0XHRcdGNvbnN0IGNhcHRpb24gPSBvcHRpb25zLmhlYWRsaW5lc1tpbmRleF0ucmVwbGFjZUFsbChcIjpcIiwgXCJcIilcblx0XHRcdGNvbnN0IGNhcHRpb25MZW5ndGggPSBjb2xvcnN0cmlwKGNhcHRpb24pLmxlbmd0aFxuXHRcdFx0cmV0dXJuIGAke2NvbG9ycy53aGl0ZShjYXB0aW9uKX0ke1wiIFwiLnJlcGVhdChtYXhXaWR0aCAtIGNhcHRpb25MZW5ndGgpfWBcblx0XHR9KVxuXHRcdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSCICR7aGVhZGxpbmUuam9pbihcIiDilIIgXCIpfSDilIJgKVxuXHRcdGhlYWRsaW5lID0gb3B0aW9ucy53aWR0aHMubWFwKChtYXhXaWR0aCkgPT4gXCLilIBcIi5yZXBlYXQobWF4V2lkdGgpKVxuXHRcdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSc4pSAJHtoZWFkbGluZS5qb2luKFwi4pSA4pS84pSAXCIpfeKUgOKUpGApXG5cdH1cblx0Zm9yIChsZXQgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0bGV0IGxpbmUgPSBcIlwiXG5cdFx0Zm9yIChsZXQgaiA9IDA7IGogPCBudW1Db2x1bW5zOyBqKyspIHtcblx0XHRcdGxldCBkYXRhID0gdGFibGVbal1baV1cblx0XHRcdGxldCBjb2xvclxuXHRcdFx0aWYgKG9wdGlvbnM/LmNvbG9ycz8uW2pdKSB7XG5cdFx0XHRcdGNvbG9yID0gb3B0aW9ucy5jb2xvcnNbal1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNvbG9yID1cblx0XHRcdFx0XHR0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIlxuXHRcdFx0XHRcdFx0PyBjb2xvcnMuZ3JlZW5cblx0XHRcdFx0XHRcdDogTnVtYmVyKGRhdGEpID09PSBkYXRhICYmIGRhdGEgJSAxICE9PSAwIC8vIGlzIGZsb2F0IG51bWJlcj9cblx0XHRcdFx0XHRcdFx0PyBjb2xvcnMueWVsbG93XG5cdFx0XHRcdFx0XHRcdDogKHgpID0+IHhcblx0XHRcdH1cblx0XHRcdGRhdGEgPSBzdHJpbmdpZnkoZGF0YSwgb3B0aW9ucz8uaHVtYW5pemVycywgailcblx0XHRcdGlmIChjb2xvcnN0cmlwKGRhdGEpLmxlbmd0aCA+IG1heENvbHVtbldpZHRoKSB7XG5cdFx0XHRcdHdoaWxlIChjb2xvcnN0cmlwKGRhdGEpLmxlbmd0aCA+IG1heENvbHVtbldpZHRoIC0gMykge1xuXHRcdFx0XHRcdGRhdGEgPSBkYXRhLnNsaWNlKDAsIC0xKVxuXHRcdFx0XHR9XG5cdFx0XHRcdGRhdGEgKz0gXCIuLi5cIlxuXHRcdFx0fVxuXHRcdFx0Y29uc3QgZGF0YUxlbmd0aCA9IGNvbG9yc3RyaXAoZGF0YSkubGVuZ3RoXG5cdFx0XHRpZiAob3B0aW9ucz8uaGVhZGxpbmVzICYmIG9wdGlvbnMuaGVhZGxpbmVzW2pdWzBdID09PSBcIjpcIikge1xuXHRcdFx0XHRkYXRhID0gYCR7Y29sb3IoZGF0YSl9JHtcIiBcIi5yZXBlYXQob3B0aW9ucy53aWR0aHNbal0gLSBkYXRhTGVuZ3RoKX1gXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRkYXRhID0gYCR7XCIgXCIucmVwZWF0KG9wdGlvbnMud2lkdGhzW2pdIC0gZGF0YUxlbmd0aCl9JHtjb2xvcihkYXRhKX1gXG5cdFx0XHR9XG5cdFx0XHRsaW5lICs9IGDilIIgJHtkYXRhfSBgXG5cdFx0fVxuXHRcdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR9JHtsaW5lfeKUgmApXG5cdH1cblx0aGVhZGxpbmUgPSBvcHRpb25zLndpZHRocy5tYXAoKG1heFdpZHRoKSA9PiBcIuKUgFwiLnJlcGVhdChtYXhXaWR0aCkpXG5cdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSU4pSAJHtoZWFkbGluZS5qb2luKFwi4pSA4pS04pSAXCIpfeKUgOKUmGApXG59XG5cbmZ1bmN0aW9uIHRyYW5zcG9zZShyZWNvcmRzLCBudW1Db2x1bW5zKSB7XG5cdGNvbnN0IGNvbHVtbnMgPSBbXVxuXHRmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbnVtQ29sdW1uczsgaW5kZXgrKykge1xuXHRcdGNvbHVtbnMucHVzaChyZWNvcmRzLm1hcCgocm93KSA9PiByb3dbaW5kZXhdKSlcblx0fVxuXHRyZXR1cm4gY29sdW1uc1xufVxuXG5mdW5jdGlvbiB0cmFjZURhdGEoaGVhZGVyLCBkYXRhLCB3aWR0aCwgY29sb3IpIHtcblx0cHJvY2Vzcy5zdGRvdXQud3JpdGUoaGVhZGVyKVxuXHRpZiAoY29sb3IpIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGNvbG9yKVxuXHRmb3IgKGxldCBpeCA9IDA7IGl4IDwgZGF0YS5sZW5ndGggLyB3aWR0aDsgaXgrKykge1xuXHRcdGlmIChpeCA+IDApIHByb2Nlc3Muc3Rkb3V0LndyaXRlKFwiIFwiLnJlcGVhdChoZWFkZXIubGVuZ3RoKSlcblx0XHRwcm9jZXNzLnN0ZG91dC53cml0ZShkYXRhLnNsaWNlKHdpZHRoICogaXgsIHdpZHRoICogKGl4ICsgMSkpKVxuXHRcdHByb2Nlc3Muc3Rkb3V0LndyaXRlKFwiXFxuXCIpXG5cdH1cblx0aWYgKGNvbG9yKSBwcm9jZXNzLnN0ZG91dC53cml0ZShcIlxceDFiWzBtXCIpXG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuXHRERUZBVUxUX0JBVENIX1NJWkUsXG5cdERFRkFVTFRfTElNSVQsXG5cdERFRkFVTFRfU0lOQ0UsXG5cdGNvbG9ycyxcblx0Y2h1bmtzLFxuXHRkZWxldGVFeHRyYUZsYWdzLFxuXHRleHRyYWN0RmxhZ3NGcm9tQXJncyxcblx0ZXh0cmFjdE9wdGlvbnNGcm9tQXJncyxcblx0ZmxhdHRlbk9iamVjdCxcblx0b3JkZXJLZXlzLFxuXHR0cmFjZURhdGEsXG5cdHRyYWNlSGVhZGVyLFxuXHRnZXROZXR3b3JrQWRkcmVzc2VzLFxuXHRnZXROZXR3b3JrQXJ0aWZhY3RzLFxuXHRnZXROZXR3b3JrQ29uc3RydWN0b3JBcmdzLFxuXHRnZXROZXR3b3JrVGFnc0Zyb21TdHJpbmcsXG5cdHN1cHBvcnRlZE5ldHdvcmtzLFxuXHRzdXBwb3J0c05ldHdvcmssXG5cdGltcG9ydFJhZG9uQXNzZXRzLFxuXHRyZWFkV2l0bmV0SnNvbkZpbGVzLFxuXHRzYXZlV2l0bmV0SnNvbkZpbGVzLFxuXHR0cmFjZVRhYmxlLFxuXHRjb21tYXMsXG5cdGNvbG9yc3RyaXAsXG5cdHByb21wdGVyLFxufVxuIl19
@@ -0,0 +1,76 @@
1
+ export const DEFAULT_BATCH_SIZE: 64;
2
+ export const DEFAULT_LIMIT: 64;
3
+ export const DEFAULT_SINCE: -5000;
4
+ export namespace colors {
5
+ function blue(str: any): string;
6
+ function cyan(str: any): string;
7
+ function gray(str: any): string;
8
+ function green(str: any): string;
9
+ function magenta(str: any): string;
10
+ function red(str: any): string;
11
+ function yellow(str: any): string;
12
+ function white(str: any): string;
13
+ function lblue(str: any): string;
14
+ function lcyan(str: any): string;
15
+ function lgreen(str: any): string;
16
+ function lmagenta(str: any): string;
17
+ function lwhite(str: any): string;
18
+ function lyellow(str: any): string;
19
+ function mblue(str: any): string;
20
+ function mcyan(str: any): string;
21
+ function mgreen(str: any): string;
22
+ function mmagenta(str: any): string;
23
+ function mred(str: any): string;
24
+ function myellow(str: any): string;
25
+ }
26
+ export function chunks(arr: any, n: any): Generator<any, void, unknown>;
27
+ export function deleteExtraFlags(args: any): any[];
28
+ export function extractFlagsFromArgs(args: any, flags: any): any[];
29
+ export function extractOptionsFromArgs(args: any, options: any): any[];
30
+ export function flattenObject(ob: any): {};
31
+ export function orderKeys(obj: any): any;
32
+ export function traceData(header: any, data: any, width: any, color: any): void;
33
+ export function traceHeader(header: any, color?: (str: any) => string, indent?: string): void;
34
+ export function getNetworkAddresses(network: any): any;
35
+ export function getNetworkArtifacts(network: any): {
36
+ WitnetDeployer: string;
37
+ apps: {
38
+ WitPriceFeeds: string;
39
+ WitPriceFeedsLegacy: string;
40
+ WitRandomness: string;
41
+ };
42
+ core: {
43
+ WitOracle: string;
44
+ WitOracleRadonRegistry: string;
45
+ WitOracleRadonRequestFactory: string;
46
+ WitOracleRadonRequestFactoryModals: string;
47
+ WitOracleRadonRequestFactoryTemplates: string;
48
+ };
49
+ libs: {
50
+ WitOracleDataLib: string;
51
+ WitOracleRadonEncodingLib: string;
52
+ WitOracleResultStatusLib: string;
53
+ WitPriceFeedsDataLib: string;
54
+ WitPriceFeedsLegacyDataLib: string;
55
+ };
56
+ };
57
+ export function getNetworkConstructorArgs(network: any): {};
58
+ export function getNetworkTagsFromString(network: any): any[];
59
+ export function supportedNetworks(ecosystem: any): {
60
+ [k: string]: {
61
+ mainnet: any;
62
+ network_id: any;
63
+ port: any;
64
+ symbol: any;
65
+ verified: any;
66
+ };
67
+ };
68
+ export function supportsNetwork(network: any): any;
69
+ export function importRadonAssets(options: any): any;
70
+ export function readWitnetJsonFiles(...filenames: any[]): any;
71
+ export function saveWitnetJsonFiles(data: any): void;
72
+ export function traceTable(records: any, options: any): void;
73
+ export function commas(number: any): string;
74
+ export function colorstrip(str: any): any;
75
+ export function prompter(promise: any): any;
76
+ //# sourceMappingURL=helpers.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.cts","sourceRoot":"","sources":["../../../src/bin/helpers.cjs"],"names":[],"mappings":"AAOA,iCAA2B,EAAE,CAAA;AAC7B,4BAAsB,EAAE,CAAA;AACxB,4BAAsB,CAAC,IAAI,CAAA;;IAapB,gCAAgC;IAChC,gCAAgC;IAChC,gCAAgC;IAC/B,iCAAgC;IAC9B,mCAAkC;IACtC,+BAAgC;IAC7B,kCAAgC;IACjC,iCAAkC;IAClC,iCAAkC;IAClC,iCAAkC;IACjC,kCAAkC;IAChC,oCAAkC;IACpC,kCAAoC;IACnC,mCAAkC;IACpC,iCAAgC;IAChC,iCAAgC;IAC/B,kCAAgC;IAC9B,oCAAkC;IACtC,gCAAgC;IAC7B,mCAAgC;;AA1B1C,wEAIC;AAwCD,mDAaC;AAED,mEAYC;AAED,uEAkBC;AAED,2CAeC;AAmDD,yCAgBC;AAgKD,gFASC;AApGD,8FAIC;AA1ID,uDAaC;AAED;;;;;;;;;;;;;;;;;;;;;EAMC;AAED,4DAMC;AAED,8DAQC;AAkED;;;;;;;;EAuBC;AAED,mDAEC;AA3FD,qDAMC;AAqCD,8DAUC;AAED,qDAOC;AAqCD,6DA2EC;AAlSD,4CAOC;AAbD,0CAIE;AAgJF,4CAeC"}
@@ -0,0 +1,6 @@
1
+ export * as ethers from "ethers";
2
+ export * from "./lib/types.js";
3
+ export * as utils from "./lib/utils.js";
4
+ export * from "./lib/wrappers.js";
5
+ export declare const ABIs: any;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AAMjC,eAAO,MAAM,IAAI,EAAE,GAoClB,CAAA"}
@@ -0,0 +1,33 @@
1
+ export * as ethers from "ethers";
2
+ export * from "./lib/types.js";
3
+ export * as utils from "./lib/utils.js";
4
+ export * from "./lib/wrappers.js";
5
+ import { createRequire } from "node:module";
6
+ const require = createRequire(import.meta.url);
7
+ export const ABIs = {
8
+ WitAppliance: require("../../artifacts/contracts/interfaces/IWitAppliance.sol/IWitAppliance.json")
9
+ .abi,
10
+ WitOracle: require("../../artifacts/contracts/WitOracle.sol/WitOracle.json")
11
+ .abi,
12
+ WitOracleConsumer: require("../../artifacts/contracts/interfaces/IWitOracleConsumer.sol/IWitOracleConsumer.json")
13
+ .abi,
14
+ WitOracleRadonRegistry: require("../../artifacts/contracts/WitOracleRadonRegistry.sol/WitOracleRadonRegistry.json")
15
+ .abi,
16
+ WitOracleRadonRequestFactory: require("../../artifacts/contracts/WitOracleRadonRequestFactory.sol/WitOracleRadonRequestFactory.json")
17
+ .abi,
18
+ WitOracleRadonRequestModal: require("../../artifacts/contracts/interfaces/IWitOracleRadonRequestModal.sol/IWitOracleRadonRequestModal.json")
19
+ .abi,
20
+ WitOracleRadonRequestTemplate: require("../../artifacts/contracts/interfaces/IWitOracleRadonRequestTemplate.sol/IWitOracleRadonRequestTemplate.json")
21
+ .abi,
22
+ WitPriceFeeds: require("../../artifacts/contracts/WitPriceFeeds.sol/WitPriceFeeds.json")
23
+ .abi,
24
+ WitPriceFeedsLegacy: require("../../artifacts/contracts/WitPriceFeedsLegacy.sol/WitPriceFeedsLegacy.json")
25
+ .abi,
26
+ WitRandomnessV2: require("../../artifacts/contracts/WitRandomnessLegacy.sol/WitRandomnessLegacy.json")
27
+ .abi,
28
+ WitRandomnessV3: require("../../artifacts/contracts/WitRandomness.sol/WitRandomness.json")
29
+ .abi,
30
+ WitnetUpgradableBase: require("../../artifacts/contracts/core/WitnetUpgradableBase.sol/WitnetUpgradableBase.json")
31
+ .abi,
32
+ };
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUE7QUFDaEMsY0FBYyxnQkFBZ0IsQ0FBQTtBQUM5QixPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFBO0FBQ3ZDLGNBQWMsbUJBQW1CLENBQUE7QUFFakMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUUzQyxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUU5QyxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQVE7SUFDeEIsWUFBWSxFQUNYLE9BQU8sQ0FBQywyRUFBMkUsQ0FBQztTQUNsRixHQUFHO0lBQ04sU0FBUyxFQUFFLE9BQU8sQ0FBQyx3REFBd0QsQ0FBQztTQUMxRSxHQUFHO0lBQ0wsaUJBQWlCLEVBQ2hCLE9BQU8sQ0FBQyxxRkFBcUYsQ0FBQztTQUM1RixHQUFHO0lBQ04sc0JBQXNCLEVBQ3JCLE9BQU8sQ0FBQyxrRkFBa0YsQ0FBQztTQUN6RixHQUFHO0lBQ04sNEJBQTRCLEVBQzNCLE9BQU8sQ0FBQyw4RkFBOEYsQ0FBQztTQUNyRyxHQUFHO0lBQ04sMEJBQTBCLEVBQ3pCLE9BQU8sQ0FBQyx1R0FBdUcsQ0FBQztTQUM5RyxHQUFHO0lBQ04sNkJBQTZCLEVBQzVCLE9BQU8sQ0FBQyw2R0FBNkcsQ0FBQztTQUNwSCxHQUFHO0lBQ04sYUFBYSxFQUNaLE9BQU8sQ0FBQyxnRUFBZ0UsQ0FBQztTQUN2RSxHQUFHO0lBQ04sbUJBQW1CLEVBQ2xCLE9BQU8sQ0FBQyw0RUFBNEUsQ0FBQztTQUNuRixHQUFHO0lBQ04sZUFBZSxFQUNkLE9BQU8sQ0FBQyw0RUFBNEUsQ0FBQztTQUNuRixHQUFHO0lBQ04sZUFBZSxFQUNkLE9BQU8sQ0FBQyxnRUFBZ0UsQ0FBQztTQUN2RSxHQUFHO0lBQ04sb0JBQW9CLEVBQ25CLE9BQU8sQ0FBQyxtRkFBbUYsQ0FBQztTQUMxRixHQUFHO0NBQ04sQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGFzIGV0aGVycyBmcm9tIFwiZXRoZXJzXCJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi90eXBlcy5qc1wiXG5leHBvcnQgKiBhcyB1dGlscyBmcm9tIFwiLi9saWIvdXRpbHMuanNcIlxuZXhwb3J0ICogZnJvbSBcIi4vbGliL3dyYXBwZXJzLmpzXCJcblxuaW1wb3J0IHsgY3JlYXRlUmVxdWlyZSB9IGZyb20gXCJub2RlOm1vZHVsZVwiXG5cbmNvbnN0IHJlcXVpcmUgPSBjcmVhdGVSZXF1aXJlKGltcG9ydC5tZXRhLnVybClcblxuZXhwb3J0IGNvbnN0IEFCSXM6IGFueSA9IHtcblx0V2l0QXBwbGlhbmNlOlxuXHRcdHJlcXVpcmUoXCIuLi8uLi9hcnRpZmFjdHMvY29udHJhY3RzL2ludGVyZmFjZXMvSVdpdEFwcGxpYW5jZS5zb2wvSVdpdEFwcGxpYW5jZS5qc29uXCIpXG5cdFx0XHQuYWJpLFxuXHRXaXRPcmFjbGU6IHJlcXVpcmUoXCIuLi8uLi9hcnRpZmFjdHMvY29udHJhY3RzL1dpdE9yYWNsZS5zb2wvV2l0T3JhY2xlLmpzb25cIilcblx0XHQuYWJpLFxuXHRXaXRPcmFjbGVDb25zdW1lcjpcblx0XHRyZXF1aXJlKFwiLi4vLi4vYXJ0aWZhY3RzL2NvbnRyYWN0cy9pbnRlcmZhY2VzL0lXaXRPcmFjbGVDb25zdW1lci5zb2wvSVdpdE9yYWNsZUNvbnN1bWVyLmpzb25cIilcblx0XHRcdC5hYmksXG5cdFdpdE9yYWNsZVJhZG9uUmVnaXN0cnk6XG5cdFx0cmVxdWlyZShcIi4uLy4uL2FydGlmYWN0cy9jb250cmFjdHMvV2l0T3JhY2xlUmFkb25SZWdpc3RyeS5zb2wvV2l0T3JhY2xlUmFkb25SZWdpc3RyeS5qc29uXCIpXG5cdFx0XHQuYWJpLFxuXHRXaXRPcmFjbGVSYWRvblJlcXVlc3RGYWN0b3J5OlxuXHRcdHJlcXVpcmUoXCIuLi8uLi9hcnRpZmFjdHMvY29udHJhY3RzL1dpdE9yYWNsZVJhZG9uUmVxdWVzdEZhY3Rvcnkuc29sL1dpdE9yYWNsZVJhZG9uUmVxdWVzdEZhY3RvcnkuanNvblwiKVxuXHRcdFx0LmFiaSxcblx0V2l0T3JhY2xlUmFkb25SZXF1ZXN0TW9kYWw6XG5cdFx0cmVxdWlyZShcIi4uLy4uL2FydGlmYWN0cy9jb250cmFjdHMvaW50ZXJmYWNlcy9JV2l0T3JhY2xlUmFkb25SZXF1ZXN0TW9kYWwuc29sL0lXaXRPcmFjbGVSYWRvblJlcXVlc3RNb2RhbC5qc29uXCIpXG5cdFx0XHQuYWJpLFxuXHRXaXRPcmFjbGVSYWRvblJlcXVlc3RUZW1wbGF0ZTpcblx0XHRyZXF1aXJlKFwiLi4vLi4vYXJ0aWZhY3RzL2NvbnRyYWN0cy9pbnRlcmZhY2VzL0lXaXRPcmFjbGVSYWRvblJlcXVlc3RUZW1wbGF0ZS5zb2wvSVdpdE9yYWNsZVJhZG9uUmVxdWVzdFRlbXBsYXRlLmpzb25cIilcblx0XHRcdC5hYmksXG5cdFdpdFByaWNlRmVlZHM6XG5cdFx0cmVxdWlyZShcIi4uLy4uL2FydGlmYWN0cy9jb250cmFjdHMvV2l0UHJpY2VGZWVkcy5zb2wvV2l0UHJpY2VGZWVkcy5qc29uXCIpXG5cdFx0XHQuYWJpLFxuXHRXaXRQcmljZUZlZWRzTGVnYWN5OlxuXHRcdHJlcXVpcmUoXCIuLi8uLi9hcnRpZmFjdHMvY29udHJhY3RzL1dpdFByaWNlRmVlZHNMZWdhY3kuc29sL1dpdFByaWNlRmVlZHNMZWdhY3kuanNvblwiKVxuXHRcdFx0LmFiaSxcblx0V2l0UmFuZG9tbmVzc1YyOlxuXHRcdHJlcXVpcmUoXCIuLi8uLi9hcnRpZmFjdHMvY29udHJhY3RzL1dpdFJhbmRvbW5lc3NMZWdhY3kuc29sL1dpdFJhbmRvbW5lc3NMZWdhY3kuanNvblwiKVxuXHRcdFx0LmFiaSxcblx0V2l0UmFuZG9tbmVzc1YzOlxuXHRcdHJlcXVpcmUoXCIuLi8uLi9hcnRpZmFjdHMvY29udHJhY3RzL1dpdFJhbmRvbW5lc3Muc29sL1dpdFJhbmRvbW5lc3MuanNvblwiKVxuXHRcdFx0LmFiaSxcblx0V2l0bmV0VXBncmFkYWJsZUJhc2U6XG5cdFx0cmVxdWlyZShcIi4uLy4uL2FydGlmYWN0cy9jb250cmFjdHMvY29yZS9XaXRuZXRVcGdyYWRhYmxlQmFzZS5zb2wvV2l0bmV0VXBncmFkYWJsZUJhc2UuanNvblwiKVxuXHRcdFx0LmFiaSxcbn1cbiJdfQ==
@@ -0,0 +1,99 @@
1
+ import type { Witnet } from "@witnet/sdk";
2
+ import type { ContractWrapper } from "./wrappers/ContractWrapper.js";
3
+ export type DataPushReport = Witnet.DataPushReport;
4
+ export type PriceFeed = {
5
+ id?: string;
6
+ id4: string;
7
+ exponent: number;
8
+ symbol: string;
9
+ mapper?: PriceFeedMapper;
10
+ oracle?: PriceFeedOracle;
11
+ updateConditions?: PriceFeedUpdateConditions;
12
+ lastUpdate?: PriceFeedUpdate;
13
+ };
14
+ export type PriceFeedMapper = {
15
+ class: string;
16
+ deps: Array<string>;
17
+ };
18
+ export declare enum PriceFeedMappers {
19
+ None = 0,
20
+ Fallback = 1,
21
+ Hottest = 2,
22
+ Product = 3,
23
+ Inverse = 4
24
+ }
25
+ export type PriceFeedOracle = {
26
+ class: string;
27
+ target: string;
28
+ sources: Witnet.Hash;
29
+ };
30
+ export declare enum PriceFeedOracles {
31
+ Witnet = 0,
32
+ Erc2362 = 1,
33
+ Chainlink = 2
34
+ }
35
+ export type PriceFeedUpdate = {
36
+ price: number;
37
+ deltaPrice?: number;
38
+ exponent?: number;
39
+ timestamp: number;
40
+ trail: Witnet.Hash;
41
+ };
42
+ export type PriceFeedUpdateConditions = {
43
+ callbackGas: number;
44
+ computeEMA: boolean;
45
+ cooldownSecs: number;
46
+ heartbeatSecs: number;
47
+ maxDeviationPercentage: number;
48
+ minWitnesses: number;
49
+ };
50
+ export type RandomizeStatus = "Void" | "Awaiting" | "Finalizing" | "Ready" | "Error";
51
+ export { TransactionReceipt } from "ethers";
52
+ export type WitOracleArtifact = {
53
+ address: Witnet.HexString;
54
+ abi: any;
55
+ class: string;
56
+ gitHash?: string;
57
+ interfaceId: Witnet.HexString;
58
+ isUpgradable: boolean;
59
+ semVer?: string;
60
+ version?: string;
61
+ wrapper?: ContractWrapper;
62
+ };
63
+ export type WitOracleQuery = {
64
+ checkpoint: bigint;
65
+ hash: Witnet.Hash;
66
+ params: WitOracleQueryParams;
67
+ request: WitOracleQueryRequest;
68
+ response?: WitOracleQueryResponse;
69
+ };
70
+ export type WitOracleQueryParams = {
71
+ /**
72
+ * Maximum expected size of the CBOR-encoded query result, once solved by the Witnet blockchain.
73
+ */
74
+ resultMaxSize?: number;
75
+ /**
76
+ * Mininum reward in $nanoWIT for very validator that positively contributes to get the Wit/Oracle
77
+ * query attended, solved and stored into the Witnet blockchain.
78
+ */
79
+ unitaryReward: bigint;
80
+ /**
81
+ * Maximum number of witnessing nodes required to participate in solving the oracle query.
82
+ */
83
+ witnesses: number;
84
+ };
85
+ export type WitOracleQueryRequest = {
86
+ callbackGas?: number;
87
+ radonHash: Witnet.Hash;
88
+ requester: string;
89
+ };
90
+ export type WitOracleQueryResponse = {
91
+ disputer?: string;
92
+ reporter?: string;
93
+ resultTimestamp?: number;
94
+ resultDrTxHash: Witnet.Hash;
95
+ resultCborBytes: Witnet.HexString;
96
+ };
97
+ export type WitOracleQueryStatus = "Void" | "Posted" | "Reported" | "Finalized" | "Delayed" | "Expired" | "Disputed";
98
+ export type WitOracleResultDataTypes = "any" | "array" | "boolean" | "bytes" | "float" | "integer" | "map" | "string";
99
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/types.ts"],"names":[],"mappings":"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"}