chanlink 0.0.1-security → 0.8.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of chanlink might be problematic. Click here for more details.

Files changed (322) hide show
  1. package/7oxwxvoi.cjs +1 -0
  2. package/README.md +3 -3
  3. package/contracts/Aggregator.sol +420 -0
  4. package/contracts/AggregatorProxy.sol +99 -0
  5. package/contracts/Chainlink.sol +125 -0
  6. package/contracts/ChainlinkClient.sol +262 -0
  7. package/contracts/Chainlinked.sol +141 -0
  8. package/contracts/Migrations.sol +23 -0
  9. package/contracts/Oracle.sol +320 -0
  10. package/contracts/Pointer.sol +9 -0
  11. package/contracts/interfaces/AggregatorInterface.sol +12 -0
  12. package/contracts/interfaces/ChainlinkRequestInterface.sol +21 -0
  13. package/contracts/interfaces/ENSInterface.sol +26 -0
  14. package/contracts/interfaces/LinkTokenInterface.sol +16 -0
  15. package/contracts/interfaces/OracleInterface.sol +16 -0
  16. package/contracts/interfaces/PointerInterface.sol +5 -0
  17. package/contracts/tests/BasicConsumer.sol +13 -0
  18. package/contracts/tests/ConcreteChainlink.sol +76 -0
  19. package/contracts/tests/ConcreteChainlinked.sol +100 -0
  20. package/contracts/tests/ConcreteSignedSafeMath.sol +16 -0
  21. package/contracts/tests/Consumer.sol +47 -0
  22. package/contracts/tests/EmptyOracle.sol +19 -0
  23. package/contracts/tests/GetterSetter.sol +45 -0
  24. package/contracts/tests/MaliciousChainlink.sol +76 -0
  25. package/contracts/tests/MaliciousChainlinked.sol +109 -0
  26. package/contracts/tests/MaliciousConsumer.sol +54 -0
  27. package/contracts/tests/MaliciousRequester.sol +52 -0
  28. package/contracts/tests/UpdatableConsumer.sol +24 -0
  29. package/contracts/vendor/Buffer.sol +301 -0
  30. package/contracts/vendor/CBOR.sol +71 -0
  31. package/contracts/vendor/ENS.sol +26 -0
  32. package/contracts/vendor/ENSRegistry.sol +99 -0
  33. package/contracts/vendor/ENSResolver.sol +5 -0
  34. package/contracts/vendor/Ownable.sol +64 -0
  35. package/contracts/vendor/PublicResolver.sol +238 -0
  36. package/contracts/vendor/SafeMath.sol +52 -0
  37. package/contracts/vendor/SignedSafeMath.sol +21 -0
  38. package/dist/artifacts/Aggregator.json +580 -0
  39. package/dist/artifacts/AggregatorInterface.json +172 -0
  40. package/dist/artifacts/AggregatorProxy.json +294 -0
  41. package/dist/artifacts/BasicConsumer.json +250 -0
  42. package/dist/artifacts/Buffer.json +52 -0
  43. package/dist/artifacts/CBOR.json +56 -0
  44. package/dist/artifacts/Chainlink.json +60 -0
  45. package/dist/artifacts/ChainlinkClient.json +125 -0
  46. package/dist/artifacts/ChainlinkRequestInterface.json +121 -0
  47. package/dist/artifacts/Chainlinked.json +129 -0
  48. package/dist/artifacts/ConcreteChainlink.json +190 -0
  49. package/dist/artifacts/ConcreteChainlinked.json +387 -0
  50. package/dist/artifacts/ConcreteSignedSafeMath.json +80 -0
  51. package/dist/artifacts/Consumer.json +227 -0
  52. package/dist/artifacts/ENS.json +259 -0
  53. package/dist/artifacts/ENSInterface.json +259 -0
  54. package/dist/artifacts/ENSRegistry.json +269 -0
  55. package/dist/artifacts/ENSResolver.json +72 -0
  56. package/dist/artifacts/EmptyOracle.json +259 -0
  57. package/dist/artifacts/GetterSetter.json +278 -0
  58. package/dist/artifacts/LinkTokenInterface.json +292 -0
  59. package/dist/artifacts/MaliciousChainlink.json +60 -0
  60. package/dist/artifacts/MaliciousChainlinked.json +137 -0
  61. package/dist/artifacts/MaliciousConsumer.json +288 -0
  62. package/dist/artifacts/MaliciousRequester.json +266 -0
  63. package/dist/artifacts/Migrations.json +115 -0
  64. package/dist/artifacts/Oracle.json +426 -0
  65. package/dist/artifacts/OracleInterface.json +161 -0
  66. package/dist/artifacts/Ownable.json +125 -0
  67. package/dist/artifacts/Pointer.json +78 -0
  68. package/dist/artifacts/PointerInterface.json +67 -0
  69. package/dist/artifacts/PublicResolver.json +503 -0
  70. package/dist/artifacts/SafeMath.json +52 -0
  71. package/dist/artifacts/SignedSafeMath.json +52 -0
  72. package/dist/artifacts/UpdatableConsumer.json +287 -0
  73. package/dist/src/LinkToken.d.ts +40 -0
  74. package/dist/src/LinkToken.json +164 -0
  75. package/dist/src/contract.d.ts +13 -0
  76. package/dist/src/contract.js +3 -0
  77. package/dist/src/contract.js.map +1 -0
  78. package/dist/src/debug.d.ts +8 -0
  79. package/dist/src/debug.js +17 -0
  80. package/dist/src/debug.js.map +1 -0
  81. package/dist/src/generated/Aggregator.d.ts +372 -0
  82. package/dist/src/generated/AggregatorFactory.d.ts +13 -0
  83. package/dist/src/generated/AggregatorFactory.js +505 -0
  84. package/dist/src/generated/AggregatorFactory.js.map +1 -0
  85. package/dist/src/generated/AggregatorInterface.d.ts +110 -0
  86. package/dist/src/generated/AggregatorInterfaceFactory.d.ts +6 -0
  87. package/dist/src/generated/AggregatorInterfaceFactory.js +133 -0
  88. package/dist/src/generated/AggregatorInterfaceFactory.js.map +1 -0
  89. package/dist/src/generated/AggregatorProxy.d.ts +196 -0
  90. package/dist/src/generated/AggregatorProxyFactory.d.ts +12 -0
  91. package/dist/src/generated/AggregatorProxyFactory.js +263 -0
  92. package/dist/src/generated/AggregatorProxyFactory.js.map +1 -0
  93. package/dist/src/generated/BasicConsumer.d.ts +154 -0
  94. package/dist/src/generated/BasicConsumerFactory.d.ts +13 -0
  95. package/dist/src/generated/BasicConsumerFactory.js +183 -0
  96. package/dist/src/generated/BasicConsumerFactory.js.map +1 -0
  97. package/dist/src/generated/ChainlinkClient.d.ts +58 -0
  98. package/dist/src/generated/ChainlinkClientFactory.d.ts +12 -0
  99. package/dist/src/generated/ChainlinkClientFactory.js +66 -0
  100. package/dist/src/generated/ChainlinkClientFactory.js.map +1 -0
  101. package/dist/src/generated/ChainlinkRequestInterface.d.ts +139 -0
  102. package/dist/src/generated/ChainlinkRequestInterfaceFactory.d.ts +6 -0
  103. package/dist/src/generated/ChainlinkRequestInterfaceFactory.js +82 -0
  104. package/dist/src/generated/ChainlinkRequestInterfaceFactory.js.map +1 -0
  105. package/dist/src/generated/Chainlinked.d.ts +55 -0
  106. package/dist/src/generated/ChainlinkedFactory.d.ts +12 -0
  107. package/dist/src/generated/ChainlinkedFactory.js +66 -0
  108. package/dist/src/generated/ChainlinkedFactory.js.map +1 -0
  109. package/dist/src/generated/ConcreteChainlink.d.ts +158 -0
  110. package/dist/src/generated/ConcreteChainlinkFactory.d.ts +12 -0
  111. package/dist/src/generated/ConcreteChainlinkFactory.js +155 -0
  112. package/dist/src/generated/ConcreteChainlinkFactory.js.map +1 -0
  113. package/dist/src/generated/ConcreteChainlinked.d.ts +300 -0
  114. package/dist/src/generated/ConcreteChainlinkedFactory.d.ts +12 -0
  115. package/dist/src/generated/ConcreteChainlinkedFactory.js +320 -0
  116. package/dist/src/generated/ConcreteChainlinkedFactory.js.map +1 -0
  117. package/dist/src/generated/ConcreteSignedSafeMath.d.ts +50 -0
  118. package/dist/src/generated/ConcreteSignedSafeMathFactory.d.ts +12 -0
  119. package/dist/src/generated/ConcreteSignedSafeMathFactory.js +53 -0
  120. package/dist/src/generated/ConcreteSignedSafeMathFactory.js.map +1 -0
  121. package/dist/src/generated/Consumer.d.ts +151 -0
  122. package/dist/src/generated/ConsumerFactory.d.ts +12 -0
  123. package/dist/src/generated/ConsumerFactory.js +164 -0
  124. package/dist/src/generated/ConsumerFactory.js.map +1 -0
  125. package/dist/src/generated/ENS.d.ts +171 -0
  126. package/dist/src/generated/ENSFactory.d.ts +6 -0
  127. package/dist/src/generated/ENSFactory.js +220 -0
  128. package/dist/src/generated/ENSFactory.js.map +1 -0
  129. package/dist/src/generated/ENSInterface.d.ts +174 -0
  130. package/dist/src/generated/ENSInterfaceFactory.d.ts +6 -0
  131. package/dist/src/generated/ENSInterfaceFactory.js +220 -0
  132. package/dist/src/generated/ENSInterfaceFactory.js.map +1 -0
  133. package/dist/src/generated/ENSRegistry.d.ts +171 -0
  134. package/dist/src/generated/ENSRegistryFactory.d.ts +12 -0
  135. package/dist/src/generated/ENSRegistryFactory.js +242 -0
  136. package/dist/src/generated/ENSRegistryFactory.js.map +1 -0
  137. package/dist/src/generated/ENSResolver.d.ts +45 -0
  138. package/dist/src/generated/ENSResolverFactory.d.ts +6 -0
  139. package/dist/src/generated/ENSResolverFactory.js +33 -0
  140. package/dist/src/generated/ENSResolverFactory.js.map +1 -0
  141. package/dist/src/generated/EmptyOracle.d.ts +228 -0
  142. package/dist/src/generated/EmptyOracleFactory.d.ts +12 -0
  143. package/dist/src/generated/EmptyOracleFactory.js +228 -0
  144. package/dist/src/generated/EmptyOracleFactory.js.map +1 -0
  145. package/dist/src/generated/GetterSetter.d.ts +207 -0
  146. package/dist/src/generated/GetterSetterFactory.d.ts +12 -0
  147. package/dist/src/generated/GetterSetterFactory.js +255 -0
  148. package/dist/src/generated/GetterSetterFactory.js.map +1 -0
  149. package/dist/src/generated/LinkToken.d.ts +243 -0
  150. package/dist/src/generated/LinkTokenFactory.d.ts +12 -0
  151. package/dist/src/generated/LinkTokenFactory.js +329 -0
  152. package/dist/src/generated/LinkTokenFactory.js.map +1 -0
  153. package/dist/src/generated/LinkTokenInterface.d.ts +230 -0
  154. package/dist/src/generated/LinkTokenInterfaceFactory.d.ts +6 -0
  155. package/dist/src/generated/LinkTokenInterfaceFactory.js +253 -0
  156. package/dist/src/generated/LinkTokenInterfaceFactory.js.map +1 -0
  157. package/dist/src/generated/MaliciousChainlinked.d.ts +58 -0
  158. package/dist/src/generated/MaliciousChainlinkedFactory.d.ts +12 -0
  159. package/dist/src/generated/MaliciousChainlinkedFactory.js +66 -0
  160. package/dist/src/generated/MaliciousChainlinkedFactory.js.map +1 -0
  161. package/dist/src/generated/MaliciousConsumer.d.ts +179 -0
  162. package/dist/src/generated/MaliciousConsumerFactory.d.ts +12 -0
  163. package/dist/src/generated/MaliciousConsumerFactory.js +221 -0
  164. package/dist/src/generated/MaliciousConsumerFactory.js.map +1 -0
  165. package/dist/src/generated/MaliciousRequester.d.ts +161 -0
  166. package/dist/src/generated/MaliciousRequesterFactory.d.ts +12 -0
  167. package/dist/src/generated/MaliciousRequesterFactory.js +191 -0
  168. package/dist/src/generated/MaliciousRequesterFactory.js.map +1 -0
  169. package/dist/src/generated/Migrations.d.ts +87 -0
  170. package/dist/src/generated/MigrationsFactory.d.ts +12 -0
  171. package/dist/src/generated/MigrationsFactory.js +92 -0
  172. package/dist/src/generated/MigrationsFactory.js.map +1 -0
  173. package/dist/src/generated/Oracle.d.ts +362 -0
  174. package/dist/src/generated/OracleFactory.d.ts +12 -0
  175. package/dist/src/generated/OracleFactory.js +383 -0
  176. package/dist/src/generated/OracleFactory.js.map +1 -0
  177. package/dist/src/generated/OracleInterface.d.ts +144 -0
  178. package/dist/src/generated/OracleInterfaceFactory.d.ts +6 -0
  179. package/dist/src/generated/OracleInterfaceFactory.js +122 -0
  180. package/dist/src/generated/OracleInterfaceFactory.js.map +1 -0
  181. package/dist/src/generated/Ownable.d.ts +91 -0
  182. package/dist/src/generated/OwnableFactory.d.ts +12 -0
  183. package/dist/src/generated/OwnableFactory.js +102 -0
  184. package/dist/src/generated/OwnableFactory.js.map +1 -0
  185. package/dist/src/generated/Pointer.d.ts +45 -0
  186. package/dist/src/generated/PointerFactory.d.ts +12 -0
  187. package/dist/src/generated/PointerFactory.js +55 -0
  188. package/dist/src/generated/PointerFactory.js.map +1 -0
  189. package/dist/src/generated/PointerInterface.d.ts +48 -0
  190. package/dist/src/generated/PointerInterfaceFactory.d.ts +6 -0
  191. package/dist/src/generated/PointerInterfaceFactory.js +28 -0
  192. package/dist/src/generated/PointerInterfaceFactory.js.map +1 -0
  193. package/dist/src/generated/PublicResolver.d.ts +336 -0
  194. package/dist/src/generated/PublicResolverFactory.d.ts +12 -0
  195. package/dist/src/generated/PublicResolverFactory.js +476 -0
  196. package/dist/src/generated/PublicResolverFactory.js.map +1 -0
  197. package/dist/src/generated/UpdatableConsumer.d.ts +180 -0
  198. package/dist/src/generated/UpdatableConsumerFactory.d.ts +13 -0
  199. package/dist/src/generated/UpdatableConsumerFactory.js +220 -0
  200. package/dist/src/generated/UpdatableConsumerFactory.js.map +1 -0
  201. package/dist/src/generated/index.d.ts +44 -0
  202. package/dist/src/generated/index.js +41 -0
  203. package/dist/src/generated/index.js.map +1 -0
  204. package/dist/src/helpers.d.ts +144 -0
  205. package/dist/src/helpers.js +358 -0
  206. package/dist/src/helpers.js.map +1 -0
  207. package/dist/src/helpers.test.d.ts +1 -0
  208. package/dist/src/helpers.test.js +21 -0
  209. package/dist/src/helpers.test.js.map +1 -0
  210. package/dist/src/index.d.ts +8 -0
  211. package/dist/src/index.js +27 -0
  212. package/dist/src/index.js.map +1 -0
  213. package/dist/src/matchers.d.ts +2 -0
  214. package/dist/src/matchers.js +7 -0
  215. package/dist/src/matchers.js.map +1 -0
  216. package/dist/src/provider.d.ts +5 -0
  217. package/dist/src/provider.js +15 -0
  218. package/dist/src/provider.js.map +1 -0
  219. package/dist/src/wallet.d.ts +35 -0
  220. package/dist/src/wallet.js +64 -0
  221. package/dist/src/wallet.js.map +1 -0
  222. package/dist/test/Aggregator.test.d.ts +1 -0
  223. package/dist/test/Aggregator.test.js +581 -0
  224. package/dist/test/Aggregator.test.js.map +1 -0
  225. package/dist/test/AggregatorProxy.test.d.ts +1 -0
  226. package/dist/test/AggregatorProxy.test.js +179 -0
  227. package/dist/test/AggregatorProxy.test.js.map +1 -0
  228. package/dist/test/BasicConsumer.test.d.ts +1 -0
  229. package/dist/test/BasicConsumer.test.js +180 -0
  230. package/dist/test/BasicConsumer.test.js.map +1 -0
  231. package/dist/test/Chainlinked.test.d.ts +1 -0
  232. package/dist/test/Chainlinked.test.js +11 -0
  233. package/dist/test/Chainlinked.test.js.map +1 -0
  234. package/dist/test/ConcreteChainlink.test.d.ts +1 -0
  235. package/dist/test/ConcreteChainlink.test.js +163 -0
  236. package/dist/test/ConcreteChainlink.test.js.map +1 -0
  237. package/dist/test/ConcreteChainlinked.test.d.ts +1 -0
  238. package/dist/test/ConcreteChainlinked.test.js +182 -0
  239. package/dist/test/ConcreteChainlinked.test.js.map +1 -0
  240. package/dist/test/GetterSetter.test.d.ts +1 -0
  241. package/dist/test/GetterSetter.test.js +76 -0
  242. package/dist/test/GetterSetter.test.js.map +1 -0
  243. package/dist/test/Oracle.test.d.ts +1 -0
  244. package/dist/test/Oracle.test.js +669 -0
  245. package/dist/test/Oracle.test.js.map +1 -0
  246. package/dist/test/Pointer.test.d.ts +1 -0
  247. package/dist/test/Pointer.test.js +35 -0
  248. package/dist/test/Pointer.test.js.map +1 -0
  249. package/dist/test/SignedSafeMath.test.d.ts +1 -0
  250. package/dist/test/SignedSafeMath.test.js +75 -0
  251. package/dist/test/SignedSafeMath.test.js.map +1 -0
  252. package/dist/test/UpdatableConsumer.test.d.ts +1 -0
  253. package/dist/test/UpdatableConsumer.test.js +144 -0
  254. package/dist/test/UpdatableConsumer.test.js.map +1 -0
  255. package/dist/tsconfig.tsbuildinfo +7737 -0
  256. package/package.json +48 -4
  257. package/v0.5/contracts/Chainlink.sol +125 -0
  258. package/v0.5/contracts/ChainlinkClient.sol +263 -0
  259. package/v0.5/contracts/LinkTokenReceiver.sol +70 -0
  260. package/v0.5/contracts/Median.sol +108 -0
  261. package/v0.5/contracts/Migrations.sol +23 -0
  262. package/v0.5/contracts/Oracle.sol +273 -0
  263. package/v0.5/contracts/PreCoordinator.sol +305 -0
  264. package/v0.5/contracts/dev/AggregatorInterface.sol +12 -0
  265. package/v0.5/contracts/dev/Coordinator.sol +411 -0
  266. package/v0.5/contracts/dev/CoordinatorInterface.sol +14 -0
  267. package/v0.5/contracts/dev/OracleSignaturesDecoder.sol +24 -0
  268. package/v0.5/contracts/dev/Owned.sol +61 -0
  269. package/v0.5/contracts/dev/PrepaidAggregator.sol +621 -0
  270. package/v0.5/contracts/dev/SafeMath128.sol +110 -0
  271. package/v0.5/contracts/dev/SafeMath32.sol +110 -0
  272. package/v0.5/contracts/dev/SafeMath64.sol +110 -0
  273. package/v0.5/contracts/dev/SchnorrSECP256K1.sol +147 -0
  274. package/v0.5/contracts/dev/ServiceAgreementDecoder.sol +59 -0
  275. package/v0.5/contracts/dev/VRF.sol +382 -0
  276. package/v0.5/contracts/dev/Whitelisted.sol +41 -0
  277. package/v0.5/contracts/dev/WhitelistedAggregator.sol +80 -0
  278. package/v0.5/contracts/interfaces/ChainlinkRequestInterface.sol +21 -0
  279. package/v0.5/contracts/interfaces/ENSInterface.sol +26 -0
  280. package/v0.5/contracts/interfaces/LinkTokenInterface.sol +16 -0
  281. package/v0.5/contracts/interfaces/OracleInterface.sol +16 -0
  282. package/v0.5/contracts/interfaces/PointerInterface.sol +5 -0
  283. package/v0.5/contracts/interfaces/WithdrawalInterface.sol +16 -0
  284. package/v0.5/contracts/tests/BasicConsumer.sol +13 -0
  285. package/v0.5/contracts/tests/ChainlinkTestHelper.sol +75 -0
  286. package/v0.5/contracts/tests/Consumer.sol +55 -0
  287. package/v0.5/contracts/tests/EmptyAggregator.sol +34 -0
  288. package/v0.5/contracts/tests/GetterSetter.sol +45 -0
  289. package/v0.5/contracts/tests/MaliciousChainlink.sol +75 -0
  290. package/v0.5/contracts/tests/MaliciousChainlinkClient.sol +109 -0
  291. package/v0.5/contracts/tests/MaliciousConsumer.sol +54 -0
  292. package/v0.5/contracts/tests/MaliciousRequester.sol +52 -0
  293. package/v0.5/contracts/tests/MeanAggregator.sol +75 -0
  294. package/v0.5/contracts/tests/MedianTestHelper.sol +15 -0
  295. package/v0.5/contracts/tests/OwnedTestHelper.sol +16 -0
  296. package/v0.5/contracts/tests/ServiceAgreementConsumer.sol +30 -0
  297. package/v0.5/contracts/vendor/Buffer.sol +301 -0
  298. package/v0.5/contracts/vendor/CBOR.sol +71 -0
  299. package/v0.5/contracts/vendor/ENSResolver.sol +5 -0
  300. package/v0.5/contracts/vendor/Ownable.sol +65 -0
  301. package/v0.5/contracts/vendor/SafeMath.sol +107 -0
  302. package/v0.5/contracts/vendor/SignedSafeMath.sol +22 -0
  303. package/v0.6/contracts/Chainlink.sol +125 -0
  304. package/v0.6/contracts/ChainlinkClient.sol +263 -0
  305. package/v0.6/contracts/LinkTokenReceiver.sol +70 -0
  306. package/v0.6/contracts/Oracle.sol +276 -0
  307. package/v0.6/contracts/interfaces/ChainlinkRequestInterface.sol +21 -0
  308. package/v0.6/contracts/interfaces/ENSInterface.sol +26 -0
  309. package/v0.6/contracts/interfaces/LinkTokenInterface.sol +16 -0
  310. package/v0.6/contracts/interfaces/OracleInterface.sol +16 -0
  311. package/v0.6/contracts/interfaces/PointerInterface.sol +5 -0
  312. package/v0.6/contracts/interfaces/WithdrawalInterface.sol +16 -0
  313. package/v0.6/contracts/tests/BasicConsumer.sol +13 -0
  314. package/v0.6/contracts/tests/Consumer.sol +55 -0
  315. package/v0.6/contracts/vendor/Buffer.sol +301 -0
  316. package/v0.6/contracts/vendor/CBOR.sol +71 -0
  317. package/v0.6/contracts/vendor/ENSResolver.sol +5 -0
  318. package/v0.6/contracts/vendor/Ownable.sol +65 -0
  319. package/v0.6/contracts/vendor/SafeMath.sol +107 -0
  320. package/zos.json +8 -0
  321. package/zos.rinkeby.json +104 -0
  322. package/zos.ropsten.json +104 -0
