@chainlink/cre-sdk 0.0.2-alpha → 0.0.3-alpha

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 (309) hide show
  1. package/LICENSE.md +7 -7
  2. package/README.md +142 -247
  3. package/dist/generated/chain-selectors/mainnet/aptos/aptos-mainnet.js +1 -1
  4. package/dist/generated/chain-selectors/mainnet/evm/0g-mainnet.js +1 -1
  5. package/dist/generated/chain-selectors/mainnet/evm/abstract-mainnet.js +1 -1
  6. package/dist/generated/chain-selectors/mainnet/evm/apechain-mainnet.js +1 -1
  7. package/dist/generated/chain-selectors/mainnet/evm/areon-mainnet.js +1 -1
  8. package/dist/generated/chain-selectors/mainnet/evm/avalanche-mainnet.js +1 -1
  9. package/dist/generated/chain-selectors/mainnet/evm/avalanche-subnet-dexalot-mainnet.js +1 -1
  10. package/dist/generated/chain-selectors/mainnet/evm/berachain-mainnet.js +1 -1
  11. package/dist/generated/chain-selectors/mainnet/evm/binance.smart.chain-mainnet-opbnb-1.js +1 -1
  12. package/dist/generated/chain-selectors/mainnet/evm/binance.smart.chain-mainnet.js +1 -1
  13. package/dist/generated/chain-selectors/mainnet/evm/bitcichain-mainnet.js +1 -1
  14. package/dist/generated/chain-selectors/mainnet/evm/bitcoin-mainnet-bitlayer-1.js +1 -1
  15. package/dist/generated/chain-selectors/mainnet/evm/bitcoin-mainnet-bob-1.js +1 -1
  16. package/dist/generated/chain-selectors/mainnet/evm/bitcoin-mainnet-botanix.js +1 -1
  17. package/dist/generated/chain-selectors/mainnet/evm/bitcoin-mainnet-bsquared-1.js +1 -1
  18. package/dist/generated/chain-selectors/mainnet/evm/bitcoin-merlin-mainnet.js +1 -1
  19. package/dist/generated/chain-selectors/mainnet/evm/bittensor-mainnet.js +1 -1
  20. package/dist/generated/chain-selectors/mainnet/evm/bittorrent.chain-mainnet.js +1 -1
  21. package/dist/generated/chain-selectors/mainnet/evm/celo-mainnet.js +1 -1
  22. package/dist/generated/chain-selectors/mainnet/evm/codex-mainnet.js +1 -1
  23. package/dist/generated/chain-selectors/mainnet/evm/coinex.smart.chain-mainnet.js +1 -1
  24. package/dist/generated/chain-selectors/mainnet/evm/conflux-mainnet.js +1 -1
  25. package/dist/generated/chain-selectors/mainnet/evm/core-mainnet.js +1 -1
  26. package/dist/generated/chain-selectors/mainnet/evm/corn-mainnet.js +1 -1
  27. package/dist/generated/chain-selectors/mainnet/evm/cronos-mainnet.js +1 -1
  28. package/dist/generated/chain-selectors/mainnet/evm/cronos-zkevm-mainnet.js +1 -1
  29. package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-arbitrum-1-l3x-1.js +1 -1
  30. package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-arbitrum-1-treasure-1.js +1 -1
  31. package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-arbitrum-1.js +1 -1
  32. package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-astar-zkevm-1.js +1 -1
  33. package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-base-1.js +1 -1
  34. package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-blast-1.js +1 -1
  35. package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-hashkey-1.js +1 -1
  36. package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-immutable-zkevm-1.js +1 -1
  37. package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-ink-1.js +1 -1
  38. package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-kroma-1.js +1 -1
  39. package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-linea-1.js +1 -1
  40. package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-mantle-1.js +1 -1
  41. package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-metis-1.js +1 -1
  42. package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-mode-1.js +1 -1
  43. package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-optimism-1.js +1 -1
  44. package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-polygon-zkevm-1.js +1 -1
  45. package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-scroll-1.js +1 -1
  46. package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-taiko-1.js +1 -1
  47. package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-unichain-1.js +1 -1
  48. package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-worldchain-1.js +1 -1
  49. package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-xlayer-1.js +1 -1
  50. package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-zircuit-1.js +1 -1
  51. package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-zksync-1.js +1 -1
  52. package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet.js +1 -1
  53. package/dist/generated/chain-selectors/mainnet/evm/etherlink-mainnet.js +1 -1
  54. package/dist/generated/chain-selectors/mainnet/evm/fantom-mainnet.js +1 -1
  55. package/dist/generated/chain-selectors/mainnet/evm/filecoin-mainnet.js +1 -1
  56. package/dist/generated/chain-selectors/mainnet/evm/fraxtal-mainnet.js +1 -1
  57. package/dist/generated/chain-selectors/mainnet/evm/gnosis.chain-mainnet.js +1 -1
  58. package/dist/generated/chain-selectors/mainnet/evm/hedera-mainnet.js +1 -1
  59. package/dist/generated/chain-selectors/mainnet/evm/hemi-mainnet.js +1 -1
  60. package/dist/generated/chain-selectors/mainnet/evm/hyperliquid-mainnet.js +1 -1
  61. package/dist/generated/chain-selectors/mainnet/evm/janction-mainnet.js +1 -1
  62. package/dist/generated/chain-selectors/mainnet/evm/kaia-mainnet.js +1 -1
  63. package/dist/generated/chain-selectors/mainnet/evm/kava-mainnet.js +1 -1
  64. package/dist/generated/chain-selectors/mainnet/evm/kusama-mainnet-moonriver.js +1 -1
  65. package/dist/generated/chain-selectors/mainnet/evm/lens-mainnet.js +1 -1
  66. package/dist/generated/chain-selectors/mainnet/evm/lisk-mainnet.js +1 -1
  67. package/dist/generated/chain-selectors/mainnet/evm/memento-mainnet.js +1 -1
  68. package/dist/generated/chain-selectors/mainnet/evm/metal-mainnet.js +1 -1
  69. package/dist/generated/chain-selectors/mainnet/evm/mind-mainnet.js +1 -1
  70. package/dist/generated/chain-selectors/mainnet/evm/mint-mainnet.js +1 -1
  71. package/dist/generated/chain-selectors/mainnet/evm/monad-mainnet.js +1 -1
  72. package/dist/generated/chain-selectors/mainnet/evm/morph-mainnet.js +1 -1
  73. package/dist/generated/chain-selectors/mainnet/evm/near-mainnet.js +1 -1
  74. package/dist/generated/chain-selectors/mainnet/evm/neonlink-mainnet.js +1 -1
  75. package/dist/generated/chain-selectors/mainnet/evm/neox-mainnet.js +1 -1
  76. package/dist/generated/chain-selectors/mainnet/evm/nexon-mainnet-henesys.js +1 -1
  77. package/dist/generated/chain-selectors/mainnet/evm/nexon-mainnet-lith.js +1 -1
  78. package/dist/generated/chain-selectors/mainnet/evm/nexon-qa.js +1 -1
  79. package/dist/generated/chain-selectors/mainnet/evm/nexon-stage.js +1 -1
  80. package/dist/generated/chain-selectors/mainnet/evm/nibiru-mainnet.js +1 -1
  81. package/dist/generated/chain-selectors/mainnet/evm/plasma-mainnet.js +1 -1
  82. package/dist/generated/chain-selectors/mainnet/evm/plume-mainnet.js +1 -1
  83. package/dist/generated/chain-selectors/mainnet/evm/polkadot-mainnet-astar.js +1 -1
  84. package/dist/generated/chain-selectors/mainnet/evm/polkadot-mainnet-centrifuge.js +1 -1
  85. package/dist/generated/chain-selectors/mainnet/evm/polkadot-mainnet-darwinia.js +1 -1
  86. package/dist/generated/chain-selectors/mainnet/evm/polkadot-mainnet-moonbeam.js +1 -1
  87. package/dist/generated/chain-selectors/mainnet/evm/polygon-mainnet-katana.js +1 -1
  88. package/dist/generated/chain-selectors/mainnet/evm/polygon-mainnet.js +1 -1
  89. package/dist/generated/chain-selectors/mainnet/evm/ronin-mainnet.js +1 -1
  90. package/dist/generated/chain-selectors/mainnet/evm/rootstock-mainnet.js +1 -1
  91. package/dist/generated/chain-selectors/mainnet/evm/sei-mainnet.js +1 -1
  92. package/dist/generated/chain-selectors/mainnet/evm/shibarium-mainnet.js +1 -1
  93. package/dist/generated/chain-selectors/mainnet/evm/soneium-mainnet.js +1 -1
  94. package/dist/generated/chain-selectors/mainnet/evm/sonic-mainnet.js +1 -1
  95. package/dist/generated/chain-selectors/mainnet/evm/superseed-mainnet.js +1 -1
  96. package/dist/generated/chain-selectors/mainnet/evm/tac-mainnet.js +1 -1
  97. package/dist/generated/chain-selectors/mainnet/evm/telos-evm-mainnet.js +1 -1
  98. package/dist/generated/chain-selectors/mainnet/evm/treasure-mainnet.js +1 -1
  99. package/dist/generated/chain-selectors/mainnet/evm/tron-mainnet-evm.js +1 -1
  100. package/dist/generated/chain-selectors/mainnet/evm/velas-mainnet.js +1 -1
  101. package/dist/generated/chain-selectors/mainnet/evm/wemix-mainnet.js +1 -1
  102. package/dist/generated/chain-selectors/mainnet/evm/xdc-mainnet.js +1 -1
  103. package/dist/generated/chain-selectors/mainnet/evm/zetachain-mainnet.js +1 -1
  104. package/dist/generated/chain-selectors/mainnet/evm/zklink.nova-mainnet.js +1 -1
  105. package/dist/generated/chain-selectors/mainnet/evm/zora-mainnet.js +1 -1
  106. package/dist/generated/chain-selectors/mainnet/solana/solana-mainnet.js +1 -1
  107. package/dist/generated/chain-selectors/mainnet/sui/sui-mainnet.js +1 -1
  108. package/dist/generated/chain-selectors/mainnet/ton/ton-mainnet.js +1 -1
  109. package/dist/generated/chain-selectors/mainnet/tron/tron-mainnet.js +1 -1
  110. package/dist/generated/chain-selectors/testnet/aptos/aptos-localnet.js +1 -1
  111. package/dist/generated/chain-selectors/testnet/aptos/aptos-testnet.js +1 -1
  112. package/dist/generated/chain-selectors/testnet/evm/0g-testnet-galileo.js +1 -1
  113. package/dist/generated/chain-selectors/testnet/evm/0g-testnet-newton.js +1 -1
  114. package/dist/generated/chain-selectors/testnet/evm/abstract-testnet.js +1 -1
  115. package/dist/generated/chain-selectors/testnet/evm/anvil-devnet.js +1 -1
  116. package/dist/generated/chain-selectors/testnet/evm/apechain-testnet-curtis.js +1 -1
  117. package/dist/generated/chain-selectors/testnet/evm/areon-testnet.js +1 -1
  118. package/dist/generated/chain-selectors/testnet/evm/avalanche-subnet-dexalot-testnet.js +1 -1
  119. package/dist/generated/chain-selectors/testnet/evm/avalanche-testnet-fuji.js +1 -1
  120. package/dist/generated/chain-selectors/testnet/evm/avalanche-testnet-nexon.js +1 -1
  121. package/dist/generated/chain-selectors/testnet/evm/berachain-testnet-artio.js +1 -1
  122. package/dist/generated/chain-selectors/testnet/evm/berachain-testnet-bartio.js +1 -1
  123. package/dist/generated/chain-selectors/testnet/evm/berachain-testnet-bepolia.js +1 -1
  124. package/dist/generated/chain-selectors/testnet/evm/binance.smart.chain-testnet-opbnb-1.js +1 -1
  125. package/dist/generated/chain-selectors/testnet/evm/binance.smart.chain-testnet.js +1 -1
  126. package/dist/generated/chain-selectors/testnet/evm/bitcichain-testnet.js +1 -1
  127. package/dist/generated/chain-selectors/testnet/evm/bitcoin-testnet-bitlayer-1.js +1 -1
  128. package/dist/generated/chain-selectors/testnet/evm/bitcoin-testnet-botanix.js +1 -1
  129. package/dist/generated/chain-selectors/testnet/evm/bitcoin-testnet-bsquared-1.js +1 -1
  130. package/dist/generated/chain-selectors/testnet/evm/bitcoin-testnet-merlin.js +1 -1
  131. package/dist/generated/chain-selectors/testnet/evm/bitcoin-testnet-rootstock.js +1 -1
  132. package/dist/generated/chain-selectors/testnet/evm/bitcoin-testnet-sepolia-bob-1.js +1 -1
  133. package/dist/generated/chain-selectors/testnet/evm/bittensor-testnet.js +1 -1
  134. package/dist/generated/chain-selectors/testnet/evm/bittorrent.chain-testnet.js +1 -1
  135. package/dist/generated/chain-selectors/testnet/evm/celo-testnet-alfajores.js +1 -1
  136. package/dist/generated/chain-selectors/testnet/evm/codex-testnet.js +1 -1
  137. package/dist/generated/chain-selectors/testnet/evm/coinex.smart.chain-testnet.js +1 -1
  138. package/dist/generated/chain-selectors/testnet/evm/core-testnet.js +1 -1
  139. package/dist/generated/chain-selectors/testnet/evm/cronos-testnet-zkevm-1.js +1 -1
  140. package/dist/generated/chain-selectors/testnet/evm/cronos-testnet.js +1 -1
  141. package/dist/generated/chain-selectors/testnet/evm/cronos-zkevm-testnet-sepolia.js +1 -1
  142. package/dist/generated/chain-selectors/testnet/evm/dtcc-testnet-andesite.js +1 -1
  143. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-goerli-arbitrum-1.js +1 -1
  144. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-goerli-base-1.js +1 -1
  145. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-goerli-linea-1.js +1 -1
  146. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-goerli-mantle-1.js +1 -1
  147. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-goerli-optimism-1.js +1 -1
  148. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-goerli-polygon-zkevm-1.js +1 -1
  149. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-goerli-zksync-1.js +1 -1
  150. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-holesky-fraxtal-1.js +1 -1
  151. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-holesky-morph-1.js +1 -1
  152. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-holesky-taiko-1.js +1 -1
  153. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-holesky.js +1 -1
  154. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-arbitrum-1-l3x-1.js +1 -1
  155. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-arbitrum-1-treasure-1.js +1 -1
  156. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-arbitrum-1.js +1 -1
  157. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-base-1.js +1 -1
  158. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-blast-1.js +1 -1
  159. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-corn-1.js +1 -1
  160. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-hashkey-1.js +1 -1
  161. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-immutable-zkevm-1.js +1 -1
  162. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-kroma-1.js +1 -1
  163. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-lens-1.js +1 -1
  164. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-linea-1.js +1 -1
  165. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-lisk-1.js +1 -1
  166. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-mantle-1.js +1 -1
  167. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-metis-1.js +1 -1
  168. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-mode-1.js +1 -1
  169. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-optimism-1.js +1 -1
  170. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-polygon-validium-1.js +1 -1
  171. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-polygon-zkevm-1.js +1 -1
  172. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-scroll-1.js +1 -1
  173. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-soneium-1.js +1 -1
  174. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-unichain-1.js +1 -1
  175. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-worldchain-1.js +1 -1
  176. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-xlayer-1.js +1 -1
  177. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-zircuit-1.js +1 -1
  178. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-zksync-1.js +1 -1
  179. package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia.js +1 -1
  180. package/dist/generated/chain-selectors/testnet/evm/etherlink-testnet.js +1 -1
  181. package/dist/generated/chain-selectors/testnet/evm/fantom-testnet.js +1 -1
  182. package/dist/generated/chain-selectors/testnet/evm/filecoin-testnet.js +1 -1
  183. package/dist/generated/chain-selectors/testnet/evm/geth-testnet.js +1 -1
  184. package/dist/generated/chain-selectors/testnet/evm/gnosis.chain-testnet-chiado.js +1 -1
  185. package/dist/generated/chain-selectors/testnet/evm/hedera-testnet.js +1 -1
  186. package/dist/generated/chain-selectors/testnet/evm/hemi-testnet-sepolia.js +1 -1
  187. package/dist/generated/chain-selectors/testnet/evm/hyperliquid-testnet.js +1 -1
  188. package/dist/generated/chain-selectors/testnet/evm/ink-testnet-sepolia.js +1 -1
  189. package/dist/generated/chain-selectors/testnet/evm/janction-testnet-sepolia.js +1 -1
  190. package/dist/generated/chain-selectors/testnet/evm/jovay-testnet.js +1 -1
  191. package/dist/generated/chain-selectors/testnet/evm/kaia-testnet-kairos.js +1 -1
  192. package/dist/generated/chain-selectors/testnet/evm/kava-testnet.js +1 -1
  193. package/dist/generated/chain-selectors/testnet/evm/megaeth-testnet.js +1 -1
  194. package/dist/generated/chain-selectors/testnet/evm/memento-testnet.js +1 -1
  195. package/dist/generated/chain-selectors/testnet/evm/metal-testnet.js +1 -1
  196. package/dist/generated/chain-selectors/testnet/evm/mind-testnet.js +1 -1
  197. package/dist/generated/chain-selectors/testnet/evm/mint-testnet.js +1 -1
  198. package/dist/generated/chain-selectors/testnet/evm/monad-testnet.js +1 -1
  199. package/dist/generated/chain-selectors/testnet/evm/near-testnet.js +1 -1
  200. package/dist/generated/chain-selectors/testnet/evm/neonlink-testnet.js +1 -1
  201. package/dist/generated/chain-selectors/testnet/evm/neox-testnet-t4.js +1 -1
  202. package/dist/generated/chain-selectors/testnet/evm/nexon-dev.js +1 -1
  203. package/dist/generated/chain-selectors/testnet/evm/nibiru-testnet.js +1 -1
  204. package/dist/generated/chain-selectors/testnet/evm/ondo-testnet.js +1 -1
  205. package/dist/generated/chain-selectors/testnet/evm/pharos-testnet.js +1 -1
  206. package/dist/generated/chain-selectors/testnet/evm/plasma-testnet.js +1 -1
  207. package/dist/generated/chain-selectors/testnet/evm/plume-devnet.js +1 -1
  208. package/dist/generated/chain-selectors/testnet/evm/plume-testnet-sepolia.js +1 -1
  209. package/dist/generated/chain-selectors/testnet/evm/plume-testnet.js +1 -1
  210. package/dist/generated/chain-selectors/testnet/evm/polkadot-testnet-astar-shibuya.js +1 -1
  211. package/dist/generated/chain-selectors/testnet/evm/polkadot-testnet-centrifuge-altair.js +1 -1
  212. package/dist/generated/chain-selectors/testnet/evm/polkadot-testnet-darwinia-pangoro.js +1 -1
  213. package/dist/generated/chain-selectors/testnet/evm/polkadot-testnet-moonbeam-moonbase.js +1 -1
  214. package/dist/generated/chain-selectors/testnet/evm/polygon-testnet-amoy.js +1 -1
  215. package/dist/generated/chain-selectors/testnet/evm/polygon-testnet-mumbai.js +1 -1
  216. package/dist/generated/chain-selectors/testnet/evm/polygon-testnet-tatara.js +1 -1
  217. package/dist/generated/chain-selectors/testnet/evm/private-testnet-andesite.js +1 -1
  218. package/dist/generated/chain-selectors/testnet/evm/private-testnet-granite.js +1 -1
  219. package/dist/generated/chain-selectors/testnet/evm/private-testnet-mica.js +1 -1
  220. package/dist/generated/chain-selectors/testnet/evm/private-testnet-obsidian.js +1 -1
  221. package/dist/generated/chain-selectors/testnet/evm/private-testnet-opala.js +1 -1
  222. package/dist/generated/chain-selectors/testnet/evm/ronin-testnet-saigon.js +1 -1
  223. package/dist/generated/chain-selectors/testnet/evm/sei-testnet-atlantic.js +1 -1
  224. package/dist/generated/chain-selectors/testnet/evm/shibarium-testnet-puppynet.js +1 -1
  225. package/dist/generated/chain-selectors/testnet/evm/sonic-testnet-blaze.js +1 -1
  226. package/dist/generated/chain-selectors/testnet/evm/story-testnet.js +1 -1
  227. package/dist/generated/chain-selectors/testnet/evm/superseed-testnet.js +1 -1
  228. package/dist/generated/chain-selectors/testnet/evm/tac-testnet.js +1 -1
  229. package/dist/generated/chain-selectors/testnet/evm/telos-evm-testnet.js +1 -1
  230. package/dist/generated/chain-selectors/testnet/evm/treasure-testnet-topaz.js +1 -1
  231. package/dist/generated/chain-selectors/testnet/evm/tron-devnet-evm.js +1 -1
  232. package/dist/generated/chain-selectors/testnet/evm/tron-testnet-nile-evm.js +1 -1
  233. package/dist/generated/chain-selectors/testnet/evm/tron-testnet-shasta-evm.js +1 -1
  234. package/dist/generated/chain-selectors/testnet/evm/velas-testnet.js +1 -1
  235. package/dist/generated/chain-selectors/testnet/evm/wemix-testnet.js +1 -1
  236. package/dist/generated/chain-selectors/testnet/evm/xdc-testnet.js +1 -1
  237. package/dist/generated/chain-selectors/testnet/evm/zero-g-testnet-galileo.js +1 -1
  238. package/dist/generated/chain-selectors/testnet/evm/zircuit-testnet-garfield.js +1 -1
  239. package/dist/generated/chain-selectors/testnet/evm/zklink.nova-testnet.js +1 -1
  240. package/dist/generated/chain-selectors/testnet/evm/zora-testnet.js +1 -1
  241. package/dist/generated/chain-selectors/testnet/solana/solana-devnet.js +1 -1
  242. package/dist/generated/chain-selectors/testnet/solana/solana-testnet.js +1 -1
  243. package/dist/generated/chain-selectors/testnet/sui/sui-localnet.js +1 -1
  244. package/dist/generated/chain-selectors/testnet/sui/sui-testnet.js +1 -1
  245. package/dist/generated/chain-selectors/testnet/ton/ton-localnet.js +1 -1
  246. package/dist/generated/chain-selectors/testnet/ton/ton-testnet.js +1 -1
  247. package/dist/generated/chain-selectors/testnet/tron/tron-devnet.js +1 -1
  248. package/dist/generated/chain-selectors/testnet/tron/tron-testnet-nile.js +1 -1
  249. package/dist/generated/chain-selectors/testnet/tron/tron-testnet-shasta.js +1 -1
  250. package/dist/generated/networks.d.ts +14 -14
  251. package/dist/generated/networks.js +495 -495
  252. package/dist/generated-sdk/capabilities/blockchain/evm/v1alpha/client_sdk_gen.d.ts +21 -21
  253. package/dist/generated-sdk/capabilities/blockchain/evm/v1alpha/client_sdk_gen.js +10 -21
  254. package/dist/generated-sdk/capabilities/internal/consensus/v1alpha/consensus_sdk_gen.d.ts +5 -6
  255. package/dist/generated-sdk/capabilities/internal/consensus/v1alpha/consensus_sdk_gen.js +2 -6
  256. package/dist/generated-sdk/capabilities/networking/http/v1alpha/client_sdk_gen.d.ts +17 -4
  257. package/dist/generated-sdk/capabilities/networking/http/v1alpha/client_sdk_gen.js +30 -5
  258. package/dist/generated-sdk/capabilities/networking/http/v1alpha/http_sdk_gen.d.ts +0 -1
  259. package/dist/generated-sdk/capabilities/networking/http/v1alpha/http_sdk_gen.js +0 -2
  260. package/dist/generated-sdk/capabilities/scheduler/cron/v1/cron_sdk_gen.d.ts +0 -1
  261. package/dist/generated-sdk/capabilities/scheduler/cron/v1/cron_sdk_gen.js +0 -2
  262. package/dist/sdk/cre/index.d.ts +2 -1
  263. package/dist/sdk/cre/index.js +1 -1
  264. package/dist/sdk/impl/runtime-impl.d.ts +7 -3
  265. package/dist/sdk/impl/runtime-impl.js +41 -18
  266. package/dist/sdk/runtime.d.ts +5 -2
  267. package/dist/sdk/utils/chain-selectors/getNetwork.d.ts +2 -2
  268. package/dist/sdk/utils/chain-selectors/getNetwork.js +56 -15
  269. package/dist/sdk/utils/chain-selectors/types.d.ts +1 -1
  270. package/dist/sdk/utils/index.d.ts +1 -0
  271. package/dist/sdk/utils/index.js +1 -0
  272. package/dist/sdk/utils/safe-json-stringify.d.ts +6 -0
  273. package/dist/sdk/utils/safe-json-stringify.js +6 -0
  274. package/dist/sdk/utils/triggers/trigger-interface.d.ts +1 -1
  275. package/dist/sdk/utils/values/serializer_types.d.ts +1 -1
  276. package/dist/sdk/wasm/runner.js +1 -1
  277. package/dist/sdk/wasm/runtime.js +3 -0
  278. package/dist/sdk/workflow.d.ts +1 -1
  279. package/package.json +4 -3
  280. package/scripts/run-standard-tests.sh +3 -0
  281. package/scripts/src/generate-chain-selectors.ts +23 -16
  282. package/dist/generated/capabilities/internal/actionandtrigger/v1/action_and_trigger_pb.d.ts +0 -135
  283. package/dist/generated/capabilities/internal/actionandtrigger/v1/action_and_trigger_pb.js +0 -43
  284. package/dist/generated/capabilities/internal/basicaction/v1/basic_action_pb.d.ts +0 -77
  285. package/dist/generated/capabilities/internal/basicaction/v1/basic_action_pb.js +0 -33
  286. package/dist/generated/capabilities/internal/basictrigger/v1/basic_trigger_pb.d.ts +0 -77
  287. package/dist/generated/capabilities/internal/basictrigger/v1/basic_trigger_pb.js +0 -29
  288. package/dist/generated/capabilities/internal/nodeaction/v1/node_action_pb.d.ts +0 -69
  289. package/dist/generated/capabilities/internal/nodeaction/v1/node_action_pb.js +0 -29
  290. package/dist/generated-sdk/capabilities/internal/actionandtrigger/v1/basic_sdk_gen.d.ts +0 -43
  291. package/dist/generated-sdk/capabilities/internal/actionandtrigger/v1/basic_sdk_gen.js +0 -77
  292. package/dist/generated-sdk/capabilities/internal/basicaction/v1/basicaction_sdk_gen.d.ts +0 -19
  293. package/dist/generated-sdk/capabilities/internal/basicaction/v1/basicaction_sdk_gen.js +0 -36
  294. package/dist/generated-sdk/capabilities/internal/basictrigger/v1/basic_sdk_gen.d.ts +0 -39
  295. package/dist/generated-sdk/capabilities/internal/basictrigger/v1/basic_sdk_gen.js +0 -58
  296. package/dist/generated-sdk/capabilities/internal/nodeaction/v1/basicaction_sdk_gen.d.ts +0 -19
  297. package/dist/generated-sdk/capabilities/internal/nodeaction/v1/basicaction_sdk_gen.js +0 -36
  298. package/dist/sdk/impl/runtime-impl.test.d.ts +0 -1
  299. package/dist/sdk/impl/runtime-impl.test.js +0 -334
  300. package/dist/sdk/utils/config/configHandler.test.d.ts +0 -1
  301. package/dist/sdk/utils/config/configHandler.test.js +0 -193
  302. package/dist/sdk/utils/values/consensus_aggregators.test.d.ts +0 -1
  303. package/dist/sdk/utils/values/consensus_aggregators.test.js +0 -172
  304. package/dist/sdk/utils/values/serializer_types.test.d.ts +0 -1
  305. package/dist/sdk/utils/values/serializer_types.test.js +0 -104
  306. package/dist/sdk/utils/values/value.test.d.ts +0 -1
  307. package/dist/sdk/utils/values/value.test.js +0 -439
  308. package/dist/sdk/wasm/runner.test.d.ts +0 -1
  309. package/dist/sdk/wasm/runner.test.js +0 -270
