@wagmi/core 1.4.1 → 2.0.0
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/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/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/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 +71 -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 +29 -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/getBlockNumber.js +18 -0
- package/dist/esm/query/getBlockNumber.js.map +1 -0
- package/dist/esm/query/getConnectorClient.js +24 -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 +21 -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/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/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 +52 -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 +27 -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/getBlockNumber.d.ts +34 -0
- package/dist/types/query/getBlockNumber.d.ts.map +1 -0
- package/dist/types/query/getConnectorClient.d.ts +319 -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 +540 -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 +41 -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/package.json +65 -101
- 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/getBlockNumber.ts +27 -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 +36 -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/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 +111 -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 +339 -0
- package/src/exports/internal.ts +28 -0
- package/src/exports/query.ts +220 -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/getBlockNumber.ts +50 -0
- package/src/query/getConnectorClient.ts +68 -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 +64 -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 +63 -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 +91 -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 +85 -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/README.md +0 -30
- package/chains/package.json +0 -4
- 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/package.json +0 -4
- 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,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
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { Account, TypedData } from 'viem'
|
|
2
|
+
import {
|
|
3
|
+
type SignTypedDataParameters as viem_SignTypedDataParameters,
|
|
4
|
+
type SignTypedDataReturnType as viem_SignTypedDataReturnType,
|
|
5
|
+
signTypedData as viem_signTypedData,
|
|
6
|
+
} from 'viem/actions'
|
|
7
|
+
|
|
8
|
+
import { type Config } from '../createConfig.js'
|
|
9
|
+
import type { ConnectorParameter } from '../types/properties.js'
|
|
10
|
+
import { getConnectorClient } from './getConnectorClient.js'
|
|
11
|
+
|
|
12
|
+
export type SignTypedDataParameters<
|
|
13
|
+
typedData extends TypedData | Record<string, unknown> = TypedData,
|
|
14
|
+
primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData,
|
|
15
|
+
> = viem_SignTypedDataParameters<typedData, primaryType, Account> &
|
|
16
|
+
ConnectorParameter
|
|
17
|
+
|
|
18
|
+
export type SignTypedDataReturnType = viem_SignTypedDataReturnType
|
|
19
|
+
|
|
20
|
+
export type SignTypedDataError = Error
|
|
21
|
+
|
|
22
|
+
/** https://alpha.wagmi.sh/core/api/actions/signTypedData */
|
|
23
|
+
export async function signTypedData<
|
|
24
|
+
const typedData extends TypedData | Record<string, unknown>,
|
|
25
|
+
primaryType extends keyof typedData | 'EIP712Domain',
|
|
26
|
+
>(
|
|
27
|
+
config: Config,
|
|
28
|
+
parameters: SignTypedDataParameters<typedData, primaryType>,
|
|
29
|
+
): Promise<SignTypedDataReturnType> {
|
|
30
|
+
const { account, connector, ...rest } = parameters
|
|
31
|
+
const client = await getConnectorClient(config, { account, connector })
|
|
32
|
+
return viem_signTypedData(
|
|
33
|
+
client,
|
|
34
|
+
rest as unknown as viem_SignTypedDataParameters,
|
|
35
|
+
)
|
|
36
|
+
}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
Abi,
|
|
3
|
+
Account,
|
|
4
|
+
Address,
|
|
5
|
+
Chain,
|
|
6
|
+
ContractFunctionArgs,
|
|
7
|
+
ContractFunctionName,
|
|
8
|
+
} from 'viem'
|
|
9
|
+
import {
|
|
10
|
+
type SimulateContractParameters as viem_SimulateContractParameters,
|
|
11
|
+
type SimulateContractReturnType as viem_SimulateContractReturnType,
|
|
12
|
+
simulateContract as viem_simulateContract,
|
|
13
|
+
} from 'viem/actions'
|
|
14
|
+
|
|
15
|
+
import { type Config } from '../createConfig.js'
|
|
16
|
+
import type { SelectChains } from '../types/chain.js'
|
|
17
|
+
import type {
|
|
18
|
+
ChainIdParameter,
|
|
19
|
+
ConnectorParameter,
|
|
20
|
+
} from '../types/properties.js'
|
|
21
|
+
import type { PartialBy, UnionEvaluate, UnionOmit } from '../types/utils.js'
|
|
22
|
+
import { assertActiveChain } from '../utils/assertActiveChain.js'
|
|
23
|
+
import { getConnectorClient } from './getConnectorClient.js'
|
|
24
|
+
|
|
25
|
+
export type SimulateContractParameters<
|
|
26
|
+
abi extends Abi | readonly unknown[] = Abi,
|
|
27
|
+
functionName extends ContractFunctionName<
|
|
28
|
+
abi,
|
|
29
|
+
'nonpayable' | 'payable'
|
|
30
|
+
> = ContractFunctionName<abi, 'nonpayable' | 'payable'>,
|
|
31
|
+
args extends ContractFunctionArgs<
|
|
32
|
+
abi,
|
|
33
|
+
'nonpayable' | 'payable',
|
|
34
|
+
functionName
|
|
35
|
+
> = ContractFunctionArgs<abi, 'nonpayable' | 'payable', functionName>,
|
|
36
|
+
config extends Config = Config,
|
|
37
|
+
chainId extends
|
|
38
|
+
| config['chains'][number]['id']
|
|
39
|
+
| undefined = config['chains'][number]['id'],
|
|
40
|
+
///
|
|
41
|
+
chains extends readonly Chain[] = SelectChains<config, chainId>,
|
|
42
|
+
> = {
|
|
43
|
+
[key in keyof chains]: UnionEvaluate<
|
|
44
|
+
UnionOmit<
|
|
45
|
+
viem_SimulateContractParameters<
|
|
46
|
+
abi,
|
|
47
|
+
functionName,
|
|
48
|
+
args,
|
|
49
|
+
chains[key],
|
|
50
|
+
chains[key]
|
|
51
|
+
>,
|
|
52
|
+
'chain'
|
|
53
|
+
>
|
|
54
|
+
> &
|
|
55
|
+
ChainIdParameter<config, chainId> &
|
|
56
|
+
ConnectorParameter
|
|
57
|
+
}[number]
|
|
58
|
+
|
|
59
|
+
export type SimulateContractReturnType<
|
|
60
|
+
abi extends Abi | readonly unknown[] = Abi,
|
|
61
|
+
functionName extends ContractFunctionName<
|
|
62
|
+
abi,
|
|
63
|
+
'nonpayable' | 'payable'
|
|
64
|
+
> = ContractFunctionName<abi, 'nonpayable' | 'payable'>,
|
|
65
|
+
args extends ContractFunctionArgs<
|
|
66
|
+
abi,
|
|
67
|
+
'nonpayable' | 'payable',
|
|
68
|
+
functionName
|
|
69
|
+
> = ContractFunctionArgs<abi, 'nonpayable' | 'payable', functionName>,
|
|
70
|
+
config extends Config = Config,
|
|
71
|
+
chainId extends
|
|
72
|
+
| config['chains'][number]['id']
|
|
73
|
+
| undefined = config['chains'][number]['id'],
|
|
74
|
+
///
|
|
75
|
+
chains extends readonly Chain[] = SelectChains<config, chainId>,
|
|
76
|
+
> = {
|
|
77
|
+
[key in keyof chains]: viem_SimulateContractReturnType<
|
|
78
|
+
abi,
|
|
79
|
+
functionName,
|
|
80
|
+
args,
|
|
81
|
+
chains[key]
|
|
82
|
+
> extends infer type extends viem_SimulateContractReturnType<
|
|
83
|
+
abi,
|
|
84
|
+
functionName,
|
|
85
|
+
args
|
|
86
|
+
>
|
|
87
|
+
? UnionEvaluate<
|
|
88
|
+
UnionOmit<type, 'request'> & {
|
|
89
|
+
request: UnionEvaluate<
|
|
90
|
+
UnionOmit<type['request'], 'chain'> &
|
|
91
|
+
PartialBy<
|
|
92
|
+
{ __mode: 'prepared'; chainId: chainId },
|
|
93
|
+
chainId extends config['chains'][number]['id']
|
|
94
|
+
? never
|
|
95
|
+
: 'chainId'
|
|
96
|
+
>
|
|
97
|
+
>
|
|
98
|
+
}
|
|
99
|
+
>
|
|
100
|
+
: never
|
|
101
|
+
}[number]
|
|
102
|
+
|
|
103
|
+
export type SimulateContractError = Error
|
|
104
|
+
|
|
105
|
+
/** https://alpha.wagmi.sh/core/api/actions/simulateContract */
|
|
106
|
+
export async function simulateContract<
|
|
107
|
+
config extends Config,
|
|
108
|
+
const abi extends Abi | readonly unknown[],
|
|
109
|
+
functionName extends ContractFunctionName<abi, 'nonpayable' | 'payable'>,
|
|
110
|
+
args extends ContractFunctionArgs<
|
|
111
|
+
abi,
|
|
112
|
+
'nonpayable' | 'payable',
|
|
113
|
+
functionName
|
|
114
|
+
>,
|
|
115
|
+
chainId extends config['chains'][number]['id'] | undefined = undefined,
|
|
116
|
+
>(
|
|
117
|
+
config: config,
|
|
118
|
+
parameters: SimulateContractParameters<
|
|
119
|
+
abi,
|
|
120
|
+
functionName,
|
|
121
|
+
args,
|
|
122
|
+
config,
|
|
123
|
+
chainId
|
|
124
|
+
>,
|
|
125
|
+
): Promise<
|
|
126
|
+
SimulateContractReturnType<abi, functionName, args, config, chainId>
|
|
127
|
+
> {
|
|
128
|
+
const { abi, chainId, connector, ...rest } =
|
|
129
|
+
parameters as SimulateContractParameters
|
|
130
|
+
|
|
131
|
+
let account: Address | Account
|
|
132
|
+
let activeChainId: number | undefined
|
|
133
|
+
if (parameters.account) account = parameters.account
|
|
134
|
+
else {
|
|
135
|
+
const connectorClient = await getConnectorClient(config, {
|
|
136
|
+
chainId,
|
|
137
|
+
connector,
|
|
138
|
+
})
|
|
139
|
+
account = connectorClient.account
|
|
140
|
+
activeChainId = connectorClient.chain.id
|
|
141
|
+
}
|
|
142
|
+
if (chainId) assertActiveChain(config, { activeChainId, chainId })
|
|
143
|
+
|
|
144
|
+
const client = config.getClient({ chainId })
|
|
145
|
+
const { result, request } = await viem_simulateContract(client, {
|
|
146
|
+
...rest,
|
|
147
|
+
abi,
|
|
148
|
+
account,
|
|
149
|
+
})
|
|
150
|
+
|
|
151
|
+
return {
|
|
152
|
+
result,
|
|
153
|
+
request: { __mode: 'prepared', ...request, chainId },
|
|
154
|
+
} as unknown as SimulateContractReturnType<
|
|
155
|
+
abi,
|
|
156
|
+
functionName,
|
|
157
|
+
args,
|
|
158
|
+
config,
|
|
159
|
+
chainId
|
|
160
|
+
>
|
|
161
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Address } from 'viem'
|
|
2
|
+
|
|
3
|
+
import { type Config, type Connector } from '../createConfig.js'
|
|
4
|
+
import { ConnectorNotConnectedError } from '../errors/config.js'
|
|
5
|
+
|
|
6
|
+
export type SwitchAccountParameters = {
|
|
7
|
+
connector: Connector
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export type SwitchAccountReturnType<config extends Config = Config> = {
|
|
11
|
+
accounts: readonly [Address, ...Address[]]
|
|
12
|
+
chainId:
|
|
13
|
+
| config['chains'][number]['id']
|
|
14
|
+
| (number extends config['chains'][number]['id'] ? number : number & {})
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export type SwitchAccountError = ConnectorNotConnectedError | Error
|
|
18
|
+
|
|
19
|
+
/** https://alpha.wagmi.sh/core/api/actions/switchAccount */
|
|
20
|
+
export async function switchAccount<config extends Config>(
|
|
21
|
+
config: config,
|
|
22
|
+
parameters: SwitchAccountParameters,
|
|
23
|
+
): Promise<SwitchAccountReturnType<config>> {
|
|
24
|
+
const { connector } = parameters
|
|
25
|
+
const connection = config.state.connections.get(connector.uid)
|
|
26
|
+
if (!connection) throw new ConnectorNotConnectedError()
|
|
27
|
+
|
|
28
|
+
await config.storage?.setItem('recentConnectorId', connector.id)
|
|
29
|
+
config.setState((x) => ({
|
|
30
|
+
...x,
|
|
31
|
+
current: connector.uid,
|
|
32
|
+
}))
|
|
33
|
+
return {
|
|
34
|
+
accounts: connection.accounts,
|
|
35
|
+
chainId: connection.chainId,
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SwitchChainError as SwitchChainError_,
|
|
3
|
+
UserRejectedRequestError,
|
|
4
|
+
} from 'viem'
|
|
5
|
+
|
|
6
|
+
import { type Config } from '../createConfig.js'
|
|
7
|
+
import type { BaseError } from '../errors/base.js'
|
|
8
|
+
import { ChainNotConfiguredError } from '../errors/config.js'
|
|
9
|
+
import { SwitchChainNotSupportedError } from '../errors/connector.js'
|
|
10
|
+
import { type ProviderNotFoundError } from '../errors/connector.js'
|
|
11
|
+
import type { ConnectorParameter } from '../types/properties.js'
|
|
12
|
+
import type { Evaluate } from '../types/utils.js'
|
|
13
|
+
|
|
14
|
+
export type SwitchChainParameters<
|
|
15
|
+
config extends Config = Config,
|
|
16
|
+
chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
|
|
17
|
+
> = Evaluate<
|
|
18
|
+
{
|
|
19
|
+
chainId: chainId | config['chains'][number]['id']
|
|
20
|
+
} & ConnectorParameter
|
|
21
|
+
>
|
|
22
|
+
|
|
23
|
+
export type SwitchChainReturnType<
|
|
24
|
+
config extends Config = Config,
|
|
25
|
+
chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
|
|
26
|
+
> = Extract<
|
|
27
|
+
config['chains'][number],
|
|
28
|
+
{ id: Config extends config ? number : chainId }
|
|
29
|
+
>
|
|
30
|
+
|
|
31
|
+
export type SwitchChainError =
|
|
32
|
+
| ProviderNotFoundError
|
|
33
|
+
| SwitchChainError_
|
|
34
|
+
| UserRejectedRequestError
|
|
35
|
+
| BaseError
|
|
36
|
+
| Error
|
|
37
|
+
|
|
38
|
+
/** https://alpha.wagmi.sh/core/api/actions/switchChain */
|
|
39
|
+
export async function switchChain<
|
|
40
|
+
config extends Config,
|
|
41
|
+
chainId extends config['chains'][number]['id'],
|
|
42
|
+
>(
|
|
43
|
+
config: config,
|
|
44
|
+
parameters: SwitchChainParameters<config, chainId>,
|
|
45
|
+
): Promise<SwitchChainReturnType<config, chainId>> {
|
|
46
|
+
const { chainId } = parameters
|
|
47
|
+
|
|
48
|
+
const connection = config.state.connections.get(
|
|
49
|
+
parameters.connector?.uid ?? config.state.current!,
|
|
50
|
+
)
|
|
51
|
+
if (connection) {
|
|
52
|
+
const connector = connection.connector
|
|
53
|
+
if (!connector.switchChain)
|
|
54
|
+
throw new SwitchChainNotSupportedError({ connector })
|
|
55
|
+
const chain = await connector.switchChain({ chainId })
|
|
56
|
+
return chain as SwitchChainReturnType<config, chainId>
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const chain = config.chains.find((x) => x.id === chainId)
|
|
60
|
+
if (!chain) throw new ChainNotConfiguredError()
|
|
61
|
+
config.setState((x) => ({ ...x, chainId }))
|
|
62
|
+
return chain as SwitchChainReturnType<config, chainId>
|
|
63
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
CallParameters,
|
|
3
|
+
Chain,
|
|
4
|
+
WaitForTransactionReceiptParameters as viem_WaitForTransactionReceiptParameters,
|
|
5
|
+
WaitForTransactionReceiptReturnType as viem_WaitForTransactionReceiptReturnType,
|
|
6
|
+
} from 'viem'
|
|
7
|
+
import { hexToString } from 'viem'
|
|
8
|
+
import {
|
|
9
|
+
call,
|
|
10
|
+
getTransaction,
|
|
11
|
+
waitForTransactionReceipt as viem_waitForTransactionReceipt,
|
|
12
|
+
} from 'viem/actions'
|
|
13
|
+
|
|
14
|
+
import type { Config } from '../createConfig.js'
|
|
15
|
+
import type { SelectChains } from '../types/chain.js'
|
|
16
|
+
import type { ChainIdParameter } from '../types/properties.js'
|
|
17
|
+
import type { Evaluate } from '../types/utils.js'
|
|
18
|
+
|
|
19
|
+
export type WaitForTransactionReceiptParameters<
|
|
20
|
+
config extends Config = Config,
|
|
21
|
+
chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
|
|
22
|
+
> = Evaluate<
|
|
23
|
+
viem_WaitForTransactionReceiptParameters & ChainIdParameter<config, chainId>
|
|
24
|
+
>
|
|
25
|
+
|
|
26
|
+
export type WaitForTransactionReceiptReturnType<
|
|
27
|
+
config extends Config = Config,
|
|
28
|
+
chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
|
|
29
|
+
///
|
|
30
|
+
chains extends readonly Chain[] = SelectChains<config, chainId>,
|
|
31
|
+
> = Evaluate<
|
|
32
|
+
{
|
|
33
|
+
[key in keyof chains]: viem_WaitForTransactionReceiptReturnType<chains[key]>
|
|
34
|
+
}[number]
|
|
35
|
+
>
|
|
36
|
+
|
|
37
|
+
export type WaitForTransactionReceiptError = Error
|
|
38
|
+
|
|
39
|
+
export async function waitForTransactionReceipt<
|
|
40
|
+
config extends Config,
|
|
41
|
+
chainId extends config['chains'][number]['id'],
|
|
42
|
+
>(
|
|
43
|
+
config: config,
|
|
44
|
+
parameters: WaitForTransactionReceiptParameters<config, chainId>,
|
|
45
|
+
): Promise<WaitForTransactionReceiptReturnType<config, chainId>> {
|
|
46
|
+
const { chainId, timeout = 0, ...rest } = parameters
|
|
47
|
+
const client = config.getClient({ chainId })
|
|
48
|
+
|
|
49
|
+
const receipt = await viem_waitForTransactionReceipt(client, {
|
|
50
|
+
...rest,
|
|
51
|
+
timeout,
|
|
52
|
+
})
|
|
53
|
+
if (receipt.status === 'reverted') {
|
|
54
|
+
const txn = await getTransaction(client, { hash: receipt.transactionHash })
|
|
55
|
+
const code = (await call(client, {
|
|
56
|
+
...txn,
|
|
57
|
+
gasPrice: txn.type !== 'eip1559' ? txn.gasPrice : undefined,
|
|
58
|
+
maxFeePerGas: txn.type === 'eip1559' ? txn.maxFeePerGas : undefined,
|
|
59
|
+
maxPriorityFeePerGas:
|
|
60
|
+
txn.type === 'eip1559' ? txn.maxPriorityFeePerGas : undefined,
|
|
61
|
+
} as CallParameters)) as unknown as string
|
|
62
|
+
const reason = hexToString(`0x${code.substring(138)}`)
|
|
63
|
+
throw new Error(reason)
|
|
64
|
+
}
|
|
65
|
+
return receipt as unknown as WaitForTransactionReceiptReturnType<
|
|
66
|
+
config,
|
|
67
|
+
chainId
|
|
68
|
+
>
|
|
69
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type Config } from '../createConfig.js'
|
|
2
|
+
import { deepEqual } from '../utils/deepEqual.js'
|
|
3
|
+
import { type GetAccountReturnType, getAccount } from './getAccount.js'
|
|
4
|
+
|
|
5
|
+
export type WatchAccountParameters = {
|
|
6
|
+
onChange(
|
|
7
|
+
account: GetAccountReturnType,
|
|
8
|
+
prevAccount: GetAccountReturnType,
|
|
9
|
+
): void
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export type WatchAccountReturnType = () => void
|
|
13
|
+
|
|
14
|
+
/** https://alpha.wagmi.sh/core/api/actions/watchAccount */
|
|
15
|
+
export function watchAccount(
|
|
16
|
+
config: Config,
|
|
17
|
+
parameters: WatchAccountParameters,
|
|
18
|
+
): WatchAccountReturnType {
|
|
19
|
+
const { onChange } = parameters
|
|
20
|
+
return config.subscribe(() => getAccount(config), onChange, {
|
|
21
|
+
equalityFn(a, b) {
|
|
22
|
+
const { connector: aConnector, ...aRest } = a
|
|
23
|
+
const { connector: bConnector, ...bRest } = b
|
|
24
|
+
return (
|
|
25
|
+
deepEqual(aRest, bRest) &&
|
|
26
|
+
// check connector separately
|
|
27
|
+
aConnector?.id === bConnector?.id &&
|
|
28
|
+
aConnector?.uid === bConnector?.uid
|
|
29
|
+
)
|
|
30
|
+
},
|
|
31
|
+
})
|
|
32
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import {
|
|
2
|
+
type WatchBlockNumberParameters as viem_WatchBlockNumberParameters,
|
|
3
|
+
type WatchBlockNumberReturnType as viem_WatchBlockNumberReturnType,
|
|
4
|
+
watchBlockNumber as viem_watchBlockNumber,
|
|
5
|
+
} from 'viem/actions'
|
|
6
|
+
|
|
7
|
+
import type { Chain, Transport, WebSocketTransport } from 'viem'
|
|
8
|
+
import { type Config } from '../createConfig.js'
|
|
9
|
+
import type { SelectChains } from '../types/chain.js'
|
|
10
|
+
import type {
|
|
11
|
+
ChainIdParameter,
|
|
12
|
+
SyncConnectedChainParameter,
|
|
13
|
+
} from '../types/properties.js'
|
|
14
|
+
import type { UnionEvaluate } from '../types/utils.js'
|
|
15
|
+
|
|
16
|
+
export type WatchBlockNumberParameters<
|
|
17
|
+
config extends Config = Config,
|
|
18
|
+
chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
|
|
19
|
+
///
|
|
20
|
+
chains extends readonly Chain[] = SelectChains<config, chainId>,
|
|
21
|
+
> = {
|
|
22
|
+
[key in keyof chains]: UnionEvaluate<
|
|
23
|
+
viem_WatchBlockNumberParameters<
|
|
24
|
+
config['_internal']['transports'][chains[key]['id']] extends infer transport extends Transport
|
|
25
|
+
? Transport extends transport
|
|
26
|
+
? WebSocketTransport
|
|
27
|
+
: transport
|
|
28
|
+
: WebSocketTransport
|
|
29
|
+
> &
|
|
30
|
+
ChainIdParameter<config, chainId> &
|
|
31
|
+
SyncConnectedChainParameter
|
|
32
|
+
>
|
|
33
|
+
}[number]
|
|
34
|
+
|
|
35
|
+
export type WatchBlockNumberReturnType = viem_WatchBlockNumberReturnType
|
|
36
|
+
|
|
37
|
+
// TODO: wrap in viem's `observe` to avoid duplicate invocations.
|
|
38
|
+
/** https://alpha.wagmi.sh/core/api/actions/watchBlockNumber */
|
|
39
|
+
export function watchBlockNumber<
|
|
40
|
+
config extends Config,
|
|
41
|
+
chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
|
|
42
|
+
>(
|
|
43
|
+
config: config,
|
|
44
|
+
parameters: WatchBlockNumberParameters<config, chainId>,
|
|
45
|
+
): WatchBlockNumberReturnType {
|
|
46
|
+
const { syncConnectedChain = config._internal.syncConnectedChain, ...rest } =
|
|
47
|
+
parameters
|
|
48
|
+
|
|
49
|
+
let unwatch: WatchBlockNumberReturnType | undefined
|
|
50
|
+
const listener = (chainId: number | undefined) => {
|
|
51
|
+
if (unwatch) unwatch()
|
|
52
|
+
|
|
53
|
+
const client = config.getClient({ chainId })
|
|
54
|
+
unwatch = viem_watchBlockNumber(
|
|
55
|
+
client,
|
|
56
|
+
rest as unknown as viem_WatchBlockNumberParameters,
|
|
57
|
+
)
|
|
58
|
+
return unwatch
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// set up listener for block number changes
|
|
62
|
+
const unlisten = listener(parameters.chainId)
|
|
63
|
+
|
|
64
|
+
// set up subscriber for connected chain changes
|
|
65
|
+
let unsubscribe: (() => void) | undefined
|
|
66
|
+
if (syncConnectedChain && !parameters.chainId)
|
|
67
|
+
unsubscribe = config.subscribe(
|
|
68
|
+
({ chainId }) => chainId,
|
|
69
|
+
async (chainId) => {
|
|
70
|
+
return listener(chainId)
|
|
71
|
+
},
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
return () => {
|
|
75
|
+
unlisten?.()
|
|
76
|
+
unsubscribe?.()
|
|
77
|
+
}
|
|
78
|
+
}
|