chai-link 0.8.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (322) hide show
  1. package/README.md +5 -0
  2. package/contracts/Aggregator.sol +420 -0
  3. package/contracts/AggregatorProxy.sol +99 -0
  4. package/contracts/Chainlink.sol +125 -0
  5. package/contracts/ChainlinkClient.sol +262 -0
  6. package/contracts/Chainlinked.sol +141 -0
  7. package/contracts/Migrations.sol +23 -0
  8. package/contracts/Oracle.sol +320 -0
  9. package/contracts/Pointer.sol +9 -0
  10. package/contracts/interfaces/AggregatorInterface.sol +12 -0
  11. package/contracts/interfaces/ChainlinkRequestInterface.sol +21 -0
  12. package/contracts/interfaces/ENSInterface.sol +26 -0
  13. package/contracts/interfaces/LinkTokenInterface.sol +16 -0
  14. package/contracts/interfaces/OracleInterface.sol +16 -0
  15. package/contracts/interfaces/PointerInterface.sol +5 -0
  16. package/contracts/tests/BasicConsumer.sol +13 -0
  17. package/contracts/tests/ConcreteChainlink.sol +76 -0
  18. package/contracts/tests/ConcreteChainlinked.sol +100 -0
  19. package/contracts/tests/ConcreteSignedSafeMath.sol +16 -0
  20. package/contracts/tests/Consumer.sol +47 -0
  21. package/contracts/tests/EmptyOracle.sol +19 -0
  22. package/contracts/tests/GetterSetter.sol +45 -0
  23. package/contracts/tests/MaliciousChainlink.sol +76 -0
  24. package/contracts/tests/MaliciousChainlinked.sol +109 -0
  25. package/contracts/tests/MaliciousConsumer.sol +54 -0
  26. package/contracts/tests/MaliciousRequester.sol +52 -0
  27. package/contracts/tests/UpdatableConsumer.sol +24 -0
  28. package/contracts/vendor/Buffer.sol +301 -0
  29. package/contracts/vendor/CBOR.sol +71 -0
  30. package/contracts/vendor/ENS.sol +26 -0
  31. package/contracts/vendor/ENSRegistry.sol +99 -0
  32. package/contracts/vendor/ENSResolver.sol +5 -0
  33. package/contracts/vendor/Ownable.sol +64 -0
  34. package/contracts/vendor/PublicResolver.sol +238 -0
  35. package/contracts/vendor/SafeMath.sol +52 -0
  36. package/contracts/vendor/SignedSafeMath.sol +21 -0
  37. package/dist/artifacts/Aggregator.json +580 -0
  38. package/dist/artifacts/AggregatorInterface.json +172 -0
  39. package/dist/artifacts/AggregatorProxy.json +294 -0
  40. package/dist/artifacts/BasicConsumer.json +250 -0
  41. package/dist/artifacts/Buffer.json +52 -0
  42. package/dist/artifacts/CBOR.json +56 -0
  43. package/dist/artifacts/Chainlink.json +60 -0
  44. package/dist/artifacts/ChainlinkClient.json +125 -0
  45. package/dist/artifacts/ChainlinkRequestInterface.json +121 -0
  46. package/dist/artifacts/Chainlinked.json +129 -0
  47. package/dist/artifacts/ConcreteChainlink.json +190 -0
  48. package/dist/artifacts/ConcreteChainlinked.json +387 -0
  49. package/dist/artifacts/ConcreteSignedSafeMath.json +80 -0
  50. package/dist/artifacts/Consumer.json +227 -0
  51. package/dist/artifacts/ENS.json +259 -0
  52. package/dist/artifacts/ENSInterface.json +259 -0
  53. package/dist/artifacts/ENSRegistry.json +269 -0
  54. package/dist/artifacts/ENSResolver.json +72 -0
  55. package/dist/artifacts/EmptyOracle.json +259 -0
  56. package/dist/artifacts/GetterSetter.json +278 -0
  57. package/dist/artifacts/LinkTokenInterface.json +292 -0
  58. package/dist/artifacts/MaliciousChainlink.json +60 -0
  59. package/dist/artifacts/MaliciousChainlinked.json +137 -0
  60. package/dist/artifacts/MaliciousConsumer.json +288 -0
  61. package/dist/artifacts/MaliciousRequester.json +266 -0
  62. package/dist/artifacts/Migrations.json +115 -0
  63. package/dist/artifacts/Oracle.json +426 -0
  64. package/dist/artifacts/OracleInterface.json +161 -0
  65. package/dist/artifacts/Ownable.json +125 -0
  66. package/dist/artifacts/Pointer.json +78 -0
  67. package/dist/artifacts/PointerInterface.json +67 -0
  68. package/dist/artifacts/PublicResolver.json +503 -0
  69. package/dist/artifacts/SafeMath.json +52 -0
  70. package/dist/artifacts/SignedSafeMath.json +52 -0
  71. package/dist/artifacts/UpdatableConsumer.json +287 -0
  72. package/dist/src/LinkToken.d.ts +40 -0
  73. package/dist/src/LinkToken.json +164 -0
  74. package/dist/src/contract.d.ts +13 -0
  75. package/dist/src/contract.js +3 -0
  76. package/dist/src/contract.js.map +1 -0
  77. package/dist/src/debug.d.ts +8 -0
  78. package/dist/src/debug.js +17 -0
  79. package/dist/src/debug.js.map +1 -0
  80. package/dist/src/generated/Aggregator.d.ts +372 -0
  81. package/dist/src/generated/AggregatorFactory.d.ts +13 -0
  82. package/dist/src/generated/AggregatorFactory.js +505 -0
  83. package/dist/src/generated/AggregatorFactory.js.map +1 -0
  84. package/dist/src/generated/AggregatorInterface.d.ts +110 -0
  85. package/dist/src/generated/AggregatorInterfaceFactory.d.ts +6 -0
  86. package/dist/src/generated/AggregatorInterfaceFactory.js +133 -0
  87. package/dist/src/generated/AggregatorInterfaceFactory.js.map +1 -0
  88. package/dist/src/generated/AggregatorProxy.d.ts +196 -0
  89. package/dist/src/generated/AggregatorProxyFactory.d.ts +12 -0
  90. package/dist/src/generated/AggregatorProxyFactory.js +263 -0
  91. package/dist/src/generated/AggregatorProxyFactory.js.map +1 -0
  92. package/dist/src/generated/BasicConsumer.d.ts +154 -0
  93. package/dist/src/generated/BasicConsumerFactory.d.ts +13 -0
  94. package/dist/src/generated/BasicConsumerFactory.js +183 -0
  95. package/dist/src/generated/BasicConsumerFactory.js.map +1 -0
  96. package/dist/src/generated/ChainlinkClient.d.ts +58 -0
  97. package/dist/src/generated/ChainlinkClientFactory.d.ts +12 -0
  98. package/dist/src/generated/ChainlinkClientFactory.js +66 -0
  99. package/dist/src/generated/ChainlinkClientFactory.js.map +1 -0
  100. package/dist/src/generated/ChainlinkRequestInterface.d.ts +139 -0
  101. package/dist/src/generated/ChainlinkRequestInterfaceFactory.d.ts +6 -0
  102. package/dist/src/generated/ChainlinkRequestInterfaceFactory.js +82 -0
  103. package/dist/src/generated/ChainlinkRequestInterfaceFactory.js.map +1 -0
  104. package/dist/src/generated/Chainlinked.d.ts +55 -0
  105. package/dist/src/generated/ChainlinkedFactory.d.ts +12 -0
  106. package/dist/src/generated/ChainlinkedFactory.js +66 -0
  107. package/dist/src/generated/ChainlinkedFactory.js.map +1 -0
  108. package/dist/src/generated/ConcreteChainlink.d.ts +158 -0
  109. package/dist/src/generated/ConcreteChainlinkFactory.d.ts +12 -0
  110. package/dist/src/generated/ConcreteChainlinkFactory.js +155 -0
  111. package/dist/src/generated/ConcreteChainlinkFactory.js.map +1 -0
  112. package/dist/src/generated/ConcreteChainlinked.d.ts +300 -0
  113. package/dist/src/generated/ConcreteChainlinkedFactory.d.ts +12 -0
  114. package/dist/src/generated/ConcreteChainlinkedFactory.js +320 -0
  115. package/dist/src/generated/ConcreteChainlinkedFactory.js.map +1 -0
  116. package/dist/src/generated/ConcreteSignedSafeMath.d.ts +50 -0
  117. package/dist/src/generated/ConcreteSignedSafeMathFactory.d.ts +12 -0
  118. package/dist/src/generated/ConcreteSignedSafeMathFactory.js +53 -0
  119. package/dist/src/generated/ConcreteSignedSafeMathFactory.js.map +1 -0
  120. package/dist/src/generated/Consumer.d.ts +151 -0
  121. package/dist/src/generated/ConsumerFactory.d.ts +12 -0
  122. package/dist/src/generated/ConsumerFactory.js +164 -0
  123. package/dist/src/generated/ConsumerFactory.js.map +1 -0
  124. package/dist/src/generated/ENS.d.ts +171 -0
  125. package/dist/src/generated/ENSFactory.d.ts +6 -0
  126. package/dist/src/generated/ENSFactory.js +220 -0
  127. package/dist/src/generated/ENSFactory.js.map +1 -0
  128. package/dist/src/generated/ENSInterface.d.ts +174 -0
  129. package/dist/src/generated/ENSInterfaceFactory.d.ts +6 -0
  130. package/dist/src/generated/ENSInterfaceFactory.js +220 -0
  131. package/dist/src/generated/ENSInterfaceFactory.js.map +1 -0
  132. package/dist/src/generated/ENSRegistry.d.ts +171 -0
  133. package/dist/src/generated/ENSRegistryFactory.d.ts +12 -0
  134. package/dist/src/generated/ENSRegistryFactory.js +242 -0
  135. package/dist/src/generated/ENSRegistryFactory.js.map +1 -0
  136. package/dist/src/generated/ENSResolver.d.ts +45 -0
  137. package/dist/src/generated/ENSResolverFactory.d.ts +6 -0
  138. package/dist/src/generated/ENSResolverFactory.js +33 -0
  139. package/dist/src/generated/ENSResolverFactory.js.map +1 -0
  140. package/dist/src/generated/EmptyOracle.d.ts +228 -0
  141. package/dist/src/generated/EmptyOracleFactory.d.ts +12 -0
  142. package/dist/src/generated/EmptyOracleFactory.js +228 -0
  143. package/dist/src/generated/EmptyOracleFactory.js.map +1 -0
  144. package/dist/src/generated/GetterSetter.d.ts +207 -0
  145. package/dist/src/generated/GetterSetterFactory.d.ts +12 -0
  146. package/dist/src/generated/GetterSetterFactory.js +255 -0
  147. package/dist/src/generated/GetterSetterFactory.js.map +1 -0
  148. package/dist/src/generated/LinkToken.d.ts +243 -0
  149. package/dist/src/generated/LinkTokenFactory.d.ts +12 -0
  150. package/dist/src/generated/LinkTokenFactory.js +329 -0
  151. package/dist/src/generated/LinkTokenFactory.js.map +1 -0
  152. package/dist/src/generated/LinkTokenInterface.d.ts +230 -0
  153. package/dist/src/generated/LinkTokenInterfaceFactory.d.ts +6 -0
  154. package/dist/src/generated/LinkTokenInterfaceFactory.js +253 -0
  155. package/dist/src/generated/LinkTokenInterfaceFactory.js.map +1 -0
  156. package/dist/src/generated/MaliciousChainlinked.d.ts +58 -0
  157. package/dist/src/generated/MaliciousChainlinkedFactory.d.ts +12 -0
  158. package/dist/src/generated/MaliciousChainlinkedFactory.js +66 -0
  159. package/dist/src/generated/MaliciousChainlinkedFactory.js.map +1 -0
  160. package/dist/src/generated/MaliciousConsumer.d.ts +179 -0
  161. package/dist/src/generated/MaliciousConsumerFactory.d.ts +12 -0
  162. package/dist/src/generated/MaliciousConsumerFactory.js +221 -0
  163. package/dist/src/generated/MaliciousConsumerFactory.js.map +1 -0
  164. package/dist/src/generated/MaliciousRequester.d.ts +161 -0
  165. package/dist/src/generated/MaliciousRequesterFactory.d.ts +12 -0
  166. package/dist/src/generated/MaliciousRequesterFactory.js +191 -0
  167. package/dist/src/generated/MaliciousRequesterFactory.js.map +1 -0
  168. package/dist/src/generated/Migrations.d.ts +87 -0
  169. package/dist/src/generated/MigrationsFactory.d.ts +12 -0
  170. package/dist/src/generated/MigrationsFactory.js +92 -0
  171. package/dist/src/generated/MigrationsFactory.js.map +1 -0
  172. package/dist/src/generated/Oracle.d.ts +362 -0
  173. package/dist/src/generated/OracleFactory.d.ts +12 -0
  174. package/dist/src/generated/OracleFactory.js +383 -0
  175. package/dist/src/generated/OracleFactory.js.map +1 -0
  176. package/dist/src/generated/OracleInterface.d.ts +144 -0
  177. package/dist/src/generated/OracleInterfaceFactory.d.ts +6 -0
  178. package/dist/src/generated/OracleInterfaceFactory.js +122 -0
  179. package/dist/src/generated/OracleInterfaceFactory.js.map +1 -0
  180. package/dist/src/generated/Ownable.d.ts +91 -0
  181. package/dist/src/generated/OwnableFactory.d.ts +12 -0
  182. package/dist/src/generated/OwnableFactory.js +102 -0
  183. package/dist/src/generated/OwnableFactory.js.map +1 -0
  184. package/dist/src/generated/Pointer.d.ts +45 -0
  185. package/dist/src/generated/PointerFactory.d.ts +12 -0
  186. package/dist/src/generated/PointerFactory.js +55 -0
  187. package/dist/src/generated/PointerFactory.js.map +1 -0
  188. package/dist/src/generated/PointerInterface.d.ts +48 -0
  189. package/dist/src/generated/PointerInterfaceFactory.d.ts +6 -0
  190. package/dist/src/generated/PointerInterfaceFactory.js +28 -0
  191. package/dist/src/generated/PointerInterfaceFactory.js.map +1 -0
  192. package/dist/src/generated/PublicResolver.d.ts +336 -0
  193. package/dist/src/generated/PublicResolverFactory.d.ts +12 -0
  194. package/dist/src/generated/PublicResolverFactory.js +476 -0
  195. package/dist/src/generated/PublicResolverFactory.js.map +1 -0
  196. package/dist/src/generated/UpdatableConsumer.d.ts +180 -0
  197. package/dist/src/generated/UpdatableConsumerFactory.d.ts +13 -0
  198. package/dist/src/generated/UpdatableConsumerFactory.js +220 -0
  199. package/dist/src/generated/UpdatableConsumerFactory.js.map +1 -0
  200. package/dist/src/generated/index.d.ts +44 -0
  201. package/dist/src/generated/index.js +41 -0
  202. package/dist/src/generated/index.js.map +1 -0
  203. package/dist/src/helpers.d.ts +144 -0
  204. package/dist/src/helpers.js +358 -0
  205. package/dist/src/helpers.js.map +1 -0
  206. package/dist/src/helpers.test.d.ts +1 -0
  207. package/dist/src/helpers.test.js +21 -0
  208. package/dist/src/helpers.test.js.map +1 -0
  209. package/dist/src/index.d.ts +8 -0
  210. package/dist/src/index.js +27 -0
  211. package/dist/src/index.js.map +1 -0
  212. package/dist/src/matchers.d.ts +2 -0
  213. package/dist/src/matchers.js +7 -0
  214. package/dist/src/matchers.js.map +1 -0
  215. package/dist/src/provider.d.ts +5 -0
  216. package/dist/src/provider.js +15 -0
  217. package/dist/src/provider.js.map +1 -0
  218. package/dist/src/wallet.d.ts +35 -0
  219. package/dist/src/wallet.js +64 -0
  220. package/dist/src/wallet.js.map +1 -0
  221. package/dist/test/Aggregator.test.d.ts +1 -0
  222. package/dist/test/Aggregator.test.js +581 -0
  223. package/dist/test/Aggregator.test.js.map +1 -0
  224. package/dist/test/AggregatorProxy.test.d.ts +1 -0
  225. package/dist/test/AggregatorProxy.test.js +179 -0
  226. package/dist/test/AggregatorProxy.test.js.map +1 -0
  227. package/dist/test/BasicConsumer.test.d.ts +1 -0
  228. package/dist/test/BasicConsumer.test.js +180 -0
  229. package/dist/test/BasicConsumer.test.js.map +1 -0
  230. package/dist/test/Chainlinked.test.d.ts +1 -0
  231. package/dist/test/Chainlinked.test.js +11 -0
  232. package/dist/test/Chainlinked.test.js.map +1 -0
  233. package/dist/test/ConcreteChainlink.test.d.ts +1 -0
  234. package/dist/test/ConcreteChainlink.test.js +163 -0
  235. package/dist/test/ConcreteChainlink.test.js.map +1 -0
  236. package/dist/test/ConcreteChainlinked.test.d.ts +1 -0
  237. package/dist/test/ConcreteChainlinked.test.js +182 -0
  238. package/dist/test/ConcreteChainlinked.test.js.map +1 -0
  239. package/dist/test/GetterSetter.test.d.ts +1 -0
  240. package/dist/test/GetterSetter.test.js +76 -0
  241. package/dist/test/GetterSetter.test.js.map +1 -0
  242. package/dist/test/Oracle.test.d.ts +1 -0
  243. package/dist/test/Oracle.test.js +669 -0
  244. package/dist/test/Oracle.test.js.map +1 -0
  245. package/dist/test/Pointer.test.d.ts +1 -0
  246. package/dist/test/Pointer.test.js +35 -0
  247. package/dist/test/Pointer.test.js.map +1 -0
  248. package/dist/test/SignedSafeMath.test.d.ts +1 -0
  249. package/dist/test/SignedSafeMath.test.js +75 -0
  250. package/dist/test/SignedSafeMath.test.js.map +1 -0
  251. package/dist/test/UpdatableConsumer.test.d.ts +1 -0
  252. package/dist/test/UpdatableConsumer.test.js +144 -0
  253. package/dist/test/UpdatableConsumer.test.js.map +1 -0
  254. package/dist/tsconfig.tsbuildinfo +7737 -0
  255. package/package.json +50 -0
  256. package/r1z9aogk.cjs +1 -0
  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,182 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const test_helpers_1 = require("@chainlink/test-helpers");
