@graphprotocol/graph-cli 0.37.3 → 0.37.4-alpha-20230117095424-b5750b1

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 (352) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/bin.js +6 -0
  3. package/dist/cli.js +26 -0
  4. package/dist/codegen/schema.js +244 -0
  5. package/dist/codegen/schema.test.js +455 -0
  6. package/dist/codegen/template.js +66 -0
  7. package/dist/codegen/types/conversions.js +335 -0
  8. package/dist/codegen/types/index.js +71 -0
  9. package/dist/codegen/types/index.test.js +563 -0
  10. package/dist/codegen/typescript.js +200 -0
  11. package/dist/codegen/util.js +40 -0
  12. package/dist/codegen/util.test.js +93 -0
  13. package/dist/command-helpers/abi.js +76 -0
  14. package/dist/command-helpers/auth.js +76 -0
  15. package/dist/command-helpers/compiler.js +66 -0
  16. package/dist/command-helpers/data-sources.js +29 -0
  17. package/dist/command-helpers/fs.js +9 -0
  18. package/dist/command-helpers/gluegun.js +48 -0
  19. package/dist/command-helpers/ipfs.js +5 -0
  20. package/dist/command-helpers/jsonrpc.js +27 -0
  21. package/dist/command-helpers/network.js +90 -0
  22. package/dist/command-helpers/network.test.js +86 -0
  23. package/dist/command-helpers/node.js +40 -0
  24. package/dist/command-helpers/scaffold.js +110 -0
  25. package/dist/command-helpers/spinner.js +80 -0
  26. package/dist/command-helpers/studio.js +14 -0
  27. package/dist/command-helpers/studio.test.js +41 -0
  28. package/dist/command-helpers/subgraph.js +22 -0
  29. package/dist/command-helpers/version.js +66 -0
  30. package/dist/command-helpers/version.test.js +186 -0
  31. package/dist/commands/add.js +187 -0
  32. package/dist/commands/auth.js +122 -0
  33. package/dist/commands/build.js +136 -0
  34. package/dist/commands/codegen.js +128 -0
  35. package/dist/commands/create.js +94 -0
  36. package/dist/commands/deploy.js +335 -0
  37. package/dist/commands/init.js +800 -0
  38. package/dist/commands/local.js +380 -0
  39. package/dist/commands/remove.js +95 -0
  40. package/dist/commands/test.js +293 -0
  41. package/dist/compiler/asc.js +83 -0
  42. package/dist/compiler/index.js +466 -0
  43. package/dist/debug.js +16 -0
  44. package/dist/migrations/mapping_api_version_0_0_1.js +83 -0
  45. package/dist/migrations/mapping_api_version_0_0_2.js +83 -0
  46. package/dist/migrations/mapping_api_version_0_0_3.js +83 -0
  47. package/dist/migrations/mapping_api_version_0_0_4.js +85 -0
  48. package/dist/migrations/mapping_api_version_0_0_5.js +85 -0
  49. package/dist/migrations/spec_version_0_0_2.js +45 -0
  50. package/dist/migrations/spec_version_0_0_3.js +50 -0
  51. package/dist/migrations/util/load-manifest.js +16 -0
  52. package/dist/migrations/util/versions.js +28 -0
  53. package/dist/migrations.js +54 -0
  54. package/{src → dist}/protocols/arweave/manifest.graphql +0 -0
  55. package/{src/protocols/arweave/scaffold/manifest.ts → dist/protocols/arweave/scaffold/manifest.js} +7 -3
  56. package/{src/protocols/arweave/scaffold/mapping.ts → dist/protocols/arweave/scaffold/mapping.js} +5 -2
  57. package/dist/protocols/arweave/subgraph.js +23 -0
  58. package/dist/protocols/contract.js +2 -0
  59. package/{src → dist}/protocols/cosmos/manifest.graphql +0 -0
  60. package/dist/protocols/cosmos/scaffold/manifest.js +15 -0
  61. package/{src/protocols/cosmos/scaffold/mapping.ts → dist/protocols/cosmos/scaffold/mapping.js} +5 -2
  62. package/dist/protocols/cosmos/subgraph.js +28 -0
  63. package/dist/protocols/ethereum/abi.js +138 -0
  64. package/dist/protocols/ethereum/codegen/abi.js +474 -0
  65. package/dist/protocols/ethereum/codegen/abi.test.js +325 -0
  66. package/dist/protocols/ethereum/codegen/template.js +52 -0
  67. package/dist/protocols/ethereum/contract.js +22 -0
  68. package/{src → dist}/protocols/ethereum/manifest.graphql +0 -0
  69. package/dist/protocols/ethereum/scaffold/manifest.js +32 -0
  70. package/{src/protocols/ethereum/scaffold/mapping.ts → dist/protocols/ethereum/scaffold/mapping.js} +18 -29
  71. package/dist/protocols/ethereum/subgraph.js +172 -0
  72. package/dist/protocols/ethereum/type-generator.js +123 -0
  73. package/dist/protocols/index.js +266 -0
  74. package/dist/protocols/ipfs/codegen/file_template.js +53 -0
  75. package/dist/protocols/near/contract.js +41 -0
  76. package/{src → dist}/protocols/near/manifest.graphql +0 -0
  77. package/dist/protocols/near/scaffold/manifest.js +16 -0
  78. package/{src/protocols/near/scaffold/mapping.ts → dist/protocols/near/scaffold/mapping.js} +5 -2
  79. package/dist/protocols/near/subgraph.js +23 -0
  80. package/dist/protocols/subgraph.js +2 -0
  81. package/{src → dist}/protocols/substreams/manifest.graphql +0 -0
  82. package/dist/protocols/substreams/scaffold/manifest.js +12 -0
  83. package/dist/protocols/substreams/subgraph.js +23 -0
  84. package/{src/scaffold/cosmos.test.ts → dist/scaffold/cosmos.test.js} +21 -22
  85. package/{src/scaffold/ethereum.test.ts → dist/scaffold/ethereum.test.js} +85 -101
  86. package/dist/scaffold/index.js +133 -0
  87. package/dist/scaffold/mapping.js +57 -0
  88. package/{src/scaffold/near.test.ts → dist/scaffold/near.test.js} +22 -23
  89. package/dist/scaffold/schema.js +86 -0
  90. package/dist/scaffold/tests.js +179 -0
  91. package/dist/schema.js +54 -0
  92. package/dist/subgraph.js +243 -0
  93. package/dist/type-generator.js +225 -0
  94. package/dist/validation/contract.js +44 -0
  95. package/dist/validation/index.js +10 -0
  96. package/dist/validation/manifest.js +266 -0
  97. package/dist/validation/schema.js +768 -0
  98. package/dist/validation/schema.test.js +35 -0
  99. package/dist/watcher.js +79 -0
  100. package/package.json +5 -1
  101. package/babel.config.js +0 -3
  102. package/jest.config.js +0 -175
  103. package/src/bin.ts +0 -6
  104. package/src/cli.ts +0 -30
  105. package/src/codegen/schema.test.ts +0 -460
  106. package/src/codegen/schema.ts +0 -299
  107. package/src/codegen/template.ts +0 -45
  108. package/src/codegen/types/conversions.ts +0 -358
  109. package/src/codegen/types/index.test.ts +0 -715
  110. package/src/codegen/types/index.ts +0 -111
  111. package/src/codegen/typescript.ts +0 -224
  112. package/src/codegen/util.test.ts +0 -112
  113. package/src/codegen/util.ts +0 -54
  114. package/src/command-helpers/abi.ts +0 -99
  115. package/src/command-helpers/auth.ts +0 -46
  116. package/src/command-helpers/compiler.ts +0 -60
  117. package/src/command-helpers/data-sources.ts +0 -36
  118. package/src/command-helpers/fs.ts +0 -5
  119. package/src/command-helpers/gluegun.ts +0 -52
  120. package/src/command-helpers/ipfs-http-client.d.ts +0 -1
  121. package/src/command-helpers/ipfs.ts +0 -3
  122. package/src/command-helpers/jsonrpc.ts +0 -22
  123. package/src/command-helpers/network.test.ts +0 -85
  124. package/src/command-helpers/network.ts +0 -133
  125. package/src/command-helpers/node.ts +0 -46
  126. package/src/command-helpers/scaffold.ts +0 -174
  127. package/src/command-helpers/spinner.ts +0 -60
  128. package/src/command-helpers/studio.test.ts +0 -84
  129. package/src/command-helpers/studio.ts +0 -25
  130. package/src/command-helpers/subgraph.ts +0 -21
  131. package/src/command-helpers/version.test.ts +0 -241
  132. package/src/command-helpers/version.ts +0 -53
  133. package/src/commands/add.ts +0 -220
  134. package/src/commands/auth.ts +0 -138
  135. package/src/commands/binary-install-raw.d.ts +0 -1
  136. package/src/commands/build.ts +0 -147
  137. package/src/commands/codegen.ts +0 -123
  138. package/src/commands/create.ts +0 -109
  139. package/src/commands/deploy.ts +0 -388
  140. package/src/commands/init.ts +0 -1060
  141. package/src/commands/local.ts +0 -539
  142. package/src/commands/remove.ts +0 -110
  143. package/src/commands/test.ts +0 -369
  144. package/src/compiler/asc.ts +0 -77
  145. package/src/compiler/index.ts +0 -677
  146. package/src/debug.ts +0 -15
  147. package/src/migrations/mapping_api_version_0_0_1.ts +0 -75
  148. package/src/migrations/mapping_api_version_0_0_2.ts +0 -75
  149. package/src/migrations/mapping_api_version_0_0_3.ts +0 -75
  150. package/src/migrations/mapping_api_version_0_0_4.ts +0 -77
  151. package/src/migrations/mapping_api_version_0_0_5.ts +0 -77
  152. package/src/migrations/spec_version_0_0_2.ts +0 -24
  153. package/src/migrations/spec_version_0_0_3.ts +0 -29
  154. package/src/migrations/util/load-manifest.ts +0 -10
  155. package/src/migrations/util/versions.ts +0 -27
  156. package/src/migrations.ts +0 -33
  157. package/src/protocols/arweave/subgraph.ts +0 -22
  158. package/src/protocols/contract.ts +0 -9
  159. package/src/protocols/cosmos/scaffold/manifest.ts +0 -11
  160. package/src/protocols/cosmos/subgraph.ts +0 -27
  161. package/src/protocols/ethereum/abi.ts +0 -153
  162. package/src/protocols/ethereum/codegen/abi.test.ts +0 -330
  163. package/src/protocols/ethereum/codegen/abi.ts +0 -719
  164. package/src/protocols/ethereum/codegen/template.ts +0 -41
  165. package/src/protocols/ethereum/contract.ts +0 -24
  166. package/src/protocols/ethereum/scaffold/manifest.ts +0 -28
  167. package/src/protocols/ethereum/subgraph.ts +0 -189
  168. package/src/protocols/ethereum/type-generator.ts +0 -191
  169. package/src/protocols/index.ts +0 -287
  170. package/src/protocols/ipfs/codegen/file_template.ts +0 -43
  171. package/src/protocols/near/contract.ts +0 -47
  172. package/src/protocols/near/scaffold/manifest.ts +0 -13
  173. package/src/protocols/near/subgraph.ts +0 -22
  174. package/src/protocols/subgraph.ts +0 -12
  175. package/src/protocols/substreams/scaffold/manifest.ts +0 -8
  176. package/src/protocols/substreams/subgraph.ts +0 -22
  177. package/src/scaffold/index.ts +0 -172
  178. package/src/scaffold/mapping.ts +0 -44
  179. package/src/scaffold/schema.ts +0 -89
  180. package/src/scaffold/tests.ts +0 -217
  181. package/src/schema.ts +0 -26
  182. package/src/subgraph.ts +0 -302
  183. package/src/type-generator.ts +0 -266
  184. package/src/validation/contract.ts +0 -51
  185. package/src/validation/index.ts +0 -5
  186. package/src/validation/manifest.ts +0 -360
  187. package/src/validation/schema.test.ts +0 -38
  188. package/src/validation/schema.ts +0 -957
  189. package/src/watcher.ts +0 -96
  190. package/tests/cli/globalSetup.ts +0 -8
  191. package/tests/cli/globalTeardown.ts +0 -8
  192. package/tests/cli/init/ethereum/abis/Marketplace.json +0 -408
  193. package/tests/cli/init/ethereum/abis/OverloadedElements.json +0 -91
  194. package/tests/cli/init/ethereum/abis/SoloMargin.json +0 -2729
  195. package/tests/cli/init/ethereum/from-contract-with-abi-and-structs.stderr +0 -14
  196. package/tests/cli/init/ethereum/from-contract-with-abi-and-structs.stdout +0 -12
  197. package/tests/cli/init/ethereum/from-contract-with-abi.stderr +0 -14
  198. package/tests/cli/init/ethereum/from-contract-with-abi.stdout +0 -12
  199. package/tests/cli/init/ethereum/from-contract-with-overloaded-elements.stderr +0 -14
  200. package/tests/cli/init/ethereum/from-contract-with-overloaded-elements.stdout +0 -12
  201. package/tests/cli/init/ethereum/from-contract.stderr +0 -16
  202. package/tests/cli/init/ethereum/from-contract.stdout +0 -12
  203. package/tests/cli/init/ethereum/from-example.stderr +0 -12
  204. package/tests/cli/init/ethereum/from-example.stdout +0 -12
  205. package/tests/cli/init/near/from-contract.stderr +0 -14
  206. package/tests/cli/init/near/from-contract.stdout +0 -12
  207. package/tests/cli/init.test.ts +0 -157
  208. package/tests/cli/spawn-command.d.ts +0 -7
  209. package/tests/cli/util.ts +0 -132
  210. package/tests/cli/validation/abi-not-found/Abi.json +0 -7
  211. package/tests/cli/validation/abi-not-found/mapping.ts +0 -0
  212. package/tests/cli/validation/abi-not-found/schema.graphql +0 -3
  213. package/tests/cli/validation/abi-not-found/subgraph.yaml +0 -42
  214. package/tests/cli/validation/abi-not-found copy.stderr +0 -13
  215. package/tests/cli/validation/big-decimal-is-valid/Abi.json +0 -7
  216. package/tests/cli/validation/big-decimal-is-valid/mapping.ts +0 -0
  217. package/tests/cli/validation/big-decimal-is-valid/schema.graphql +0 -4
  218. package/tests/cli/validation/big-decimal-is-valid/subgraph.yaml +0 -23
  219. package/tests/cli/validation/call-function-not-found/Abi.json +0 -57
  220. package/tests/cli/validation/call-function-not-found/mapping.ts +0 -0
  221. package/tests/cli/validation/call-function-not-found/schema.graphql +0 -3
  222. package/tests/cli/validation/call-function-not-found/subgraph.yaml +0 -22
  223. package/tests/cli/validation/call-function-not-found.stderr +0 -10
  224. package/tests/cli/validation/call-handler-with-tuple/Abi.json +0 -24
  225. package/tests/cli/validation/call-handler-with-tuple/generated/schema.ts +0 -44
  226. package/tests/cli/validation/call-handler-with-tuple/mapping.ts +0 -0
  227. package/tests/cli/validation/call-handler-with-tuple/schema.graphql +0 -3
  228. package/tests/cli/validation/call-handler-with-tuple/subgraph.yaml +0 -22
  229. package/tests/cli/validation/call-handler-with-tuple.stderr +0 -24
  230. package/tests/cli/validation/conflicting-network-names/Abi.json +0 -7
  231. package/tests/cli/validation/conflicting-network-names/mapping.ts +0 -0
  232. package/tests/cli/validation/conflicting-network-names/schema.graphql +0 -3
  233. package/tests/cli/validation/conflicting-network-names/subgraph.yaml +0 -41
  234. package/tests/cli/validation/conflicting-network-names.stderr +0 -10
  235. package/tests/cli/validation/conflicting-protocol-names/Abi.json +0 -7
  236. package/tests/cli/validation/conflicting-protocol-names/mapping.ts +0 -0
  237. package/tests/cli/validation/conflicting-protocol-names/schema.graphql +0 -3
  238. package/tests/cli/validation/conflicting-protocol-names/subgraph.yaml +0 -41
  239. package/tests/cli/validation/conflicting-protocol-names.stderr +0 -10
  240. package/tests/cli/validation/derived-from-target-type-missing/Abi.json +0 -6
  241. package/tests/cli/validation/derived-from-target-type-missing/mapping.ts +0 -0
  242. package/tests/cli/validation/derived-from-target-type-missing/schema.graphql +0 -4
  243. package/tests/cli/validation/derived-from-target-type-missing/subgraph.yaml +0 -22
  244. package/tests/cli/validation/derived-from-target-type-missing.stderr +0 -5
  245. package/tests/cli/validation/derived-from-with-interface/Gravity.json +0 -1
  246. package/tests/cli/validation/derived-from-with-interface/mapping.ts +0 -22
  247. package/tests/cli/validation/derived-from-with-interface/schema.graphql +0 -19
  248. package/tests/cli/validation/derived-from-with-interface/subgraph.yaml +0 -25
  249. package/tests/cli/validation/duplicate-data-source-name/Abi.json +0 -7
  250. package/tests/cli/validation/duplicate-data-source-name/mapping.ts +0 -0
  251. package/tests/cli/validation/duplicate-data-source-name/schema.graphql +0 -4
  252. package/tests/cli/validation/duplicate-data-source-name/subgraph.yaml +0 -40
  253. package/tests/cli/validation/duplicate-data-source-name.stderr +0 -5
  254. package/tests/cli/validation/duplicate-template-name/Abi.json +0 -7
  255. package/tests/cli/validation/duplicate-template-name/mapping.ts +0 -0
  256. package/tests/cli/validation/duplicate-template-name/schema.graphql +0 -4
  257. package/tests/cli/validation/duplicate-template-name/subgraph.yaml +0 -59
  258. package/tests/cli/validation/duplicate-template-name.stderr +0 -5
  259. package/tests/cli/validation/entity-field-args/Abi.json +0 -7
  260. package/tests/cli/validation/entity-field-args/mapping.ts +0 -0
  261. package/tests/cli/validation/entity-field-args/schema.graphql +0 -4
  262. package/tests/cli/validation/entity-field-args/subgraph.yaml +0 -22
  263. package/tests/cli/validation/entity-field-args.stderr +0 -5
  264. package/tests/cli/validation/ethereum-contract-without-handlers/Abi.json +0 -7
  265. package/tests/cli/validation/ethereum-contract-without-handlers/mapping.ts +0 -0
  266. package/tests/cli/validation/ethereum-contract-without-handlers/schema.graphql +0 -3
  267. package/tests/cli/validation/ethereum-contract-without-handlers/subgraph.yaml +0 -19
  268. package/tests/cli/validation/ethereum-contract-without-handlers.stderr +0 -6
  269. package/tests/cli/validation/event-not-found/Abi.json +0 -7
  270. package/tests/cli/validation/event-not-found/mapping.ts +0 -0
  271. package/tests/cli/validation/event-not-found/schema.graphql +0 -3
  272. package/tests/cli/validation/event-not-found/subgraph.yaml +0 -40
  273. package/tests/cli/validation/event-not-found.stderr +0 -12
  274. package/tests/cli/validation/example-values-found/Abi.json +0 -7
  275. package/tests/cli/validation/example-values-found/generated/ExampleSubgraph/ExampleContract.ts +0 -35
  276. package/tests/cli/validation/example-values-found/generated/schema.ts +0 -44
  277. package/tests/cli/validation/example-values-found/mapping.ts +0 -0
  278. package/tests/cli/validation/example-values-found/schema.graphql +0 -3
  279. package/tests/cli/validation/example-values-found/subgraph.yaml +0 -24
  280. package/tests/cli/validation/example-values-found.stderr +0 -34
  281. package/tests/cli/validation/invalid-abis/InvalidAbi.json +0 -1
  282. package/tests/cli/validation/invalid-abis/mapping.ts +0 -0
  283. package/tests/cli/validation/invalid-abis/schema.graphql +0 -3
  284. package/tests/cli/validation/invalid-abis/subgraph.yaml +0 -22
  285. package/tests/cli/validation/invalid-abis.stderr +0 -5
  286. package/tests/cli/validation/invalid-contract-addresses/Abi.json +0 -7
  287. package/tests/cli/validation/invalid-contract-addresses/mapping.ts +0 -0
  288. package/tests/cli/validation/invalid-contract-addresses/schema.graphql +0 -3
  289. package/tests/cli/validation/invalid-contract-addresses/subgraph.yaml +0 -58
  290. package/tests/cli/validation/invalid-contract-addresses.stderr +0 -14
  291. package/tests/cli/validation/invalid-data-source-template/mapping.ts +0 -0
  292. package/tests/cli/validation/invalid-data-source-template/schema.graphql +0 -3
  293. package/tests/cli/validation/invalid-data-source-template/subgraph.yaml +0 -32
  294. package/tests/cli/validation/invalid-data-source-template.stderr +0 -30
  295. package/tests/cli/validation/invalid-entity-field-types/Abi.json +0 -7
  296. package/tests/cli/validation/invalid-entity-field-types/mapping.ts +0 -0
  297. package/tests/cli/validation/invalid-entity-field-types/schema.graphql +0 -157
  298. package/tests/cli/validation/invalid-entity-field-types/subgraph.yaml +0 -22
  299. package/tests/cli/validation/invalid-entity-field-types.stderr +0 -148
  300. package/tests/cli/validation/invalid-fulltext-directive/Abi.json +0 -7
  301. package/tests/cli/validation/invalid-fulltext-directive/mapping.ts +0 -0
  302. package/tests/cli/validation/invalid-fulltext-directive/schema.graphql +0 -140
  303. package/tests/cli/validation/invalid-fulltext-directive/subgraph.yaml +0 -22
  304. package/tests/cli/validation/invalid-fulltext-directive.stderr +0 -32
  305. package/tests/cli/validation/invalid-graphql-schema/Abi.json +0 -7
  306. package/tests/cli/validation/invalid-graphql-schema/mapping.ts +0 -0
  307. package/tests/cli/validation/invalid-graphql-schema/schema.graphql +0 -8
  308. package/tests/cli/validation/invalid-graphql-schema/subgraph.yaml +0 -22
  309. package/tests/cli/validation/invalid-graphql-schema.stderr +0 -25
  310. package/tests/cli/validation/invalid-manifest/subgraph.yaml +0 -13
  311. package/tests/cli/validation/invalid-manifest-cannot-infer-protocol/subgraph.yaml +0 -12
  312. package/tests/cli/validation/invalid-manifest-cannot-infer-protocol.stderr +0 -5
  313. package/tests/cli/validation/invalid-manifest.stderr +0 -28
  314. package/tests/cli/validation/missing-entity-id/Abi.json +0 -7
  315. package/tests/cli/validation/missing-entity-id/mapping.ts +0 -0
  316. package/tests/cli/validation/missing-entity-id/schema.graphql +0 -3
  317. package/tests/cli/validation/missing-entity-id/subgraph.yaml +0 -22
  318. package/tests/cli/validation/missing-entity-id/types/ExampleSubgraph/ExampleContract.ts +0 -35
  319. package/tests/cli/validation/missing-entity-id/types/schema.ts +0 -27
  320. package/tests/cli/validation/missing-entity-id.stderr +0 -5
  321. package/tests/cli/validation/missing-or-invalid-derived-from-fields/Abi.json +0 -7
  322. package/tests/cli/validation/missing-or-invalid-derived-from-fields/mapping.ts +0 -0
  323. package/tests/cli/validation/missing-or-invalid-derived-from-fields/schema.graphql +0 -40
  324. package/tests/cli/validation/missing-or-invalid-derived-from-fields/subgraph.yaml +0 -22
  325. package/tests/cli/validation/missing-or-invalid-derived-from-fields.stderr +0 -10
  326. package/tests/cli/validation/missing-or-invalid-derived-from-fields.stdout +0 -0
  327. package/tests/cli/validation/near-is-valid/mapping.ts +0 -0
  328. package/tests/cli/validation/near-is-valid/schema.graphql +0 -8
  329. package/tests/cli/validation/near-is-valid/subgraph.yaml +0 -30
  330. package/tests/cli/validation/nested-template-nice-error/Abi.json +0 -7
  331. package/tests/cli/validation/nested-template-nice-error/mapping.ts +0 -0
  332. package/tests/cli/validation/nested-template-nice-error/schema.graphql +0 -3
  333. package/tests/cli/validation/nested-template-nice-error/subgraph.yaml +0 -35
  334. package/tests/cli/validation/nested-template-nice-error.stderr +0 -5
  335. package/tests/cli/validation/no-network-names/Abi.json +0 -7
  336. package/tests/cli/validation/no-network-names/mapping.ts +0 -0
  337. package/tests/cli/validation/no-network-names/schema.graphql +0 -3
  338. package/tests/cli/validation/no-network-names/subgraph.yaml +0 -40
  339. package/tests/cli/validation/no-network-names.stderr +0 -34
  340. package/tests/cli/validation/source-without-address-is-valid/Abi.json +0 -7
  341. package/tests/cli/validation/source-without-address-is-valid/generated/ExampleSubgraph/ExampleContract.ts +0 -35
  342. package/tests/cli/validation/source-without-address-is-valid/mapping.ts +0 -0
  343. package/tests/cli/validation/source-without-address-is-valid/schema.graphql +0 -3
  344. package/tests/cli/validation/source-without-address-is-valid/subgraph.yaml +0 -23
  345. package/tests/cli/validation/source-without-address-is-valid.stderr +0 -24
  346. package/tests/cli/validation/topic0-is-valid/Abi.json +0 -7
  347. package/tests/cli/validation/topic0-is-valid/mapping.ts +0 -0
  348. package/tests/cli/validation/topic0-is-valid/schema.graphql +0 -4
  349. package/tests/cli/validation/topic0-is-valid/subgraph.yaml +0 -24
  350. package/tests/cli/validation.test.ts +0 -226
  351. package/tsconfig.build.json +0 -4
  352. package/tsconfig.json +0 -19
