@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
package/src/index.js DELETED
@@ -1,96 +0,0 @@
1
- import { createRequire } from "module";
2
- const require = createRequire(import.meta.url);
3
- const addresses = require("../migrations/addresses.json")
4
- const artifacts = require("../settings/artifacts.js").default
5
- const constructorArgs = require("../migrations/constructorArgs.json")
6
- const merge = require("lodash.merge")
7
- const utils = require("./utils.js").default
8
-
9
- export default {
10
- getNetworkAddresses: (network) => {
11
- let res = addresses?.default
12
- utils.getNetworkTagsFromString(network).forEach(net => {
13
- res = merge(res, addresses[net])
14
- })
15
- return res
16
- },
17
- getNetworkArtifacts: (network) => {
18
- let res = artifacts?.default
19
- utils.getNetworkTagsFromString(network).forEach(net => {
20
- res = merge(res, artifacts[net])
21
- })
22
- return res
23
- },
24
- getNetworkConstructorArgs: (network) => {
25
- let res = {}
26
- utils.getNetworkTagsFromString(network).forEach(net => {
27
- res = merge(res, constructorArgs[net])
28
- })
29
- return res
30
- },
31
- supportedEcosystems: () => {
32
- const ecosystems = []
33
- Object.keys(supportedNetworks()).forEach(network => {
34
- const [ecosystem] = utils.getRealmNetworkFromString(network)
35
- if (!ecosystems.includes(ecosystem)) {
36
- ecosystems.push(ecosystem)
37
- }
38
- })
39
- return ecosystems
40
- },
41
- supportedNetworks,
42
- supportsNetwork,
43
- ABIs: {
44
- WitAppliance:
45
- require("../artifacts/contracts/interfaces/IWitAppliance.sol/IWitAppliance.json").abi,
46
- WitOracle:
47
- require("../artifacts/contracts/WitOracle.sol/WitOracle.json").abi,
48
- WitOracleConsumer:
49
- require("../artifacts/contracts/interfaces/IWitOracleConsumer.sol/IWitOracleConsumer.json").abi,
50
- WitOracleRadonRegistry:
51
- require("../artifacts/contracts/WitOracleRadonRegistry.sol/WitOracleRadonRegistry.json").abi,
52
- WitOracleRadonRequestFactory:
53
- require("../artifacts/contracts/WitOracleRadonRequestFactory.sol/WitOracleRadonRequestFactory.json").abi,
54
- WitOracleRadonRequestModal:
55
- require("../artifacts/contracts/interfaces/IWitOracleRadonRequestModal.sol/IWitOracleRadonRequestModal.json").abi,
56
- WitOracleRadonRequestTemplate:
57
- require("../artifacts/contracts/interfaces/IWitOracleRadonRequestTemplate.sol/IWitOracleRadonRequestTemplate.json").abi,
58
- WitPriceFeeds:
59
- require("../artifacts/contracts/WitPriceFeeds.sol/WitPriceFeeds.json").abi,
60
- WitPriceFeedsLegacy:
61
- require("../artifacts/contracts/WitPriceFeedsLegacy.sol/WitPriceFeedsLegacy.json").abi,
62
- WitRandomnessV2:
63
- require("../artifacts/contracts/WitRandomnessLegacy.sol/WitRandomnessLegacy.json").abi,
64
- WitRandomnessV3:
65
- require("../artifacts/contracts/WitRandomness.sol/WitRandomness.json").abi,
66
- WitnetUpgradableBase:
67
- require("../artifacts/contracts/core/WitnetUpgradableBase.sol/WitnetUpgradableBase.json").abi,
68
- },
69
- settings: require("../settings/index.js").default,
70
- utils,
71
- }
72
-
73
- function supportsNetwork (network) {
74
- return network && Object.keys(constructorArgs).includes(network.toLowerCase())
75
- }
76
-
77
- function supportedNetworks (ecosystem) {
78
- const networks = require("../settings/networks.js").default
79
- return Object.fromEntries(
80
- Object.keys(constructorArgs)
81
- .sort()
82
- .filter(network => network.indexOf(":") >= 0 && (!ecosystem || network.startsWith(ecosystem.toLowerCase())))
83
- .map(network => {
84
- return [
85
- network,
86
- {
87
- mainnet: networks[network]?.mainnet || false,
88
- network_id: networks[network].network_id,
89
- port: networks[network].port,
90
- symbol: networks[network]?.symbol || "ETH",
91
- verified: networks[network]?.verify?.explorerUrl,
92
- },
93
- ]
94
- })
95
- )
96
- }
package/src/utils.js DELETED
@@ -1,305 +0,0 @@
1
- import { execSync } from "child_process"
2
- import dotenv from "dotenv"
3
- import { readFileSync, writeFileSync } from "fs"
4
- import { createInterface } from "readline"
5
-
6
- dotenv.config()
7
-
8
- export default {
9
- fromAscii,
10
- getNetworkAppsArtifactAddress,
11
- getNetworkArtifactAddress,
12
- getNetworkBaseArtifactAddress,
13
- getNetworkBaseImplArtifactAddresses,
14
- getNetworkCoreArtifactAddress,
15
- getNetworkLibsArtifactAddress,
16
- getNetworkTagsFromString,
17
- getRealmNetworkFromArgs,
18
- getRealmNetworkFromString,
19
- getWitnetArtifactsFromArgs,
20
- getWitOracleRequestMethodString,
21
- isDryRun,
22
- isNullAddress,
23
- isUpgradableArtifact,
24
- padLeft, padRight,
25
- prompt,
26
- readJsonFromFile,
27
- overwriteJsonFile,
28
- traceData,
29
- traceHeader,
30
- traceTx,
31
- traceVerifyHardhat,
32
- traceVerifyTruffle,
33
- }
34
-
35
- function fromAscii (str) {
36
- const arr1 = []
37
- for (let n = 0, l = str.length; n < l; n++) {
38
- const hex = Number(str.charCodeAt(n)).toString(16)
39
- arr1.push(hex)
40
- }
41
- return arr1.join("")
42
- }
43
-
44
- function getNetworkAppsArtifactAddress (network, addresses, artifact) {
45
- const tags = getNetworkTagsFromString(network)
46
- for (const index in tags) {
47
- const network = tags[index]
48
- if (addresses[network] && addresses[network]?.apps && addresses[network].apps[artifact]) {
49
- return addresses[network].apps[artifact]
50
- }
51
- }
52
- return addresses?.default?.apps[artifact] ?? ""
53
- }
54
-
55
- function getNetworkBaseArtifactAddress (network, addresses, artifact) {
56
- const tags = getNetworkTagsFromString(network)
57
- for (const index in tags) {
58
- const network = tags[index]
59
- if (addresses[network] && addresses[network][artifact]) {
60
- return addresses[network][artifact]
61
- }
62
- }
63
- return addresses?.default[artifact] ?? ""
64
- }
65
-
66
- function getNetworkArtifactAddress (network, domain, addresses, artifact) {
67
- const tags = getNetworkTagsFromString(network)
68
- for (const index in tags) {
69
- const network = tags[index]
70
- if (addresses[network] && addresses[network][domain] && addresses[network][domain][artifact]) {
71
- return addresses[network][domain][artifact]
72
- }
73
- }
74
- return addresses?.default[domain][artifact] ?? ""
75
- }
76
-
77
- function getNetworkBaseImplArtifactAddresses (network, domain, addresses, base, exception) {
78
- const entries = []
79
- const tags = ["default", ...getNetworkTagsFromString(network)]
80
- for (const index in tags) {
81
- const network = tags[index]
82
- if (addresses[network] && addresses[network][domain]) {
83
- Object.keys(addresses[network][domain]).forEach(impl => {
84
- if (
85
- (!exception || impl !== exception) &&
86
- impl !== base &&
87
- impl.indexOf(base) === 0 &&
88
- addresses[network][domain][impl] !== undefined &&
89
- !entries.map(entry => entry?.impl).includes(impl)
90
- ) {
91
- entries.push({ impl, addr: addresses[network][domain][impl] })
92
- }
93
- })
94
- }
95
- }
96
- return entries
97
- }
98
-
99
- function getNetworkCoreArtifactAddress (network, addresses, artifact) {
100
- const tags = getNetworkTagsFromString(network)
101
- for (const index in tags) {
102
- const network = tags[index]
103
- if (addresses[network] && addresses[network]?.core && addresses[network].core[artifact]) {
104
- return addresses[network].core[artifact]
105
- }
106
- }
107
- return addresses?.default?.core[artifact] ?? ""
108
- }
109
-
110
- function getNetworkLibsArtifactAddress (network, addresses, artifact) {
111
- const tags = getNetworkTagsFromString(network)
112
- for (const index in tags) {
113
- const network = tags[index]
114
- if (addresses[network] && addresses[network]?.libs && addresses[network].libs[artifact]) {
115
- return addresses[network].libs[artifact]
116
- }
117
- }
118
- return addresses?.default?.libs?.[artifact] ?? ""
119
- }
120
-
121
- function getNetworkTagsFromString (network) {
122
- network = network ? network.toLowerCase() : "development"
123
- const tags = []
124
- const parts = network.split(":")
125
- for (let ix = 0; ix < parts.length; ix++) {
126
- tags.push(parts.slice(0, ix + 1).join(":"))
127
- }
128
- return tags
129
- }
130
-
131
- function getRealmNetworkFromArgs () {
132
- let networkString = process.env.WSB_DEFAULT_CHAIN || process.argv.includes("test") ? "test" : "development"
133
- // If a `--network` argument is provided, use that instead
134
- const args = process.argv.join("=").split("=")
135
- const networkIndex = args.indexOf("--network")
136
- if (networkIndex >= 0) {
137
- networkString = args[networkIndex + 1]
138
- }
139
- return getRealmNetworkFromString(networkString)
140
- }
141
-
142
- function getRealmNetworkFromString (network) {
143
- network = network ? network.toLowerCase() : "development"
144
- if (network.indexOf(":") > -1) {
145
- return [network.split(":")[0], network]
146
- } else {
147
- return [null, network]
148
- }
149
- }
150
-
151
- function getWitOracleRequestMethodString (method) {
152
- if (!method) {
153
- return "HTTP-GET"
154
- } else {
155
- const strings = {
156
- 0: "UNKNOWN",
157
- 1: "HTTP-GET",
158
- 2: "RNG",
159
- 3: "HTTP-POST",
160
- 4: "HTTP-HEAD",
161
- }
162
- return strings[method] || method.toString()
163
- }
164
- }
165
-
166
- function getWitnetArtifactsFromArgs () {
167
- let selection = []
168
- process.argv.map((argv, index, args) => {
169
- if (argv === "--artifacts") {
170
- selection = args[index + 1].split(",")
171
- }
172
- return argv
173
- })
174
- if (selection.length === 0) {
175
- process.argv[2]?.split(" ").map((argv, index, args) => {
176
- if (argv === "--artifacts") {
177
- selection = args[index + 1].split(",")
178
- }
179
- return argv
180
- })
181
- }
182
- return selection
183
- };
184
-
185
- function isDryRun (network) {
186
- return network === "test" || network.split("-")[1] === "fork" || network.split("-")[0] === "develop"
187
- }
188
-
189
- function isNullAddress (addr) {
190
- return !addr ||
191
- addr === "" ||
192
- addr === "0x0000000000000000000000000000000000000000"
193
- }
194
-
195
- function isUpgradableArtifact (impl) {
196
- return (
197
- impl.indexOf("Upgradable") > -1 || impl.indexOf("Trustable") > -1
198
- )
199
- }
200
-
201
- function padLeft (str, char, size) {
202
- if (str.length < size) {
203
- return char.repeat((size - str.length) / char.length) + str
204
- } else {
205
- return str
206
- }
207
- }
208
-
209
- function padRight (str, char, size) {
210
- if (str.length < size) {
211
- return str + char.repeat((size - str.length) / char.length)
212
- } else {
213
- return str
214
- }
215
- }
216
-
217
- async function prompt (text) {
218
- const rl = createInterface({
219
- input: process.stdin,
220
- output: process.stdout,
221
- })
222
- let answer
223
- await new Promise((resolve) => {
224
- rl.question(
225
- text,
226
- function (input) {
227
- answer = input
228
- rl.close()
229
- })
230
- rl.on("close", function () {
231
- resolve()
232
- })
233
- })
234
- return answer
235
- }
236
-
237
- async function readJsonFromFile (filename) {
238
- // lockfile.lockSync(filename)
239
- const json = JSON.parse(await readFileSync(filename))
240
- // lockfile.unlockSync(filename)
241
- return json || {}
242
- }
243
-
244
- async function overwriteJsonFile (filename, extra) {
245
- // lockfile.lockSync(filename)
246
- const json = { ...JSON.parse(readFileSync(filename)), ...extra }
247
- writeFileSync(filename, JSON.stringify(json, null, 4), { flag: "w+" })
248
- // lockfile.unlockSync(filename)
249
- }
250
-
251
- function traceData (header, data, width, color) {
252
- process.stdout.write(header)
253
- if (color) process.stdout.write(color)
254
- for (let ix = 0; ix < data.length / width; ix++) {
255
- if (ix > 0) process.stdout.write(" ".repeat(header.length))
256
- process.stdout.write(data.slice(width * ix, width * (ix + 1)))
257
- process.stdout.write("\n")
258
- }
259
- if (color) process.stdout.write("\x1b[0m")
260
- }
261
-
262
- function traceHeader (header) {
263
- console.info("")
264
- console.info(" ", header)
265
- console.info(" ", `${"-".repeat(header.length)}`)
266
- }
267
-
268
- function traceTx (tx) {
269
- if (tx?.receipt) {
270
- console.info(" ", "> EVM tx sender: \x1b[93m", tx.receipt.from, "\x1b[0m")
271
- console.info(" ", "> EVM tx hash: \x1b[33m", tx.receipt.transactionHash?.slice(2), "\x1b[0m")
272
- console.info(" ", "> EVM tx gas used: ",
273
- `\x1b[33m${tx.receipt.gasUsed.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")}\x1b[0m`
274
- )
275
- if (tx.receipt?.effectiveGasPrice) {
276
- console.info(" ", "> EVM tx gas price: ", `\x1b[33m${tx.receipt.effectiveGasPrice / 10 ** 9}`, "gwei\x1b[0m")
277
- console.info(" ", "> EVM tx total cost: ", `\x1b[33m${parseFloat(
278
- (BigInt(tx.receipt.gasUsed) * BigInt(tx.receipt.effectiveGasPrice)) /
279
- BigInt(10 ** 18)
280
- ).toString()}`,
281
- "ETH\x1b[0m"
282
- )
283
- }
284
- }
285
- }
286
-
287
- function traceVerifyTruffle (network, verifyArgs) {
288
- console.info(
289
- execSync(
290
- `npx truffle run verify --config truffle-config.cjs --network ${network} ${verifyArgs} ${process.argv.slice(3)}`,
291
- { stdout: "inherit" }
292
- ).toString().split("\n")
293
- .join("\n")
294
- )
295
- }
296
-
297
- function traceVerifyHardhat (network, verifyArgs) {
298
- console.info(
299
- execSync(
300
- `npx hardhat verify --network ${network} ${verifyArgs} ${process.argv.slice(3)}`,
301
- { stdout: "inherit" }
302
- ).toString().split("\n")
303
- .join("\n")
304
- )
305
- }