@wagmi/core 1.4.1 → 2.0.0-alpha.1
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/README.md +4 -21
- package/actions/package.json +5 -0
- package/chains/package.json +3 -2
- package/dist/esm/actions/connect.js +53 -0
- package/dist/esm/actions/connect.js.map +1 -0
- package/dist/esm/actions/disconnect.js +49 -0
- package/dist/esm/actions/disconnect.js.map +1 -0
- package/dist/esm/actions/estimateFeesPerGas.js +24 -0
- package/dist/esm/actions/estimateFeesPerGas.js.map +1 -0
- package/dist/esm/actions/estimateGas.js +25 -0
- package/dist/esm/actions/estimateGas.js.map +1 -0
- package/dist/esm/actions/getAccount.js +61 -0
- package/dist/esm/actions/getAccount.js.map +1 -0
- package/dist/esm/actions/getBalance.js +83 -0
- package/dist/esm/actions/getBalance.js.map +1 -0
- package/dist/esm/actions/getBlock.js +9 -0
- package/dist/esm/actions/getBlock.js.map +1 -0
- package/dist/esm/actions/getBlockNumber.js +9 -0
- package/dist/esm/actions/getBlockNumber.js.map +1 -0
- package/dist/esm/actions/getChainId.js +5 -0
- package/dist/esm/actions/getChainId.js.map +1 -0
- package/dist/esm/actions/getClient.js +5 -0
- package/dist/esm/actions/getClient.js.map +1 -0
- package/dist/esm/actions/getConnections.js +13 -0
- package/dist/esm/actions/getConnections.js.map +1 -0
- package/dist/esm/actions/getConnectorClient.js +42 -0
- package/dist/esm/actions/getConnectorClient.js.map +1 -0
- package/dist/esm/actions/getEnsAddress.js +9 -0
- package/dist/esm/actions/getEnsAddress.js.map +1 -0
- package/dist/esm/actions/getEnsAvatar.js +9 -0
- package/dist/esm/actions/getEnsAvatar.js.map +1 -0
- package/dist/esm/actions/getEnsName.js +9 -0
- package/dist/esm/actions/getEnsName.js.map +1 -0
- package/dist/esm/actions/getEnsResolver.js +9 -0
- package/dist/esm/actions/getEnsResolver.js.map +1 -0
- package/dist/esm/actions/getPublicClient.js +6 -0
- package/dist/esm/actions/getPublicClient.js.map +1 -0
- package/dist/esm/actions/getToken.js +101 -0
- package/dist/esm/actions/getToken.js.map +1 -0
- package/dist/esm/actions/getTransaction.js +10 -0
- package/dist/esm/actions/getTransaction.js.map +1 -0
- package/dist/esm/actions/getWalletClient.js +7 -0
- package/dist/esm/actions/getWalletClient.js.map +1 -0
- package/dist/esm/actions/multicall.js +11 -0
- package/dist/esm/actions/multicall.js.map +1 -0
- package/dist/esm/actions/readContract.js +10 -0
- package/dist/esm/actions/readContract.js.map +1 -0
- package/dist/esm/actions/readContracts.js +46 -0
- package/dist/esm/actions/readContracts.js.map +1 -0
- package/dist/esm/actions/reconnect.js +78 -0
- package/dist/esm/actions/reconnect.js.map +1 -0
- package/dist/esm/actions/sendTransaction.js +22 -0
- package/dist/esm/actions/sendTransaction.js.map +1 -0
- package/dist/esm/actions/signMessage.js +10 -0
- package/dist/esm/actions/signMessage.js.map +1 -0
- package/dist/esm/actions/signTypedData.js +10 -0
- package/dist/esm/actions/signTypedData.js.map +1 -0
- package/dist/esm/actions/simulateContract.js +33 -0
- package/dist/esm/actions/simulateContract.js.map +1 -0
- package/dist/esm/actions/switchAccount.js +19 -0
- package/dist/esm/actions/switchAccount.js.map +1 -0
- package/dist/esm/actions/switchChain.js +23 -0
- package/dist/esm/actions/switchChain.js.map +1 -0
- package/dist/esm/actions/waitForTransactionReceipt.js +23 -0
- package/dist/esm/actions/waitForTransactionReceipt.js.map +1 -0
- package/dist/esm/actions/watchAccount.js +18 -0
- package/dist/esm/actions/watchAccount.js.map +1 -0
- package/dist/esm/actions/watchBlockNumber.js +28 -0
- package/dist/esm/actions/watchBlockNumber.js.map +1 -0
- package/dist/esm/actions/watchBlocks.js +28 -0
- package/dist/esm/actions/watchBlocks.js.map +1 -0
- package/dist/esm/actions/watchChainId.js +6 -0
- package/dist/esm/actions/watchChainId.js.map +1 -0
- package/dist/esm/actions/watchClient.js +11 -0
- package/dist/esm/actions/watchClient.js.map +1 -0
- package/dist/esm/actions/watchConnections.js +10 -0
- package/dist/esm/actions/watchConnections.js.map +1 -0
- package/dist/esm/actions/watchContractEvent.js +27 -0
- package/dist/esm/actions/watchContractEvent.js.map +1 -0
- package/dist/esm/actions/watchPendingTransactions.js +27 -0
- package/dist/esm/actions/watchPendingTransactions.js.map +1 -0
- package/dist/esm/actions/watchPublicClient.js +11 -0
- package/dist/esm/actions/watchPublicClient.js.map +1 -0
- package/dist/esm/actions/writeContract.js +31 -0
- package/dist/esm/actions/writeContract.js.map +1 -0
- package/dist/esm/createConfig.js +218 -0
- package/dist/esm/createConfig.js.map +1 -0
- package/dist/esm/createConnector.js +8 -0
- package/dist/esm/createConnector.js.map +1 -0
- package/dist/esm/createEmitter.js +39 -0
- package/dist/esm/createEmitter.js.map +1 -0
- package/dist/esm/createStorage.js +37 -0
- package/dist/esm/createStorage.js.map +1 -0
- package/dist/esm/errors/base.js +86 -0
- package/dist/esm/errors/base.js.map +1 -0
- package/dist/esm/errors/config.js +70 -0
- package/dist/esm/errors/config.js.map +1 -0
- package/dist/esm/errors/connector.js +24 -0
- package/dist/esm/errors/connector.js.map +1 -0
- package/dist/esm/exports/actions.js +42 -0
- package/dist/esm/exports/actions.js.map +1 -0
- package/dist/esm/exports/chains.js +4 -0
- package/dist/esm/exports/chains.js.map +1 -0
- package/dist/esm/exports/index.js +73 -0
- package/dist/esm/exports/index.js.map +1 -0
- package/dist/esm/exports/internal.js +11 -0
- package/dist/esm/exports/internal.js.map +1 -0
- package/dist/esm/exports/query.js +30 -0
- package/dist/esm/exports/query.js.map +1 -0
- package/dist/esm/query/connect.js +11 -0
- package/dist/esm/query/connect.js.map +1 -0
- package/dist/esm/query/disconnect.js +10 -0
- package/dist/esm/query/disconnect.js.map +1 -0
- package/dist/esm/query/estimateFeesPerGas.js +16 -0
- package/dist/esm/query/estimateFeesPerGas.js.map +1 -0
- package/dist/esm/query/estimateGas.js +20 -0
- package/dist/esm/query/estimateGas.js.map +1 -0
- package/dist/esm/query/getBalance.js +21 -0
- package/dist/esm/query/getBalance.js.map +1 -0
- package/dist/esm/query/getBlock.js +17 -0
- package/dist/esm/query/getBlock.js.map +1 -0
- package/dist/esm/query/getBlockNumber.js +18 -0
- package/dist/esm/query/getBlockNumber.js.map +1 -0
- package/dist/esm/query/getConnectorClient.js +25 -0
- package/dist/esm/query/getConnectorClient.js.map +1 -0
- package/dist/esm/query/getEnsAddress.js +18 -0
- package/dist/esm/query/getEnsAddress.js.map +1 -0
- package/dist/esm/query/getEnsAvatar.js +18 -0
- package/dist/esm/query/getEnsAvatar.js.map +1 -0
- package/dist/esm/query/getEnsName.js +18 -0
- package/dist/esm/query/getEnsName.js.map +1 -0
- package/dist/esm/query/getEnsResolver.js +18 -0
- package/dist/esm/query/getEnsResolver.js.map +1 -0
- package/dist/esm/query/getToken.js +18 -0
- package/dist/esm/query/getToken.js.map +1 -0
- package/dist/esm/query/getTransaction.js +20 -0
- package/dist/esm/query/getTransaction.js.map +1 -0
- package/dist/esm/query/getWalletClient.js +22 -0
- package/dist/esm/query/getWalletClient.js.map +1 -0
- package/dist/esm/query/readContract.js +32 -0
- package/dist/esm/query/readContract.js.map +1 -0
- package/dist/esm/query/readContracts.js +36 -0
- package/dist/esm/query/readContracts.js.map +1 -0
- package/dist/esm/query/reconnect.js +10 -0
- package/dist/esm/query/reconnect.js.map +1 -0
- package/dist/esm/query/sendTransaction.js +11 -0
- package/dist/esm/query/sendTransaction.js.map +1 -0
- package/dist/esm/query/signMessage.js +13 -0
- package/dist/esm/query/signMessage.js.map +1 -0
- package/dist/esm/query/signTypedData.js +11 -0
- package/dist/esm/query/signTypedData.js.map +1 -0
- package/dist/esm/query/simulateContract.js +25 -0
- package/dist/esm/query/simulateContract.js.map +1 -0
- package/dist/esm/query/switchAccount.js +11 -0
- package/dist/esm/query/switchAccount.js.map +1 -0
- package/dist/esm/query/switchChain.js +11 -0
- package/dist/esm/query/switchChain.js.map +1 -0
- package/dist/esm/query/types.js +2 -0
- package/dist/esm/query/types.js.map +1 -0
- package/dist/esm/query/utils.js +45 -0
- package/dist/esm/query/utils.js.map +1 -0
- package/dist/esm/query/waitForTransactionReceipt.js +23 -0
- package/dist/esm/query/waitForTransactionReceipt.js.map +1 -0
- package/dist/esm/query/writeContract.js +11 -0
- package/dist/esm/query/writeContract.js.map +1 -0
- package/dist/esm/tsconfig.build.tsbuildinfo +1 -0
- package/dist/esm/types/chain.js +2 -0
- package/dist/esm/types/chain.js.map +1 -0
- package/dist/esm/types/properties.js +2 -0
- package/dist/esm/types/properties.js.map +1 -0
- package/dist/esm/types/register.js +2 -0
- package/dist/esm/types/register.js.map +1 -0
- package/dist/esm/types/unit.js +2 -0
- package/dist/esm/types/unit.js.map +1 -0
- package/dist/esm/types/utils.js +2 -0
- package/dist/esm/types/utils.js.map +1 -0
- package/dist/esm/utils/assertActiveChain.js +14 -0
- package/dist/esm/utils/assertActiveChain.js.map +1 -0
- package/dist/esm/utils/deepEqual.js +41 -0
- package/dist/esm/utils/deepEqual.js.map +1 -0
- package/dist/esm/utils/deserialize.js +11 -0
- package/dist/esm/utils/deserialize.js.map +1 -0
- package/dist/esm/utils/getUnit.js +10 -0
- package/dist/esm/utils/getUnit.js.map +1 -0
- package/dist/esm/utils/getVersion.js +3 -0
- package/dist/esm/utils/getVersion.js.map +1 -0
- package/dist/esm/utils/normalizeChainId.js +10 -0
- package/dist/esm/utils/normalizeChainId.js.map +1 -0
- package/dist/esm/utils/serialize.js +87 -0
- package/dist/esm/utils/serialize.js.map +1 -0
- package/dist/esm/utils/uid.js +14 -0
- package/dist/esm/utils/uid.js.map +1 -0
- package/dist/esm/version.js +2 -0
- package/dist/esm/version.js.map +1 -0
- package/dist/types/actions/connect.d.ts +19 -0
- package/dist/types/actions/connect.d.ts.map +1 -0
- package/dist/types/actions/disconnect.d.ts +9 -0
- package/dist/types/actions/disconnect.d.ts.map +1 -0
- package/dist/types/actions/estimateFeesPerGas.d.ts +16 -0
- package/dist/types/actions/estimateFeesPerGas.d.ts.map +1 -0
- package/dist/types/actions/estimateGas.d.ts +14 -0
- package/dist/types/actions/estimateGas.d.ts.map +1 -0
- package/dist/types/actions/getAccount.d.ts +46 -0
- package/dist/types/actions/getAccount.d.ts.map +1 -0
- package/dist/types/actions/getBalance.d.ts +21 -0
- package/dist/types/actions/getBalance.d.ts.map +1 -0
- package/dist/types/actions/getBlock.d.ts +14 -0
- package/dist/types/actions/getBlock.d.ts.map +1 -0
- package/dist/types/actions/getBlockNumber.d.ts +10 -0
- package/dist/types/actions/getBlockNumber.d.ts.map +1 -0
- package/dist/types/actions/getChainId.d.ts +5 -0
- package/dist/types/actions/getChainId.d.ts.map +1 -0
- package/dist/types/actions/getClient.d.ts +10 -0
- package/dist/types/actions/getClient.d.ts.map +1 -0
- package/dist/types/actions/getConnections.d.ts +6 -0
- package/dist/types/actions/getConnections.d.ts.map +1 -0
- package/dist/types/actions/getConnectorClient.d.ts +15 -0
- package/dist/types/actions/getConnectorClient.d.ts.map +1 -0
- package/dist/types/actions/getEnsAddress.d.ts +10 -0
- package/dist/types/actions/getEnsAddress.d.ts.map +1 -0
- package/dist/types/actions/getEnsAvatar.d.ts +10 -0
- package/dist/types/actions/getEnsAvatar.d.ts.map +1 -0
- package/dist/types/actions/getEnsName.d.ts +10 -0
- package/dist/types/actions/getEnsName.d.ts.map +1 -0
- package/dist/types/actions/getEnsResolver.d.ts +10 -0
- package/dist/types/actions/getEnsResolver.d.ts.map +1 -0
- package/dist/types/actions/getPublicClient.d.ts +10 -0
- package/dist/types/actions/getPublicClient.d.ts.map +1 -0
- package/dist/types/actions/getToken.d.ts +22 -0
- package/dist/types/actions/getToken.d.ts.map +1 -0
- package/dist/types/actions/getTransaction.d.ts +14 -0
- package/dist/types/actions/getTransaction.d.ts.map +1 -0
- package/dist/types/actions/getWalletClient.d.ts +11 -0
- package/dist/types/actions/getWalletClient.d.ts.map +1 -0
- package/dist/types/actions/multicall.d.ts +7 -0
- package/dist/types/actions/multicall.d.ts.map +1 -0
- package/dist/types/actions/readContract.d.ts +11 -0
- package/dist/types/actions/readContract.d.ts.map +1 -0
- package/dist/types/actions/readContracts.d.ts +10 -0
- package/dist/types/actions/readContracts.d.ts.map +1 -0
- package/dist/types/actions/reconnect.d.ts +12 -0
- package/dist/types/actions/reconnect.d.ts.map +1 -0
- package/dist/types/actions/sendTransaction.d.ts +15 -0
- package/dist/types/actions/sendTransaction.d.ts.map +1 -0
- package/dist/types/actions/signMessage.d.ts +11 -0
- package/dist/types/actions/signMessage.d.ts.map +1 -0
- package/dist/types/actions/signTypedData.d.ts +10 -0
- package/dist/types/actions/signTypedData.d.ts.map +1 -0
- package/dist/types/actions/simulateContract.d.ts +21 -0
- package/dist/types/actions/simulateContract.d.ts.map +1 -0
- package/dist/types/actions/switchAccount.d.ts +14 -0
- package/dist/types/actions/switchAccount.d.ts.map +1 -0
- package/dist/types/actions/switchChain.d.ts +16 -0
- package/dist/types/actions/switchChain.d.ts.map +1 -0
- package/dist/types/actions/waitForTransactionReceipt.d.ts +12 -0
- package/dist/types/actions/waitForTransactionReceipt.d.ts.map +1 -0
- package/dist/types/actions/watchAccount.d.ts +9 -0
- package/dist/types/actions/watchAccount.d.ts.map +1 -0
- package/dist/types/actions/watchBlockNumber.d.ts +13 -0
- package/dist/types/actions/watchBlockNumber.d.ts.map +1 -0
- package/dist/types/actions/watchBlocks.d.ts +13 -0
- package/dist/types/actions/watchBlocks.d.ts.map +1 -0
- package/dist/types/actions/watchChainId.d.ts +9 -0
- package/dist/types/actions/watchChainId.d.ts.map +1 -0
- package/dist/types/actions/watchClient.d.ts +9 -0
- package/dist/types/actions/watchClient.d.ts.map +1 -0
- package/dist/types/actions/watchConnections.d.ts +9 -0
- package/dist/types/actions/watchConnections.d.ts.map +1 -0
- package/dist/types/actions/watchContractEvent.d.ts +13 -0
- package/dist/types/actions/watchContractEvent.d.ts.map +1 -0
- package/dist/types/actions/watchPendingTransactions.d.ts +13 -0
- package/dist/types/actions/watchPendingTransactions.d.ts.map +1 -0
- package/dist/types/actions/watchPublicClient.d.ts +9 -0
- package/dist/types/actions/watchPublicClient.d.ts.map +1 -0
- package/dist/types/actions/writeContract.d.ts +15 -0
- package/dist/types/actions/writeContract.d.ts.map +1 -0
- package/dist/types/createConfig.d.ts +72 -0
- package/dist/types/createConfig.d.ts.map +1 -0
- package/dist/types/createConnector.d.ts +57 -0
- package/dist/types/createConnector.d.ts.map +1 -0
- package/dist/types/createEmitter.d.ts +31 -0
- package/dist/types/createEmitter.d.ts.map +1 -0
- package/dist/types/createStorage.d.ts +30 -0
- package/dist/types/createStorage.d.ts.map +1 -0
- package/dist/types/errors/base.d.ts +24 -0
- package/dist/types/errors/base.d.ts.map +1 -0
- package/dist/types/errors/config.d.ts +34 -0
- package/dist/types/errors/config.d.ts.map +1 -0
- package/dist/types/errors/connector.d.ts +13 -0
- package/dist/types/errors/connector.d.ts.map +1 -0
- package/dist/types/exports/actions.d.ts +40 -0
- package/dist/types/exports/actions.d.ts.map +1 -0
- package/dist/types/exports/chains.d.ts +2 -0
- package/dist/types/exports/chains.d.ts.map +1 -0
- package/dist/types/exports/index.d.ts +54 -0
- package/dist/types/exports/index.d.ts.map +1 -0
- package/dist/types/exports/internal.d.ts +5 -0
- package/dist/types/exports/internal.d.ts.map +1 -0
- package/dist/types/exports/query.d.ts +28 -0
- package/dist/types/exports/query.d.ts.map +1 -0
- package/dist/types/query/connect.d.ts +15 -0
- package/dist/types/query/connect.d.ts.map +1 -0
- package/dist/types/query/disconnect.d.ts +12 -0
- package/dist/types/query/disconnect.d.ts.map +1 -0
- package/dist/types/query/estimateFeesPerGas.d.ts +34 -0
- package/dist/types/query/estimateFeesPerGas.d.ts.map +1 -0
- package/dist/types/query/estimateGas.d.ts +18 -0
- package/dist/types/query/estimateGas.d.ts.map +1 -0
- package/dist/types/query/getBalance.d.ts +42 -0
- package/dist/types/query/getBalance.d.ts.map +1 -0
- package/dist/types/query/getBlock.d.ts +111 -0
- package/dist/types/query/getBlock.d.ts.map +1 -0
- package/dist/types/query/getBlockNumber.d.ts +34 -0
- package/dist/types/query/getBlockNumber.d.ts.map +1 -0
- package/dist/types/query/getConnectorClient.d.ts +320 -0
- package/dist/types/query/getConnectorClient.d.ts.map +1 -0
- package/dist/types/query/getEnsAddress.d.ts +42 -0
- package/dist/types/query/getEnsAddress.d.ts.map +1 -0
- package/dist/types/query/getEnsAvatar.d.ts +42 -0
- package/dist/types/query/getEnsAvatar.d.ts.map +1 -0
- package/dist/types/query/getEnsName.d.ts +39 -0
- package/dist/types/query/getEnsName.d.ts.map +1 -0
- package/dist/types/query/getEnsResolver.d.ts +39 -0
- package/dist/types/query/getEnsResolver.d.ts.map +1 -0
- package/dist/types/query/getToken.d.ts +33 -0
- package/dist/types/query/getToken.d.ts.map +1 -0
- package/dist/types/query/getTransaction.d.ts +110 -0
- package/dist/types/query/getTransaction.d.ts.map +1 -0
- package/dist/types/query/getWalletClient.d.ts +541 -0
- package/dist/types/query/getWalletClient.d.ts.map +1 -0
- package/dist/types/query/readContract.d.ts +19 -0
- package/dist/types/query/readContract.d.ts.map +1 -0
- package/dist/types/query/readContracts.d.ts +65 -0
- package/dist/types/query/readContracts.d.ts.map +1 -0
- package/dist/types/query/reconnect.d.ts +13 -0
- package/dist/types/query/reconnect.d.ts.map +1 -0
- package/dist/types/query/sendTransaction.d.ts +13 -0
- package/dist/types/query/sendTransaction.d.ts.map +1 -0
- package/dist/types/query/signMessage.d.ts +17 -0
- package/dist/types/query/signMessage.d.ts.map +1 -0
- package/dist/types/query/signTypedData.d.ts +219 -0
- package/dist/types/query/signTypedData.d.ts.map +1 -0
- package/dist/types/query/simulateContract.d.ts +19 -0
- package/dist/types/query/simulateContract.d.ts.map +1 -0
- package/dist/types/query/switchAccount.d.ts +15 -0
- package/dist/types/query/switchAccount.d.ts.map +1 -0
- package/dist/types/query/switchChain.d.ts +18 -0
- package/dist/types/query/switchChain.d.ts.map +1 -0
- package/dist/types/query/types.d.ts +9 -0
- package/dist/types/query/types.d.ts.map +1 -0
- package/dist/types/query/utils.d.ts +4 -0
- package/dist/types/query/utils.d.ts.map +1 -0
- package/dist/types/query/waitForTransactionReceipt.d.ts +131 -0
- package/dist/types/query/waitForTransactionReceipt.d.ts.map +1 -0
- package/dist/types/query/writeContract.d.ts +14 -0
- package/dist/types/query/writeContract.d.ts.map +1 -0
- package/dist/types/types/chain.d.ts +15 -0
- package/dist/types/types/chain.d.ts.map +1 -0
- package/dist/types/types/properties.d.ts +11 -0
- package/dist/types/types/properties.d.ts.map +1 -0
- package/dist/types/types/register.d.ts +8 -0
- package/dist/types/types/register.d.ts.map +1 -0
- package/dist/types/types/unit.d.ts +2 -0
- package/dist/types/types/unit.d.ts.map +1 -0
- package/dist/types/types/utils.d.ts +50 -0
- package/dist/types/types/utils.d.ts.map +1 -0
- package/dist/types/utils/assertActiveChain.d.ts +8 -0
- package/dist/types/utils/assertActiveChain.d.ts.map +1 -0
- package/dist/types/utils/deepEqual.d.ts +3 -0
- package/dist/types/utils/deepEqual.d.ts.map +1 -0
- package/dist/types/utils/deserialize.d.ts +4 -0
- package/dist/types/utils/deserialize.d.ts.map +1 -0
- package/dist/types/utils/getUnit.d.ts +3 -0
- package/dist/types/utils/getUnit.d.ts.map +1 -0
- package/dist/types/utils/getVersion.d.ts +2 -0
- package/dist/types/utils/getVersion.d.ts.map +1 -0
- package/dist/types/utils/normalizeChainId.d.ts +2 -0
- package/dist/types/utils/normalizeChainId.d.ts.map +1 -0
- package/dist/types/utils/serialize.d.ts +16 -0
- package/dist/types/utils/serialize.d.ts.map +1 -0
- package/dist/types/utils/uid.d.ts +2 -0
- package/dist/types/utils/uid.d.ts.map +1 -0
- package/dist/types/version.d.ts +2 -0
- package/dist/types/version.d.ts.map +1 -0
- package/internal/package.json +3 -2
- package/package.json +69 -101
- package/query/package.json +5 -0
- package/src/actions/connect.ts +86 -0
- package/src/actions/disconnect.ts +68 -0
- package/src/actions/estimateFeesPerGas.ts +76 -0
- package/src/actions/estimateGas.ts +62 -0
- package/src/actions/getAccount.ts +109 -0
- package/src/actions/getBalance.ts +141 -0
- package/src/actions/getBlock.ts +63 -0
- package/src/actions/getBlockNumber.ts +31 -0
- package/src/actions/getChainId.ts +11 -0
- package/src/actions/getClient.ts +30 -0
- package/src/actions/getConnections.ts +16 -0
- package/src/actions/getConnectorClient.ts +96 -0
- package/src/actions/getEnsAddress.ts +27 -0
- package/src/actions/getEnsAvatar.ts +27 -0
- package/src/actions/getEnsName.ts +27 -0
- package/src/actions/getEnsResolver.ts +27 -0
- package/src/actions/getPublicClient.ts +34 -0
- package/src/actions/getToken.ts +140 -0
- package/src/actions/getTransaction.ts +44 -0
- package/src/actions/getWalletClient.ts +41 -0
- package/src/actions/multicall.ts +37 -0
- package/src/actions/readContract.ts +55 -0
- package/src/actions/readContracts.ts +98 -0
- package/src/actions/reconnect.ts +102 -0
- package/src/actions/sendTransaction.ts +68 -0
- package/src/actions/signMessage.ts +29 -0
- package/src/actions/signTypedData.ts +43 -0
- package/src/actions/simulateContract.ts +161 -0
- package/src/actions/switchAccount.ts +37 -0
- package/src/actions/switchChain.ts +63 -0
- package/src/actions/waitForTransactionReceipt.ts +69 -0
- package/src/actions/watchAccount.ts +32 -0
- package/src/actions/watchBlockNumber.ts +78 -0
- package/src/actions/watchBlocks.ts +90 -0
- package/src/actions/watchChainId.ts +20 -0
- package/src/actions/watchClient.ts +34 -0
- package/src/actions/watchConnections.ts +26 -0
- package/src/actions/watchContractEvent.ts +98 -0
- package/src/actions/watchPendingTransactions.ts +79 -0
- package/src/actions/watchPublicClient.ts +37 -0
- package/src/actions/writeContract.ts +113 -0
- package/src/createConfig.ts +382 -0
- package/src/createConnector.ts +78 -0
- package/src/createEmitter.ts +68 -0
- package/src/createStorage.ts +89 -0
- package/src/errors/base.ts +71 -0
- package/src/errors/config.ts +60 -0
- package/src/errors/connector.ts +17 -0
- package/src/exports/actions.ts +258 -0
- package/src/exports/chains.ts +4 -0
- package/src/exports/index.ts +352 -0
- package/src/exports/internal.ts +29 -0
- package/src/exports/query.ts +229 -0
- package/src/query/connect.ts +45 -0
- package/src/query/disconnect.ts +43 -0
- package/src/query/estimateFeesPerGas.ts +56 -0
- package/src/query/estimateGas.ts +55 -0
- package/src/query/getBalance.ts +61 -0
- package/src/query/getBlock.ts +80 -0
- package/src/query/getBlockNumber.ts +55 -0
- package/src/query/getConnectorClient.ts +69 -0
- package/src/query/getEnsAddress.ts +49 -0
- package/src/query/getEnsAvatar.ts +49 -0
- package/src/query/getEnsName.ts +49 -0
- package/src/query/getEnsResolver.ts +49 -0
- package/src/query/getToken.ts +49 -0
- package/src/query/getTransaction.ts +75 -0
- package/src/query/getWalletClient.ts +65 -0
- package/src/query/readContract.ts +88 -0
- package/src/query/readContracts.ts +98 -0
- package/src/query/reconnect.ts +42 -0
- package/src/query/sendTransaction.ts +65 -0
- package/src/query/signMessage.ts +42 -0
- package/src/query/signTypedData.ts +75 -0
- package/src/query/simulateContract.ts +128 -0
- package/src/query/switchAccount.ts +52 -0
- package/src/query/switchChain.ts +67 -0
- package/src/query/types.ts +52 -0
- package/src/query/utils.ts +54 -0
- package/src/query/waitForTransactionReceipt.ts +71 -0
- package/src/query/writeContract.ts +116 -0
- package/src/types/chain.ts +25 -0
- package/src/types/properties.ts +21 -0
- package/src/types/register.ts +8 -0
- package/src/types/unit.ts +1 -0
- package/src/types/utils.ts +93 -0
- package/src/utils/assertActiveChain.ts +26 -0
- package/src/utils/deepEqual.ts +43 -0
- package/src/utils/deserialize.ts +10 -0
- package/src/utils/getUnit.ts +9 -0
- package/src/utils/getVersion.ts +3 -0
- package/src/utils/normalizeChainId.ts +12 -0
- package/src/utils/serialize.ts +116 -0
- package/src/utils/uid.ts +14 -0
- package/src/version.ts +1 -0
- package/connectors/coinbaseWallet/package.json +0 -4
- package/connectors/injected/package.json +0 -4
- package/connectors/ledger/package.json +0 -4
- package/connectors/metaMask/package.json +0 -4
- package/connectors/mock/package.json +0 -4
- package/connectors/package.json +0 -4
- package/connectors/safe/package.json +0 -4
- package/connectors/walletConnect/package.json +0 -4
- package/connectors/walletConnectLegacy/package.json +0 -4
- package/dist/chains.d.ts +0 -2
- package/dist/chains.js +0 -2
- package/dist/chunk-4E64EZ7V.js +0 -7
- package/dist/chunk-BVC4KGLQ.js +0 -8
- package/dist/chunk-EQOEZP46.js +0 -6
- package/dist/chunk-KFW652VN.js +0 -7
- package/dist/chunk-LAFZBYO7.js +0 -2934
- package/dist/chunk-MQXBDTVK.js +0 -29
- package/dist/connectors/coinbaseWallet.d.ts +0 -1
- package/dist/connectors/coinbaseWallet.js +0 -7
- package/dist/connectors/index.d.ts +0 -2
- package/dist/connectors/index.js +0 -9
- package/dist/connectors/injected.d.ts +0 -1
- package/dist/connectors/injected.js +0 -7
- package/dist/connectors/ledger.d.ts +0 -1
- package/dist/connectors/ledger.js +0 -7
- package/dist/connectors/metaMask.d.ts +0 -1
- package/dist/connectors/metaMask.js +0 -7
- package/dist/connectors/mock.d.ts +0 -1
- package/dist/connectors/mock.js +0 -9
- package/dist/connectors/safe.d.ts +0 -1
- package/dist/connectors/safe.js +0 -7
- package/dist/connectors/walletConnect.d.ts +0 -1
- package/dist/connectors/walletConnect.js +0 -7
- package/dist/connectors/walletConnectLegacy.d.ts +0 -1
- package/dist/connectors/walletConnectLegacy.js +0 -7
- package/dist/index-e744bbc2.d.ts +0 -22
- package/dist/index.d.ts +0 -1397
- package/dist/index.js +0 -135
- package/dist/internal/index.d.ts +0 -24
- package/dist/internal/index.js +0 -10
- package/dist/internal/test.d.ts +0 -438
- package/dist/internal/test.js +0 -160
- package/dist/providers/alchemy.d.ts +0 -11
- package/dist/providers/alchemy.js +0 -29
- package/dist/providers/infura.d.ts +0 -11
- package/dist/providers/infura.js +0 -29
- package/dist/providers/jsonRpc.d.ts +0 -13
- package/dist/providers/jsonRpc.js +0 -28
- package/dist/providers/public.d.ts +0 -7
- package/dist/providers/public.js +0 -16
- package/dist/window.d.ts +0 -7
- package/dist/window.js +0 -0
- package/internal/test/package.json +0 -4
- package/providers/alchemy/package.json +0 -4
- package/providers/infura/package.json +0 -4
- package/providers/jsonRpc/package.json +0 -4
- package/providers/public/package.json +0 -4
- package/window/package.json +0 -4
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type PublicClient, publicActions } from 'viem'
|
|
2
|
+
|
|
3
|
+
import type { Config } from '../createConfig.js'
|
|
4
|
+
import type { ChainIdParameter } from '../types/properties.js'
|
|
5
|
+
import type { Evaluate } from '../types/utils.js'
|
|
6
|
+
|
|
7
|
+
export type GetPublicClientParameters<
|
|
8
|
+
config extends Config = Config,
|
|
9
|
+
chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
|
|
10
|
+
> = ChainIdParameter<config, chainId>
|
|
11
|
+
|
|
12
|
+
export type GetPublicClientReturnType<
|
|
13
|
+
config extends Config = Config,
|
|
14
|
+
chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
|
|
15
|
+
> = Evaluate<
|
|
16
|
+
PublicClient<
|
|
17
|
+
config['_internal']['transports'][chainId],
|
|
18
|
+
Extract<config['chains'][number], { id: chainId }>
|
|
19
|
+
>
|
|
20
|
+
>
|
|
21
|
+
|
|
22
|
+
export function getPublicClient<
|
|
23
|
+
config extends Config,
|
|
24
|
+
chainId extends config['chains'][number]['id'],
|
|
25
|
+
>(
|
|
26
|
+
config: config,
|
|
27
|
+
parameters: GetPublicClientParameters<config, chainId> = {},
|
|
28
|
+
): GetPublicClientReturnType<config, chainId> {
|
|
29
|
+
const client = config.getClient(parameters)
|
|
30
|
+
return client.extend(publicActions) as GetPublicClientReturnType<
|
|
31
|
+
config,
|
|
32
|
+
chainId
|
|
33
|
+
>
|
|
34
|
+
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import type { Address, Hex } from 'viem'
|
|
2
|
+
import {
|
|
3
|
+
ContractFunctionExecutionError,
|
|
4
|
+
formatUnits,
|
|
5
|
+
hexToString,
|
|
6
|
+
trim,
|
|
7
|
+
} from 'viem'
|
|
8
|
+
|
|
9
|
+
import type { Config } from '../createConfig.js'
|
|
10
|
+
import type { ChainIdParameter } from '../types/properties.js'
|
|
11
|
+
import type { Unit } from '../types/unit.js'
|
|
12
|
+
import type { Evaluate } from '../types/utils.js'
|
|
13
|
+
import { getUnit } from '../utils/getUnit.js'
|
|
14
|
+
import { readContracts } from './readContracts.js'
|
|
15
|
+
|
|
16
|
+
export type GetTokenParameters<config extends Config = Config> = Evaluate<
|
|
17
|
+
{
|
|
18
|
+
address: Address
|
|
19
|
+
formatUnits?: Unit
|
|
20
|
+
} & ChainIdParameter<config>
|
|
21
|
+
>
|
|
22
|
+
|
|
23
|
+
export type GetTokenReturnType = {
|
|
24
|
+
address: Address
|
|
25
|
+
decimals: number
|
|
26
|
+
name: string | undefined
|
|
27
|
+
symbol: string | undefined
|
|
28
|
+
totalSupply: {
|
|
29
|
+
formatted: string
|
|
30
|
+
value: bigint
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export type GetTokenError = Error
|
|
35
|
+
|
|
36
|
+
export async function getToken<config extends Config>(
|
|
37
|
+
config: config,
|
|
38
|
+
parameters: GetTokenParameters<config>,
|
|
39
|
+
): Promise<GetTokenReturnType> {
|
|
40
|
+
const { address, chainId, formatUnits: unit = 18 } = parameters
|
|
41
|
+
|
|
42
|
+
function getAbi<type extends 'bytes32' | 'string'>(type: type) {
|
|
43
|
+
return [
|
|
44
|
+
{
|
|
45
|
+
type: 'function',
|
|
46
|
+
name: 'decimals',
|
|
47
|
+
stateMutability: 'view',
|
|
48
|
+
inputs: [],
|
|
49
|
+
outputs: [{ type: 'uint8' }],
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
type: 'function',
|
|
53
|
+
name: 'name',
|
|
54
|
+
stateMutability: 'view',
|
|
55
|
+
inputs: [],
|
|
56
|
+
outputs: [{ type }],
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
type: 'function',
|
|
60
|
+
name: 'symbol',
|
|
61
|
+
stateMutability: 'view',
|
|
62
|
+
inputs: [],
|
|
63
|
+
outputs: [{ type }],
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
type: 'function',
|
|
67
|
+
name: 'totalSupply',
|
|
68
|
+
stateMutability: 'view',
|
|
69
|
+
inputs: [],
|
|
70
|
+
outputs: [{ type: 'uint256' }],
|
|
71
|
+
},
|
|
72
|
+
] as const
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
try {
|
|
76
|
+
const abi = getAbi('string')
|
|
77
|
+
const contractConfig = { address, abi, chainId } as const
|
|
78
|
+
const [decimals, name, symbol, totalSupply] = await readContracts(config, {
|
|
79
|
+
allowFailure: true,
|
|
80
|
+
contracts: [
|
|
81
|
+
{ ...contractConfig, functionName: 'decimals' },
|
|
82
|
+
{ ...contractConfig, functionName: 'name' },
|
|
83
|
+
{ ...contractConfig, functionName: 'symbol' },
|
|
84
|
+
{ ...contractConfig, functionName: 'totalSupply' },
|
|
85
|
+
] as const,
|
|
86
|
+
})
|
|
87
|
+
|
|
88
|
+
// throw if `name` or `symbol` failed
|
|
89
|
+
if (name.error instanceof ContractFunctionExecutionError) throw name.error
|
|
90
|
+
if (symbol.error instanceof ContractFunctionExecutionError)
|
|
91
|
+
throw symbol.error
|
|
92
|
+
|
|
93
|
+
// `decimals` and `totalSupply` are required
|
|
94
|
+
if (decimals.error) throw decimals.error
|
|
95
|
+
if (totalSupply.error) throw totalSupply.error
|
|
96
|
+
|
|
97
|
+
return {
|
|
98
|
+
address,
|
|
99
|
+
decimals: decimals.result,
|
|
100
|
+
name: name.result,
|
|
101
|
+
symbol: symbol.result,
|
|
102
|
+
totalSupply: {
|
|
103
|
+
formatted: formatUnits(totalSupply.result!, getUnit(unit)),
|
|
104
|
+
value: totalSupply.result,
|
|
105
|
+
},
|
|
106
|
+
}
|
|
107
|
+
} catch (error) {
|
|
108
|
+
// In the chance that there is an error upon decoding the contract result,
|
|
109
|
+
// it could be likely that the contract data is represented as bytes32 instead
|
|
110
|
+
// of a string.
|
|
111
|
+
if (error instanceof ContractFunctionExecutionError) {
|
|
112
|
+
const abi = getAbi('bytes32')
|
|
113
|
+
const contractConfig = { address, abi, chainId } as const
|
|
114
|
+
const [decimals, name, symbol, totalSupply] = await readContracts(
|
|
115
|
+
config,
|
|
116
|
+
{
|
|
117
|
+
allowFailure: false,
|
|
118
|
+
contracts: [
|
|
119
|
+
{ ...contractConfig, functionName: 'decimals' },
|
|
120
|
+
{ ...contractConfig, functionName: 'name' },
|
|
121
|
+
{ ...contractConfig, functionName: 'symbol' },
|
|
122
|
+
{ ...contractConfig, functionName: 'totalSupply' },
|
|
123
|
+
] as const,
|
|
124
|
+
},
|
|
125
|
+
)
|
|
126
|
+
return {
|
|
127
|
+
address,
|
|
128
|
+
decimals,
|
|
129
|
+
name: hexToString(trim(name as Hex, { dir: 'right' })),
|
|
130
|
+
symbol: hexToString(trim(symbol as Hex, { dir: 'right' })),
|
|
131
|
+
totalSupply: {
|
|
132
|
+
formatted: formatUnits(totalSupply, getUnit(unit)),
|
|
133
|
+
value: totalSupply,
|
|
134
|
+
},
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
throw error
|
|
139
|
+
}
|
|
140
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Chain } from 'viem'
|
|
2
|
+
import {
|
|
3
|
+
type GetTransactionParameters as viem_GetTransactionParameters,
|
|
4
|
+
type GetTransactionReturnType as viem_GetTransactionReturnType,
|
|
5
|
+
getTransaction as viem_getTransaction,
|
|
6
|
+
} from 'viem/actions'
|
|
7
|
+
|
|
8
|
+
import { type Config } from '../createConfig.js'
|
|
9
|
+
import type { SelectChains } from '../types/chain.js'
|
|
10
|
+
import type { ChainIdParameter } from '../types/properties.js'
|
|
11
|
+
import { type Evaluate } from '../types/utils.js'
|
|
12
|
+
|
|
13
|
+
export type GetTransactionParameters<
|
|
14
|
+
config extends Config = Config,
|
|
15
|
+
chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
|
|
16
|
+
> = Evaluate<viem_GetTransactionParameters & ChainIdParameter<config, chainId>>
|
|
17
|
+
|
|
18
|
+
export type GetTransactionReturnType<
|
|
19
|
+
config extends Config = Config,
|
|
20
|
+
chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
|
|
21
|
+
///
|
|
22
|
+
chains extends readonly Chain[] = SelectChains<config, chainId>,
|
|
23
|
+
> = Evaluate<
|
|
24
|
+
{
|
|
25
|
+
[key in keyof chains]: viem_GetTransactionReturnType<chains[key]>
|
|
26
|
+
}[number]
|
|
27
|
+
>
|
|
28
|
+
|
|
29
|
+
export type GetTransactionError = Error
|
|
30
|
+
|
|
31
|
+
/** https://alpha.wagmi.sh/core/api/actions/getTransaction */
|
|
32
|
+
export function getTransaction<
|
|
33
|
+
config extends Config,
|
|
34
|
+
chainId extends config['chains'][number]['id'],
|
|
35
|
+
>(
|
|
36
|
+
config: config,
|
|
37
|
+
parameters: GetTransactionParameters<config, chainId>,
|
|
38
|
+
): Promise<GetTransactionReturnType<config, chainId>> {
|
|
39
|
+
const { chainId } = parameters
|
|
40
|
+
const client = config.getClient({ chainId })
|
|
41
|
+
return viem_getTransaction(client, parameters) as unknown as Promise<
|
|
42
|
+
GetTransactionReturnType<config, chainId>
|
|
43
|
+
>
|
|
44
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type Account, type WalletClient, walletActions } from 'viem'
|
|
2
|
+
|
|
3
|
+
import type { Config } from '../createConfig.js'
|
|
4
|
+
import type { Evaluate } from '../types/utils.js'
|
|
5
|
+
import {
|
|
6
|
+
type GetConnectorClientError,
|
|
7
|
+
type GetConnectorClientParameters,
|
|
8
|
+
getConnectorClient,
|
|
9
|
+
} from './getConnectorClient.js'
|
|
10
|
+
|
|
11
|
+
export type GetWalletClientParameters<
|
|
12
|
+
config extends Config = Config,
|
|
13
|
+
chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
|
|
14
|
+
> = GetConnectorClientParameters<Config, chainId>
|
|
15
|
+
|
|
16
|
+
export type GetWalletClientReturnType<
|
|
17
|
+
config extends Config = Config,
|
|
18
|
+
chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
|
|
19
|
+
> = Evaluate<
|
|
20
|
+
WalletClient<
|
|
21
|
+
config['_internal']['transports'][chainId],
|
|
22
|
+
Extract<config['chains'][number], { id: chainId }>,
|
|
23
|
+
Account
|
|
24
|
+
>
|
|
25
|
+
>
|
|
26
|
+
|
|
27
|
+
export type GetWalletClientError = GetConnectorClientError
|
|
28
|
+
|
|
29
|
+
export async function getWalletClient<
|
|
30
|
+
config extends Config,
|
|
31
|
+
chainId extends config['chains'][number]['id'],
|
|
32
|
+
>(
|
|
33
|
+
config: config,
|
|
34
|
+
parameters: GetWalletClientParameters<config, chainId> = {},
|
|
35
|
+
): Promise<GetWalletClientReturnType<config, chainId>> {
|
|
36
|
+
const client = await getConnectorClient(config, parameters)
|
|
37
|
+
return client.extend(walletActions) as unknown as GetWalletClientReturnType<
|
|
38
|
+
config,
|
|
39
|
+
chainId
|
|
40
|
+
>
|
|
41
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
ContractFunctionParameters,
|
|
3
|
+
MulticallParameters as viem_MulticallParameters,
|
|
4
|
+
MulticallReturnType as viem_MulticallReturnType,
|
|
5
|
+
} from 'viem'
|
|
6
|
+
import { multicall as viem_multicall } from 'viem/actions'
|
|
7
|
+
|
|
8
|
+
import type { Config } from '../createConfig.js'
|
|
9
|
+
import type { ChainIdParameter } from '../types/properties.js'
|
|
10
|
+
|
|
11
|
+
export type MulticallParameters<
|
|
12
|
+
contracts extends readonly unknown[] = readonly ContractFunctionParameters[],
|
|
13
|
+
allowFailure extends boolean = true,
|
|
14
|
+
config extends Config = Config,
|
|
15
|
+
> = viem_MulticallParameters<contracts, allowFailure> & ChainIdParameter<config>
|
|
16
|
+
|
|
17
|
+
export type MulticallReturnType<
|
|
18
|
+
contracts extends readonly unknown[] = readonly ContractFunctionParameters[],
|
|
19
|
+
allowFailure extends boolean = true,
|
|
20
|
+
> = viem_MulticallReturnType<contracts, allowFailure>
|
|
21
|
+
|
|
22
|
+
export async function multicall<
|
|
23
|
+
config extends Config,
|
|
24
|
+
const contracts extends readonly unknown[],
|
|
25
|
+
allowFailure extends boolean = true,
|
|
26
|
+
>(
|
|
27
|
+
config: config,
|
|
28
|
+
parameters: MulticallParameters<contracts, allowFailure, config>,
|
|
29
|
+
): Promise<MulticallReturnType<contracts, allowFailure>> {
|
|
30
|
+
const { allowFailure = true, chainId, contracts, ...rest } = parameters
|
|
31
|
+
const client = config.getClient({ chainId })
|
|
32
|
+
return viem_multicall(client, {
|
|
33
|
+
allowFailure,
|
|
34
|
+
contracts,
|
|
35
|
+
...rest,
|
|
36
|
+
}) as Promise<MulticallReturnType<contracts, allowFailure>>
|
|
37
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { type Abi } from 'viem'
|
|
2
|
+
import type { ContractFunctionArgs, ContractFunctionName } from 'viem'
|
|
3
|
+
import {
|
|
4
|
+
type ReadContractParameters as viem_ReadContractParameters,
|
|
5
|
+
type ReadContractReturnType as viem_ReadContractReturnType,
|
|
6
|
+
readContract as viem_readContract,
|
|
7
|
+
} from 'viem/actions'
|
|
8
|
+
|
|
9
|
+
import { type Config } from '../createConfig.js'
|
|
10
|
+
import type { ChainIdParameter } from '../types/properties.js'
|
|
11
|
+
|
|
12
|
+
export type ReadContractParameters<
|
|
13
|
+
abi extends Abi | readonly unknown[] = Abi,
|
|
14
|
+
functionName extends ContractFunctionName<
|
|
15
|
+
abi,
|
|
16
|
+
'pure' | 'view'
|
|
17
|
+
> = ContractFunctionName<abi, 'pure' | 'view'>,
|
|
18
|
+
args extends ContractFunctionArgs<
|
|
19
|
+
abi,
|
|
20
|
+
'pure' | 'view',
|
|
21
|
+
functionName
|
|
22
|
+
> = ContractFunctionArgs<abi, 'pure' | 'view', functionName>,
|
|
23
|
+
config extends Config = Config,
|
|
24
|
+
> = viem_ReadContractParameters<abi, functionName, args> &
|
|
25
|
+
ChainIdParameter<config>
|
|
26
|
+
|
|
27
|
+
export type ReadContractReturnType<
|
|
28
|
+
abi extends Abi | readonly unknown[] = Abi,
|
|
29
|
+
functionName extends ContractFunctionName<
|
|
30
|
+
abi,
|
|
31
|
+
'pure' | 'view'
|
|
32
|
+
> = ContractFunctionName<abi, 'pure' | 'view'>,
|
|
33
|
+
args extends ContractFunctionArgs<
|
|
34
|
+
abi,
|
|
35
|
+
'pure' | 'view',
|
|
36
|
+
functionName
|
|
37
|
+
> = ContractFunctionArgs<abi, 'pure' | 'view', functionName>,
|
|
38
|
+
> = viem_ReadContractReturnType<abi, functionName, args>
|
|
39
|
+
|
|
40
|
+
export type ReadContractError = Error
|
|
41
|
+
|
|
42
|
+
/** https://alpha.wagmi.sh/core/api/actions/readContract */
|
|
43
|
+
export function readContract<
|
|
44
|
+
config extends Config,
|
|
45
|
+
const abi extends Abi | readonly unknown[],
|
|
46
|
+
functionName extends ContractFunctionName<abi, 'pure' | 'view'>,
|
|
47
|
+
args extends ContractFunctionArgs<abi, 'pure' | 'view', functionName>,
|
|
48
|
+
>(
|
|
49
|
+
config: config,
|
|
50
|
+
parameters: ReadContractParameters<abi, functionName, args, config>,
|
|
51
|
+
): Promise<ReadContractReturnType<abi, functionName, args>> {
|
|
52
|
+
const { chainId } = parameters
|
|
53
|
+
const client = config.getClient({ chainId })
|
|
54
|
+
return viem_readContract(client, parameters as any)
|
|
55
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
ContractFunctionParameters,
|
|
3
|
+
MulticallParameters as viem_MulticallParameters,
|
|
4
|
+
MulticallReturnType as viem_MulticallReturnType,
|
|
5
|
+
} from 'viem'
|
|
6
|
+
import { ContractFunctionExecutionError } from 'viem'
|
|
7
|
+
|
|
8
|
+
import { type Config } from '../createConfig.js'
|
|
9
|
+
import { type ChainIdParameter } from '../types/properties.js'
|
|
10
|
+
import { multicall } from './multicall.js'
|
|
11
|
+
import { readContract } from './readContract.js'
|
|
12
|
+
|
|
13
|
+
export type ReadContractsParameters<
|
|
14
|
+
contracts extends readonly unknown[] = readonly ContractFunctionParameters[],
|
|
15
|
+
allowFailure extends boolean = true,
|
|
16
|
+
config extends Config = Config,
|
|
17
|
+
> = viem_MulticallParameters<
|
|
18
|
+
contracts,
|
|
19
|
+
allowFailure,
|
|
20
|
+
{ properties: ChainIdParameter<config> }
|
|
21
|
+
>
|
|
22
|
+
|
|
23
|
+
export type ReadContractsReturnType<
|
|
24
|
+
contracts extends readonly unknown[] = readonly ContractFunctionParameters[],
|
|
25
|
+
allowFailure extends boolean = true,
|
|
26
|
+
> = viem_MulticallReturnType<contracts, allowFailure>
|
|
27
|
+
|
|
28
|
+
export type ReadContractsError = Error
|
|
29
|
+
|
|
30
|
+
export async function readContracts<
|
|
31
|
+
config extends Config,
|
|
32
|
+
const contracts extends readonly ContractFunctionParameters[],
|
|
33
|
+
allowFailure extends boolean = true,
|
|
34
|
+
>(
|
|
35
|
+
config: config,
|
|
36
|
+
parameters: ReadContractsParameters<contracts, allowFailure, config>,
|
|
37
|
+
): Promise<ReadContractsReturnType<contracts, allowFailure>> {
|
|
38
|
+
const { allowFailure = true, blockNumber, blockTag, ...rest } = parameters
|
|
39
|
+
const contracts = parameters.contracts as (ContractFunctionParameters & {
|
|
40
|
+
chainId?: number | undefined
|
|
41
|
+
})[]
|
|
42
|
+
|
|
43
|
+
try {
|
|
44
|
+
const contractsByChainId = contracts.reduce(
|
|
45
|
+
(contracts, contract, index) => {
|
|
46
|
+
const chainId = contract.chainId ?? config.state.chainId
|
|
47
|
+
return {
|
|
48
|
+
...contracts,
|
|
49
|
+
[chainId]: [...(contracts[chainId] || []), { contract, index }],
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
{} as {
|
|
53
|
+
[chainId: number]: {
|
|
54
|
+
contract: ContractFunctionParameters
|
|
55
|
+
index: number
|
|
56
|
+
}[]
|
|
57
|
+
},
|
|
58
|
+
)
|
|
59
|
+
const promises = () =>
|
|
60
|
+
Object.entries(contractsByChainId).map(([chainId, contracts]) =>
|
|
61
|
+
multicall(config, {
|
|
62
|
+
...rest,
|
|
63
|
+
allowFailure,
|
|
64
|
+
chainId: parseInt(chainId),
|
|
65
|
+
contracts: contracts.map(({ contract }) => contract),
|
|
66
|
+
}),
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
const multicallResults = (await Promise.all(promises())).flat()
|
|
70
|
+
// Reorder the contract results back to the order they were
|
|
71
|
+
// provided in.
|
|
72
|
+
const resultIndexes = Object.values(contractsByChainId).flatMap(
|
|
73
|
+
(contracts) => contracts.map(({ index }) => index),
|
|
74
|
+
)
|
|
75
|
+
return multicallResults.reduce((results, result, index) => {
|
|
76
|
+
if (results) results[resultIndexes[index]!] = result
|
|
77
|
+
return results
|
|
78
|
+
}, [] as unknown[]) as ReadContractsReturnType<contracts, allowFailure>
|
|
79
|
+
} catch (error) {
|
|
80
|
+
if (error instanceof ContractFunctionExecutionError) throw error
|
|
81
|
+
|
|
82
|
+
const promises = () =>
|
|
83
|
+
contracts.map((contract) =>
|
|
84
|
+
readContract(config, { ...contract, blockNumber, blockTag }),
|
|
85
|
+
)
|
|
86
|
+
if (allowFailure)
|
|
87
|
+
return (await Promise.allSettled(promises())).map((result) => {
|
|
88
|
+
if (result.status === 'fulfilled')
|
|
89
|
+
return { result: result.value, status: 'success' }
|
|
90
|
+
return { error: result.reason, result: undefined, status: 'failure' }
|
|
91
|
+
}) as ReadContractsReturnType<contracts, allowFailure>
|
|
92
|
+
|
|
93
|
+
return (await Promise.all(promises())) as ReadContractsReturnType<
|
|
94
|
+
contracts,
|
|
95
|
+
allowFailure
|
|
96
|
+
>
|
|
97
|
+
}
|
|
98
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import type { Address } from 'viem'
|
|
2
|
+
|
|
3
|
+
import type { Config, Connection, Connector } from '../createConfig.js'
|
|
4
|
+
import { type CreateConnectorFn } from '../createConnector.js'
|
|
5
|
+
import type { Evaluate } from '../types/utils.js'
|
|
6
|
+
|
|
7
|
+
export type ReconnectParameters = {
|
|
8
|
+
/** Connectors to attempt reconnect with */
|
|
9
|
+
connectors?: readonly (CreateConnectorFn | Connector)[] | undefined
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export type ReconnectReturnType = Evaluate<Connection>[]
|
|
13
|
+
|
|
14
|
+
export type ReconnectError = Error
|
|
15
|
+
|
|
16
|
+
let isReconnecting = false
|
|
17
|
+
|
|
18
|
+
/** https://alpha.wagmi.sh/core/api/actions/reconnect */
|
|
19
|
+
export async function reconnect(
|
|
20
|
+
config: Config,
|
|
21
|
+
parameters: ReconnectParameters = {},
|
|
22
|
+
): Promise<ReconnectReturnType> {
|
|
23
|
+
// If already reconnecting, do nothing
|
|
24
|
+
if (isReconnecting) return []
|
|
25
|
+
isReconnecting = true
|
|
26
|
+
|
|
27
|
+
config.setState((x) => ({
|
|
28
|
+
...x,
|
|
29
|
+
status: x.current ? 'reconnecting' : 'connecting',
|
|
30
|
+
}))
|
|
31
|
+
|
|
32
|
+
const connectors: Connector[] = []
|
|
33
|
+
if (parameters.connectors?.length) {
|
|
34
|
+
for (const connector_ of parameters.connectors) {
|
|
35
|
+
let connector: Connector
|
|
36
|
+
// "Register" connector if not already created
|
|
37
|
+
if (typeof connector_ === 'function')
|
|
38
|
+
connector = config._internal.setup(connector_)
|
|
39
|
+
else connector = connector_
|
|
40
|
+
connectors.push(connector)
|
|
41
|
+
}
|
|
42
|
+
} else connectors.push(...config.connectors)
|
|
43
|
+
|
|
44
|
+
// Try recently-used connectors first
|
|
45
|
+
const recentConnectorId = await config.storage?.getItem('recentConnectorId')
|
|
46
|
+
const scores: Record<string, number> = {}
|
|
47
|
+
for (const [, connection] of config.state.connections) {
|
|
48
|
+
scores[connection.connector.id] = 1
|
|
49
|
+
}
|
|
50
|
+
if (recentConnectorId) scores[recentConnectorId] = 0
|
|
51
|
+
const sorted =
|
|
52
|
+
Object.keys(scores).length > 0
|
|
53
|
+
? // .toSorted()
|
|
54
|
+
[...connectors].sort(
|
|
55
|
+
(a, b) => (scores[a.id] ?? 10) - (scores[b.id] ?? 10),
|
|
56
|
+
)
|
|
57
|
+
: connectors
|
|
58
|
+
|
|
59
|
+
// Iterate through each connector and try to connect
|
|
60
|
+
let connected = false
|
|
61
|
+
const connections = []
|
|
62
|
+
for (const connector of sorted) {
|
|
63
|
+
const isAuthorized = await connector.isAuthorized()
|
|
64
|
+
if (!isAuthorized) continue
|
|
65
|
+
|
|
66
|
+
const data = await connector.connect()
|
|
67
|
+
connector.emitter.off('connect', config._internal.connect)
|
|
68
|
+
connector.emitter.on('change', config._internal.change)
|
|
69
|
+
connector.emitter.on('disconnect', config._internal.disconnect)
|
|
70
|
+
|
|
71
|
+
config.setState((x) => {
|
|
72
|
+
const connections = new Map(connected ? x.connections : new Map()).set(
|
|
73
|
+
connector.uid,
|
|
74
|
+
{ accounts: data.accounts, chainId: data.chainId, connector },
|
|
75
|
+
)
|
|
76
|
+
return {
|
|
77
|
+
...x,
|
|
78
|
+
current: connected ? x.current : connector.uid,
|
|
79
|
+
connections,
|
|
80
|
+
}
|
|
81
|
+
})
|
|
82
|
+
connections.push({
|
|
83
|
+
accounts: data.accounts as readonly [Address, ...Address[]],
|
|
84
|
+
chainId: data.chainId,
|
|
85
|
+
connector,
|
|
86
|
+
})
|
|
87
|
+
connected = true
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// If connecting didn't succeed, set to disconnected
|
|
91
|
+
if (!connected)
|
|
92
|
+
config.setState((x) => ({
|
|
93
|
+
...x,
|
|
94
|
+
connections: new Map(),
|
|
95
|
+
current: undefined,
|
|
96
|
+
status: 'disconnected',
|
|
97
|
+
}))
|
|
98
|
+
else config.setState((x) => ({ ...x, status: 'connected' }))
|
|
99
|
+
|
|
100
|
+
isReconnecting = false
|
|
101
|
+
return connections
|
|
102
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
Account,
|
|
3
|
+
Address,
|
|
4
|
+
Chain,
|
|
5
|
+
SendTransactionParameters as viem_SendTransactionParameters,
|
|
6
|
+
SendTransactionReturnType as viem_SendTransactionReturnType,
|
|
7
|
+
} from 'viem'
|
|
8
|
+
import { sendTransaction as viem_sendTransaction } from 'viem/actions'
|
|
9
|
+
|
|
10
|
+
import type { Config } from '../createConfig.js'
|
|
11
|
+
import type { SelectChains } from '../types/chain.js'
|
|
12
|
+
import type {
|
|
13
|
+
ChainIdParameter,
|
|
14
|
+
ConnectorParameter,
|
|
15
|
+
} from '../types/properties.js'
|
|
16
|
+
import type { Evaluate } from '../types/utils.js'
|
|
17
|
+
import { assertActiveChain } from '../utils/assertActiveChain.js'
|
|
18
|
+
import { getConnectorClient } from './getConnectorClient.js'
|
|
19
|
+
|
|
20
|
+
export type SendTransactionParameters<
|
|
21
|
+
config extends Config = Config,
|
|
22
|
+
chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
|
|
23
|
+
///
|
|
24
|
+
chains extends readonly Chain[] = SelectChains<config, chainId>,
|
|
25
|
+
> = {
|
|
26
|
+
[key in keyof chains]: Evaluate<
|
|
27
|
+
Omit<
|
|
28
|
+
viem_SendTransactionParameters<chains[key], Account, chains[key]>,
|
|
29
|
+
'chain'
|
|
30
|
+
> &
|
|
31
|
+
ChainIdParameter<config, chainId> &
|
|
32
|
+
ConnectorParameter & {
|
|
33
|
+
to: Address
|
|
34
|
+
}
|
|
35
|
+
>
|
|
36
|
+
}[number]
|
|
37
|
+
|
|
38
|
+
export type SendTransactionReturnType = viem_SendTransactionReturnType
|
|
39
|
+
|
|
40
|
+
export type SendTransactionError = Error
|
|
41
|
+
|
|
42
|
+
/** https://alpha.wagmi.sh/core/api/actions/sendTransaction */
|
|
43
|
+
export async function sendTransaction<
|
|
44
|
+
config extends Config,
|
|
45
|
+
chainId extends config['chains'][number]['id'],
|
|
46
|
+
>(
|
|
47
|
+
config: config,
|
|
48
|
+
parameters: SendTransactionParameters<config, chainId>,
|
|
49
|
+
): Promise<SendTransactionReturnType> {
|
|
50
|
+
const { account, chainId, connector, ...rest } = parameters
|
|
51
|
+
|
|
52
|
+
const client = await getConnectorClient(config, {
|
|
53
|
+
account,
|
|
54
|
+
chainId,
|
|
55
|
+
connector,
|
|
56
|
+
})
|
|
57
|
+
if (chainId)
|
|
58
|
+
assertActiveChain(config, { activeChainId: client.chain.id, chainId })
|
|
59
|
+
|
|
60
|
+
const hash = await viem_sendTransaction(client, {
|
|
61
|
+
...(rest as unknown as viem_SendTransactionParameters),
|
|
62
|
+
// Setting to `null` to not validate inside `viem_sendTransaction`
|
|
63
|
+
// since we already validated above
|
|
64
|
+
chain: null,
|
|
65
|
+
} as viem_SendTransactionParameters)
|
|
66
|
+
|
|
67
|
+
return hash
|
|
68
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Account } from 'viem'
|
|
2
|
+
import {
|
|
3
|
+
type SignMessageParameters as viem_SignMessageParameters,
|
|
4
|
+
type SignMessageReturnType as viem_SignMessageReturnType,
|
|
5
|
+
signMessage as viem_signMessage,
|
|
6
|
+
} from 'viem/actions'
|
|
7
|
+
|
|
8
|
+
import { type Config } from '../createConfig.js'
|
|
9
|
+
import type { ConnectorParameter } from '../types/properties.js'
|
|
10
|
+
import type { Evaluate } from '../types/utils.js'
|
|
11
|
+
import { getConnectorClient } from './getConnectorClient.js'
|
|
12
|
+
|
|
13
|
+
export type SignMessageParameters = Evaluate<
|
|
14
|
+
viem_SignMessageParameters<Account> & ConnectorParameter
|
|
15
|
+
>
|
|
16
|
+
|
|
17
|
+
export type SignMessageReturnType = viem_SignMessageReturnType
|
|
18
|
+
|
|
19
|
+
export type SignMessageError = Error
|
|
20
|
+
|
|
21
|
+
/** https://alpha.wagmi.sh/core/api/actions/signMessage */
|
|
22
|
+
export async function signMessage(
|
|
23
|
+
config: Config,
|
|
24
|
+
parameters: SignMessageParameters,
|
|
25
|
+
): Promise<SignMessageReturnType> {
|
|
26
|
+
const { account, connector, ...rest } = parameters
|
|
27
|
+
const client = await getConnectorClient(config, { account, connector })
|
|
28
|
+
return viem_signMessage(client, rest)
|
|
29
|
+
}
|