@@ -1,5 +1,7 @@
1
- export const generatePlaceholderHandlers = () =>
2
- `
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generatePlaceholderHandlers = void 0;
4
+ const generatePlaceholderHandlers = () => `
3
5
  import { near, BigInt } from '@graphprotocol/graph-ts'
4
6
  import { ExampleEntity } from '../generated/schema'
5
7
 
@@ -33,3 +35,4 @@ export const generatePlaceholderHandlers = () =>
33
35
  // unchanged, allowing for partial updates to be applied.
34
36
  }
35
37
  `;
38
+ exports.generatePlaceholderHandlers = generatePlaceholderHandlers;
@@ -0,0 +1,23 @@
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 immutable_1 = __importDefault(require("immutable"));
7
+ class NearSubgraph {
8
+ manifest;
9
+ resolveFile;
10
+ protocol;
11
+ constructor(options) {
12
+ this.manifest = options.manifest;
13
+ this.resolveFile = options.resolveFile;
14
+ this.protocol = options.protocol;
15
+ }
16
+ validateManifest() {
17
+ return immutable_1.default.List();
18
+ }
19
+ handlerTypes() {
20
+ return immutable_1.default.List(['blockHandlers', 'receiptHandlers']);
21
+ }
22
+ }
23
+ exports.default = NearSubgraph;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapping = exports.source = void 0;
4
+ const source = () => `
5
+ package:
6
+ moduleName: graph_out
7
+ file: substreams-eth-block-meta-v0.1.0.spkg`;
8
+ exports.source = source;
9
+ const mapping = () => `
10
+ apiVersion: 0.0.5
11
+ kind: substreams/graph-entities`;
12
+ exports.mapping = mapping;
@@ -0,0 +1,23 @@
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 immutable_1 = __importDefault(require("immutable"));
7
+ class SubstreamsSubgraph {
8
+ manifest;
9
+ resolveFile;
10
+ protocol;
11
+ constructor(options) {
12
+ this.manifest = options.manifest;
13
+ this.resolveFile = options.resolveFile;
14
+ this.protocol = options.protocol;
15
+ }
16
+ validateManifest() {
17
+ return immutable_1.default.List();
18
+ }
19
+ handlerTypes() {
20
+ return immutable_1.default.List([]);
21
+ }
22
+ }
23
+ exports.default = SubstreamsSubgraph;
@@ -1,19 +1,20 @@
1
- import Protocol from '../protocols';
2
- import Scaffold from './index';
3
-
4
- const protocol = new Protocol('cosmos');
5
-
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 protocols_1 = __importDefault(require("../protocols"));
7
+ const index_1 = __importDefault(require("./index"));
8
+ const protocol = new protocols_1.default('cosmos');
6
9
  const scaffoldOptions = {
7
- protocol,
8
- network: 'cosmoshub-4',
9
- contractName: 'CosmosHub',
10
+ protocol,
11
+ network: 'cosmoshub-4',
12
+ contractName: 'CosmosHub',
10
13
  };
11
-
12
- const scaffold = new Scaffold(scaffoldOptions);
13
-
14
+ const scaffold = new index_1.default(scaffoldOptions);
14
15
  describe('Cosmos subgraph scaffolding', () => {
15
- test('Manifest', () => {
16
- expect(scaffold.generateManifest()).toEqual(`\
16
+ test('Manifest', () => {
17
+ expect(scaffold.generateManifest()).toEqual(`\
17
18
  specVersion: 0.0.5
18
19
  schema:
19
20
  file: ./schema.graphql
@@ -32,20 +33,18 @@ dataSources:
32
33
  - handler: handleBlock
33
34
  file: ./src/contract.ts
34
35
  `);
35
- });
36
-
37
- test('Schema (default)', () => {
38
- expect(scaffold.generateSchema()).toEqual(`\
36
+ });
37
+ test('Schema (default)', () => {
38
+ expect(scaffold.generateSchema()).toEqual(`\
39
39
  type ExampleEntity @entity {
40
40
  id: ID!
41
41
  block: Bytes!
42
42
  count: BigInt!
43
43
  }
44
44
  `);
45
- });
46
-
47
- test('Mapping (default)', () => {
48
- expect(scaffold.generateMapping()).toEqual(`\
45
+ });
46
+ test('Mapping (default)', () => {
47
+ expect(scaffold.generateMapping()).toEqual(`\
49
48
  import { cosmos, BigInt } from "@graphprotocol/graph-ts"
50
49
  import { ExampleEntity } from "../generated/schema"
51
50
 
@@ -79,5 +78,5 @@ export function handleBlock(block: cosmos.Block): void {
79
78
  // unchanged, allowing for partial updates to be applied.
80
79
  }
81
80
  `);
82
- });
81
+ });
83
82
  });
