@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.
- package/LICENSE.md +7 -7
- package/README.md +195 -281
- package/dist/generated/chain-selectors/mainnet/aptos/aptos-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/0g-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/abstract-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/apechain-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/areon-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/avalanche-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/avalanche-subnet-dexalot-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/berachain-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/binance.smart.chain-mainnet-opbnb-1.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/binance.smart.chain-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/bitcichain-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/bitcoin-mainnet-bitlayer-1.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/bitcoin-mainnet-bob-1.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/bitcoin-mainnet-botanix.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/bitcoin-mainnet-bsquared-1.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/bitcoin-merlin-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/bittensor-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/bittorrent.chain-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/celo-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/codex-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/coinex.smart.chain-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/conflux-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/core-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/corn-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/cronos-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/cronos-zkevm-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-arbitrum-1-l3x-1.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-arbitrum-1-treasure-1.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-arbitrum-1.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-astar-zkevm-1.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-base-1.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-blast-1.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-hashkey-1.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-immutable-zkevm-1.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-ink-1.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-kroma-1.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-linea-1.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-mantle-1.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-metis-1.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-mode-1.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-optimism-1.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-polygon-zkevm-1.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-scroll-1.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-taiko-1.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-unichain-1.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-worldchain-1.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-xlayer-1.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-zircuit-1.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet-zksync-1.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/ethereum-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/etherlink-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/fantom-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/filecoin-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/fraxtal-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/gnosis.chain-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/hedera-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/hemi-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/hyperliquid-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/janction-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/kaia-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/kava-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/kusama-mainnet-moonriver.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/lens-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/lisk-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/memento-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/metal-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/mind-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/mint-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/monad-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/morph-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/near-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/neonlink-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/neox-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/nexon-mainnet-henesys.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/nexon-mainnet-lith.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/nexon-qa.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/nexon-stage.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/nibiru-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/plasma-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/plume-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/polkadot-mainnet-astar.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/polkadot-mainnet-centrifuge.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/polkadot-mainnet-darwinia.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/polkadot-mainnet-moonbeam.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/polygon-mainnet-katana.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/polygon-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/ronin-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/rootstock-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/sei-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/shibarium-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/soneium-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/sonic-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/superseed-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/tac-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/telos-evm-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/treasure-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/tron-mainnet-evm.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/velas-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/wemix-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/xdc-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/zetachain-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/zklink.nova-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/evm/zora-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/solana/solana-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/sui/sui-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/ton/ton-mainnet.js +1 -1
- package/dist/generated/chain-selectors/mainnet/tron/tron-mainnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/aptos/aptos-localnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/aptos/aptos-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/0g-testnet-galileo.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/0g-testnet-newton.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/abstract-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/anvil-devnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/apechain-testnet-curtis.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/areon-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/avalanche-subnet-dexalot-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/avalanche-testnet-fuji.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/avalanche-testnet-nexon.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/berachain-testnet-artio.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/berachain-testnet-bartio.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/berachain-testnet-bepolia.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/binance.smart.chain-testnet-opbnb-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/binance.smart.chain-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/bitcichain-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/bitcoin-testnet-bitlayer-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/bitcoin-testnet-botanix.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/bitcoin-testnet-bsquared-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/bitcoin-testnet-merlin.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/bitcoin-testnet-rootstock.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/bitcoin-testnet-sepolia-bob-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/bittensor-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/bittorrent.chain-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/celo-testnet-alfajores.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/codex-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/coinex.smart.chain-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/core-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/cronos-testnet-zkevm-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/cronos-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/cronos-zkevm-testnet-sepolia.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/dtcc-testnet-andesite.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-goerli-arbitrum-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-goerli-base-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-goerli-linea-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-goerli-mantle-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-goerli-optimism-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-goerli-polygon-zkevm-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-goerli-zksync-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-holesky-fraxtal-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-holesky-morph-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-holesky-taiko-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-holesky.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-arbitrum-1-l3x-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-arbitrum-1-treasure-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-arbitrum-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-base-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-blast-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-corn-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-hashkey-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-immutable-zkevm-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-kroma-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-lens-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-linea-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-lisk-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-mantle-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-metis-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-mode-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-optimism-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-polygon-validium-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-polygon-zkevm-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-scroll-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-soneium-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-unichain-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-worldchain-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-xlayer-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-zircuit-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-zksync-1.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/etherlink-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/fantom-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/filecoin-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/geth-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/gnosis.chain-testnet-chiado.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/hedera-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/hemi-testnet-sepolia.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/hyperliquid-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ink-testnet-sepolia.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/janction-testnet-sepolia.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/jovay-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/kaia-testnet-kairos.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/kava-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/megaeth-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/memento-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/metal-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/mind-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/mint-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/monad-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/near-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/neonlink-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/neox-testnet-t4.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/nexon-dev.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/nibiru-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ondo-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/pharos-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/plasma-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/plume-devnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/plume-testnet-sepolia.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/plume-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/polkadot-testnet-astar-shibuya.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/polkadot-testnet-centrifuge-altair.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/polkadot-testnet-darwinia-pangoro.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/polkadot-testnet-moonbeam-moonbase.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/polygon-testnet-amoy.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/polygon-testnet-mumbai.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/polygon-testnet-tatara.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/private-testnet-andesite.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/private-testnet-granite.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/private-testnet-mica.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/private-testnet-obsidian.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/private-testnet-opala.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/ronin-testnet-saigon.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/sei-testnet-atlantic.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/shibarium-testnet-puppynet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/sonic-testnet-blaze.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/story-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/superseed-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/tac-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/telos-evm-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/treasure-testnet-topaz.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/tron-devnet-evm.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/tron-testnet-nile-evm.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/tron-testnet-shasta-evm.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/velas-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/wemix-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/xdc-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/zero-g-testnet-galileo.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/zircuit-testnet-garfield.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/zklink.nova-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/evm/zora-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/solana/solana-devnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/solana/solana-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/sui/sui-localnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/sui/sui-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/ton/ton-localnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/ton/ton-testnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/tron/tron-devnet.js +1 -1
- package/dist/generated/chain-selectors/testnet/tron/tron-testnet-nile.js +1 -1
- package/dist/generated/chain-selectors/testnet/tron/tron-testnet-shasta.js +1 -1
- package/dist/generated/networks.d.ts +14 -14
- package/dist/generated/networks.js +495 -495
- package/dist/generated-sdk/capabilities/blockchain/evm/v1alpha/client_sdk_gen.d.ts +37 -22
- package/dist/generated-sdk/capabilities/blockchain/evm/v1alpha/client_sdk_gen.js +158 -62
- package/dist/generated-sdk/capabilities/internal/consensus/v1alpha/consensus_sdk_gen.d.ts +7 -7
- package/dist/generated-sdk/capabilities/internal/consensus/v1alpha/consensus_sdk_gen.js +28 -14
- package/dist/generated-sdk/capabilities/networking/http/v1alpha/client_sdk_gen.d.ts +17 -4
- package/dist/generated-sdk/capabilities/networking/http/v1alpha/client_sdk_gen.js +44 -9
- package/dist/generated-sdk/capabilities/networking/http/v1alpha/http_sdk_gen.d.ts +0 -1
- package/dist/generated-sdk/capabilities/networking/http/v1alpha/http_sdk_gen.js +2 -2
- package/dist/generated-sdk/capabilities/scheduler/cron/v1/cron_sdk_gen.d.ts +0 -1
- package/dist/generated-sdk/capabilities/scheduler/cron/v1/cron_sdk_gen.js +2 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/dist/sdk/cre/index.d.ts +2 -1
- package/dist/sdk/cre/index.js +1 -1
- package/dist/sdk/impl/runtime-impl.d.ts +12 -4
- package/dist/sdk/impl/runtime-impl.js +53 -19
- package/dist/sdk/index.d.ts +1 -0
- package/dist/sdk/index.js +1 -0
- package/dist/sdk/report.d.ts +6 -0
- package/dist/sdk/report.js +14 -0
- package/dist/sdk/runtime.d.ts +11 -2
- package/dist/sdk/utils/capabilities/blockchain/blockchain-helpers.d.ts +50 -0
- package/dist/sdk/utils/capabilities/blockchain/blockchain-helpers.js +48 -0
- package/dist/sdk/utils/capabilities/http/http-helpers.d.ts +112 -0
- package/dist/sdk/utils/capabilities/http/http-helpers.js +44 -0
- package/dist/sdk/utils/chain-selectors/getNetwork.d.ts +2 -2
- package/dist/sdk/utils/chain-selectors/getNetwork.js +56 -15
- package/dist/sdk/utils/chain-selectors/types.d.ts +1 -1
- package/dist/sdk/utils/index.d.ts +3 -0
- package/dist/sdk/utils/index.js +3 -0
- package/dist/sdk/utils/triggers/trigger-interface.d.ts +1 -1
- package/dist/sdk/utils/values/serializer_types.d.ts +1 -1
- package/dist/sdk/wasm/runner.js +1 -1
- package/dist/sdk/wasm/runtime.js +3 -0
- package/dist/sdk/workflow.d.ts +1 -1
- package/dist/workflows/standard_tests/Makefile +19 -0
- package/dist/workflows/standard_tests/capability_calls_are_async/test.ts +39 -0
- package/dist/workflows/standard_tests/config/test.ts +23 -0
- package/dist/workflows/standard_tests/errors/test.ts +24 -0
- package/dist/workflows/standard_tests/logging/test.ts +25 -0
- package/dist/workflows/standard_tests/mode_switch/don_runtime_in_node_mode/test.ts +33 -0
- package/dist/workflows/standard_tests/mode_switch/node_runtime_in_don_mode/test.ts +41 -0
- package/dist/workflows/standard_tests/mode_switch/successful_mode_switch/test.ts +58 -0
- package/dist/workflows/standard_tests/multiple_triggers/test.ts +40 -0
- package/dist/workflows/standard_tests/random/test.ts +64 -0
- package/dist/workflows/standard_tests/secrets/test.ts +30 -0
- package/dist/workflows/standard_tests/secrets_fail_in_node_mode/test.ts +29 -0
- package/package.json +70 -68
- package/scripts/src/cre-setup.ts +9 -0
- package/scripts/src/generate-chain-selectors.ts +23 -16
- package/dist/generated/capabilities/internal/actionandtrigger/v1/action_and_trigger_pb.d.ts +0 -135
- package/dist/generated/capabilities/internal/actionandtrigger/v1/action_and_trigger_pb.js +0 -43
- package/dist/generated/capabilities/internal/basicaction/v1/basic_action_pb.d.ts +0 -77
- package/dist/generated/capabilities/internal/basicaction/v1/basic_action_pb.js +0 -33
- package/dist/generated/capabilities/internal/basictrigger/v1/basic_trigger_pb.d.ts +0 -77
- package/dist/generated/capabilities/internal/basictrigger/v1/basic_trigger_pb.js +0 -29
- package/dist/generated/capabilities/internal/nodeaction/v1/node_action_pb.d.ts +0 -69
- package/dist/generated/capabilities/internal/nodeaction/v1/node_action_pb.js +0 -29
- package/dist/generated-sdk/capabilities/internal/actionandtrigger/v1/basic_sdk_gen.d.ts +0 -43
- package/dist/generated-sdk/capabilities/internal/actionandtrigger/v1/basic_sdk_gen.js +0 -77
- package/dist/generated-sdk/capabilities/internal/basicaction/v1/basicaction_sdk_gen.d.ts +0 -19
- package/dist/generated-sdk/capabilities/internal/basicaction/v1/basicaction_sdk_gen.js +0 -36
- package/dist/generated-sdk/capabilities/internal/basictrigger/v1/basic_sdk_gen.d.ts +0 -39
- package/dist/generated-sdk/capabilities/internal/basictrigger/v1/basic_sdk_gen.js +0 -58
- package/dist/generated-sdk/capabilities/internal/nodeaction/v1/basicaction_sdk_gen.d.ts +0 -19
- package/dist/generated-sdk/capabilities/internal/nodeaction/v1/basicaction_sdk_gen.js +0 -36
- package/dist/sdk/impl/runtime-impl.test.d.ts +0 -1
- package/dist/sdk/impl/runtime-impl.test.js +0 -334
- package/dist/sdk/utils/config/configHandler.test.d.ts +0 -1
- package/dist/sdk/utils/config/configHandler.test.js +0 -193
- package/dist/sdk/utils/values/consensus_aggregators.test.d.ts +0 -1
- package/dist/sdk/utils/values/consensus_aggregators.test.js +0 -172
- package/dist/sdk/utils/values/serializer_types.test.d.ts +0 -1
- package/dist/sdk/utils/values/serializer_types.test.js +0 -104
- package/dist/sdk/utils/values/value.test.d.ts +0 -1
- package/dist/sdk/utils/values/value.test.js +0 -439
- package/dist/sdk/wasm/runner.test.d.ts +0 -1
- package/dist/sdk/wasm/runner.test.js +0 -270
- /package/dist/sdk/utils/{safeJsonStringify.d.ts → safe-json-stringify.d.ts} +0 -0
- /package/dist/sdk/utils/{safeJsonStringify.js → safe-json-stringify.js} +0 -0
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { create, fromJson } from '@bufbuild/protobuf';
|
|
2
2
|
import { AnySchema, anyPack } from '@bufbuild/protobuf/wkt';
|
|
3
3
|
import { ConfigSchema, PayloadSchema, } from '../../../../../generated/capabilities/networking/http/v1alpha/trigger_pb';
|
|
4
|
-
import {} from '../../../../../sdk
|
|
4
|
+
import {} from '../../../../../sdk';
|
|
5
|
+
import { Report } from '../../../../../sdk/report';
|
|
5
6
|
import {} from '../../../../../sdk/utils/triggers/trigger-interface';
|
|
6
7
|
/**
|
|
7
8
|
* HTTP Capability
|
|
@@ -15,7 +16,6 @@ export class HTTPCapability {
|
|
|
15
16
|
static CAPABILITY_ID = 'http-trigger@1.0.0-alpha';
|
|
16
17
|
static CAPABILITY_NAME = 'http-trigger';
|
|
17
18
|
static CAPABILITY_VERSION = '1.0.0-alpha';
|
|
18
|
-
constructor() { }
|
|
19
19
|
trigger(config) {
|
|
20
20
|
const capabilityId = HTTPCapability.CAPABILITY_ID;
|
|
21
21
|
return new HTTPTrigger(config, capabilityId, 'Trigger');
|
|
@@ -13,7 +13,6 @@ export declare class CronCapability {
|
|
|
13
13
|
static readonly CAPABILITY_ID = "cron-trigger@1.0.0";
|
|
14
14
|
static readonly CAPABILITY_NAME = "cron-trigger";
|
|
15
15
|
static readonly CAPABILITY_VERSION = "1.0.0";
|
|
16
|
-
constructor();
|
|
17
16
|
trigger(config: ConfigJson): CronTrigger;
|
|
18
17
|
}
|
|
19
18
|
/**
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { create, fromJson } from '@bufbuild/protobuf';
|
|
2
2
|
import { AnySchema, anyPack } from '@bufbuild/protobuf/wkt';
|
|
3
3
|
import { ConfigSchema, LegacyPayloadSchema, PayloadSchema, } from '../../../../../generated/capabilities/scheduler/cron/v1/trigger_pb';
|
|
4
|
-
import {} from '../../../../../sdk
|
|
4
|
+
import {} from '../../../../../sdk';
|
|
5
|
+
import { Report } from '../../../../../sdk/report';
|
|
5
6
|
import {} from '../../../../../sdk/utils/triggers/trigger-interface';
|
|
6
7
|
/**
|
|
7
8
|
* Cron Capability
|
|
@@ -15,7 +16,6 @@ export class CronCapability {
|
|
|
15
16
|
static CAPABILITY_ID = 'cron-trigger@1.0.0';
|
|
16
17
|
static CAPABILITY_NAME = 'cron-trigger';
|
|
17
18
|
static CAPABILITY_VERSION = '1.0.0';
|
|
18
|
-
constructor() { }
|
|
19
19
|
trigger(config) {
|
|
20
20
|
const capabilityId = CronCapability.CAPABILITY_ID;
|
|
21
21
|
return new CronTrigger(config, capabilityId, 'Trigger');
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
package/dist/sdk/cre/index.d.ts
CHANGED
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
* Public API for the CRE SDK.
|
|
3
3
|
*/
|
|
4
4
|
import { ClientCapability as EVMClient } from '../../generated-sdk/capabilities/blockchain/evm/v1alpha/client_sdk_gen';
|
|
5
|
-
import { ClientCapability as HTTPClient } from '../../generated-sdk/capabilities/networking/http/v1alpha/client_sdk_gen';
|
|
5
|
+
import { ClientCapability as HTTPClient, type SendRequester as HTTPSendRequester } from '../../generated-sdk/capabilities/networking/http/v1alpha/client_sdk_gen';
|
|
6
6
|
import { HTTPCapability } from '../../generated-sdk/capabilities/networking/http/v1alpha/http_sdk_gen';
|
|
7
7
|
import { CronCapability } from '../../generated-sdk/capabilities/scheduler/cron/v1/cron_sdk_gen';
|
|
8
8
|
export type { Log as EVMLog } from '../../generated/capabilities/blockchain/evm/v1alpha/client_pb';
|
|
9
9
|
export type { Payload as HTTPPayload } from '../../generated/capabilities/networking/http/v1alpha/trigger_pb';
|
|
10
10
|
export type { Payload as CronPayload } from '../../generated/capabilities/scheduler/cron/v1/trigger_pb';
|
|
11
11
|
export type { NodeRuntime, Runtime } from '../runtime';
|
|
12
|
+
export type { HTTPSendRequester };
|
|
12
13
|
export declare const cre: {
|
|
13
14
|
capabilities: {
|
|
14
15
|
CronCapability: typeof CronCapability;
|
package/dist/sdk/cre/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Public API for the CRE SDK.
|
|
3
3
|
*/
|
|
4
4
|
import { ClientCapability as EVMClient } from '../../generated-sdk/capabilities/blockchain/evm/v1alpha/client_sdk_gen';
|
|
5
|
-
import { ClientCapability as HTTPClient } from '../../generated-sdk/capabilities/networking/http/v1alpha/client_sdk_gen';
|
|
5
|
+
import { ClientCapability as HTTPClient, } from '../../generated-sdk/capabilities/networking/http/v1alpha/client_sdk_gen';
|
|
6
6
|
import { HTTPCapability } from '../../generated-sdk/capabilities/networking/http/v1alpha/http_sdk_gen';
|
|
7
7
|
import { CronCapability } from '../../generated-sdk/capabilities/scheduler/cron/v1/cron_sdk_gen';
|
|
8
8
|
import { prepareRuntime } from '../utils/prepare-runtime';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type Message } from '@bufbuild/protobuf';
|
|
2
2
|
import { type AwaitCapabilitiesRequest, type AwaitCapabilitiesResponse, type AwaitSecretsRequest, type AwaitSecretsResponse, type CapabilityRequest, type GetSecretsRequest, Mode, type Secret, type SecretRequest, type SecretRequestJson } from '../../generated/sdk/v1alpha/sdk_pb';
|
|
3
|
-
import type { BaseRuntime, CallCapabilityParams, NodeRuntime, Runtime } from '
|
|
3
|
+
import type { BaseRuntime, CallCapabilityParams, NodeRuntime, ReportRequest, ReportRequestJson, Runtime } from '..';
|
|
4
|
+
import type { Report } from '../report';
|
|
4
5
|
import { type ConsensusAggregation, type PrimitiveTypes, type UnwrapOptions } from '../utils';
|
|
5
6
|
export declare class BaseRuntimeImpl<C> implements BaseRuntime<C> {
|
|
6
7
|
config: C;
|
|
@@ -11,10 +12,11 @@ export declare class BaseRuntimeImpl<C> implements BaseRuntime<C> {
|
|
|
11
12
|
modeError?: Error;
|
|
12
13
|
constructor(config: C, nextCallId: number, helpers: RuntimeHelpers, maxResponseSize: bigint, mode: Mode);
|
|
13
14
|
callCapability<I extends Message, O extends Message>({ capabilityId, method, payload, inputSchema, outputSchema, }: CallCapabilityParams<I, O>): {
|
|
14
|
-
result: () =>
|
|
15
|
+
result: () => O;
|
|
15
16
|
};
|
|
16
17
|
getNextCallId(): number;
|
|
17
18
|
now(): Date;
|
|
19
|
+
log(message: string): void;
|
|
18
20
|
}
|
|
19
21
|
export declare class NodeRuntimeImpl<C> extends BaseRuntimeImpl<C> implements NodeRuntime<C> {
|
|
20
22
|
_isNodeRuntime: true;
|
|
@@ -23,9 +25,14 @@ export declare class NodeRuntimeImpl<C> extends BaseRuntimeImpl<C> implements No
|
|
|
23
25
|
export declare class RuntimeImpl<C> extends BaseRuntimeImpl<C> implements Runtime<C> {
|
|
24
26
|
private nextNodeCallId;
|
|
25
27
|
constructor(config: C, nextCallId: number, helpers: RuntimeHelpers, maxResponseSize: bigint);
|
|
26
|
-
runInNodeMode<TArgs extends
|
|
28
|
+
runInNodeMode<TArgs extends unknown[], TOutput>(fn: (nodeRuntime: NodeRuntime<C>, ...args: TArgs) => TOutput, consesusAggretation: ConsensusAggregation<TOutput, true>, unwrapOptions?: TOutput extends PrimitiveTypes ? never : UnwrapOptions<TOutput>): (...args: TArgs) => {
|
|
29
|
+
result: () => TOutput;
|
|
30
|
+
};
|
|
27
31
|
getSecret(request: SecretRequest | SecretRequestJson): {
|
|
28
|
-
result: () =>
|
|
32
|
+
result: () => Secret;
|
|
33
|
+
};
|
|
34
|
+
report(input: ReportRequest | ReportRequestJson): {
|
|
35
|
+
result: () => Report;
|
|
29
36
|
};
|
|
30
37
|
}
|
|
31
38
|
export interface RuntimeHelpers {
|
|
@@ -35,4 +42,5 @@ export interface RuntimeHelpers {
|
|
|
35
42
|
awaitSecrets(request: AwaitSecretsRequest, maxResponseSize: bigint): AwaitSecretsResponse;
|
|
36
43
|
switchModes(mode: Mode): void;
|
|
37
44
|
now(): number;
|
|
45
|
+
log(message: string): void;
|
|
38
46
|
}
|
|
@@ -22,7 +22,11 @@ export class BaseRuntimeImpl {
|
|
|
22
22
|
}
|
|
23
23
|
callCapability({ capabilityId, method, payload, inputSchema, outputSchema, }) {
|
|
24
24
|
if (this.modeError) {
|
|
25
|
-
return {
|
|
25
|
+
return {
|
|
26
|
+
result: () => {
|
|
27
|
+
throw this.modeError;
|
|
28
|
+
},
|
|
29
|
+
};
|
|
26
30
|
}
|
|
27
31
|
// nextCallId tracks the unique id for a request to the WASM host.
|
|
28
32
|
// to avoid collisions of the ID in different modes, it is
|
|
@@ -34,10 +38,12 @@ export class BaseRuntimeImpl {
|
|
|
34
38
|
// - etc...
|
|
35
39
|
const anyPayload = anyPack(inputSchema, payload);
|
|
36
40
|
const callbackId = this.nextCallId;
|
|
37
|
-
if (this.mode
|
|
41
|
+
if (this.mode === Mode.DON) {
|
|
38
42
|
this.nextCallId++;
|
|
39
|
-
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
40
45
|
this.nextCallId--;
|
|
46
|
+
}
|
|
41
47
|
const req = create(CapabilityRequestSchema, {
|
|
42
48
|
id: capabilityId,
|
|
43
49
|
method,
|
|
@@ -47,17 +53,19 @@ export class BaseRuntimeImpl {
|
|
|
47
53
|
if (!this.helpers.call(req)) {
|
|
48
54
|
return {
|
|
49
55
|
result: () => {
|
|
50
|
-
|
|
56
|
+
throw new CapabilityError(`Capability not found ${capabilityId}`, {
|
|
51
57
|
callbackId,
|
|
52
58
|
method,
|
|
53
59
|
capabilityId,
|
|
54
|
-
})
|
|
60
|
+
});
|
|
55
61
|
},
|
|
56
62
|
};
|
|
57
63
|
}
|
|
58
64
|
return {
|
|
59
|
-
result:
|
|
60
|
-
const awaitRequest = create(AwaitCapabilitiesRequestSchema, {
|
|
65
|
+
result: () => {
|
|
66
|
+
const awaitRequest = create(AwaitCapabilitiesRequestSchema, {
|
|
67
|
+
ids: [callbackId],
|
|
68
|
+
});
|
|
61
69
|
const awaitResponse = this.helpers.await(awaitRequest, this.maxResponseSize);
|
|
62
70
|
const capabilityResponse = awaitResponse.responses[callbackId];
|
|
63
71
|
if (!capabilityResponse) {
|
|
@@ -94,6 +102,9 @@ export class BaseRuntimeImpl {
|
|
|
94
102
|
// ns to ms
|
|
95
103
|
return new Date(this.helpers.now() / 1000000);
|
|
96
104
|
}
|
|
105
|
+
log(message) {
|
|
106
|
+
this.helpers.log(message);
|
|
107
|
+
}
|
|
97
108
|
}
|
|
98
109
|
export class NodeRuntimeImpl extends BaseRuntimeImpl {
|
|
99
110
|
_isNodeRuntime = true;
|
|
@@ -109,7 +120,7 @@ export class RuntimeImpl extends BaseRuntimeImpl {
|
|
|
109
120
|
super(config, nextCallId, helpers, maxResponseSize, Mode.DON);
|
|
110
121
|
}
|
|
111
122
|
runInNodeMode(fn, consesusAggretation, unwrapOptions) {
|
|
112
|
-
return
|
|
123
|
+
return (...args) => {
|
|
113
124
|
this.modeError = new DonModeError();
|
|
114
125
|
const nodeRuntime = new NodeRuntimeImpl(this.config, this.nextNodeCallId, this.helpers, this.maxResponseSize);
|
|
115
126
|
const consensusInput = create(SimpleConsensusInputsSchema, {
|
|
@@ -120,7 +131,7 @@ export class RuntimeImpl extends BaseRuntimeImpl {
|
|
|
120
131
|
consensusInput.default = Value.from(consesusAggretation.defaultValue).proto();
|
|
121
132
|
}
|
|
122
133
|
try {
|
|
123
|
-
const observation =
|
|
134
|
+
const observation = fn(nodeRuntime, ...args);
|
|
124
135
|
// This cast is safe, since ConsensusAggregation can only have true its second argument if T extends CreSerializable<TOutput>
|
|
125
136
|
consensusInput.observation = {
|
|
126
137
|
case: 'value',
|
|
@@ -128,7 +139,10 @@ export class RuntimeImpl extends BaseRuntimeImpl {
|
|
|
128
139
|
};
|
|
129
140
|
}
|
|
130
141
|
catch (e) {
|
|
131
|
-
consensusInput.observation = {
|
|
142
|
+
consensusInput.observation = {
|
|
143
|
+
case: 'error',
|
|
144
|
+
value: (e instanceof Error && e.message) || String(e),
|
|
145
|
+
};
|
|
132
146
|
}
|
|
133
147
|
finally {
|
|
134
148
|
// Always restore DON mode before invoking consensus
|
|
@@ -138,16 +152,25 @@ export class RuntimeImpl extends BaseRuntimeImpl {
|
|
|
138
152
|
this.helpers.switchModes(Mode.DON);
|
|
139
153
|
}
|
|
140
154
|
const consensus = new ConsensusCapability();
|
|
141
|
-
const
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
155
|
+
const call = consensus.simple(this, consensusInput);
|
|
156
|
+
return {
|
|
157
|
+
result: () => {
|
|
158
|
+
const result = call.result();
|
|
159
|
+
const wrappedValue = Value.wrap(result);
|
|
160
|
+
return unwrapOptions
|
|
161
|
+
? wrappedValue.unwrapToType(unwrapOptions)
|
|
162
|
+
: wrappedValue.unwrap();
|
|
163
|
+
},
|
|
164
|
+
};
|
|
146
165
|
};
|
|
147
166
|
}
|
|
148
167
|
getSecret(request) {
|
|
149
168
|
if (this.modeError) {
|
|
150
|
-
return {
|
|
169
|
+
return {
|
|
170
|
+
result: () => {
|
|
171
|
+
throw this.modeError;
|
|
172
|
+
},
|
|
173
|
+
};
|
|
151
174
|
}
|
|
152
175
|
const secretRequest = request.$typeName
|
|
153
176
|
? create(SecretRequestSchema, request)
|
|
@@ -160,11 +183,13 @@ export class RuntimeImpl extends BaseRuntimeImpl {
|
|
|
160
183
|
});
|
|
161
184
|
if (!this.helpers.getSecrets(secretsReq, this.maxResponseSize)) {
|
|
162
185
|
return {
|
|
163
|
-
result: () =>
|
|
186
|
+
result: () => {
|
|
187
|
+
throw new SecretsError(secretRequest, 'host is not making the secrets request');
|
|
188
|
+
},
|
|
164
189
|
};
|
|
165
190
|
}
|
|
166
191
|
return {
|
|
167
|
-
result:
|
|
192
|
+
result: () => {
|
|
168
193
|
const awaitRequest = create(AwaitSecretsRequestSchema, { ids: [id] });
|
|
169
194
|
const awaitResponse = this.helpers.awaitSecrets(awaitRequest, this.maxResponseSize);
|
|
170
195
|
const secretsResponse = awaitResponse.responses[id];
|
|
@@ -172,7 +197,7 @@ export class RuntimeImpl extends BaseRuntimeImpl {
|
|
|
172
197
|
throw new SecretsError(secretRequest, 'no response');
|
|
173
198
|
}
|
|
174
199
|
const responses = secretsResponse.responses;
|
|
175
|
-
if (responses.length
|
|
200
|
+
if (responses.length !== 1) {
|
|
176
201
|
throw new SecretsError(secretRequest, 'invalid value returned from host');
|
|
177
202
|
}
|
|
178
203
|
const response = responses[0].response;
|
|
@@ -187,4 +212,13 @@ export class RuntimeImpl extends BaseRuntimeImpl {
|
|
|
187
212
|
},
|
|
188
213
|
};
|
|
189
214
|
}
|
|
215
|
+
report(input) {
|
|
216
|
+
const consensus = new ConsensusCapability();
|
|
217
|
+
const call = consensus.report(this, input);
|
|
218
|
+
return {
|
|
219
|
+
result: () => {
|
|
220
|
+
return call.result();
|
|
221
|
+
},
|
|
222
|
+
};
|
|
223
|
+
}
|
|
190
224
|
}
|
package/dist/sdk/index.d.ts
CHANGED
package/dist/sdk/index.js
CHANGED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { fromJson } from '@bufbuild/protobuf';
|
|
2
|
+
import { ReportResponseSchema, } from '../generated/sdk/v1alpha/sdk_pb';
|
|
3
|
+
export class Report {
|
|
4
|
+
report;
|
|
5
|
+
constructor(report) {
|
|
6
|
+
this.report = report.$typeName
|
|
7
|
+
? report
|
|
8
|
+
: fromJson(ReportResponseSchema, report);
|
|
9
|
+
}
|
|
10
|
+
// x_generatedCodeOnly_unwrap is meant to be used by the code generator only.
|
|
11
|
+
x_generatedCodeOnly_unwrap() {
|
|
12
|
+
return this.report;
|
|
13
|
+
}
|
|
14
|
+
}
|
package/dist/sdk/runtime.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { Message } from '@bufbuild/protobuf';
|
|
2
2
|
import type { GenMessage } from '@bufbuild/protobuf/codegenv2';
|
|
3
|
+
import type { ReportRequest, ReportRequestJson } from '../generated/sdk/v1alpha/sdk_pb';
|
|
3
4
|
import type { ConsensusAggregation, PrimitiveTypes, UnwrapOptions } from './utils';
|
|
4
5
|
import type { SecretsProvider } from '.';
|
|
6
|
+
export type { ReportRequest, ReportRequestJson };
|
|
5
7
|
export type CallCapabilityParams<I extends Message, O extends Message> = {
|
|
6
8
|
capabilityId: string;
|
|
7
9
|
method: string;
|
|
@@ -9,15 +11,22 @@ export type CallCapabilityParams<I extends Message, O extends Message> = {
|
|
|
9
11
|
inputSchema: GenMessage<I>;
|
|
10
12
|
outputSchema: GenMessage<O>;
|
|
11
13
|
};
|
|
14
|
+
import type { Report } from './report';
|
|
12
15
|
export type BaseRuntime<C> = {
|
|
13
16
|
config: C;
|
|
14
17
|
callCapability<I extends Message, O extends Message>(params: CallCapabilityParams<I, O>): {
|
|
15
|
-
result: () =>
|
|
18
|
+
result: () => O;
|
|
16
19
|
};
|
|
17
20
|
now(): Date;
|
|
21
|
+
log(message: string): void;
|
|
18
22
|
};
|
|
19
23
|
export type Runtime<C> = BaseRuntime<C> & SecretsProvider & {
|
|
20
|
-
runInNodeMode<TArgs extends
|
|
24
|
+
runInNodeMode<TArgs extends unknown[], TOutput>(fn: (nodeRuntime: NodeRuntime<C>, ...args: TArgs) => TOutput, consensusAggregation: ConsensusAggregation<TOutput, true>, unwrapOptions?: TOutput extends PrimitiveTypes ? never : UnwrapOptions<TOutput>): (...args: TArgs) => {
|
|
25
|
+
result: () => TOutput;
|
|
26
|
+
};
|
|
27
|
+
report(input: ReportRequest | ReportRequestJson): {
|
|
28
|
+
result: () => Report;
|
|
29
|
+
};
|
|
21
30
|
};
|
|
22
31
|
export type NodeRuntime<C> = BaseRuntime<C> & {
|
|
23
32
|
readonly _isNodeRuntime: true;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { CallMsgJson } from '../../../../generated/capabilities/blockchain/evm/v1alpha/client_pb';
|
|
2
|
+
import type { Address, Hex } from 'viem';
|
|
3
|
+
/**
|
|
4
|
+
* EVM Capability Helper.
|
|
5
|
+
*
|
|
6
|
+
* `CallContractRequest`, used by EVM capability, has arguments for reading a contract as specified in the call message at a block height defined by blockNumber.
|
|
7
|
+
* That blockNumber can be:
|
|
8
|
+
* - the latest mined block (`LATEST_BLOCK_NUMBER`) (default)
|
|
9
|
+
* - the last finalized block (`LAST_FINALIZED_BLOCK_NUMBER`)
|
|
10
|
+
*
|
|
11
|
+
* Using this constant will indicate that the call should be executed at the last finalized block.
|
|
12
|
+
*/
|
|
13
|
+
export declare const LAST_FINALIZED_BLOCK_NUMBER: {
|
|
14
|
+
absVal: string;
|
|
15
|
+
sign: string;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* EVM Capability Helper.
|
|
19
|
+
*
|
|
20
|
+
* `CallContractRequest`, used by EVM capability, has arguments for reading a contract as specified in the call message at a block height defined by blockNumber.
|
|
21
|
+
* That blockNumber can be:
|
|
22
|
+
* - the latest mined block (`LATEST_BLOCK_NUMBER`) (default)
|
|
23
|
+
* - the last finalized block (`LAST_FINALIZED_BLOCK_NUMBER`)
|
|
24
|
+
*
|
|
25
|
+
* Using this constant will indicate that the call should be executed at the latest mined block.
|
|
26
|
+
*/
|
|
27
|
+
export declare const LATEST_BLOCK_NUMBER: {
|
|
28
|
+
absVal: string;
|
|
29
|
+
sign: string;
|
|
30
|
+
};
|
|
31
|
+
export interface EncodeCallMsgPayload {
|
|
32
|
+
from: Address;
|
|
33
|
+
to: Address;
|
|
34
|
+
data: Hex;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Encodes a call message payload into a `CallMsgJson` protobuf structure, expected by the EVM capability.
|
|
38
|
+
*
|
|
39
|
+
* When creating a `CallContractRequest` 3 parameters are required:
|
|
40
|
+
*
|
|
41
|
+
* - `from` - The sender address.
|
|
42
|
+
* - `to` - The contract address.
|
|
43
|
+
* - `data` - The data to call the contract with.
|
|
44
|
+
*
|
|
45
|
+
* This helper wraps that data and packs into format acceptable by the EVM capability.
|
|
46
|
+
*
|
|
47
|
+
* @param payload - The call message payload to encode.
|
|
48
|
+
* @returns The encoded call message payload.
|
|
49
|
+
*/
|
|
50
|
+
export declare const encodeCallMsg: (payload: EncodeCallMsgPayload) => CallMsgJson;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { hexToBase64 } from '../../hex-utils';
|
|
2
|
+
/**
|
|
3
|
+
* EVM Capability Helper.
|
|
4
|
+
*
|
|
5
|
+
* `CallContractRequest`, used by EVM capability, has arguments for reading a contract as specified in the call message at a block height defined by blockNumber.
|
|
6
|
+
* That blockNumber can be:
|
|
7
|
+
* - the latest mined block (`LATEST_BLOCK_NUMBER`) (default)
|
|
8
|
+
* - the last finalized block (`LAST_FINALIZED_BLOCK_NUMBER`)
|
|
9
|
+
*
|
|
10
|
+
* Using this constant will indicate that the call should be executed at the last finalized block.
|
|
11
|
+
*/
|
|
12
|
+
export const LAST_FINALIZED_BLOCK_NUMBER = {
|
|
13
|
+
absVal: Buffer.from([3]).toString('base64'), // 3 for finalized block
|
|
14
|
+
sign: '-1',
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* EVM Capability Helper.
|
|
18
|
+
*
|
|
19
|
+
* `CallContractRequest`, used by EVM capability, has arguments for reading a contract as specified in the call message at a block height defined by blockNumber.
|
|
20
|
+
* That blockNumber can be:
|
|
21
|
+
* - the latest mined block (`LATEST_BLOCK_NUMBER`) (default)
|
|
22
|
+
* - the last finalized block (`LAST_FINALIZED_BLOCK_NUMBER`)
|
|
23
|
+
*
|
|
24
|
+
* Using this constant will indicate that the call should be executed at the latest mined block.
|
|
25
|
+
*/
|
|
26
|
+
export const LATEST_BLOCK_NUMBER = {
|
|
27
|
+
absVal: Buffer.from([2]).toString('base64'), // 2 for the latest block
|
|
28
|
+
sign: '-1',
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Encodes a call message payload into a `CallMsgJson` protobuf structure, expected by the EVM capability.
|
|
32
|
+
*
|
|
33
|
+
* When creating a `CallContractRequest` 3 parameters are required:
|
|
34
|
+
*
|
|
35
|
+
* - `from` - The sender address.
|
|
36
|
+
* - `to` - The contract address.
|
|
37
|
+
* - `data` - The data to call the contract with.
|
|
38
|
+
*
|
|
39
|
+
* This helper wraps that data and packs into format acceptable by the EVM capability.
|
|
40
|
+
*
|
|
41
|
+
* @param payload - The call message payload to encode.
|
|
42
|
+
* @returns The encoded call message payload.
|
|
43
|
+
*/
|
|
44
|
+
export const encodeCallMsg = (payload) => ({
|
|
45
|
+
from: hexToBase64(payload.from),
|
|
46
|
+
to: hexToBase64(payload.to),
|
|
47
|
+
data: hexToBase64(payload.data),
|
|
48
|
+
});
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import type { Response } from '../../../../generated/capabilities/networking/http/v1alpha/client_pb';
|
|
2
|
+
/**
|
|
3
|
+
* HTTP Response Helper Functions
|
|
4
|
+
*
|
|
5
|
+
* These utility functions provide a convenient way to work with HTTP Response objects,
|
|
6
|
+
* mimicking the native Response API methods like .json(), .text(), and .arrayBuffer().
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { text, json, ok, getHeader } from './http-helpers'
|
|
11
|
+
*
|
|
12
|
+
* // Direct usage with Response object
|
|
13
|
+
* const response = sendRequester.sendRequest({ url: 'https://api.example.com/data' }).result()
|
|
14
|
+
*
|
|
15
|
+
* // Check if response is successful
|
|
16
|
+
* if (!ok(response)) {
|
|
17
|
+
* throw new Error(`Request failed with status: ${response.statusCode}`)
|
|
18
|
+
* }
|
|
19
|
+
*
|
|
20
|
+
* // Get response as text (automatically trimmed)
|
|
21
|
+
* const responseText = text(response)
|
|
22
|
+
*
|
|
23
|
+
* // Parse JSON response
|
|
24
|
+
* const data = json(response)
|
|
25
|
+
*
|
|
26
|
+
* // Get specific header
|
|
27
|
+
* const contentType = getHeader(response, 'content-type')
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* // Function overload usage
|
|
33
|
+
* const responseFn = sendRequester.sendRequest({ url: 'https://api.example.com/data' })
|
|
34
|
+
*
|
|
35
|
+
* // Check if response is successful
|
|
36
|
+
* if (!ok(() => ({ result: responseFn.result() })).result()) {
|
|
37
|
+
* const response = responseFn.result()
|
|
38
|
+
* throw new Error(`Request failed with status: ${response.statusCode}`)
|
|
39
|
+
* }
|
|
40
|
+
*
|
|
41
|
+
* // Get response as text (automatically trimmed)
|
|
42
|
+
* const responseText = text(() => ({ result: responseFn.result() })).result()
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
/**
|
|
46
|
+
* Returns the response body as a UTF-8 string, automatically trimmed
|
|
47
|
+
* @param response - The Response object
|
|
48
|
+
* @returns The body as a trimmed string
|
|
49
|
+
*/
|
|
50
|
+
export declare function text(response: Response): string;
|
|
51
|
+
/**
|
|
52
|
+
* Returns the response body as a UTF-8 string, automatically trimmed
|
|
53
|
+
* @param responseFn - Function that returns an object with result function that returns Response
|
|
54
|
+
* @returns Object with result function that returns the body as a trimmed string
|
|
55
|
+
*/
|
|
56
|
+
export declare function text(responseFn: () => {
|
|
57
|
+
result: Response;
|
|
58
|
+
}): {
|
|
59
|
+
result: () => string;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Parses the response body as JSON
|
|
63
|
+
* @param response - The Response object
|
|
64
|
+
* @returns The parsed JSON
|
|
65
|
+
* @throws Error if the body is not valid JSON
|
|
66
|
+
*/
|
|
67
|
+
export declare function json(response: Response): unknown;
|
|
68
|
+
/**
|
|
69
|
+
* Parses the response body as JSON
|
|
70
|
+
* @param responseFn - Function that returns an object with result function that returns Response
|
|
71
|
+
* @returns Object with result function that returns the parsed JSON
|
|
72
|
+
* @throws Error if the body is not valid JSON
|
|
73
|
+
*/
|
|
74
|
+
export declare function json(responseFn: () => {
|
|
75
|
+
result: Response;
|
|
76
|
+
}): {
|
|
77
|
+
result: () => unknown;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Gets a specific header value
|
|
81
|
+
* @param response - The Response object
|
|
82
|
+
* @param name - The header name (case-insensitive)
|
|
83
|
+
* @returns The header value or undefined if not found
|
|
84
|
+
*/
|
|
85
|
+
export declare function getHeader(response: Response, name: string): string | undefined;
|
|
86
|
+
/**
|
|
87
|
+
* Gets a specific header value
|
|
88
|
+
* @param responseFn - Function that returns an object with result function that returns Response
|
|
89
|
+
* @param name - The header name (case-insensitive)
|
|
90
|
+
* @returns Object with result function that returns the header value or undefined if not found
|
|
91
|
+
*/
|
|
92
|
+
export declare function getHeader(responseFn: () => {
|
|
93
|
+
result: Response;
|
|
94
|
+
}, name: string): {
|
|
95
|
+
result: () => string | undefined;
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Checks if the response status indicates success (200-299)
|
|
99
|
+
* @param response - The Response object
|
|
100
|
+
* @returns True if the status code is in the 200-299 range
|
|
101
|
+
*/
|
|
102
|
+
export declare function ok(response: Response): boolean;
|
|
103
|
+
/**
|
|
104
|
+
* Checks if the response status indicates success (200-299)
|
|
105
|
+
* @param responseFn - Function that returns an object with result function that returns Response
|
|
106
|
+
* @returns Object with result function that returns true if the status code is in the 200-299 range
|
|
107
|
+
*/
|
|
108
|
+
export declare function ok(responseFn: () => {
|
|
109
|
+
result: Response;
|
|
110
|
+
}): {
|
|
111
|
+
result: () => boolean;
|
|
112
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export function text(responseOrFn) {
|
|
2
|
+
if (typeof responseOrFn === 'function') {
|
|
3
|
+
return {
|
|
4
|
+
result: () => text(responseOrFn().result),
|
|
5
|
+
};
|
|
6
|
+
}
|
|
7
|
+
else {
|
|
8
|
+
const decoder = new TextDecoder('utf-8');
|
|
9
|
+
return decoder.decode(responseOrFn.body).trim();
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export function json(responseOrFn) {
|
|
13
|
+
if (typeof responseOrFn === 'function') {
|
|
14
|
+
return {
|
|
15
|
+
result: () => json(responseOrFn().result),
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
const decoder = new TextDecoder('utf-8');
|
|
20
|
+
const textBody = decoder.decode(responseOrFn.body);
|
|
21
|
+
return JSON.parse(textBody);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export function getHeader(responseOrFn, name) {
|
|
25
|
+
if (typeof responseOrFn === 'function') {
|
|
26
|
+
return {
|
|
27
|
+
result: () => getHeader(responseOrFn().result, name),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
const lowerName = name.toLowerCase();
|
|
32
|
+
return Object.entries(responseOrFn.headers).find(([key]) => key.toLowerCase() === lowerName)?.[1];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export function ok(responseOrFn) {
|
|
36
|
+
if (typeof responseOrFn === 'function') {
|
|
37
|
+
return {
|
|
38
|
+
result: () => ok(responseOrFn().result),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
return responseOrFn.statusCode >= 200 && responseOrFn.statusCode < 300;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { ChainFamily, NetworkInfo } from './types';
|
|
2
2
|
interface GetNetworkOptions {
|
|
3
|
-
chainSelector?:
|
|
3
|
+
chainSelector?: bigint;
|
|
4
4
|
chainSelectorName?: string;
|
|
5
|
-
isTestnet?: boolean;
|
|
5
|
+
isTestnet?: boolean | undefined;
|
|
6
6
|
chainFamily?: ChainFamily;
|
|
7
7
|
}
|
|
8
8
|
/**
|