@chainlink/cre-sdk 0.0.2-alpha → 0.0.4-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 (331) hide show
  1. package/LICENSE.md +7 -7
  2. package/README.md +195 -281
  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 +37 -22
  253. package/dist/generated-sdk/capabilities/blockchain/evm/v1alpha/client_sdk_gen.js +158 -62
  254. package/dist/generated-sdk/capabilities/internal/consensus/v1alpha/consensus_sdk_gen.d.ts +7 -7
  255. package/dist/generated-sdk/capabilities/internal/consensus/v1alpha/consensus_sdk_gen.js +28 -14
  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 +44 -9
  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 +2 -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 +2 -2
  262. package/dist/index.d.ts +1 -0
  263. package/dist/index.js +2 -0
  264. package/dist/sdk/cre/index.d.ts +2 -1
  265. package/dist/sdk/cre/index.js +1 -1
  266. package/dist/sdk/impl/runtime-impl.d.ts +12 -4
  267. package/dist/sdk/impl/runtime-impl.js +53 -19
  268. package/dist/sdk/index.d.ts +1 -0
  269. package/dist/sdk/index.js +1 -0
  270. package/dist/sdk/report.d.ts +6 -0
  271. package/dist/sdk/report.js +14 -0
  272. package/dist/sdk/runtime.d.ts +11 -2
  273. package/dist/sdk/utils/capabilities/blockchain/blockchain-helpers.d.ts +50 -0
  274. package/dist/sdk/utils/capabilities/blockchain/blockchain-helpers.js +48 -0
  275. package/dist/sdk/utils/capabilities/http/http-helpers.d.ts +112 -0
  276. package/dist/sdk/utils/capabilities/http/http-helpers.js +44 -0
  277. package/dist/sdk/utils/chain-selectors/getNetwork.d.ts +2 -2
  278. package/dist/sdk/utils/chain-selectors/getNetwork.js +56 -15
  279. package/dist/sdk/utils/chain-selectors/types.d.ts +1 -1
  280. package/dist/sdk/utils/index.d.ts +3 -0
  281. package/dist/sdk/utils/index.js +3 -0
  282. package/dist/sdk/utils/triggers/trigger-interface.d.ts +1 -1
  283. package/dist/sdk/utils/values/serializer_types.d.ts +1 -1
  284. package/dist/sdk/wasm/runner.js +1 -1
  285. package/dist/sdk/wasm/runtime.js +3 -0
  286. package/dist/sdk/workflow.d.ts +1 -1
  287. package/dist/workflows/standard_tests/Makefile +19 -0
  288. package/dist/workflows/standard_tests/capability_calls_are_async/test.ts +39 -0
  289. package/dist/workflows/standard_tests/config/test.ts +23 -0
  290. package/dist/workflows/standard_tests/errors/test.ts +24 -0
  291. package/dist/workflows/standard_tests/logging/test.ts +25 -0
  292. package/dist/workflows/standard_tests/mode_switch/don_runtime_in_node_mode/test.ts +33 -0
  293. package/dist/workflows/standard_tests/mode_switch/node_runtime_in_don_mode/test.ts +41 -0
  294. package/dist/workflows/standard_tests/mode_switch/successful_mode_switch/test.ts +58 -0
  295. package/dist/workflows/standard_tests/multiple_triggers/test.ts +40 -0
  296. package/dist/workflows/standard_tests/random/test.ts +64 -0
  297. package/dist/workflows/standard_tests/secrets/test.ts +30 -0
  298. package/dist/workflows/standard_tests/secrets_fail_in_node_mode/test.ts +29 -0
  299. package/package.json +70 -68
  300. package/scripts/src/cre-setup.ts +9 -0
  301. package/scripts/src/generate-chain-selectors.ts +23 -16
  302. package/dist/generated/capabilities/internal/actionandtrigger/v1/action_and_trigger_pb.d.ts +0 -135
  303. package/dist/generated/capabilities/internal/actionandtrigger/v1/action_and_trigger_pb.js +0 -43
  304. package/dist/generated/capabilities/internal/basicaction/v1/basic_action_pb.d.ts +0 -77
  305. package/dist/generated/capabilities/internal/basicaction/v1/basic_action_pb.js +0 -33
  306. package/dist/generated/capabilities/internal/basictrigger/v1/basic_trigger_pb.d.ts +0 -77
  307. package/dist/generated/capabilities/internal/basictrigger/v1/basic_trigger_pb.js +0 -29
  308. package/dist/generated/capabilities/internal/nodeaction/v1/node_action_pb.d.ts +0 -69
  309. package/dist/generated/capabilities/internal/nodeaction/v1/node_action_pb.js +0 -29
  310. package/dist/generated-sdk/capabilities/internal/actionandtrigger/v1/basic_sdk_gen.d.ts +0 -43
  311. package/dist/generated-sdk/capabilities/internal/actionandtrigger/v1/basic_sdk_gen.js +0 -77
  312. package/dist/generated-sdk/capabilities/internal/basicaction/v1/basicaction_sdk_gen.d.ts +0 -19
  313. package/dist/generated-sdk/capabilities/internal/basicaction/v1/basicaction_sdk_gen.js +0 -36
  314. package/dist/generated-sdk/capabilities/internal/basictrigger/v1/basic_sdk_gen.d.ts +0 -39
  315. package/dist/generated-sdk/capabilities/internal/basictrigger/v1/basic_sdk_gen.js +0 -58
  316. package/dist/generated-sdk/capabilities/internal/nodeaction/v1/basicaction_sdk_gen.d.ts +0 -19
  317. package/dist/generated-sdk/capabilities/internal/nodeaction/v1/basicaction_sdk_gen.js +0 -36
  318. package/dist/sdk/impl/runtime-impl.test.d.ts +0 -1
  319. package/dist/sdk/impl/runtime-impl.test.js +0 -334
  320. package/dist/sdk/utils/config/configHandler.test.d.ts +0 -1
  321. package/dist/sdk/utils/config/configHandler.test.js +0 -193
  322. package/dist/sdk/utils/values/consensus_aggregators.test.d.ts +0 -1
  323. package/dist/sdk/utils/values/consensus_aggregators.test.js +0 -172
  324. package/dist/sdk/utils/values/serializer_types.test.d.ts +0 -1
  325. package/dist/sdk/utils/values/serializer_types.test.js +0 -104
  326. package/dist/sdk/utils/values/value.test.d.ts +0 -1
  327. package/dist/sdk/utils/values/value.test.js +0 -439
  328. package/dist/sdk/wasm/runner.test.d.ts +0 -1
  329. package/dist/sdk/wasm/runner.test.js +0 -270
  330. /package/dist/sdk/utils/{safeJsonStringify.d.ts → safe-json-stringify.d.ts} +0 -0
  331. /package/dist/sdk/utils/{safeJsonStringify.js → safe-json-stringify.js} +0 -0
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
@@ -1,40 +1,83 @@
1
1
  # @chainlink/cre-sdk