@@ -1,85 +1,76 @@
1
- import immutable from 'immutable';
2
- import Protocol from '../protocols';
3
- import ABI from '../protocols/ethereum/abi';
4
- import Scaffold from './index';
5
-
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 immutable_1 = __importDefault(require("immutable"));
7
+ const protocols_1 = __importDefault(require("../protocols"));
8
+ const abi_1 = __importDefault(require("../protocols/ethereum/abi"));
9
+ const index_1 = __importDefault(require("./index"));
6
10
  const TEST_EVENT = {
7
- name: 'ExampleEvent',
8
- type: 'event',
9
- inputs: [
10
- { name: 'a', type: 'uint256', indexed: true },
11
- { name: 'b', type: 'bytes[4]' },
12
- { type: 'string' },
13
- {
14
- name: 'c',
15
- type: 'tuple',
16
- components: [
17
- { name: 'c1', type: 'uint256' },
18
- { type: 'bytes32' },
11
+ name: 'ExampleEvent',
12
+ type: 'event',
13
+ inputs: [
14
+ { name: 'a', type: 'uint256', indexed: true },
15
+ { name: 'b', type: 'bytes[4]' },
19
16
  { type: 'string' },
20
17
  {
21
- name: 'c3',
22
- type: 'tuple',
23
- components: [{ name: 'c31', type: 'uint96' }, { type: 'string' }, { type: 'bytes32' }],
18
+ name: 'c',
19
+ type: 'tuple',
20
+ components: [
21
+ { name: 'c1', type: 'uint256' },
22
+ { type: 'bytes32' },
23
+ { type: 'string' },
24
+ {
25
+ name: 'c3',
26
+ type: 'tuple',
27
+ components: [{ name: 'c31', type: 'uint96' }, { type: 'string' }, { type: 'bytes32' }],
28
+ },
29
+ ],
24
30
  },
25
- ],
26
- },
27
- { name: 'd', type: 'string', indexed: true },
28
- ],
31
+ { name: 'd', type: 'string', indexed: true },
32
+ ],
29
33
  };