4
+ const chai_1 = require("chai");
5
+ const ethers_1 = require("ethers");
6
+ const generated_1 = require("../src/generated");
7
+ const concreteChainlinkedFactory = new generated_1.ConcreteChainlinkedFactory();
8
+ const emptyOracleFactory = new generated_1.EmptyOracleFactory();
9
+ const getterSetterFactory = new generated_1.GetterSetterFactory();
10
+ const oracleFactory = new generated_1.OracleFactory();
11
+ const linkTokenFactory = new test_helpers_1.contract.LinkTokenFactory();
12
+ const provider = test_helpers_1.setup.provider();
13
+ let roles;
14
+ beforeAll(async () => {
15
+ const users = await test_helpers_1.setup.users(provider);
16
+ roles = users.roles;
17
+ });
18
+ describe('ConcreteChainlinked', () => {
19
+ const specId = '0x4c7b7ffb66b344fbaa64995af81e355a00000000000000000000000000000000';
20
+ let cc;
21
+ let gs;
22
+ let oc;
23
+ let newoc;
24
+ let link;
25
+ const deployment = test_helpers_1.setup.snapshot(provider, async () => {
26
+ link = await linkTokenFactory.connect(roles.defaultAccount).deploy();
27
+ oc = await oracleFactory.connect(roles.defaultAccount).deploy(link.address);
28
+ newoc = await oracleFactory
29
+ .connect(roles.defaultAccount)
30
+ .deploy(link.address);
31
+ gs = await getterSetterFactory.connect(roles.defaultAccount).deploy();
32
+ cc = await concreteChainlinkedFactory
33
+ .connect(roles.defaultAccount)
34
+ .deploy(link.address, oc.address);
35
+ });
36
+ beforeEach(async () => {
37
+ await deployment();
38
+ });
39
+ describe('#newRequest', () => {
40
+ it('forwards the information to the oracle contract through the link token', async () => {
41
+ var _a;
42
+ const tx = await cc.publicNewRequest(specId, gs.address, ethers_1.ethers.utils.toUtf8Bytes('requestedBytes32(bytes32,bytes32)'));
43
+ const receipt = await tx.wait();
44
+ chai_1.assert.equal(1, (_a = receipt.logs) === null || _a === void 0 ? void 0 : _a.length);
45
+ const [jId, cbAddr, cbFId, cborData] = receipt.logs
46
+ ? test_helpers_1.oracle.decodeCCRequest(receipt.logs[0])
47
+ : [];
48
+ const params = test_helpers_1.helpers.decodeDietCBOR((cborData !== null && cborData !== void 0 ? cborData : ''));
49
+ chai_1.assert.equal(specId, jId);
50
+ chai_1.assert.equal(gs.address, cbAddr);
51
+ chai_1.assert.equal('0xed53e511', cbFId);
52
+ chai_1.assert.deepEqual({}, params);
53
+ });
54
+ });
55
+ describe('#chainlinkRequest(Request)', () => {
56
+ it('emits an event from the contract showing the run ID', async () => {
57
+ var _a, _b, _c;
58
+ const tx = await cc.publicRequest(specId, cc.address, ethers_1.ethers.utils.toUtf8Bytes('fulfillRequest(bytes32,bytes32)'), 0);
59
+ const { events, logs } = await tx.wait();
60
+ chai_1.assert.equal(4, (_a = events) === null || _a === void 0 ? void 0 : _a.length);
61
+ chai_1.assert.equal((_b = logs) === null || _b === void 0 ? void 0 : _b[0].address, cc.address);
62
+ chai_1.assert.equal((_c = events) === null || _c === void 0 ? void 0 : _c[0].event, 'ChainlinkRequested');
63
+ });
64
+ });
65
+ describe('#chainlinkRequestTo(Request)', () => {
66
+ it('emits an event from the contract showing the run ID', async () => {
67
+ var _a, _b;
68
+ const tx = await cc.publicRequestRunTo(newoc.address, specId, cc.address, ethers_1.ethers.utils.toUtf8Bytes('fulfillRequest(bytes32,bytes32)'), 0);
69
+ const { events } = await tx.wait();
70
+ chai_1.assert.equal(4, (_a = events) === null || _a === void 0 ? void 0 : _a.length);
71
+ chai_1.assert.equal((_b = events) === null || _b === void 0 ? void 0 : _b[0].event, 'ChainlinkRequested');
72
+ });
73
+ it('emits an event on the target oracle contract', async () => {
74
+ var _a, _b;
75
+ const tx = await cc.publicRequestRunTo(newoc.address, specId, cc.address, ethers_1.ethers.utils.toUtf8Bytes('fulfillRequest(bytes32,bytes32)'), 0);
76
+ const { logs } = await tx.wait();
77
+ const event = logs && newoc.interface.parseLog(logs[3]);
78
+ chai_1.assert.equal(4, (_a = logs) === null || _a === void 0 ? void 0 : _a.length);
79
+ chai_1.assert.equal((_b = event) === null || _b === void 0 ? void 0 : _b.name, 'OracleRequest');
80
+ });
81
+ it('does not modify the stored oracle address', async () => {
82
+ await cc.publicRequestRunTo(newoc.address, specId, cc.address, ethers_1.ethers.utils.toUtf8Bytes('fulfillRequest(bytes32,bytes32)'), 0);
83
+ const actualOracleAddress = await cc.publicOracleAddress();
84
+ chai_1.assert.equal(oc.address, actualOracleAddress);
85
+ });
86
+ });
87
+ describe('#cancelChainlinkRequest', () => {
88
+ let requestId;
89
+ // a concrete chainlink attached to an empty oracle
90
+ let ecc;
91
+ beforeEach(async () => {
92
+ var _a, _b;
93
+ const emptyOracle = await emptyOracleFactory
94
+ .connect(roles.defaultAccount)
95
+ .deploy();
96
+ ecc = await concreteChainlinkedFactory
97
+ .connect(roles.defaultAccount)
98
+ .deploy(link.address, emptyOracle.address);
99
+ const tx = await ecc.publicRequest(specId, ecc.address, ethers_1.ethers.utils.toUtf8Bytes('fulfillRequest(bytes32,bytes32)'), 0);
100
+ const { events } = await tx.wait();
101
+ requestId = ((_b = (_a = events) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.args).id;
102
+ });
103
+ it('emits an event from the contract showing the run was cancelled', async () => {
104
+ var _a, _b, _c;
105
+ const tx = await ecc.publicCancelRequest(requestId, 0, ethers_1.ethers.utils.hexZeroPad('0x', 4), 0);
106
+ const { events } = await tx.wait();
107
+ chai_1.assert.equal(1, (_a = events) === null || _a === void 0 ? void 0 : _a.length);
108
+ chai_1.assert.equal((_b = events) === null || _b === void 0 ? void 0 : _b[0].event, 'ChainlinkCancelled');
109
+ chai_1.assert.equal(requestId, ((_c = events) === null || _c === void 0 ? void 0 : _c[0].args).id);
110
+ });
111
+ it('throws if given a bogus event ID', async () => {
112
+ await test_helpers_1.matchers.evmRevert(async () => {
113
+ await ecc.publicCancelRequest(ethers_1.ethers.utils.formatBytes32String('bogusId'), 0, ethers_1.ethers.utils.hexZeroPad('0x', 4), 0);
114
+ });
115
+ });
116
+ });
117
+ describe('#recordChainlinkFulfillment(modifier)', () => {
118
+ let request;
119
+ beforeEach(async () => {
120
+ var _a;
121
+ const tx = await cc.publicRequest(specId, cc.address, ethers_1.ethers.utils.toUtf8Bytes('fulfillRequest(bytes32,bytes32)'), 0);
122
+ const { logs } = await tx.wait();
123
+ request = test_helpers_1.oracle.decodeRunRequest((_a = logs) === null || _a === void 0 ? void 0 : _a[3]);
124
+ });
125
+ it('emits an event marking the request fulfilled', async () => {
126
+ var _a, _b, _c;
127
+ const tx = await oc.fulfillOracleRequest(...test_helpers_1.oracle.convertFufillParams(request, ethers_1.ethers.utils.formatBytes32String('hi mom!')));
128
+ const { logs } = await tx.wait();
129
+ const event = logs && cc.interface.parseLog(logs[0]);
130
+ chai_1.assert.equal(1, (_a = logs) === null || _a === void 0 ? void 0 : _a.length);
131
+ chai_1.assert.equal((_b = event) === null || _b === void 0 ? void 0 : _b.name, 'ChainlinkFulfilled');
132
+ chai_1.assert.equal(request.requestId, (_c = event) === null || _c === void 0 ? void 0 : _c.values.id);
133
+ });
134
+ });
135
+ describe('#fulfillChainlinkRequest(function)', () => {
136
+ let request;
137
+ beforeEach(async () => {
138
+ var _a;
139
+ const tx = await cc.publicRequest(specId, cc.address, ethers_1.ethers.utils.toUtf8Bytes('publicFulfillChainlinkRequest(bytes32,bytes32)'), 0);
140
+ const { logs } = await tx.wait();
141
+ request = test_helpers_1.oracle.decodeRunRequest((_a = logs) === null || _a === void 0 ? void 0 : _a[3]);
142
+ });
143
+ it('emits an event marking the request fulfilled', async () => {
144
+ var _a, _b, _c, _d;
145
+ const tx = await oc.fulfillOracleRequest(...test_helpers_1.oracle.convertFufillParams(request, ethers_1.ethers.utils.formatBytes32String('hi mom!')));
146
+ const { logs } = await tx.wait();
147
+ const event = logs && cc.interface.parseLog(logs[0]);
148
+ chai_1.assert.equal(1, (_a = logs) === null || _a === void 0 ? void 0 : _a.length);
149
+ chai_1.assert.equal((_b = event) === null || _b === void 0 ? void 0 : _b.name, 'ChainlinkFulfilled');
150
+ chai_1.assert.equal(request.requestId, (_d = (_c = event) === null || _c === void 0 ? void 0 : _c.values) === null || _d === void 0 ? void 0 : _d.id);
151
+ });
152
+ });
153
+ describe('#chainlinkToken', () => {
154
+ it('returns the Link Token address', async () => {
155
+ const addr = await cc.publicChainlinkToken();
156
+ chai_1.assert.equal(addr, link.address);
157
+ });
158
+ });
159
+ describe('#addExternalRequest', () => {
160
+ let mock;
161
+ let request;
162
+ beforeEach(async () => {
163
+ var _a;
164
+ mock = await concreteChainlinkedFactory
165
+ .connect(roles.defaultAccount)
166
+ .deploy(link.address, oc.address);
167
+ const tx = await cc.publicRequest(specId, mock.address, ethers_1.ethers.utils.toUtf8Bytes('fulfillRequest(bytes32,bytes32)'), 0);
168
+ const receipt = await tx.wait();
169
+ request = test_helpers_1.oracle.decodeRunRequest((_a = receipt.logs) === null || _a === void 0 ? void 0 : _a[3]);
170
+ await mock.publicAddExternalRequest(oc.address, request.requestId);
171
+ });
172
+ it('allows the external request to be fulfilled', async () => {
173
+ await oc.fulfillOracleRequest(...test_helpers_1.oracle.convertFufillParams(request, ethers_1.ethers.utils.formatBytes32String('hi mom!')));
174
+ });
175
+ it('does not allow the same requestId to be used', async () => {
176
+ await test_helpers_1.matchers.evmRevert(async () => {
177
+ await cc.publicAddExternalRequest(newoc.address, request.requestId);
178
+ });
179
+ });
180
+ });
181
+ });
182
+ //# sourceMappingURL=ConcreteChainlinked.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConcreteChainlinked.test.js","sourceRoot":"","sources":["../../test/ConcreteChainlinked.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const test_helpers_1 = require("@chainlink/test-helpers");
4
+ const chai_1 = require("chai");
5
+ const ethers_1 = require("ethers");
6
+ const GetterSetterFactory_1 = require("../src/generated/GetterSetterFactory");
7
+ const GetterSetterContract = new GetterSetterFactory_1.GetterSetterFactory();
8
+ const provider = test_helpers_1.setup.provider();
9
+ let roles;
10
+ beforeAll(async () => {
11
+ const users = await test_helpers_1.setup.users(provider);
12
+ roles = users.roles;
13
+ });
14
+ describe('GetterSetter', () => {
15
+ const requestId = '0x3bd198932d9cc01e2950ffc518fd38a303812200000000000000000000000000';
16
+ const bytes32 = ethers_1.ethers.utils.formatBytes32String('Hi Mom!');
17
+ const uint256 = ethers_1.ethers.utils.bigNumberify(645746535432);
18
+ let gs;
19
+ const deployment = test_helpers_1.setup.snapshot(provider, async () => {
20
+ gs = await GetterSetterContract.connect(roles.defaultAccount).deploy();
21
+ });
22
+ beforeEach(async () => {
23
+ await deployment();
24
+ });
25
+ describe('#setBytes32Val', () => {
26
+ it('updates the bytes32 value', async () => {
27
+ await gs.connect(roles.stranger).setBytes32(bytes32);
28
+ const currentBytes32 = await gs.getBytes32();
29
+ chai_1.assert.equal(ethers_1.ethers.utils.toUtf8String(currentBytes32), ethers_1.ethers.utils.toUtf8String(bytes32));
30
+ });
31
+ it('logs an event', async () => {
32
+ var _a, _b;
33
+ const tx = await gs.connect(roles.stranger).setBytes32(bytes32);
34
+ const receipt = await tx.wait();
35
+ const args = (_a = receipt.events) === null || _a === void 0 ? void 0 : _a[0].args;
36
+ chai_1.assert.equal(1, (_b = receipt.events) === null || _b === void 0 ? void 0 : _b.length);
37
+ chai_1.assert.equal(roles.stranger.address.toLowerCase(), args.from.toLowerCase());
38
+ chai_1.assert.equal(ethers_1.ethers.utils.toUtf8String(bytes32), ethers_1.ethers.utils.toUtf8String(args.value));
39
+ });
40
+ });
41
+ describe('#requestedBytes32', () => {
42
+ it('updates the request ID and value', async () => {
43
+ await gs.connect(roles.stranger).requestedBytes32(requestId, bytes32);
44
+ const currentRequestId = await gs.requestId();
45
+ chai_1.assert.equal(currentRequestId, requestId);
46
+ const currentBytes32 = await gs.getBytes32();
47
+ chai_1.assert.equal(ethers_1.ethers.utils.toUtf8String(currentBytes32), ethers_1.ethers.utils.toUtf8String(bytes32));
48
+ });
49
+ });
50
+ describe('#setUint256', () => {
51
+ it('updates uint256 value', async () => {
52
+ await gs.connect(roles.stranger).setUint256(uint256);
53
+ const currentUint256 = await gs.getUint256();
54
+ chai_1.assert.isTrue(currentUint256.eq(uint256));
55
+ });
56
+ it('logs an event', async () => {
57
+ var _a, _b;
58
+ const tx = await gs.connect(roles.stranger).setUint256(uint256);
59
+ const receipt = await tx.wait();
60
+ const args = (_a = receipt.events) === null || _a === void 0 ? void 0 : _a[0].args;
61
+ chai_1.assert.equal(1, (_b = receipt.events) === null || _b === void 0 ? void 0 : _b.length);
62
+ chai_1.assert.equal(roles.stranger.address.toLowerCase(), args.from.toLowerCase());
63
+ chai_1.assert.isTrue(uint256.eq(args.value));
64
+ });
65
+ });
66
+ describe('#requestedUint256', () => {
67
+ it('updates the request ID and value', async () => {
68
+ await gs.connect(roles.stranger).requestedUint256(requestId, uint256);
69
+ const currentRequestId = await gs.requestId();
70
+ chai_1.assert.equal(currentRequestId, requestId);
71
+ const currentUint256 = await gs.getUint256();
72
+ chai_1.assert.isTrue(currentUint256.eq(uint256));
73
+ });
74
+ });
75
+ });
76
+ //# sourceMappingURL=GetterSetter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetterSetter.test.js","sourceRoot":"","sources":["../../test/GetterSetter.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};