package/LICENSE.md CHANGED
@@ -1,9 +1,9 @@
1
- Business Source License 1.1
1
+ Business Source License 1.1 (BUSL-1.1)
2
2
 
3
3
  License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
4
4
  "Business Source License" is a trademark of MariaDB Corporation Ab.
5
5
 
6
- -----------------------------------------------------------------------------
6
+ ---
7
7
 
8
8
  Parameters
9
9
 
@@ -17,7 +17,7 @@ Change Date: May 20, 2029
17
17
 
18
18
  Change License: MIT
19
19
 
20
- -----------------------------------------------------------------------------
20
+ ---
21
21
 
22
22
  Terms
23
23
 
@@ -37,13 +37,13 @@ This License does not grant you any right in any trademark or logo of Licensor o
37
37
 
38
38
  TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON AN "AS IS" BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND TITLE.
39
39
 
40
- MariaDB hereby grants you permission to use this Licenses text to license your works, and to refer to it using the trademark "Business Source License", as long as you comply with the Covenants of Licensor below.
40
+ MariaDB hereby grants you permission to use this License's text to license your works, and to refer to it using the trademark "Business Source License", as long as you comply with the Covenants of Licensor below.
41
41
 
42
- -----------------------------------------------------------------------------
42
+ ---
43
43
 