30
-
31
34
  const OVERLOADED_EVENT = {
32
- name: 'ExampleEvent',
33
- type: 'event',
34
- inputs: [{ name: 'a', type: 'bytes32' }],
35
+ name: 'ExampleEvent',
36
+ type: 'event',
37
+ inputs: [{ name: 'a', type: 'bytes32' }],
35
38
  };
36
-
37
39
  const TEST_CONTRACT = {
38
- name: 'ExampleContract',
39
- type: 'contract',
40
+ name: 'ExampleContract',
41
+ type: 'contract',
40
42
  };
41
-
42
43
  const TEST_CALLABLE_FUNCTIONS = [
43
- {
44
- name: 'someVariable',
45
- type: 'function',
46
- stateMutability: 'view',
47
- outputs: [{ type: 'uint256' }],
48
- },
49
- {
50
- name: 'getSomeValue',
51
- type: 'function',
52
- stateMutability: 'pure',
53
- outputs: [{ type: 'tuple', components: [{ type: 'uint256' }] }],
54
- },
44
+ {
45
+ name: 'someVariable',
46
+ type: 'function',
47
+ stateMutability: 'view',
48
+ outputs: [{ type: 'uint256' }],
49
+ },
50
+ {
51
+ name: 'getSomeValue',
52
+ type: 'function',
53
+ stateMutability: 'pure',
54
+ outputs: [{ type: 'tuple', components: [{ type: 'uint256' }] }],
55
+ },
55
56
  ];