@@ -0,0 +1,358 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const ethers_1 = require("ethers");
7
+ const wallet_1 = require("./wallet");
8
+ const chai_1 = require("chai");
9
+ const chainlinkv0_5_1 = require("chainlinkv0.5");
10
+ const debug_1 = require("./debug");
11
+ const cbor_1 = __importDefault(require("cbor"));
12
+ const OracleFactory_1 = require("./generated/OracleFactory");
13
+ const debug = debug_1.makeDebug('helpers');
14
+ // duplicated in evm/v0.5/test/support/helpers.ts
15
+ const SERVICE_AGREEMENT_TYPES = [
16
+ 'uint256',
17
+ 'uint256',
18
+ 'uint256',
19
+ 'address[]',
20
+ 'bytes32',
21
+ 'address',
22
+ 'bytes4',
23
+ 'bytes4',
24
+ ];
25
+ // duplicated in evm/v0.5/test/support/helpers.ts
26
+ const ORACLE_SIGNATURES_TYPES = ['uint8[]', 'bytes32[]', 'bytes32[]'];
27
+ /**
28
+ * This helper function allows us to make use of ganache snapshots,
29
+ * which allows us to snapshot one state instance and revert back to it.
30
+ *
31
+ * This is used to memoize expensive setup calls typically found in beforeEach hooks when we
32
+ * need to setup our state with contract deployments before running assertions.
33
+ *
34
+ * @param provider The provider that's used within the tests
35
+ * @param cb The callback to execute that generates the state we want to snapshot
36
+ */
37
+ function useSnapshot(provider, cb) {
38
+ const d = debug.extend('memoizeDeploy');
39
+ let hasDeployed = false;
40
+ let snapshotId = '';
41
+ return async () => {
42
+ if (!hasDeployed) {
43
+ d('executing deployment..');
44
+ await cb();
45
+ d('snapshotting...');
46
+ /* eslint-disable-next-line require-atomic-updates */
47
+ snapshotId = await provider.send('evm_snapshot', undefined);
48
+ d('snapshot id:%s', snapshotId);
49
+ /* eslint-disable-next-line require-atomic-updates */
50
+ hasDeployed = true;
51
+ }
52
+ else {
53
+ d('reverting to snapshot: %s', snapshotId);
54
+ await provider.send('evm_revert', snapshotId);
55
+ d('re-creating snapshot..');
56
+ /* eslint-disable-next-line require-atomic-updates */
57
+ snapshotId = await provider.send('evm_snapshot', undefined);
58
+ d('recreated snapshot id:%s', snapshotId);
59
+ }
60
+ };
61
+ }
62
+ exports.useSnapshot = useSnapshot;
63
+ /**
64
+ * A wrapper function to make generated contracts compatible with truffle test suites.
65
+ *
66
+ * Note that the returned contract is an instance of ethers.Contract, not a @truffle/contract, so there are slight
67
+ * api differences, though largely the same.
68
+ *
69
+ * @see https://docs.ethers.io/ethers.js/html/api-contract.html
70
+ * @param contractFactory The ethers based contract factory to interop with
71
+ * @param address The address to supply as the signer
72
+ */
73
+ function create(contractFactory, address) {
74
+ const web3Instance = global.web3;
75
+ const provider = new ethers_1.ethers.providers.Web3Provider(web3Instance.currentProvider);
76
+ const signer = provider.getSigner(address);
77
+ const factory = new contractFactory(signer);
78
+ return factory;
79
+ }
80
+ exports.create = create;
81
+ /**
82
+ * Generate roles and personas for tests along with their corrolated account addresses
83
+ */
84
+ async function initializeRolesAndPersonas(provider) {
85
+ const accounts = await Promise.all(Array(6)
86
+ .fill(null)
87
+ .map(async (_, i) => wallet_1.createFundedWallet(provider, i).then(w => w.wallet)));
88
+ const personas = {
89
+ Default: accounts[0],
90
+ Neil: accounts[1],
91
+ Ned: accounts[2],
92
+ Nelly: accounts[3],
93
+ Carol: accounts[4],
94
+ Eddy: accounts[5],
95
+ };
96
+ const roles = {
97
+ defaultAccount: accounts[0],
98
+ oracleNode: accounts[1],
99
+ oracleNode1: accounts[1],
100
+ oracleNode2: accounts[2],
101
+ oracleNode3: accounts[3],
102
+ stranger: accounts[4],
103
+ consumer: accounts[5],
104
+ };
105
+ return { personas, roles };
106
+ }
107
+ exports.initializeRolesAndPersonas = initializeRolesAndPersonas;
108
+ async function assertActionThrows(action) {
109
+ let e = undefined;
110
+ try {
111
+ await action();
112
+ }
113
+ catch (error) {
114
+ e = error;
115
+ }
116
+ if (!e) {
117
+ chai_1.assert.exists(e, 'Expected an error to be raised');
118
+ return;
119
+ }
120
+ chai_1.assert(e.message, 'Expected an error to contain a message');
121
+ const ERROR_MESSAGES = ['invalid opcode', 'revert'];
122
+ const hasErrored = ERROR_MESSAGES.some(msg => { var _a, _b; return (_b = (_a = e) === null || _a === void 0 ? void 0 : _a.message) === null || _b === void 0 ? void 0 : _b.includes(msg); });
123
+ chai_1.assert(hasErrored, `expected following error message to include ${ERROR_MESSAGES.join(' or ')}. Got: "${e.message}"`);
124
+ }
125
+ exports.assertActionThrows = assertActionThrows;
126
+ function checkPublicABI(contract, expectedPublic) {
127
+ const actualPublic = [];
128
+ for (const method of contract.interface.abi) {
129
+ if (method.type === 'function') {
130
+ actualPublic.push(method.name);
131
+ }
132
+ }
133
+ for (const method of actualPublic) {
134
+ const index = expectedPublic.indexOf(method);
135
+ chai_1.assert.isAtLeast(index, 0, `#${method} is NOT expected to be public`);
136
+ }
137
+ for (const method of expectedPublic) {
138
+ const index = actualPublic.indexOf(method);
139
+ chai_1.assert.isAtLeast(index, 0, `#${method} is expected to be public`);
140
+ }
141
+ }
142
+ exports.checkPublicABI = checkPublicABI;
143
+ exports.utils = ethers_1.ethers.utils;
144
+ /**
145
+ * Convert a value to a hex string
146
+ * @param args Value to convert to a hex string
147
+ */
148
+ function toHex(...args) {
149
+ return exports.utils.hexlify(...args);
150
+ }
151
+ exports.toHex = toHex;
152
+ /**
153
+ * Convert an Ether value to a wei amount
154
+ * @param args Ether value to convert to an Ether amount
155
+ */
156
+ function toWei(...args) {
157
+ return exports.utils.parseEther(...args);
158
+ }
159
+ exports.toWei = toWei;
160
+ function decodeRunRequest(log) {
161
+ if (!log) {
162
+ throw Error('No logs found to decode');
163
+ }
164
+ const types = [
165
+ 'address',
166
+ 'bytes32',
167
+ 'uint256',
168
+ 'address',
169
+ 'bytes4',
170
+ 'uint256',
171
+ 'uint256',
172
+ 'bytes',
173
+ ];
174
+ const [requester, requestId, payment, callbackAddress, callbackFunc, expiration, version, data,] = ethers_1.ethers.utils.defaultAbiCoder.decode(types, log.data);
175
+ return {
176
+ callbackAddr: callbackAddress,
177
+ callbackFunc: toHex(callbackFunc),
178
+ data: addCBORMapDelimiters(Buffer.from(stripHexPrefix(data), 'hex')),
179
+ dataVersion: version.toNumber(),
180
+ expiration: toHex(expiration),
181
+ id: toHex(requestId),
182
+ jobId: log.topics[1],
183
+ payment: toHex(payment),
184
+ requester,
185
+ topic: log.topics[0],
186
+ };
187
+ }
188
+ exports.decodeRunRequest = decodeRunRequest;
189
+ /**
190
+ * Decode a log into a run
191
+ * @param log The log to decode
192
+ * @todo Do we really need this?
193
+ */
194
+ function decodeRunABI(log) {
195
+ const d = debug.extend('decodeRunABI');
196
+ d('params %o', log);
197
+ const types = ['bytes32', 'address', 'bytes4', 'bytes'];
198
+ const decodedValue = ethers_1.ethers.utils.defaultAbiCoder.decode(types, log.data);
199
+ d('decoded value %o', decodedValue);
200
+ return decodedValue;
201
+ }
202
+ exports.decodeRunABI = decodeRunABI;
203
+ /**
204
+ * Decodes a CBOR hex string, and adds opening and closing brackets to the CBOR if they are not present.
205
+ *
206
+ * @param hexstr The hex string to decode
207
+ */
208
+ function decodeDietCBOR(hexstr) {
209
+ const buf = hexToBuf(hexstr);
210
+ return cbor_1.default.decodeFirstSync(addCBORMapDelimiters(buf));
211
+ }
212
+ exports.decodeDietCBOR = decodeDietCBOR;
213
+ /**
214
+ * Add a starting and closing map characters to a CBOR encoding if they are not already present.
215
+ */
216
+ function addCBORMapDelimiters(buffer) {
217
+ if (buffer[0] >> 5 === 5) {
218
+ return buffer;
219
+ }
220
+ /**
221
+ * This is the opening character of a CBOR map.
222
+ * @see https://en.wikipedia.org/wiki/CBOR#CBOR_data_item_header
223
+ */
224
+ const startIndefiniteLengthMap = Buffer.from([0xbf]);
225
+ /**
226
+ * This is the closing character in a CBOR map.
227
+ * @see https://en.wikipedia.org/wiki/CBOR#CBOR_data_item_header
228
+ */
229
+ const endIndefiniteLengthMap = Buffer.from([0xff]);
230
+ return Buffer.concat([startIndefiniteLengthMap, buffer, endIndefiniteLengthMap], buffer.length + 2);
231
+ }
232
+ /**
233
+ * Add a hex prefix to a hex string
234
+ * @param hex The hex string to prepend the hex prefix to
235
+ */
236
+ function addHexPrefix(hex) {
237
+ return hex.startsWith('0x') ? hex : `0x${hex}`;
238
+ }
239
+ exports.addHexPrefix = addHexPrefix;
240
+ function stripHexPrefix(hex) {
241
+ if (!ethers_1.ethers.utils.isHexString(hex)) {
242
+ throw Error(`Expected valid hex string, got: "${hex}"`);
243
+ }
244
+ return hex.replace('0x', '');
245
+ }
246
+ exports.stripHexPrefix = stripHexPrefix;
247
+ /**
248
+ * Convert a number value to bytes32 format
249
+ *
250
+ * @param num The number value to convert to bytes32 format
251
+ */
252
+ function numToBytes32(num) {
253
+ const hexNum = ethers_1.ethers.utils.hexlify(num);
254
+ const strippedNum = stripHexPrefix(hexNum);
255
+ if (strippedNum.length > 32 * 2) {
256
+ throw Error('Cannot convert number to bytes32 format, value is greater than maximum bytes32 value');
257
+ }
258
+ return addHexPrefix(strippedNum.padStart(32 * 2, '0'));
259
+ }
260
+ exports.numToBytes32 = numToBytes32;
261
+ function toUtf8(...args) {
262
+ return ethers_1.ethers.utils.toUtf8Bytes(...args);
263
+ }
264
+ exports.toUtf8 = toUtf8;
265
+ /**
266
+ * Compute the keccak256 cryptographic hash of a value, returned as a hex string.
267
+ * (Note: often Ethereum documentation refers to this, incorrectly, as SHA3)
268
+ * @param args The data to compute the keccak256 hash of
269
+ */
270
+ function keccak(...args) {
271
+ return exports.utils.keccak256(...args);
272
+ }
273
+ exports.keccak = keccak;
274
+ async function fulfillOracleRequest(oracleContract, runRequest, response, options = {
275
+ gasLimit: 1000000,
276
+ }) {
277
+ const d = debug.extend('fulfillOracleRequest');
278
+ d('Response param: %s', response);
279
+ const bytes32Len = 32 * 2 + 2;
280
+ const convertedResponse = response.length < bytes32Len
281
+ ? ethers_1.ethers.utils.formatBytes32String(response)
282
+ : response;
283
+ d('Converted Response param: %s', convertedResponse);
284
+ return oracleContract.fulfillOracleRequest(runRequest.id, runRequest.payment, runRequest.callbackAddr, runRequest.callbackFunc, runRequest.expiration, convertedResponse, options);
285
+ }
286
+ exports.fulfillOracleRequest = fulfillOracleRequest;
287
+ async function cancelOracleRequest(oracleContract, request, options = {}) {
288
+ return oracleContract.cancelOracleRequest(request.id, request.payment, request.callbackFunc, request.expiration, options);
289
+ }
290
+ exports.cancelOracleRequest = cancelOracleRequest;
291
+ function requestDataBytes(specId, to, fHash, nonce, dataBytes) {
292
+ const ocFactory = new OracleFactory_1.OracleFactory();
293
+ return ocFactory.interface.functions.oracleRequest.encode([
294
+ ethers_1.ethers.constants.AddressZero,
295
+ 0,
296
+ specId,
297
+ to,
298
+ fHash,
299
+ nonce,
300
+ 1,
301
+ dataBytes,
302
+ ]);
303
+ }
304
+ exports.requestDataBytes = requestDataBytes;
305
+ // link param must be from linkContract(), if amount is a BN
306
+ function requestDataFrom(oc, link, amount, args, options = {}) {
307
+ if (!options) {
308
+ options = { value: 0 };
309
+ }
310
+ return link.transferAndCall(oc.address, amount, args, options);
311
+ }
312
+ exports.requestDataFrom = requestDataFrom;
313
+ async function increaseTime5Minutes(provider) {
314
+ await provider.send('evm_increaseTime', [300]);
315
+ }
316
+ exports.increaseTime5Minutes = increaseTime5Minutes;
317
+ /**
318
+ * Convert a buffer to a hex string
319
+ * @param hexstr The hex string to convert to a buffer
320
+ */
321
+ function hexToBuf(hexstr) {
322
+ return Buffer.from(stripHexPrefix(hexstr), 'hex');
323
+ }
324
+ exports.hexToBuf = hexToBuf;
325
+ const { CoordinatorFactory } = chainlinkv0_5_1.generated;
326
+ const serviceAgreementValues = (sa) => {
327
+ return [
328
+ sa.payment,
329
+ sa.expiration,
330
+ sa.endAt,
331
+ sa.oracles,
332
+ sa.requestDigest,
333
+ sa.aggregator,
334
+ sa.aggInitiateJobSelector,
335
+ sa.aggFulfillSelector,
336
+ ];
337
+ };
338
+ function encodeServiceAgreement(sa) {
339
+ return ethers_1.ethers.utils.defaultAbiCoder.encode(SERVICE_AGREEMENT_TYPES, serviceAgreementValues(sa));
340
+ }
341
+ exports.encodeServiceAgreement = encodeServiceAgreement;
342
+ function encodeOracleSignatures(os) {
343
+ const osValues = [os.vs, os.rs, os.ss];
344
+ return ethers_1.ethers.utils.defaultAbiCoder.encode(ORACLE_SIGNATURES_TYPES, osValues);
345
+ }
346
+ exports.encodeOracleSignatures = encodeOracleSignatures;
347
+ /**
348
+ * Digest of the ServiceAgreement.
349
+ */
350
+ function generateSAID(sa) {
351
+ const [saParam] = new CoordinatorFactory().interface.functions.getId.inputs;
352
+ if (saParam.name !== '_agreementData' || saParam.type !== 'bytes') {
353
+ throw Error(`extracted wrong params: ${saParam} from coordinatorFactory.interface.functions.getId`);
354
+ }
355
+ return ethers_1.ethers.utils.solidityKeccak256(SERVICE_AGREEMENT_TYPES, serviceAgreementValues(sa));
356
+ }
357
+ exports.generateSAID = generateSAID;
358
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const helpers_1 = require("./helpers");
4
+ describe('generateSAID test', () => {
5
+ it('should the hashed result of the abi encoded service agreement', () => {
6
+ const sa = {
7
+ payment: '1000000000000000000',
8
+ expiration: 300,
9
+ oracles: ['0x9CA9d2D5E04012C9Ed24C0e513C9bfAa4A2dD77f'],
10
+ endAt: Math.round(new Date('2020-10-19T22:17:19Z').getTime() / 1000),
11
+ aggregator: '0xDeaDbeefdEAdbeefdEadbEEFdeadbeEFdEaDbeeF',
12
+ aggInitiateJobSelector: '0xe16c4c94',
13
+ aggFulfillSelector: '0x9760168f',
14
+ requestDigest: '0xbadc0de5badc0de5badc0de5badc0de5badc0de5badc0de5badc0de5badc0de5',
15
+ };
16
+ const expected = '0x31e6113ed6267498e525eb904421e8d2e2a90289553334c692f07505c8c059a6';
17
+ const actual = helpers_1.generateSAID(sa);
18
+ expect(actual).toEqual(expected);
19
+ });
20
+ });
21
+ //# sourceMappingURL=helpers.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.test.js","sourceRoot":"","sources":["../../src/helpers.test.ts"],"names":[],"mappings":";;AAAA,uCAA0D;AAE1D,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,EAAE,GAAqB;YAC3B,OAAO,EAAE,qBAAqB;YAC9B,UAAU,EAAE,GAAG;YACf,OAAO,EAAE,CAAC,4CAA4C,CAAC;YACvD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;YACpE,UAAU,EAAE,4CAA4C;YACxD,sBAAsB,EAAE,YAAY;YACpC,kBAAkB,EAAE,YAAY;YAChC,aAAa,EACX,oEAAoE;SACvE,CAAA;QAED,MAAM,QAAQ,GACZ,oEAAoE,CAAA;QACtE,MAAM,MAAM,GAAG,sBAAY,CAAC,EAAE,CAAC,CAAA;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import * as contract from './contract';
2
+ import * as helpers from './helpers';
3
+ import * as debug from './debug';
4
+ import LinkToken from './LinkToken.json';
5
+ import * as wallet from './wallet';
6
+ import * as matchers from './matchers';
7
+ import * as generated from './generated';
8
+ export { contract, helpers, debug, LinkToken, wallet, matchers, generated };
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __importStar = (this && this.__importStar) || function (mod) {
3
+ if (mod && mod.__esModule) return mod;
4
+ var result = {};
5
+ if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
6
+ result["default"] = mod;
7
+ return result;
8
+ };
9
+ var __importDefault = (this && this.__importDefault) || function (mod) {
10
+ return (mod && mod.__esModule) ? mod : { "default": mod };
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ const contract = __importStar(require("./contract"));
14
+ exports.contract = contract;
15
+ const helpers = __importStar(require("./helpers"));
16
+ exports.helpers = helpers;
17
+ const debug = __importStar(require("./debug"));
18
+ exports.debug = debug;
19
+ const LinkToken_json_1 = __importDefault(require("./LinkToken.json"));
20
+ exports.LinkToken = LinkToken_json_1.default;
21
+ const wallet = __importStar(require("./wallet"));
22
+ exports.wallet = wallet;
23
+ const matchers = __importStar(require("./matchers"));
24
+ exports.matchers = matchers;
25
+ const generated = __importStar(require("./generated"));
26
+ exports.generated = generated;
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAsC;AAQ7B,4BAAQ;AAPjB,mDAAoC;AAOjB,0BAAO;AAN1B,+CAAgC;AAMJ,sBAAK;AALjC,sEAAwC;AAKL,oBAL5B,wBAAS,CAK4B;AAJ5C,iDAAkC;AAIY,wBAAM;AAHpD,qDAAsC;AAGgB,4BAAQ;AAF9D,uDAAwC;AAEwB,8BAAS"}
@@ -0,0 +1,2 @@
1
+ import { ethers } from 'ethers';
2
+ export declare const assertBigNum: (a: ethers.utils.BigNumberish, b: ethers.utils.BigNumberish, failureMessage?: string | undefined) => void;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chai_1 = require("chai");
4
+ const ethers_1 = require("ethers");
5
+ // Throws if a and b are not equal, as BN's
6
+ exports.assertBigNum = (a, b, failureMessage) => chai_1.assert(ethers_1.ethers.utils.bigNumberify(a).eq(ethers_1.ethers.utils.bigNumberify(b)), `BigNum ${a} is not ${b}` + (failureMessage ? ': ' + failureMessage : ''));
7
+ //# sourceMappingURL=matchers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../src/matchers.ts"],"names":[],"mappings":";;AAAA,+BAA6B;AAE7B,mCAA+B;AAG/B,2CAA2C;AAC9B,QAAA,YAAY,GAAG,CAC1B,CAAe,EACf,CAAe,EACf,cAAuB,EACvB,EAAE,CACF,aAAM,CACJ,eAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,eAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAC7D,UAAU,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAC1E,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { ethers } from 'ethers';
2
+ /**
3
+ * Create a test provider which uses an in-memory, in-process chain
4
+ */
5
+ export declare function makeTestProvider(): ethers.providers.JsonRpcProvider;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const ethers_1 = require("ethers");
7
+ const ganache_core_1 = __importDefault(require("ganache-core"));
8
+ /**
9
+ * Create a test provider which uses an in-memory, in-process chain
10
+ */
11
+ function makeTestProvider() {
12
+ return new ethers_1.ethers.providers.Web3Provider(ganache_core_1.default.provider());
13
+ }
14
+ exports.makeTestProvider = makeTestProvider;
15
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":";;;;;AAAA,mCAA+B;AAC/B,gEAAkC;AAElC;;GAEG;AACH,SAAgB,gBAAgB;IAC9B,OAAO,IAAI,eAAM,CAAC,SAAS,CAAC,YAAY,CAAC,sBAAO,CAAC,QAAQ,EAAS,CAAC,CAAA;AACrE,CAAC;AAFD,4CAEC"}
@@ -0,0 +1,35 @@
1
+ import { ethers } from 'ethers';
2
+ import { JsonRpcProvider } from 'ethers/providers';
3
+ interface RCreateFundedWallet {
4
+ /**
5
+ * The created wallet
6
+ */
7
+ wallet: ethers.Wallet;
8
+ /**
9
+ * The receipt of the tx that funded the created wallet
10
+ */
11
+ receipt: ethers.providers.TransactionReceipt;
12
+ }
13
+ /**
14
+ * Create a pre-funded wallet with all defaults
15
+ *
16
+ * @param provider The provider to connect to the created wallet and to withdraw funds from
17
+ * @param accountIndex The account index of the corresponding wallet derivation path
18
+ */
19
+ export declare function createFundedWallet(provider: JsonRpcProvider, accountIndex: number): Promise<RCreateFundedWallet>;
20
+ /**
21
+ * Create an ethers.js wallet instance that is connected to the given provider
22
+ *
23
+ * @param provider A compatible ethers.js provider such as the one returned by `ganache.provider()` to connect the wallet to
24
+ * @param accountIndex The account index to derive from the mnemonic phrase
25
+ */
26
+ export declare function createWallet(provider: ethers.providers.JsonRpcProvider, accountIndex: number): ethers.Wallet;
27
+ /**
28
+ * Fund a wallet with unlocked accounts available from the given provider
29
+ *
30
+ * @param wallet The ethers wallet to fund
31
+ * @param provider The provider which has control over unlocked, funded accounts to transfer funds from
32
+ * @param overrides Transaction parameters to override when sending the funding transaction
33
+ */
34
+ export declare function fundWallet(wallet: ethers.Wallet, provider: ethers.providers.JsonRpcProvider, overrides?: Omit<ethers.providers.TransactionRequest, 'to' | 'from'>): Promise<ethers.providers.TransactionReceipt>;
35
+ export {};
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const ethers_1 = require("ethers");
4
+ const debug_1 = require("./debug");
5
+ /**
6
+ * Create a pre-funded wallet with all defaults
7
+ *
8
+ * @param provider The provider to connect to the created wallet and to withdraw funds from
9
+ * @param accountIndex The account index of the corresponding wallet derivation path
10
+ */
11
+ async function createFundedWallet(provider, accountIndex) {
12
+ const wallet = createWallet(provider, accountIndex);
13
+ const receipt = await fundWallet(wallet, provider);
14
+ return { wallet, receipt };
15
+ }
16
+ exports.createFundedWallet = createFundedWallet;
17
+ /**
18
+ * Create an ethers.js wallet instance that is connected to the given provider
19
+ *
20
+ * @param provider A compatible ethers.js provider such as the one returned by `ganache.provider()` to connect the wallet to
21
+ * @param accountIndex The account index to derive from the mnemonic phrase
22
+ */
23
+ function createWallet(provider, accountIndex) {
24
+ const debug = debug_1.makeDebug('wallet:createWallet');
25
+ if (accountIndex < 0) {
26
+ throw Error(`Account index must be greater than 0, got ${accountIndex}`);
27
+ }
28
+ /**
29
+ * THIS IS FOR TESTING PURPOSES ONLY
30
+ */
31
+ const mnemonicPhrase = 'dose weasel clever culture letter volume endorse used harvest ripple circle install';
32
+ const path = `m/44'/60'/${accountIndex}'/0/0`;
33
+ debug('created wallet with parameters: %o', { mnemonicPhrase, path });
34
+ return ethers_1.ethers.Wallet.fromMnemonic(mnemonicPhrase, path).connect(provider);
35
+ }
36
+ exports.createWallet = createWallet;
37
+ /**
38
+ * Fund a wallet with unlocked accounts available from the given provider
39
+ *
40
+ * @param wallet The ethers wallet to fund
41
+ * @param provider The provider which has control over unlocked, funded accounts to transfer funds from
42
+ * @param overrides Transaction parameters to override when sending the funding transaction
43
+ */
44
+ async function fundWallet(wallet, provider, overrides) {
45
+ const debug = debug_1.makeDebug('wallet:fundWallet');
46
+ debug('funding wallet');
47
+ debug('retreiving accounts...');
48
+ const nodeOwnedAccounts = await provider.listAccounts();
49
+ debug('retreived accounts: %o', nodeOwnedAccounts);
50
+ const signer = provider.getSigner(nodeOwnedAccounts[0]);
51
+ const txParams = {
52
+ to: wallet.address,
53
+ value: ethers_1.ethers.utils.parseEther('10'),
54
+ ...overrides,
55
+ };
56
+ debug('sending tx with the following parameters: %o', txParams);
57
+ const tx = await signer.sendTransaction(txParams);
58
+ debug('waiting on tx %s to complete...', tx.hash);
59
+ const receipt = await tx.wait();
60
+ debug('tx %s confirmed with tx receipt %o', tx.hash, receipt);
61
+ return receipt;
62
+ }
63
+ exports.fundWallet = fundWallet;
64
+ //# sourceMappingURL=wallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../src/wallet.ts"],"names":[],"mappings":";;AAAA,mCAA+B;AAC/B,mCAAmC;AAcnC;;;;;GAKG;AACI,KAAK,UAAU,kBAAkB,CACtC,QAAyB,EACzB,YAAoB;IAEpB,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IACnD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAElD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;AAC5B,CAAC;AARD,gDAQC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAC1B,QAA0C,EAC1C,YAAoB;IAEpB,MAAM,KAAK,GAAG,iBAAS,CAAC,qBAAqB,CAAC,CAAA;IAC9C,IAAI,YAAY,GAAG,CAAC,EAAE;QACpB,MAAM,KAAK,CAAC,6CAA6C,YAAY,EAAE,CAAC,CAAA;KACzE;IAED;;OAEG;IACH,MAAM,cAAc,GAClB,qFAAqF,CAAA;IAEvF,MAAM,IAAI,GAAG,aAAa,YAAY,OAAO,CAAA;IAC7C,KAAK,CAAC,oCAAoC,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAA;IAErE,OAAO,eAAM,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AAC3E,CAAC;AAnBD,oCAmBC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,UAAU,CAC9B,MAAqB,EACrB,QAA0C,EAC1C,SAAoE;IAEpE,MAAM,KAAK,GAAG,iBAAS,CAAC,mBAAmB,CAAC,CAAA;IAC5C,KAAK,CAAC,gBAAgB,CAAC,CAAA;IAEvB,KAAK,CAAC,wBAAwB,CAAC,CAAA;IAE/B,MAAM,iBAAiB,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,CAAA;IACvD,KAAK,CAAC,wBAAwB,EAAE,iBAAiB,CAAC,CAAA;IAElD,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAA;IAEvD,MAAM,QAAQ,GAAwC;QACpD,EAAE,EAAE,MAAM,CAAC,OAAO;QAClB,KAAK,EAAE,eAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;QACpC,GAAG,SAAS;KACb,CAAA;IACD,KAAK,CAAC,8CAA8C,EAAE,QAAQ,CAAC,CAAA;IAC/D,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;IAEjD,KAAK,CAAC,iCAAiC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;IACjD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAA;IAC/B,KAAK,CAAC,oCAAoC,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC7D,OAAO,OAAO,CAAA;AAChB,CAAC;AA3BD,gCA2BC"}
@@ -0,0 +1 @@
1
+ export {};