44
44
  Covenants of Licensor
45
45
 
46
- In consideration of the right to use this Licenses text and the "Business Source License" name and trademark, Licensor covenants to MariaDB, and to all other recipients of the licensed work to be provided by Licensor:
46
+ In consideration of the right to use this License's text and the "Business Source License" name and trademark, Licensor covenants to MariaDB, and to all other recipients of the licensed work to be provided by Licensor:
47
47
 
48
48
  1. To specify as the Change License the GPL Version 2.0 or any later version, or a license that is compatible with GPL Version 2.0 or a later version, where "compatible" means that software provided under the Change License can be included in a program with software provided under GPL Version 2.0 or a later version. Licensor may specify additional Change Licenses without limitation.
49
49
 
@@ -51,4 +51,4 @@ In consideration of the right to use this License’s text and the "Business Sou
51
51
 
52
52
  3. To specify a Change Date.
53
53
 
54
- 4. Not to modify this License in any other way.
54
+ 4. Not to modify this License in any other way.
package/README.md CHANGED
@@ -6,6 +6,16 @@ The Chainlink Runtime Environment (CRE) SDK for TypeScript enables developers to
6
6
 
7
7
  Ready to clone repo with example workflows and cre-sdk set up: [cre-sdk-examples](https://github.com/smartcontractkit/cre-sdk-typescript/tree/main/packages/cre-sdk-examples).
8
8
 
9
+ ## Simulate locally with CRE CLI
10
+
11
+ You can run and debug your TypeScript workflows locally using the CRE CLI simulation:
12
+
13
+ ```bash
14
+ cre workflow simulate --target local-simulation --config config.json your-workflow-file.ts
15
+ ```
16
+
17
+ See the CLI docs for additional flags (e.g. config file, secrets, HTTP payloads, EVM log params).
18
+
9
19
  ## Installation
10
20
 
11
21
  ```bash
@@ -15,14 +25,16 @@ bun add @chainlink/cre-sdk
15
25
  ## Quick Start
16
26
 
17
27
  ```typescript
18
- import { cre, Value, withErrorBoundary } from "@chainlink/cre-sdk";
28
+ import { cre, Runner, type Runtime } from "@chainlink/cre-sdk";
29
+
30
+ type Config = { schedule: string };
19
31
 
20
- const onCronTrigger = async (config: { schedule: string }) => {
21
- // Your workflow logic here
22
- cre.sendResponseValue(Value.from("Hello, CRE!"));
32
+ const onCronTrigger = (runtime: Runtime<Config>) => {
33
+ runtime.log("Hello, CRE!");
34
+ return "Hello, CRE!";
23
35
  };
24
36
 
25
- const initWorkflow = (config: { schedule: string }) => {
37
+ const initWorkflow = (config: Config) => {
26
38
  const cron = new cre.capabilities.CronCapability();
27
39
  return [
28
40
  cre.handler(cron.trigger({ schedule: config.schedule }), onCronTrigger),
@@ -30,11 +42,11 @@ const initWorkflow = (config: { schedule: string }) => {
30
42
  };
31
43
 
32
44
  export async function main() {
33
- const runner = await cre.newRunner<{ schedule: string }>();
45
+ const runner = await Runner.newRunner<Config>();
34
46
  await runner.run(initWorkflow);
35
47
  }
36
48
 
37
- withErrorBoundary(main);
49
+ main();
38
50
  ```
39
51
 
40
52
  ## Core Concepts
@@ -54,15 +66,9 @@ CRE supports two execution modes:
54
66
  - **DON Mode**: Distributed execution across multiple nodes for consensus and reliability
55
67
  - **Node Mode**: Individual node execution for specific tasks requiring node-level operations
56
68
 
57
- Use `cre.runInNodeMode()` to execute functions that require individual node processing, such as fetching data from different sources for consensus aggregation.
69
+ Use `runtime.runInNodeMode()` to execute functions that require individual node processing, such as fetching data from different sources for consensus aggregation.
58
70
 
59
- ### Error Handling
60
-
61
- Always wrap your main function with `withErrorBoundary()` to ensure proper error handling and workflow termination:
62
-
63
- ```typescript
64
- withErrorBoundary(main);
65
- ```
71
+ The SDK wires runtime safety internally; you can call `main()` directly as shown in the examples.
66
72
 
67
73
  ## Available Capabilities
68
74
 
@@ -82,18 +88,30 @@ const trigger = cron.trigger({ schedule: "0 */5 * * * *" }); // Every 5 minutes
82
88
  Fetch data from external APIs with built-in consensus mechanisms:
83
89
 
84
90
  ```typescript
85
- import { cre, consensusMedianAggregation } from "@chainlink/cre-sdk";
91
+ import {
92
+ cre,
93
+ consensusMedianAggregation,
94
+ type HTTPSendRequester,
95
+ type Runtime,
96
+ } from "@chainlink/cre-sdk";
97
+
98
+ type Config = { apiUrl: string };
86
99
 
87
- const fetchData = async (config: { apiUrl: string }) => {
88
- const response = await cre.utils.fetch({ url: config.apiUrl });
89
- return Number.parseFloat(response.body.trim());
100
+ const fetchData = (sendRequester: HTTPSendRequester, config: Config) => {
101
+ const response = sendRequester.sendRequest({ url: config.apiUrl }).result();
102
+ return Number.parseFloat(Buffer.from(response.body).toString("utf-8").trim());
90
103
  };
91
104
 
92
- // Execute with consensus across multiple nodes
93
- const result = await cre.runInNodeMode(
94
- fetchData,
95
- consensusMedianAggregation()
96
- )(config);
105
+ const onCronTrigger = (runtime: Runtime<Config>) => {
106
+ const httpCapability = new cre.capabilities.HTTPClient();
107
+ return httpCapability
108
+ .sendRequest(
109
+ runtime,
110
+ fetchData,
111
+ consensusMedianAggregation()
112
+ )(runtime.config)
113
+ .result();
114
+ };
97
115
  ```
98
116
 
99
117
  ### Blockchain Interactions
@@ -101,40 +119,66 @@ const result = await cre.runInNodeMode(
101
119
  Read from and write to EVM-compatible blockchains:
102
120
 
103
121
  ```typescript
104
- import { cre, hexToBase64 } from "@chainlink/cre-sdk";
105
- import { encodeFunctionData, decodeFunctionResult } from "viem";
106
-
107
- // Initialize EVM client with chain selector
108
- const evmClient = new cre.capabilities.EVMClient(
109
- undefined, // default mode
110
- BigInt("5009297550715157269") // Ethereum Sepolia
111
- );
112
-
113
- // Read from contract
114
- const callData = encodeFunctionData({
115
- abi: CONTRACT_ABI,
116
- functionName: "getValue",
117
- });
122
+ import {
123
+ bytesToHex,
124
+ cre,
125
+ getNetwork,
126
+ hexToBase64,
127
+ type Runtime,
128
+ } from "@chainlink/cre-sdk";
129
+ import { decodeFunctionResult, encodeFunctionData, zeroAddress } from "viem";
118
130
 
119
- const result = await evmClient.callContract({
120
- call: {
121
- from: hexToBase64("0x0000000000000000000000000000000000000000"),
122
- to: hexToBase64(contractAddress),
123
- data: hexToBase64(callData),
124
- },
125
- blockNumber: {
126
- absVal: Buffer.from([3]).toString("base64"), // finalized block
127
- sign: "-1",
128
- },
129
- });
131
+ type Config = { evm: { chainSelectorName: string; contractAddress: string } };
130
132
 
131
- // Write to contract
132
- await evmClient.writeReport({
133
- receiver: contractAddress,
134
- report: {
135
- rawReport: callData,
136
- },
137
- });
133
+ const onCronTrigger = async (runtime: Runtime<Config>) => {
134
+ const { chainSelectorName, contractAddress } = runtime.config.evm;
135
+ const network = getNetwork({
136
+ chainFamily: "evm",
137
+ chainSelectorName,
138
+ isTestnet: true,
139
+ });
140
+ if (!network) throw new Error("Network not found");
141
+
142
+ const evmClient = new cre.capabilities.EVMClient(
143
+ network.chainSelector.selector
144
+ );
145
+
146
+ const callData = encodeFunctionData({
147
+ abi: CONTRACT_ABI,
148
+ functionName: "getValue",
149
+ });
150
+
151
+ const contractCall = evmClient
152
+ .callContract(runtime, {
153
+ call: {
154
+ from: hexToBase64(zeroAddress),
155
+ to: hexToBase64(contractAddress),
156
+ data: hexToBase64(callData),
157
+ },
158
+ blockNumber: { absVal: Buffer.from([3]).toString("base64"), sign: "-1" },
159
+ })
160
+ .result();
161
+
162
+ const onchainValue = decodeFunctionResult({
163
+ abi: CONTRACT_ABI,
164
+ functionName: "getValue",
165
+ data: bytesToHex(contractCall.data),
166
+ });
167
+
168
+ // Write example
169
+ const writeData = encodeFunctionData({
170
+ abi: CONTRACT_ABI,
171
+ functionName: "setValue",
172
+ args: [onchainValue],
173
+ });
174
+ const tx = evmClient
175
+ .writeReport(runtime, {
176
+ receiver: contractAddress,
177
+ report: { rawReport: writeData },
178
+ })
179
+ .result();
180
+ return { onchainValue, txHash: tx.txHash?.toString() };
181
+ };
138
182
  ```
139
183
 
140
184
  ## Configuration & Type Safety
@@ -149,7 +193,7 @@ const configSchema = z.object({
149
193
  apiUrl: z.string(),
150
194
  evms: z.array(
151
195
  z.object({
152
- chainSelector: z.string(),
196
+ chainSelectorName: z.string(),
153
197
  contractAddress: z.string(),
154
198
  })
155
199
  ),
@@ -158,7 +202,7 @@ const configSchema = z.object({
158
202
  type Config = z.infer<typeof configSchema>;
159
203
 
160
204
  export async function main() {
161
- const runner = await cre.newRunner<Config>({ configSchema });
205
+ const runner = await Runner.newRunner<Config>({ configSchema });
162
206
  await runner.run(initWorkflow);
163
207
  }
164
208
  ```
@@ -168,32 +212,23 @@ export async function main() {
168
212
  CRE provides built-in consensus mechanisms for aggregating data from multiple nodes:
169
213
 
170
214
  ```typescript
171
- import { consensusMedianAggregation } from "@chainlink/cre-sdk";
215
+ import {
216
+ consensusMedianAggregation,
217
+ type NodeRuntime,
218
+ type Runtime,
219
+ } from "@chainlink/cre-sdk";
220
+
221
+ const fetchDataFunction = async (nodeRuntime: NodeRuntime<Config>) => 42;
172
222
 
173
223
  // Execute function across multiple nodes and aggregate results
174
- const aggregatedValue = await cre.runInNodeMode(
224
+ const aggregatedValue = await runtime.runInNodeMode(
175
225
  fetchDataFunction,
176
226
  consensusMedianAggregation()
177
- )(config);
227
+ )();
178
228
  ```
179
229
 
180
230
  ## Utility Functions
181
231
 
182
- ### Value Serialization
183
-
184
- ```typescript
185
- import { Value } from "@chainlink/cre-sdk";
186
-
187
- // Send structured response data
188
- cre.sendResponseValue(
189
- Value.from({
190
- price: 1234.56,
191
- timestamp: Date.now(),
192
- source: "api.example.com",
193
- })
194
- );
195
- ```
196
-
197
232
  ### Hex Utilities
198
233
 
199
234
  ```typescript
@@ -208,8 +243,12 @@ const hexData = bytesToHex(buffer);
208
243
  ```typescript
209
244
  import { getAllNetworks, getNetwork } from "@chainlink/cre-sdk";
210
245
 
211
- const networks = getAllNetworks();
212
- const ethereum = getNetwork("ethereum-mainnet");
246
+ const allNetworks = getAllNetworks();
247
+ const ethereumSepolia = getNetwork({
248
+ chainFamily: "evm",
249
+ chainSelectorName: "ethereum-sepolia",
250
+ isTestnet: true,
251
+ });
213
252
  ```
214
253
 
215
254
  ## Example Workflows
@@ -217,58 +256,13 @@ const ethereum = getNetwork("ethereum-mainnet");
217
256
  ### 1. Simple Scheduled Task
218
257
 
219
258
  ```typescript
220
- import { cre, Value, withErrorBoundary } from "@chainlink/cre-sdk";
259
+ import { cre, Runner, type Runtime } from "@chainlink/cre-sdk";
221
260
 
222
- const onCronTrigger = () => {
223
- console.log("Workflow executed!");
224
- cre.sendResponseValue(Value.from("Task completed"));
225
- };
261
+ type Config = { schedule: string };
226
262
 
227
- const initWorkflow = (config: { schedule: string }) => {
228
- const cron = new cre.capabilities.CronCapability();
229
- return [
230
- cre.handler(cron.trigger({ schedule: config.schedule }), onCronTrigger),
231
- ];
232
- };
233
-
234
- export async function main() {
235
- const runner = await cre.newRunner<{ schedule: string }>();
236
- await runner.run(initWorkflow);
237
- }
238
-
239
- withErrorBoundary(main);
240
- ```
241
-
242
- ### 2. API Data Aggregation
243
-
244
- ```typescript
245
- import {
246
- cre,
247
- consensusMedianAggregation,
248
- Value,
249
- withErrorBoundary,
250
- } from "@chainlink/cre-sdk";
251
- import { z } from "zod";
252
-
253
- const configSchema = z.object({
254
- schedule: z.string(),
255
- apiUrl: z.string(),
256
- });
257
-
258
- type Config = z.infer<typeof configSchema>;
259
-
260
- const fetchPrice = async (config: Config) => {
261
- const response = await cre.utils.fetch({ url: config.apiUrl });
262
- return Number.parseFloat(response.body.trim());
263
- };
264
-
265
- const onCronTrigger = async (config: Config) => {
266
- const price = await cre.runInNodeMode(
267
- fetchPrice,
268
- consensusMedianAggregation()
269
- )(config);
270
-
271
- cre.sendResponseValue(Value.from({ price }));
263
+ const onCronTrigger = (runtime: Runtime<Config>) => {
264
+ runtime.log("Workflow executed!");
265
+ return "Task completed";
272
266
  };
273
267
 
274
268
  const initWorkflow = (config: Config) => {
@@ -279,146 +273,40 @@ const initWorkflow = (config: Config) => {
279
273
  };
280
274
 
281
275
  export async function main() {
282
- const runner = await cre.newRunner<Config>({ configSchema });
276
+ const runner = await Runner.newRunner<Config>();
283
277
  await runner.run(initWorkflow);
284
278
  }
285
279
 
286
- withErrorBoundary(main);
280
+ main();
287
281
  ```
288
282
 
289
- ### 3. On-Chain Data Integration
290
-
291
- ```typescript
292
- import {
293
- cre,
294
- consensusMedianAggregation,
295
- Value,
296
- withErrorBoundary,
297
- hexToBase64,
298
- bytesToHex,
299
- } from "@chainlink/cre-sdk";
300
- import { encodeFunctionData, decodeFunctionResult, zeroAddress } from "viem";
301
- import { z } from "zod";
302
-
303
- const configSchema = z.object({
304
- schedule: z.string(),
305
- apiUrl: z.string(),
306
- evms: z.array(
307
- z.object({
308
- chainSelector: z.string(),
309
- contractAddress: z.string(),
310
- })
311
- ),
312
- });
313
-
314
- type Config = z.infer<typeof configSchema>;
315
-
316
- const fetchOffchainData = async (config: Config) => {
317
- const response = await cre.utils.fetch({ url: config.apiUrl });
318
- return Number.parseFloat(response.body.trim());
319
- };
320
-
321
- const onCronTrigger = async (config: Config) => {
322
- // Get off-chain data with consensus
323
- const offchainValue = await cre.runInNodeMode(
324
- fetchOffchainData,
325
- consensusMedianAggregation()
326
- )(config);
327
-
328
- // Read on-chain data
329
- const evmConfig = config.evms[0];
330
- const evmClient = new cre.capabilities.EVMClient(
331
- undefined,
332
- BigInt(evmConfig.chainSelector)
333
- );
334
-
335
- const callData = encodeFunctionData({
336
- abi: [
337
- {
338
- name: "getValue",
339
- type: "function",
340
- inputs: [],
341
- outputs: [{ type: "uint256" }],
342
- },
343
- ],
344
- functionName: "getValue",
345
- });
346
-
347
- const contractCall = await evmClient.callContract({
348
- call: {
349
- from: hexToBase64(zeroAddress),
350
- to: hexToBase64(evmConfig.contractAddress),
351
- data: hexToBase64(callData),
352
- },
353
- blockNumber: {
354
- absVal: Buffer.from([3]).toString("base64"),
355
- sign: "-1",
356
- },
357
- });
358
-
359
- const onchainValue = decodeFunctionResult({
360
- abi: [
361
- {
362
- name: "getValue",
363
- type: "function",
364
- inputs: [],
365
- outputs: [{ type: "uint256" }],
366
- },
367
- ],
368
- functionName: "getValue",
369
- data: bytesToHex(contractCall.data),
370
- });
371
-
372
- // Combine and return results
373
- const finalResult = Number(onchainValue) + offchainValue;
374
-
375
- cre.sendResponseValue(
376
- Value.from({
377
- offchainValue,
378
- onchainValue: Number(onchainValue),
379
- finalResult,
380
- })
381
- );
382
- };
283
+ ### 2. API Data Aggregation
383
284
 
384
- const initWorkflow = (config: Config) => {
385
- const cron = new cre.capabilities.CronCapability();
386
- return [
387
- cre.handler(cron.trigger({ schedule: config.schedule }), onCronTrigger),
388
- ];
389
- };
285
+ See the [http-fetch example](https://github.com/smartcontractkit/cre-sdk-typescript/tree/main/packages/cre-sdk-examples/src/workflows/http-fetch) for a complete implementation that fetches data from external APIs with consensus aggregation.
390
286
 
391
- export async function main() {
392
- const runner = await cre.newRunner<Config>({ configSchema });
393
- await runner.run(initWorkflow);
394
- }
287
+ ### 3. On-Chain Data Integration
395
288
 
396
- withErrorBoundary(main);
397
- ```
289
+ See the [on-chain example](https://github.com/smartcontractkit/cre-sdk-typescript/tree/main/packages/cre-sdk-examples/src/workflows/on-chain) for reading from smart contracts, and the [on-chain-write example](https://github.com/smartcontractkit/cre-sdk-typescript/tree/main/packages/cre-sdk-examples/src/workflows/on-chain-write) for writing to smart contracts.
398
290
 
399
291
  ## API Reference
400
292
 
401
293
  ### Core Functions
402
294
 
403
- - `cre.newRunner<T>(options?)`: Create a new workflow runner
295
+ - `Runner.newRunner<T>(options?)`: Create a new workflow runner
404
296
  - `cre.handler(trigger, handler)`: Create a trigger-handler pair
405
- - `cre.sendResponseValue(value)`: Send workflow response
406
- - `cre.runInNodeMode(fn, aggregator)`: Execute function in node mode with consensus
407
- - `withErrorBoundary(fn)`: Wrap function with error handling
297
+ - `runtime.runInNodeMode(fn, aggregator)`: Execute function in node mode with consensus
408
298
 
409
299
  ### Capabilities
410
300
 
411
301
  - `cre.capabilities.CronCapability`: Schedule-based triggers
412
- - `cre.capabilities.HTTPCapability`: HTTP request handling
413
- - `cre.capabilities.HTTPClient`: HTTP client for requests
302
+ - `cre.capabilities.HTTPClient`: HTTP client for requests with consensus support
414
303
  - `cre.capabilities.EVMClient`: EVM blockchain interactions
415
304
 
416
305
  ### Utilities
417
306
 
418
- - `cre.utils.fetch()`: HTTP requests with consensus support
419
- - `Value.from()`: Serialize response values
420
307
  - `consensusMedianAggregation()`: Median consensus aggregator
421
308
  - `hexToBase64()`, `bytesToHex()`: Data format conversions
309
+ - `getAllNetworks()`, `getNetwork(...)`: Chain selector metadata
422
310
 
423
311
  ## Building from Source
424
312
 
@@ -428,6 +316,9 @@ To build the SDK locally:
428
316
  # Install dependencies (from monorepo root)
429
317
  bun install
430
318
 
319
+ # Make sure Chainlink CRE Javy Plugin is ready
320
+ bun cre-setup
321
+
431
322
  # Generate protocol buffers and SDK types
432
323
  bun generate:sdk
433
324
 
@@ -443,11 +334,11 @@ bun test:standard
443
334
 
444
335
  ### Protobuf Generation
445
336
 
446
- This SDK uses [ts-proto](https://github.com/stephenh/ts-proto) for generating TypeScript types from Protocol Buffers.
337
+ This SDK uses [@bufbuild/protobuf](https://www.npmjs.com/package/@bufbuild/protobuf) for generating TypeScript types from Protocol Buffers.
447
338
 
448
339
  **Available Commands:**
449
340
 
450
- - `bun generate:proto` - Generate TypeScript types from .proto files
341
+ - `bun generate:sdk` - Generate TypeScript types from .proto files as well as custom tailored utility classes
451
342
  - `bun proto:lint` - Lint .proto files
452
343
  - `bun proto:format` - Format .proto files
453
344
 
@@ -472,7 +363,11 @@ bun generate:chain-selectors
472
363
  ```typescript
473
364
  import { getAllNetworks, getNetwork } from "@chainlink/cre-sdk";
474
365
 
475
- const ethereum = getNetwork("ethereum-mainnet");
366
+ const ethereum = getNetwork({
367
+ chainFamily: "evm",
368
+ chainSelectorName: "ethereum-mainnet",
369
+ isTestnet: false,
370
+ });
476
371
  const allNetworks = getAllNetworks();
477
372
  ```
478
373
 
@@ -4,7 +4,7 @@ const network = {
4
4
  chainId: '1',
5
5
  chainSelector: {
6
6
  name: 'aptos-mainnet',
7
- selector: '4741433654826278000',
7
+ selector: 4741433654826277614n,
8
8
  },
9
9
  chainFamily: 'aptos',
10
10
  networkType: 'mainnet',
@@ -4,7 +4,7 @@ const network = {
4
4
  chainId: '16661',
5
5
  chainSelector: {
6
6
  name: '0g-mainnet',
7
- selector: '4426351306075016000',
7
+ selector: 4426351306075016396n,
8
8
  },
9
9
  chainFamily: 'evm',
10
10
  networkType: 'mainnet',
@@ -4,7 +4,7 @@ const network = {
4
4
  chainId: '2741',
5
5
  chainSelector: {
6
6
  name: 'abstract-mainnet',
7
- selector: '3577778157919314400',
7
+ selector: 3577778157919314504n,
8
8
  },
9
9
  chainFamily: 'evm',
10
10
  networkType: 'mainnet',
@@ -4,7 +4,7 @@ const network = {
4
4
  chainId: '33139',
5
5
  chainSelector: {
6
6
  name: 'apechain-mainnet',
7
- selector: '14894068710063348000',
7
+ selector: 14894068710063348487n,
8
8
  },
9
9
  chainFamily: 'evm',
10
10
  networkType: 'mainnet',
@@ -4,7 +4,7 @@ const network = {
4
4
  chainId: '463',
5
5
  chainSelector: {
6
6
  name: 'areon-mainnet',
7
- selector: '1939936305787790600',
7
+ selector: 1939936305787790600n,
8
8
  },
9
9
  chainFamily: 'evm',
10
10
  networkType: 'mainnet',
@@ -4,7 +4,7 @@ const network = {
4
4
  chainId: '43114',
5
5
  chainSelector: {
6
6
  name: 'avalanche-mainnet',
7
- selector: '6433500567565415000',
7
+ selector: 6433500567565415381n,
8
8
  },
9
9
  chainFamily: 'evm',
10
10
  networkType: 'mainnet',
@@ -4,7 +4,7 @@ const network = {
4
4
  chainId: '432204',
5
5
  chainSelector: {
6
6
  name: 'avalanche-subnet-dexalot-mainnet',
7
- selector: '5463201557265485000',
7
+ selector: 5463201557265485081n,
8
8
  },
9
9
  chainFamily: 'evm',
10
10
  networkType: 'mainnet',
@@ -4,7 +4,7 @@ const network = {
4
4
  chainId: '80094',
5
5
  chainSelector: {
6
6
  name: 'berachain-mainnet',
7
- selector: '1294465214383781000',
7
+ selector: 1294465214383781161n,
8
8
  },
9
9
  chainFamily: 'evm',
10
10
  networkType: 'mainnet',
@@ -4,7 +4,7 @@ const network = {
4
4
  chainId: '204',
5
5
  chainSelector: {
6
6
  name: 'binance_smart_chain-mainnet-opbnb-1',
7
- selector: '465944652040885900',
7
+ selector: 465944652040885897n,
8
8
  },
9
9
  chainFamily: 'evm',
10
10
  networkType: 'mainnet',
@@ -4,7 +4,7 @@ const network = {
4
4
  chainId: '56',
5
5
  chainSelector: {
6
6
  name: 'binance_smart_chain-mainnet',
7
- selector: '11344663589394135000',
7
+ selector: 11344663589394136015n,
8
8
  },
9
9
  chainFamily: 'evm',
10
10
  networkType: 'mainnet',