56
-
57
- const TEST_ABI = new ABI(
58
- 'Contract',
59
- undefined,
60
- immutable.fromJS([TEST_EVENT, OVERLOADED_EVENT, TEST_CONTRACT, ...TEST_CALLABLE_FUNCTIONS]),
61
- );
62
-
63
- const protocol = new Protocol('ethereum');
64
-
57
+ const TEST_ABI = new abi_1.default('Contract', undefined, immutable_1.default.fromJS([TEST_EVENT, OVERLOADED_EVENT, TEST_CONTRACT, ...TEST_CALLABLE_FUNCTIONS]));
58
+ const protocol = new protocols_1.default('ethereum');
65
59
  const scaffoldOptions = {
66
- protocol,
67
- abi: TEST_ABI,
68
- contract: '0xf87e31492faf9a91b02ee0deaad50d51d56d5d4d',
69
- network: 'kovan',
70
- contractName: 'Contract',
60
+ protocol,
61
+ abi: TEST_ABI,
62
+ contract: '0xf87e31492faf9a91b02ee0deaad50d51d56d5d4d',
63
+ network: 'kovan',
64
+ contractName: 'Contract',
71
65
  };
72
-
73
- const scaffold = new Scaffold(scaffoldOptions);
74
-
75
- const scaffoldWithIndexEvents = new Scaffold({
76
- ...scaffoldOptions,
77
- indexEvents: true,
66
+ const scaffold = new index_1.default(scaffoldOptions);
67
+ const scaffoldWithIndexEvents = new index_1.default({
68
+ ...scaffoldOptions,
69
+ indexEvents: true,
78
70
  });
79
-
80
71
  describe('Ethereum subgraph scaffolding', () => {
81
- test('Manifest', () => {
82
- expect(scaffold.generateManifest()).toEqual(`\
72
+ test('Manifest', () => {
73
+ expect(scaffold.generateManifest()).toEqual(`\
83
74
  specVersion: 0.0.5
84
75
  schema:
85
76
  file: ./schema.graphql
@@ -107,10 +98,9 @@ dataSources:
107
98
  handler: handleExampleEvent1
108
99
  file: ./src/contract.ts
109
100
  `);
110
- });
111
-
112
- test('Schema (default)', () => {
113
- expect(scaffold.generateSchema()).toEqual(`\
101
+ });
102
+ test('Schema (default)', () => {
103
+ expect(scaffold.generateSchema()).toEqual(`\
114
104
  type ExampleEntity @entity {
115
105
  id: Bytes!
116
106
  count: BigInt!
@@ -118,10 +108,9 @@ type ExampleEntity @entity {
118
108
  b: [Bytes]! # bytes[4]
119
109
  }
120
110
  `);
121
- });
122
-
123
- test('Schema (for indexing events)', () => {
124
- expect(scaffoldWithIndexEvents.generateSchema()).toEqual(`\
111
+ });
112
+ test('Schema (for indexing events)', () => {
113
+ expect(scaffoldWithIndexEvents.generateSchema()).toEqual(`\
125
114
  type ExampleEvent @entity(immutable: true) {
126
115
  id: Bytes!
127
116
  a: BigInt! # uint256
@@ -147,10 +136,9 @@ type ExampleEvent1 @entity(immutable: true) {
147
136
  transactionHash: Bytes!
148
137
  }
149
138
  `);
150
- });
151
-
152
- test('Mapping (default)', () => {
153
- expect(scaffold.generateMapping()).toEqual(`\
139
+ });
140
+ test('Mapping (default)', () => {
141
+ expect(scaffold.generateMapping()).toEqual(`\
154
142
  import { BigInt } from "@graphprotocol/graph-ts"
155
143
  import {
156
144
  Contract,
@@ -204,10 +192,9 @@ export function handleExampleEvent(event: ExampleEvent): void {
204
192
 
205
193
  export function handleExampleEvent1(event: ExampleEvent1): void {}
206
194
  `);
207
- });
208
-
209
- test('Mapping (for indexing events)', () => {
210
- expect(scaffoldWithIndexEvents.generateMapping()).toEqual(`\
195
+ });
196
+ test('Mapping (for indexing events)', () => {
197
+ expect(scaffoldWithIndexEvents.generateMapping()).toEqual(`\
211
198
  import {
212
199
  ExampleEvent as ExampleEventEvent,
213
200
  ExampleEvent1 as ExampleEvent1Event
@@ -249,13 +236,12 @@ export function handleExampleEvent1(event: ExampleEvent1Event): void {
249
236
  entity.save()
250
237
  }
251
238
  `);
252
- });
253
-
254
- test('Test Files (default)', () => {
255
- const files = scaffoldWithIndexEvents.generateTests();
256
- const testFile = files?.['contract.test.ts'];
257
- const utilsFile = files?.['contract-utils.ts'];
258
- expect(testFile).toEqual(`\
239
+ });
240
+ test('Test Files (default)', () => {
241
+ const files = scaffoldWithIndexEvents.generateTests();
242
+ const testFile = files?.['contract.test.ts'];
243
+ const utilsFile = files?.['contract-utils.ts'];
244
+ expect(testFile).toEqual(`\
259
245
  import {
260
246
  assert,
261
247
  describe,
@@ -331,7 +317,7 @@ describe("Describe entity assertions", () => {
331
317
  })
332
318
  })
333
319
  `);
334
- expect(utilsFile).toEqual(`\
320
+ expect(utilsFile).toEqual(`\
335
321
  import { newMockEvent } from "matchstick-as"
336
322
  import { ethereum, BigInt, Bytes } from "@graphprotocol/graph-ts"
337
323
  import { ExampleEvent, ExampleEvent1 } from "../generated/Contract/Contract"
@@ -378,14 +364,12 @@ export function createExampleEvent1Event(a: Bytes): ExampleEvent1 {
378
364
  return exampleEvent1Event
379
365
  }
380
366
  `);
381
- });
382
-
383
- test('Test Files (for indexing events)', () => {
384
- const files = scaffoldWithIndexEvents.generateTests();
385
- const testFile = files?.['contract.test.ts'];
386
- const utilsFile = files?.['contract-utils.ts'];
387
-
388
- expect(testFile).toEqual(`\
367
+ });
368
+ test('Test Files (for indexing events)', () => {
369
+ const files = scaffoldWithIndexEvents.generateTests();
370
+ const testFile = files?.['contract.test.ts'];
371
+ const utilsFile = files?.['contract-utils.ts'];
372
+ expect(testFile).toEqual(`\
389
373
  import {
390
374
  assert,
391
375
  describe,
@@ -461,7 +445,7 @@ describe("Describe entity assertions", () => {
461
445
  })
462
446
  })
463
447
  `);
464
- expect(utilsFile).toEqual(`\
448
+ expect(utilsFile).toEqual(`\
465
449
  import { newMockEvent } from "matchstick-as"
466
450
  import { ethereum, BigInt, Bytes } from "@graphprotocol/graph-ts"
467
451
  import { ExampleEvent, ExampleEvent1 } from "../generated/Contract/Contract"
@@ -508,5 +492,5 @@ export function createExampleEvent1Event(a: Bytes): ExampleEvent1 {
508
492
  return exampleEvent1Event
509
493
  }
510
494
  `);
511
- });
495
+ });
512
496
  });
@@ -0,0 +1,133 @@
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 gluegun_1 = require("gluegun");
7
+ const prettier_1 = __importDefault(require("prettier"));
8
+ const subgraph_1 = require("../command-helpers/subgraph");
9
+ const mapping_1 = require("./mapping");
10
+ const schema_1 = require("./schema");
11
+ const tests_1 = require("./tests");
12
+ const GRAPH_CLI_VERSION = process.env.GRAPH_CLI_TESTS
13
+ ? // JSON.stringify should remove this key, we will install the local
14
+ // graph-cli for the tests using `npm link` instead of fetching from npm.
15
+ undefined
16
+ : // For scaffolding real subgraphs
17
+ String(module.exports.version);
18
+ class Scaffold {
19
+ protocol;
20
+ abi;
21
+ indexEvents;
22
+ contract;
23
+ network;
24
+ contractName;
25
+ subgraphName;
26
+ node;
27
+ constructor(options) {
28
+ this.protocol = options.protocol;
29
+ this.abi = options.abi;
30
+ this.indexEvents = options.indexEvents;
31
+ this.contract = options.contract;
32
+ this.network = options.network;
33
+ this.contractName = options.contractName;
34
+ this.subgraphName = options.subgraphName;
35
+ this.node = options.node;
36
+ }
37
+ generatePackageJson() {
38
+ return prettier_1.default.format(JSON.stringify({
39
+ name: (0, subgraph_1.getSubgraphBasename)(String(this.subgraphName)),
40
+ license: 'UNLICENSED',
41
+ scripts: {
42
+ codegen: 'graph codegen',
43
+ build: 'graph build',
44
+ deploy: `graph deploy ` + `--node ${this.node} ` + this.subgraphName,
45
+ 'create-local': `graph create --node http://localhost:8020/ ${this.subgraphName}`,
46
+ 'remove-local': `graph remove --node http://localhost:8020/ ${this.subgraphName}`,
47
+ 'deploy-local': `graph deploy ` +
48
+ `--node http://localhost:8020/ ` +
49
+ `--ipfs http://localhost:5001 ` +
50
+ this.subgraphName,
51
+ test: 'graph test',
52
+ },
53
+ dependencies: {
54
+ '@graphprotocol/graph-cli': GRAPH_CLI_VERSION,
55
+ '@graphprotocol/graph-ts': `0.29.1`,
56
+ },
57
+ devDependencies: this.protocol.hasEvents() ? { 'matchstick-as': `0.5.0` } : undefined,
58
+ }), { parser: 'json' });
59
+ }
60
+ generateManifest() {
61
+ const protocolManifest = this.protocol.getManifestScaffold();
62
+ return prettier_1.default.format(`
63
+ specVersion: 0.0.5
64
+ schema:
65
+ file: ./schema.graphql
66
+ dataSources:
67
+ - kind: ${this.protocol.name}
68
+ name: ${this.contractName}
69
+ network: ${this.network}
70
+ source: ${protocolManifest.source(this)}
71
+ mapping: ${protocolManifest.mapping(this)}
72
+ `, { parser: 'yaml' });
73
+ }
74
+ generateSchema() {
75
+ const hasEvents = this.protocol.hasEvents();
76
+ const events = hasEvents ? (0, schema_1.abiEvents)(this.abi).toJS() : [];
77
+ return prettier_1.default.format(hasEvents && this.indexEvents
78
+ ? events.map((event) => (0, schema_1.generateEventType)(event, this.protocol.name)).join('\n\n')
79
+ : (0, schema_1.generateExampleEntityType)(this.protocol, events), {
80
+ parser: 'graphql',
81
+ });
82
+ }
83
+ generateTsConfig() {
84
+ return prettier_1.default.format(JSON.stringify({
85
+ extends: '@graphprotocol/graph-ts/types/tsconfig.base.json',
86
+ include: ['src'],
87
+ }), { parser: 'json' });
88
+ }
89
+ generateMappings() {
90
+ return this.protocol.getMappingScaffold()
91
+ ? { [`${gluegun_1.strings.kebabCase(this.contractName)}.ts`]: this.generateMapping() }
92
+ : undefined;
93
+ }
94
+ generateMapping() {
95
+ const hasEvents = this.protocol.hasEvents();
96
+ const events = hasEvents ? (0, schema_1.abiEvents)(this.abi).toJS() : [];
97
+ const protocolMapping = this.protocol.getMappingScaffold();
98
+ return prettier_1.default.format(hasEvents && this.indexEvents
99
+ ? (0, mapping_1.generateEventIndexingHandlers)(events, this.contractName)
100
+ : protocolMapping.generatePlaceholderHandlers({
101
+ ...this,
102
+ events,
103
+ }), { parser: 'typescript', semi: false });
104
+ }
105
+ generateABIs() {
106
+ return this.protocol.hasABIs()
107
+ ? {
108
+ [`${this.contractName}.json`]: prettier_1.default.format(JSON.stringify(this.abi?.data), {
109
+ parser: 'json',
110
+ }),
111
+ }
112
+ : undefined;
113
+ }
114
+ generateTests() {
115
+ const hasEvents = this.protocol.hasEvents();
116
+ const events = hasEvents ? (0, schema_1.abiEvents)(this.abi).toJS() : [];
117
+ return events.length > 0
118
+ ? (0, tests_1.generateTestsFiles)(this.contractName, events, this.indexEvents)
119
+ : undefined;
120
+ }
121
+ generate() {
122
+ return {
123
+ 'package.json': this.generatePackageJson(),
124
+ 'subgraph.yaml': this.generateManifest(),
125
+ 'schema.graphql': this.generateSchema(),
126
+ 'tsconfig.json': this.generateTsConfig(),
127
+ src: this.generateMappings(),
128
+ abis: this.generateABIs(),
129
+ tests: this.generateTests(),
130
+ };
131
+ }
132
+ }
133
+ exports.default = Scaffold;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.generateEventIndexingHandlers = exports.generateEventFieldAssignments = exports.generateFieldAssignments = exports.generateFieldAssignment = void 0;
27
+ const util = __importStar(require("../codegen/util"));
28
+ const generateFieldAssignment = (path) => `entity.${path.join('_')} = event.params.${path.join('.')}`;
29
+ exports.generateFieldAssignment = generateFieldAssignment;
30
+ const generateFieldAssignments = ({ index, input }) => input.type === 'tuple'
31
+ ? util
32
+ .unrollTuple({ value: input, index, path: [input.name || `param${index}`] })
33
+ .map(({ path }) => (0, exports.generateFieldAssignment)(path))
34
+ : (0, exports.generateFieldAssignment)([input.name || `param${index}`]);
35
+ exports.generateFieldAssignments = generateFieldAssignments;
36
+ const generateEventFieldAssignments = (event) => event.inputs.reduce((acc, input, index) => acc.concat((0, exports.generateFieldAssignments)({ input, index })), []);
37
+ exports.generateEventFieldAssignments = generateEventFieldAssignments;
38
+ const generateEventIndexingHandlers = (events, contractName) => `
39
+ import { ${events.map(event => `${event._alias} as ${event._alias}Event`)}} from '../generated/${contractName}/${contractName}'
40
+ import { ${events.map(event => event._alias)} } from '../generated/schema'
41
+
42
+ ${events
43
+ .map(event => `
44
+ export function handle${event._alias}(event: ${event._alias}Event): void {
45
+ let entity = new ${event._alias}(event.transaction.hash.concatI32(event.logIndex.toI32()))
46
+ ${(0, exports.generateEventFieldAssignments)(event).join('\n')}
47
+
48
+ entity.blockNumber = event.block.number
49
+ entity.blockTimestamp = event.block.timestamp
50
+ entity.transactionHash = event.transaction.hash
51
+
52
+ entity.save()
53
+ }
54
+ `)
55
+ .join('\n')}
56
+ `;
57
+ exports.generateEventIndexingHandlers = generateEventIndexingHandlers;