2
2
 
3
- The Chainlink Runtime Environment (CRE) SDK for TypeScript enables developers to build decentralized workflows that combine off-chain computation with on-chain execution. Create workflows that fetch data from APIs, interact with smart contracts, and coordinate complex multi-step operations across blockchain networks.
3
+ The Chainlink Runtime Environment (CRE) SDK for TypeScript enables developers to write decentralized [Chainlink Runtime Environment Workflows](https://docs.chain.link/cre/) in Typescript.
4
+
5
+ ## Table of Contents
6
+
7
+ - [How to use this SDK](#how-to-use-this-sdk)
8
+ - [Examples](#examples)
9
+ - [Simulate locally with CRE CLI](#simulate-locally-with-cre-cli)
10
+ - [Installation](#installation)
11
+ - [Core Concepts](#core-concepts)
12
+ - [Workflows](#workflows)
13
+ - [Runtime Modes](#runtime-modes)
14
+ - [Available Capabilities](#available-capabilities)
15
+ - [Scheduling](#scheduling)
16
+ - [HTTP Operations](#http-operations)
17
+ - [Blockchain Interactions](#blockchain-interactions)
18
+ - [Configuration & Type Safety](#configuration--type-safety)
19
+ - [Consensus & Aggregation](#consensus--aggregation)
20
+ - [Utility Functions](#utility-functions)
21
+ - [Hex Utilities](#hex-utilities)
22
+ - [Chain Selectors](#chain-selectors)
23
+ - [Example Workflows](#example-workflows)
24
+ - [1. Simple Scheduled Task](#1-simple-scheduled-task)
25
+ - [2. API Data Aggregation](#2-api-data-aggregation)
26
+ - [3. On-Chain Data Integration](#3-on-chain-data-integration)
27
+ - [API Reference](#api-reference)
28
+ - [Core Functions](#core-functions)
29
+ - [Capabilities](#capabilities)
30
+ - [Utilities](#utilities)
31
+ - [Building from Source](#building-from-source)
32
+ - [Protobuf Generation](#protobuf-generation)
33
+ - [Chain Selectors Generation](#chain-selectors-generation)
34
+ - [Requirements](#requirements)
35
+ - [License](#license)
36
+
37
+ ## How to use this SDK
38
+
39
+ This package exposes the APIs you use to write CRE Workflows in TypeScript, and then compile them to WASM.
40
+
41
+ This package must be used along with the [CRE CLI tool](https://github.com/smartcontractkit/cre-cli) to deploy your WASM-compiled workflows.
42
+
43
+ ## Prerequisites
44
+
45
+ 1. the [bun runtime](https://bun.com/). The wasm compilation currently is only supported by the bun runtime which has near-complete NodeJS compatibility.
46
+
47
+ 2. the [CRE CLI tool](https://github.com/smartcontractkit/cre-cli) installed.
48
+
49
+ ## Getting Started
50
+
51
+ We recommend you consult the [getting started docs](https://docs.chain.link/cre/getting-started/cli-installation) and install the CRE CLI.
52
+
53
+ Then run `cre init`, name your project and choose TypeScript as the language to define your workflows in.
4
54
 
5
55
  ## Examples
6
56
 
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).
57
+ This TypeScript CRE SDK also includes some reference examples - [cre-sdk-examples](https://github.com/smartcontractkit/cre-sdk-typescript/tree/main/packages/cre-sdk-examples). These can be copied and pasted into your project as needed.
8
58
 
9
- ## Installation
59
+ ⚠️ Note however that these are refence TypeScript workflows and may require some additional steps (having the CRE CLI installed, running `bunx cre-setup` from inside a workflow example directory, etc) to get them to work within this repo.
10
60
 
11
- ```bash
12
- bun add @chainlink/cre-sdk
13
- ```
61
+ **We recommend you setup your project using the CRE CLI and then copy and paste these examples into your project**
14
62
 
15
- ## Quick Start
63
+ ## Simulate locally with CRE CLI
16
64
 
17
- ```typescript
18
- import { cre, Value, withErrorBoundary } from "@chainlink/cre-sdk";
65
+ You can run and debug your TypeScript workflows locally using [the CRE CLI's](https://github.com/smartcontractkit/cre-cli) simulation functionality.
19
66
 
20
- const onCronTrigger = async (config: { schedule: string }) => {
21
- // Your workflow logic here
22
- cre.sendResponseValue(Value.from("Hello, CRE!"));
23
- };
67
+ Make sure you `cd` into the directory that contain's your workflow's TypeScript file and the associated `config.json`. Then:
24
68
 
25
- const initWorkflow = (config: { schedule: string }) => {
26
- const cron = new cre.capabilities.CronCapability();
27
- return [
28
- cre.handler(cron.trigger({ schedule: config.schedule }), onCronTrigger),
29
- ];
30
- };
69
+ ```bash
70
+ cre workflow simulate --target local-simulation --config config.json index.ts
71
+ ```
31
72
 
32
- export async function main() {
33
- const runner = await cre.newRunner<{ schedule: string }>();
34
- await runner.run(initWorkflow);
35
- }
73
+ When simulating workflows that write to the blockchain, remember to pass extra flag `--broadcast` to broadcast the transactions to the blockchain.
74
+
75
+ See the CLI docs for additional flags (e.g. config file, secrets, HTTP payloads, EVM log params).
76
+
77
+ ## Installation
36
78
 
37
- withErrorBoundary(main);
79
+ ```bash
80
+ bun add @chainlink/cre-sdk
38
81
  ```
39
82
 
40
83
  ## Core Concepts
@@ -44,7 +87,7 @@ withErrorBoundary(main);
44
87
  Workflows are the fundamental building blocks of CRE applications. They define how your application responds to triggers and what actions to take. Each workflow consists of:
45
88
 
46
89
  - **Triggers**: Events that initiate workflow execution (cron schedules, HTTP requests, etc.)
47
- - **Handlers**: Functions that process trigger events and execute your business logic
90
+ - **Handlers**: Functions that process trigger events and execute your business logic as provided in a callback function.
48
91
  - **Capabilities**: Built-in services for interacting with external systems
49
92
 
50
93
  ### Runtime Modes
@@ -54,15 +97,9 @@ CRE supports two execution modes:
54
97
  - **DON Mode**: Distributed execution across multiple nodes for consensus and reliability
55
98
  - **Node Mode**: Individual node execution for specific tasks requiring node-level operations
56
99
 
57
- Use `cre.runInNodeMode()` to execute functions that require individual node processing, such as fetching data from different sources for consensus aggregation.
58
-
59
- ### Error Handling
100
+ Use `runtime.runInNodeMode()` to execute functions that require individual node processing, such as fetching data from different sources for consensus aggregation.
60
101
 
61
- Always wrap your main function with `withErrorBoundary()` to ensure proper error handling and workflow termination:
62
-
63
- ```typescript
64
- withErrorBoundary(main);
65
- ```
102
+ The SDK wires runtime safety internally; you can call `main()` directly as shown in the examples.
66
103
 
67
104
  ## Available Capabilities
68
105
 
@@ -82,18 +119,30 @@ const trigger = cron.trigger({ schedule: "0 */5 * * * *" }); // Every 5 minutes
82
119
  Fetch data from external APIs with built-in consensus mechanisms:
83
120
 
84
121
  ```typescript
85
- import { cre, consensusMedianAggregation } from "@chainlink/cre-sdk";
122
+ import {
123
+ cre,
124
+ consensusMedianAggregation,
125
+ type HTTPSendRequester,
126
+ type Runtime,
127
+ } from "@chainlink/cre-sdk";
86
128
 
87
- const fetchData = async (config: { apiUrl: string }) => {
88
- const response = await cre.utils.fetch({ url: config.apiUrl });
89
- return Number.parseFloat(response.body.trim());
129
+ type Config = { apiUrl: string };
130
+
131
+ const fetchData = (sendRequester: HTTPSendRequester, config: Config) => {
132
+ const response = sendRequester.sendRequest({ url: config.apiUrl }).result();
133
+ return Number.parseFloat(Buffer.from(response.body).toString("utf-8").trim());
90
134
  };
91
135
 
92
- // Execute with consensus across multiple nodes
93
- const result = await cre.runInNodeMode(
94
- fetchData,
95
- consensusMedianAggregation()
96
- )(config);
136
+ const onCronTrigger = (runtime: Runtime<Config>) => {
137
+ const httpCapability = new cre.capabilities.HTTPClient();
138
+ return httpCapability
139
+ .sendRequest(
140
+ runtime,
141
+ fetchData,
142
+ consensusMedianAggregation()
143
+ )(runtime.config)
144
+ .result();
145
+ };
97
146
  ```
98
147
 
99
148
  ### Blockchain Interactions
@@ -101,45 +150,75 @@ const result = await cre.runInNodeMode(
101
150
  Read from and write to EVM-compatible blockchains:
102
151
 
103
152
  ```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
- });
153
+ import {
154
+ bytesToHex,
155
+ cre,
156
+ getNetwork,
157
+ hexToBase64,
158
+ type Runtime,
159
+ } from "@chainlink/cre-sdk";
160
+ import { decodeFunctionResult, encodeFunctionData, zeroAddress } from "viem";
118
161
 
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
- });
162
+ type Config = { evm: { chainSelectorName: string; contractAddress: string } };
130
163
 
131
- // Write to contract
132
- await evmClient.writeReport({
133
- receiver: contractAddress,
134
- report: {
135
- rawReport: callData,
136
- },
137
- });
164
+ const onCronTrigger = async (runtime: Runtime<Config>) => {
165
+ const { chainSelectorName, contractAddress } = runtime.config.evm;
166
+ const network = getNetwork({
167
+ chainFamily: "evm",
168
+ chainSelectorName,
169
+ isTestnet: true,
170
+ });
171
+ if (!network) throw new Error("Network not found");
172
+
173
+ const evmClient = new cre.capabilities.EVMClient(
174
+ network.chainSelector.selector
175
+ );
176
+
177
+ const callData = encodeFunctionData({
178
+ abi: CONTRACT_ABI,
179
+ functionName: "getValue",
180
+ });
181
+
182
+ const contractCall = evmClient
183
+ .callContract(runtime, {
184
+ call: {
185
+ from: hexToBase64(zeroAddress),
186
+ to: hexToBase64(contractAddress),
187
+ data: hexToBase64(callData),
188
+ },
189
+ blockNumber: { absVal: Buffer.from([3]).toString("base64"), sign: "-1" },
190
+ })
191
+ .result();
192
+
193
+ const onchainValue = decodeFunctionResult({
194
+ abi: CONTRACT_ABI,
195
+ functionName: "getValue",
196
+ data: bytesToHex(contractCall.data),
197
+ });
198
+
199
+ // Write example
200
+ const writeData = encodeFunctionData({
201
+ abi: CONTRACT_ABI,
202
+ functionName: "setValue",
203
+ args: [onchainValue],
204
+ });
205
+ const tx = evmClient
206
+ .writeReport(runtime, {
207
+ receiver: contractAddress,
208
+ report: { rawReport: writeData },
209
+ })
210
+ .result();
211
+ return { onchainValue, txHash: tx.txHash?.toString() };
212
+ };
138
213
  ```
139
214
 
140
215
  ## Configuration & Type Safety
141
216
 
142
- Use Zod schemas for type-safe configuration:
217
+ You, the developer, must declare config files in config.json files, co-located with your TypeScript workflow definition.
218
+
219
+ Use Zod schemas for type-safe configuration.
220
+
221
+ Here's an example of zod usage for the config specified in `../cre-sdk-examples/src/workflows/on-chain/config.json`
143
222
 
144
223
  ```typescript
145
224
  import { z } from "zod";
@@ -149,7 +228,7 @@ const configSchema = z.object({
149
228
  apiUrl: z.string(),
150
229
  evms: z.array(
151
230
  z.object({
152
- chainSelector: z.string(),
231
+ chainSelectorName: z.string(),
153
232
  contractAddress: z.string(),
154
233
  })
155
234
  ),
@@ -158,7 +237,7 @@ const configSchema = z.object({
158
237
  type Config = z.infer<typeof configSchema>;
159
238
 
160
239
  export async function main() {
161
- const runner = await cre.newRunner<Config>({ configSchema });
240
+ const runner = await Runner.newRunner<Config>({ configSchema });
162
241
  await runner.run(initWorkflow);
163
242
  }
164
243
  ```
@@ -168,38 +247,36 @@ export async function main() {
168
247
  CRE provides built-in consensus mechanisms for aggregating data from multiple nodes:
169
248
 
170
249
  ```typescript
171
- import { consensusMedianAggregation } from "@chainlink/cre-sdk";
250
+ import {
251
+ consensusMedianAggregation,
252
+ type NodeRuntime,
253
+ type Runtime,
254
+ } from "@chainlink/cre-sdk";
255
+
256
+ const fetchDataFunction = async (nodeRuntime: NodeRuntime<Config>) => 42;
172
257
 
173
258
  // Execute function across multiple nodes and aggregate results
174
- const aggregatedValue = await cre.runInNodeMode(
259
+ const aggregatedValue = await runtime.runInNodeMode(
175
260
  fetchDataFunction,
176
261
  consensusMedianAggregation()
177
- )(config);
262
+ )();
178
263
  ```
179
264
 
180
265
  ## Utility Functions
181
266
 
182
- ### Value Serialization
267
+ ### Hex Utilities
183
268
 
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
- ```
269
+ CRE capabilities (like EVM client) expect data in base64 format for serialization. You may need to convert a hex string to base64 format for CRE protocol communication.
196
270
 
197
- ### Hex Utilities
271
+ Or you may need to convert binary data back to hex format for blockchain operations. This can be Useful for decoding responses from CRE capabilities and transforming data for libraries like viem (which expect hex format)
198
272
 
199
273
  ```typescript
200
274
  import { hexToBase64, bytesToHex } from "@chainlink/cre-sdk";
201
275
 
276
+ // Example: "0x1234567890abcdef" → "EjRWeJCrze8="
202
277
  const base64Data = hexToBase64("0x1234567890abcdef");
278
+
279
+ // Example: Uint8Array([18, 52, 86...]) → "0x1234567890abcdef"
203
280
  const hexData = bytesToHex(buffer);
204
281
  ```
205
282
 
@@ -208,217 +285,47 @@ const hexData = bytesToHex(buffer);
208
285
  ```typescript
209
286
  import { getAllNetworks, getNetwork } from "@chainlink/cre-sdk";
210
287
 
211
- const networks = getAllNetworks();
212
- const ethereum = getNetwork("ethereum-mainnet");
288
+ const allNetworks = getAllNetworks();
289
+ const ethereumSepolia = getNetwork({
290
+ chainFamily: "evm",
291
+ chainSelectorName: "ethereum-sepolia",
292
+ isTestnet: true,
293
+ });
213
294
  ```
214
295
 
215
296
  ## Example Workflows
216
297
 
217
- ### 1. Simple Scheduled Task
218
-
219
- ```typescript
220
- import { cre, Value, withErrorBoundary } from "@chainlink/cre-sdk";
221
-
222
- const onCronTrigger = () => {
223
- console.log("Workflow executed!");
224
- cre.sendResponseValue(Value.from("Task completed"));
225
- };
226
-
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
- };
298
+ ### 1. Simple Cron-scheduled task
233
299
 
234
- export async function main() {
235
- const runner = await cre.newRunner<{ schedule: string }>();
236
- await runner.run(initWorkflow);
237
- }
238
-
239
- withErrorBoundary(main);
240
- ```
300
+ See the [hello-world](https://github.com/smartcontractkit/cre-sdk-typescript/tree/main/packages/cre-sdk-examples/src/hello-world) example for a simple example that runs a cron-based operation on CRE at intervals you define in the `config.js` file.
241
301
 
242
302
  ### 2. API Data Aggregation
243
303
 
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 }));
272
- };
273
-
274
- const initWorkflow = (config: Config) => {
275
- const cron = new cre.capabilities.CronCapability();
276
- return [
277
- cre.handler(cron.trigger({ schedule: config.schedule }), onCronTrigger),
278
- ];
279
- };
280
-
281
- export async function main() {
282
- const runner = await cre.newRunner<Config>({ configSchema });
283
- await runner.run(initWorkflow);
284
- }
285
-
286
- withErrorBoundary(main);
287
- ```
304
+ 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 Chainlink CRE consensus aggregation applied.
288
305
 
289
306
  ### 3. On-Chain Data Integration
290
307
 
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
- };
383
-
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
- };
390
-
391
- export async function main() {
392
- const runner = await cre.newRunner<Config>({ configSchema });
393
- await runner.run(initWorkflow);
394
- }
395
-
396
- withErrorBoundary(main);
397
- ```
308
+ 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
309
 
399
310
  ## API Reference
400
311
 
401
312
  ### Core Functions
402
313
 
403
- - `cre.newRunner<T>(options?)`: Create a new workflow runner
314
+ - `Runner.newRunner<T>(options?)`: Create a new workflow runner
404
315
  - `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
316
+ - `runtime.runInNodeMode(fn, aggregator)`: Execute function in node mode with consensus
408
317
 
409
318
  ### Capabilities
410
319
 
411
320
  - `cre.capabilities.CronCapability`: Schedule-based triggers
412
- - `cre.capabilities.HTTPCapability`: HTTP request handling
413
- - `cre.capabilities.HTTPClient`: HTTP client for requests
321
+ - `cre.capabilities.HTTPClient`: HTTP client for requests with consensus support
414
322
  - `cre.capabilities.EVMClient`: EVM blockchain interactions
415
323
 
416
324
  ### Utilities
417
325
 
418
- - `cre.utils.fetch()`: HTTP requests with consensus support
419
- - `Value.from()`: Serialize response values
420
326
  - `consensusMedianAggregation()`: Median consensus aggregator
421
327
  - `hexToBase64()`, `bytesToHex()`: Data format conversions
328
+ - `getAllNetworks()`, `getNetwork(...)`: Chain selector metadata
422
329
 
423
330
  ## Building from Source
424
331
 
@@ -428,6 +335,9 @@ To build the SDK locally:
428
335
  # Install dependencies (from monorepo root)
429
336
  bun install
430
337
 
338
+ # Make sure Chainlink CRE Javy Plugin is ready
339
+ bun cre-setup
340
+
431
341
  # Generate protocol buffers and SDK types
432
342
  bun generate:sdk
433
343
 
@@ -443,11 +353,11 @@ bun test:standard
443
353
 
444
354
  ### Protobuf Generation
445
355
 
446
- This SDK uses [ts-proto](https://github.com/stephenh/ts-proto) for generating TypeScript types from Protocol Buffers.
356
+ This SDK uses [@bufbuild/protobuf](https://www.npmjs.com/package/@bufbuild/protobuf) for generating TypeScript types from Protocol Buffers.
447
357
 
448
358
  **Available Commands:**
449
359
 
450
- - `bun generate:proto` - Generate TypeScript types from .proto files
360
+ - `bun generate:sdk` - Generate TypeScript types from .proto files as well as custom tailored utility classes
451
361
  - `bun proto:lint` - Lint .proto files
452
362
  - `bun proto:format` - Format .proto files
453
363
 
@@ -472,7 +382,11 @@ bun generate:chain-selectors
472
382
  ```typescript
473
383
  import { getAllNetworks, getNetwork } from "@chainlink/cre-sdk";
474
384
 
475
- const ethereum = getNetwork("ethereum-mainnet");
385
+ const ethereum = getNetwork({
386
+ chainFamily: "evm",
387
+ chainSelectorName: "ethereum-mainnet",
388
+ isTestnet: false,
389
+ });
476
390
  const allNetworks = getAllNetworks();
477
391
  ```
478
392
 
@@ -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',